Hi,weiß einer wie man die Zeit auf einem Server so vergehen lassen kann wie im SinglePlayer? Also dass eine Sekunde eine Minute und eine Minute eine Stunde im Server sind.
Danke im Voraus.
Zeit im Server wie im SinglePlayer
- DuffMan
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
ja n max_players textdraw machen und halt n timer setzen^^
-
einfach zeit schneller umgehen lassen so wie oben schon geschrieben von tuner du musst timer setzen^^
-
VIEL EINFACHER!!! Ist im lvdm sogar drin:
// Bei OnPlayerSpawn
TogglePlayerClock(playerid,1); -
Cool, thx.
Geht es auch, dass alle im Spiel die selbe Uhrzeit haben? -
Ist das so nicht der Fall?
Ansonsten musst du wirklich mit Timern und Textdraw arbeiten. -
TogglePlayerClock(playerid,1);
Ne das geh nicht bzw es geht aber es hat nicht den Effekt mit Tag/Nacht usw,Außerdem geht dort jede minute auch nur nach jeder minute und nicht nach jeder Sekunde...
Also,bleibt nur neuen Timer zu machen -
//Edit:
So,... ich hab jetzt eine Uhr zusammengestellt, die auch funktioniert.
Sie funktioniert nach den AM/PM Prinzip und nicht nach dem 24 Stunden Prinzip.
Hier der Code:
// oben im Script:
new minute;
new hour;
new DayTime;
new Text:Textdraw0;// :
new Text:Textdraw1;// minutes
new Text:Textdraw2;// am
new Text:Textdraw3;// pm
new Text:Textdraw4;// hours
new h[2];
forward Clock(playerid);
// unter OnGameModeInit:
SetTimer("Clock",1000,1);// 1sec = 1min
//Der GameMode startet um 5:10pm (17:00)
DayTime=17;
hour=5;
minute=10;
//Clock
// TextDraw of the ":"
Textdraw0=TextDrawCreate(571.000000,21.000000,":");
TextDrawAlignment(Textdraw0,0);//:
TextDrawBackgroundColor(Textdraw0,0x000000ff);
TextDrawFont(Textdraw0,3);//:
TextDrawLetterSize(Textdraw0,0.699999,2.499999);
TextDrawColor(Textdraw0,0xffffffcc);
TextDrawSetOutline(Textdraw0,1);
TextDrawSetProportional(Textdraw0,1);
TextDrawSetShadow(Textdraw0,1);
// TextDraw of the "minutes"
Textdraw1=TextDrawCreate(583.000000,21.000000,"theMin");
TextDrawAlignment(Textdraw1,0);
TextDrawBackgroundColor(Textdraw1,0x000000ff);
TextDrawFont(Textdraw1,3);
TextDrawLetterSize(Textdraw1,0.599999,2.499999);
TextDrawColor(Textdraw1,0xffffffcc);
TextDrawSetOutline(Textdraw1,1);
TextDrawSetProportional(Textdraw1,1);
TextDrawSetShadow(Textdraw1,1);
// TextDraw of "am"
Textdraw2=TextDrawCreate(611.000000,31.000000,"AM");
TextDrawAlignment(Textdraw2,0);
TextDrawBackgroundColor(Textdraw2,0x000000ff);
TextDrawFont(Textdraw2,3);
TextDrawLetterSize(Textdraw2,0.499999,1.300001);
TextDrawColor(Textdraw2,0xffffffcc);
TextDrawSetOutline(Textdraw2,1);
TextDrawSetProportional(Textdraw2,1);
TextDrawSetShadow(Textdraw2,1);
// TextDraw of "pm"
Textdraw3=TextDrawCreate(611.000000,31.000000,"PM");
TextDrawAlignment(Textdraw3,0);
TextDrawBackgroundColor(Textdraw3,0x000000ff);
TextDrawFont(Textdraw3,3);
TextDrawLetterSize(Textdraw3,0.499999,1.300001);
extDrawColor(Textdraw3,0xffffffcc);
TextDrawSetOutline(Textdraw3,1);
TextDrawSetProportional(Textdraw3,1);
TextDrawSetShadow(Textdraw3,1);
//TextDraw of the "hours"
Textdraw4=TextDrawCreate(546.000000,21.000000,"h");
TextDrawAlignment(Textdraw4,0);
TextDrawBackgroundColor(Textdraw4,0x000000ff);
TextDrawFont(Textdraw4,3);
TextDrawLetterSize(Textdraw4,0.599999,2.499999);
TextDrawColor(Textdraw4,0xffffffcc);
TextDrawSetOutline(Textdraw4,1);
TextDrawSetProportional(Textdraw4,1);
TextDrawSetShadow(Textdraw4,1);
// unter OnPlayerConnect:
if(hour>=1&&hour<=9)
{
format(h,sizeof(h),"_%d",hour);
TextDrawSetString(Textdraw4,h);
TextDrawShowForAll(Textdraw4);
hour++;
}
else if(hour==10||hour==11)
{
format(h,sizeof(h),"%d",hour);
TextDrawSetString(Textdraw4,h);
TextDrawShowForAll(Textdraw4);
hour++;
}
else if(hour==12)
{
format(h,sizeof(h),"%d",hour);
TextDrawSetString(Textdraw4,h);
TextDrawShowForAll(Textdraw4);
hour=1;
}
if(DayTime>=0&&DayTime<=11)
{
TextDrawShowForAll(Textdraw2);
DayTime++;
}
else if(DayTime>=12&&DayTime<=22)
{
TextDrawShowForAll(Textdraw3);
DayTime++;
}
else if(DayTime==23)
{
TextDrawShowForAll(Textdraw3);
DayTime=0;
}
// irgendwo mitten in Script
public Clock(playerid)
{
TextDrawShowForAll(Textdraw0);
new theMin[2];
if(minute==0)
{
format(theMin,sizeof(theMin),"0%d",minute);
TextDrawSetString(Textdraw1,theMin);
minute++;
if(hour>=1&&hour<=9)
{
format(h,sizeof(h),"_%d",hour);
TextDrawSetString(Textdraw4,h);
hour++;
}
else if(hour==10||hour==11)
{
format(h,sizeof(h),"%d",hour);
TextDrawSetString(Textdraw4,h);
hour++;
}
else if(hour==12)
{
format(h,sizeof(h),"%d",hour);
TextDrawSetString(Textdraw4,h);
hour=1;
}
TextDrawShowForAll(Textdraw4);
if(DayTime>=0&&DayTime<=11)
{
TextDrawHideForAll(Textdraw3);
TextDrawShowForAll(Textdraw2);
DayTime++;
}
else if(DayTime>=12&&DayTime<=22)
{
TextDrawHideForAll(Textdraw2);
TextDrawShowForAll(Textdraw3);
DayTime++;
}
else if(DayTime==23){DayTime=0;}
SetPlayerTime(playerid,DayTime,0);
return 0;
}
else if(minute>=1&&minute<10)
{
SetPlayerTime(playerid,DayTime,minute);
format(theMin,sizeof(theMin),"0%d",minute);
TextDrawSetString(Textdraw1,theMin);
minute++;
}
else if(minute>=10&&minute<59)
{
SetPlayerTime(playerid,DayTime,minute);
format(theMin,sizeof(theMin),"%d",minute);
TextDrawSetString(Textdraw1,theMin);
minute++;
}
else if(minute==59)
{
SetPlayerTime(playerid,DayTime,minute);
format(theMin,sizeof(theMin),"%d",minute);
TextDrawSetString(Textdraw1,theMin);
minute=0;
}
TextDrawShowForAll(Textdraw1);
return 1;
} -
Hier die ist viel einfacher
/*
~~~~~~~~~~~~~~~~~~~~
Clock by [UBC]2Esae.
© 2009
~~~~~~~~~~~~~~~~~~~~
*/
#include "a_samp"
#include "time"new Text:Textdraw1;
new Text:Textdraw2;
forward Clock(playerid);
forward ChatLog(string[]);//==============================================================================
public OnFilterScriptInit()
{
Textdraw1 = TextDrawCreate(469.000000,5.000000, " ");
Textdraw2 = TextDrawCreate(551.000000,23.000000," ");
TextDrawAlignment(Textdraw1,0);
TextDrawAlignment(Textdraw2,0);
SetTimer("Clock", 1000, 1);
return 1;
}//==============================================================================
public OnPlayerConnect(playerid)
{
TextDrawShowForPlayer(playerid, Textdraw1);
TextDrawShowForPlayer(playerid, Textdraw2);
return 1;
}
//==============================================================================
public Clock(playerid)
{
new string[256];
new string2[256];
new Jahr, month, Tag;
new Stunde, Minute, Sekunde;
getdate(Jahr, month, Tag);
gettime(Stunde,Minute,Sekunde);
new Monat[20];
getdate(Jahr, month, Tag);
if(month == 1) { Monat = "Januar"; }
else if(month == 2) { Monat = "Februar"; }
else if(month == 3) { Monat = "Maerz"; }
else if(month == 4) { Monat = "April"; }
else if(month == 5) { Monat = "Mai"; }
else if(month == 6) { Monat = "Juni"; }
else if(month == 7) { Monat = "Juli"; }
else if(month == 8) { Monat = "August"; }
else if(month == 9) { Monat = "September"; }
else if(month == 10) { Monat = "Oktober"; }
else if(month == 11) { Monat = "November"; }
else if(month == 12) { Monat = "Dezember"; }
format(string, sizeof(string), "%d %s, %d", Tag, Monat, Jahr);
TextDrawSetString(Text:Textdraw1, string);
format(string2, sizeof(string2), "%d:%d:%d", Stunde, Minute, Sekunde);
TextDrawSetString(Text:Textdraw2, string2);
}
//==============================================================================
public OnPlayerText(playerid, text[])
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
new chat[256], Sekunde, Minute, Stunde;
gettime(Stunde,Minute,Sekunde);
format(chat, sizeof(chat), "\n[%d:%d:%d]%s: %s", Stunde, Minute, Sekunde, playername, text);
ChatLog(chat);
return 1;
}
//==============================================================================
public ChatLog(string[])
{
new entry[256];
format(entry, sizeof(entry), "%s",string);
new File:hFile;
hFile = fopen("Chat.log", io_append);
fwrite(hFile, entry);
fwrite(hFile, "\n");
fclose(hFile);
}
-
Wow . Sogar mit Datum und das alles mit der reellen Zeit.
Nur wollte ich für meinen Server eine Uhr, bei der eine Minute in einer Sekunde vergeht und die nach dem AM/PM Prinzip funktioniert.
Trotzdem, nice clock. -
Dann wird das das richtige sein.
Füge das unter OnPlayerConnect(playerid) ein.
TogglePlayerClock(playerid, 1); -
Dann wird das das richtige sein.
Füge das unter OnPlayerConnect(playerid) ein.
TogglePlayerClock(playerid, 1);*KopfAnDieWandSchlag* List du bitte mal den ganzen Thread ?
-
Ich habe die Funktion auch schon ausprobiert.
Pro:
- Es ist sehr einfach.
Kontra:
- Alle haben eine unterschiedliche Zeit, die sich auch für einen Spieler, der z.B. Stirbt, verändert.
- Die Uhr funktioiert auch nicht nach dem AM/PM Prinzip.