Hey,
ich will rechts unten einen Textdraw haben, wo dann angezeigt wird wv Minuten noch bis zum nächsten Payday sind.
Allerdings funktioniert mein jetztiger Code nicht. Ich weiß aber nicht was daran falsch ist
Oben im Script ist der Define für die Textdraw, ist ja klar. Ich hab 2, einmal der Text "Zeit bis Payday: Minuten"
Und in der 2. Leerzeile hab ich den 2. bzw, die Zahl hingesetzt.
Jede Minute wird dann der Textdraw gelöscht (der mit der Zahl, Name: Minute) und ein neuer erstellt, der dann aktuell ausgerechnet wurde.
Sieht jetzt so aus:
Bei OnPlayerSpawn
Payday = TextDrawCreate(383.000000, 431.000000, "Zeit bis Payday: Minuten");
TextDrawBackgroundColor(Payday, 255);
TextDrawFont(Payday, 1);
TextDrawLetterSize(Payday, 0.500000, 1.000000);
TextDrawColor(Payday, -1);
TextDrawSetOutline(Payday, 1);
TextDrawSetProportional(Payday, 1);
TextDrawShowForPlayer(playerid,Payday);
new minutes,string[5];
format(string,sizeof(string),"%i",minutes);
minutes = 60 - SpielerInfo[playerid][pPayday];
Minuten = TextDrawCreate(525.000000, 431.000000, string);
TextDrawBackgroundColor(Minuten, -1);
TextDrawFont(Minuten, 1);
TextDrawLetterSize(Minuten, 0.500000, 1.000000);
TextDrawColor(Minuten, -16776961);
TextDrawSetOutline(Minuten, 0);
TextDrawSetProportional(Minuten, 1);
TextDrawSetShadow(Minuten, 1);
TextDrawUseBox(Minuten, 1);
TextDrawBoxColor(Minuten, 255);
TextDrawTextSize(Minuten, 381.000000, 0.000000);
TextDrawShowForPlayer(playerid,Minuten);
Und dann wenn die Minute abgefragt wird:
public TDPayday(playerid)
{
TextDrawDestroy(Minuten);
new minutes,string[5];
format(string,sizeof(string),"%i",minutes);
minutes = 60 - SpielerInfo[playerid][pPayday];
Minuten = TextDrawCreate(525.000000, 431.000000, string);
TextDrawBackgroundColor(Minuten, -1);
TextDrawFont(Minuten, 1);
TextDrawLetterSize(Minuten, 0.500000, 1.000000);
TextDrawColor(Minuten, -16776961);
TextDrawSetOutline(Minuten, 0);
TextDrawSetProportional(Minuten, 1);
TextDrawSetShadow(Minuten, 1);
TextDrawUseBox(Minuten, 1);
TextDrawBoxColor(Minuten, 255);
TextDrawTextSize(Minuten, 381.000000, 0.000000);
TextDrawShowForPlayer(playerid,Minuten);
return 1;
}
Nur erstens stehen die Minuten immer auf 0, obwohl es eine andere Zahl anzeigen sollte, und zweitens wird er auch nicht aktuallisiert.
Vorher hatte ich es bei OnPlayerUpdate reingebaut, da ging es auch, nur hat sich ein Textdraw über den anderen aufgebaut und es laggte dann sehr.
Danke im Vorraus für hilfreiche Antworten
- Tomsen