Hi,
wie kann man nen Textdraw mit nem Timer aktuallisieren, z.B. für ein PayDay Textdraw, was sich jede Minute einmal aktuallisieren soll?
Gruß
Hi,
wie kann man nen Textdraw mit nem Timer aktuallisieren, z.B. für ein PayDay Textdraw, was sich jede Minute einmal aktuallisieren soll?
Gruß
forward UpdateTextDraw(Text:ID, string[]);
public UpdateTextDraw(Text:ID, string[])
{
TextDrawSetString(ID, string);
return 1;
}
//irgendein callback
SetTimerEx("UpdateTextDraw", 1000*60, true, "ds", ID, "bla");
Okay, und bei ds und bla muss was rein? ;D
Gruß
//Edit:
public UpdatePayday(Text:ID, string)
{
TextDrawSetString(PayDayZeit, string[]);
return 1;
}
Wenn ich dann Compile bekomme ich folgende Errors:
"ds" bleibt so, das gibt das format der parameter an.
(d für dezimalzahl (ID) und s für string)
danach werden die parameter angegeben, die beim aufruf an "UpdateTextDraw" übergeben werden.
also für "ID" die ID des textdraws angeben und für "bla" eben den string, den du über das textdraw ausgeben willst.
/E:
hast du die funktion mit "forward" definert?
wenn ja, achte darauf, dass der ausdruck nach forward exakt mit der definition der funktion übereinstimmt.
forward UpdateTextDraw(Text:ID, string[]);
public UpdatePayday(Text:ID, string)
{
TextDrawSetString(PayDayZeit, string[]);
return 1;
}
Das hast du ja auch umgekehrt gemacht es solte so stehen:
public UpdatePayday(Text:ID, string[])
{
TextDrawSetString(PayDayZeit,string);
return 1;
}
SetTimerEx("UpdatePayday", 1000*60, true, "ds", PayDayZeit, "bla");
Hab das jetzt so gelöst.. Was muss jetzt bei bla genau rein?
z.B. so?
SetTimerEx("UpdatePayday", 1000*60, true, "ds", PayDayZeit, "~w~Spielzeit seit Zahltag:~g~ %d Minuten", PlayerInfo[playerid][pPaydayZeit]");
so, da sich für jeden spieler ein spezifisches textdraw ergibt, hab ich den code etwas abgeändert.
//oben
new string[128];
//da der text vom jeweilgen spieler abhängt, musst du für jeden spieler einzeln ein textdraw erstellen, also:
new Text:td_PayDay[MAX_PLAYERS];
//OnPlayerConnect
td_PayDay[playerid]=TextDrawCreate(...);
//
//etwas abgeändert, da sich für jeden spieler ein anderer text ergibt
public UpdatePayday()
{
for(new i=0; i<MAX_PLAYERS; i++) //td für jeden spieler updaten
{
//erst formatieren
format(string, sizeof(string), "~w~Spielzeit seit Zahltag:~g~ %d Minuten", PlayerInfo[playerid][pPaydayZeit]);
TextDrawSetString(PayDay[i], string);
}
return 1;
}
//OnGameModeInit
SetTimer("UpdatePayday", 1000*60, true);
C:\Users\Dennis\Desktop\test.pwn(17747) : error 017: undefined symbol "playerid"
C:\Users\Dennis\Desktop\test.pwn(17748) : error 028: invalid subscript (not an array or too many subscripts): "PayDay"
C:\Users\Dennis\Desktop\test.pwn(17748) : warning 215: expression has no effect
C:\Users\Dennis\Desktop\test.pwn(17748) : error 001: expected token: ";", but found "]"
C:\Users\Dennis\Desktop\test.pwn(17748) : error 029: invalid expression, assumed zero
C:\Users\Dennis\Desktop\test.pwn(17748) : fatal error 107: too many error messages on one line
Bekomme ich bei
new string[128];
public UpdatePayday()
{
for(new i=0; i<MAX_PLAYERS; i++) //td für jeden spieler updaten
{
//erst formatieren
format(string, sizeof(string), "~w~Spielzeit seit Zahltag:~g~ %d Minuten", PlayerInfo[playerid][pPaydayZeit]);
TextDrawSetString(PayDay[i], string);
}
return 1;
}
new string[128];
public UpdatePayday()
{
for(new i=0; i<MAX_PLAYERS; i++) //td für jeden spieler updaten
{
//erst formatieren
format(string, sizeof(string), "~w~Spielzeit seit Zahltag:~g~ %d Minuten", PlayerInfo[playerid][pPaydayZeit]);
TextDrawSetString(PayDay[i], string);
}
return 1;
}
Du hast im Abschnitt PlayerInfo[playerid][pPaydayZeit]
in diesem Zusammenhang gibt es playerid nicht
mach es so:
new string[128];
public UpdatePayday()
{
for(new i=0; i<MAX_PLAYERS; i++) //td für jeden spieler updaten
{
//erst formatieren
format(string, sizeof(string), "~w~Spielzeit seit Zahltag:~g~ %d Minuten", PlayerInfo[i][pPaydayZeit]);
TextDrawSetString(PayDay[i], string);
}
return 1;
}
Hatte ich probiert:
C:\Users\Dennis\Desktop\test.pwn(17748) : error 028: invalid subscript (not an array or too many subscripts): "PayDay"
C:\Users\Dennis\Desktop\test.pwn(17748) : warning 215: expression has no effect
C:\Users\Dennis\Desktop\test.pwn(17748) : error 001: expected token: ";", but found "]"
C:\Users\Dennis\Desktop\test.pwn(17748) : error 029: invalid expression, assumed zero
C:\Users\Dennis\Desktop\test.pwn(17748) : fatal error 107: too many error messages on one line