In diesem Tutorial erkläre ich euch, wie ihr eine solche Uhr Scripten könnt.
Schritt 1 - Erstellung des Textdraws
Zu erst benötigen wir einen Textdraw, der die Uhr darstellt.
Am besten können wir Textdraws mit einem Filterscript "Desingnen".
Ich empfehle euch dieses Filterscript: http://forum.sa-mp.com/showthr…highlight=textdraw+editor
Nachdem wir den Textdraw erstellt haben, fügen wir ihn in unseren GameMode ein.
Schritt 2 - Einfügen des Textdraws in den GameMode
In unserem Fall nennen wir den Textdraw "RealClock" (= Echtzeit Uhr).
Folgendes muss in den GameMode eingefügt werden:
Unter die Includes:
new Text:RealClock; //Definiert den Textdraw RealClock
Unter public OnGameModeInit()
RealClock = TextDrawCreate(545.000000, 21.000000, "15:17"); //Erstellt einen Textdraw mit dem Namen RealClock und mit einem leeren String, da wir den String später mit einem Timer definieren
TextDrawBackgroundColor(RealClock, 255); //Hintergrundfarbe des Textdraws
TextDrawFont(RealClock, 3); //Schriftart des Textdraws (mögliche Schriftarten: 0,1,2 und 3)
TextDrawLetterSize(RealClock, 0.509999, 2.299999); //größe des Textdraws
TextDrawColor(RealClock, -1); //Farbe des Textdraws (-1 = Weiß)
TextDrawSetOutline(RealClock, 0); //Kontur des Textdraws
TextDrawSetProportional(RealClock, 1);
TextDrawSetShadow(RealClock, 1);
Schritt 3 - Einstellen des Timers
Als nächstes benötigen wir einen Timer, um die Uhrzeit immer Aktuell zu halten.
Den Timer erstellen wir mit SetTimer("UpdateClock",1000,1);
UpdateClock = Aufrufen des Publics "UpdateClock"
1000 = Anzahl wie oft das Public "UpdateClock" aufgerufen werden soll. (in unserem fall alle 1000 Millisekunden)
1 = Ob der Timer das Public "UpdateClock" nach den 1000 Millisekunden nochmals aufrufen soll, also quasi ob der Tiemr sich wiederholen soll.
Folgendes muss in den GameMode eingefügt werden:
Unter die Includes:
forward UpdateClock(); //für das Public "UpdateClock"
Unter public OnGameModeInit()
SetTimer("UpdateClock",1000,1); //Erstellt den Timer
Schritt 4 - einrichten des Publics "UpdateClock"
Nun sind wir beim letzten Schritt angekommen.
Da wir die Uhr ja ständig am aktuellsten Stand halten wollen, benötigen wir diesen Timer, der die Uhr ständig aktualisiert.
Zuerst müssen wir die Symbole definieren, wie z.B Stunde, Minute, Sekunde auch den "String" müssen wir definieren.
Um die aktuellste Zeit zu erhalten benötigen wir "gettime" mit dieser Funktion erhalten wir ständig die aktuellste Zeit.
Folgendes muss in den GameMode eingefügt werden:
public UpdateClock()
{
new Hour,Minute,Sec,String[256]; //Definiert die Symbole
gettime(Hour,Minute,Sec); //Holt sich die aktuelle Zeit (vom Rechner oder Server)
if(Hour<9 && Minute<9){format(String,sizeof(String),"0%d:0%d",Hour,Minute);}
else if(Hour>9 && Minute<9){format(String,sizeof(String),"%d:0%d",Hour,Minute);}
else if(Hour<9 && Minute>9){format(String,sizeof(String),"0%d:%d",Hour,Minute);}
else{format(String,sizeof(String),"%d:%d",Hour,Minute);}
TextDrawSetString(RealClock,String); //Updatet den TextDraw mit der Aktuellsten Uhrzeit
SetWorldTime(Hour); // Setzt die InGame Zeit auf die RealLife Zeit, sodass wenn es in echt Nacht ist, es auch InGame Nacht ist
return 1;
}
Viel Spaß beim ausprobieren!
Über Kommentare würde ich mich sehr freuen.
Download der Uhr als Filterscript: http://solidfiles.com/d/7077/