Wenn du den Timer unter OnGameModeInit startest, ist das schonmal richtig ![]()
60000 ist falsch..ersetze das mal durch 1000*60*15
Und dann schreibe das mal so:
forward WantedLoss();public WantedLoss() {
for(new i,tmp[32]; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i) || !WantedLevel[i]) continue;
WantedLevel[i]--,SetPlayerWantedLevel(i,WantedLevel[i]);
format(tmp,sizeof(tmp), "Aktuelles Wantedlevel: %i",WantedLevel[i]);
SendClientMessage(i, COLOR_GREEN,tmp);
}
return 1;
}
Damit würde jeder Spieler auf dem Server alle 15min 1 Wanted verlieren, solange er auch eins hat ![]()
Sagen wir mal, der Server startet um 14:00uhr...so und dann bekommt ein Spieler ein Wanted um 14:14...dann wird er um 14:15 1 Wanted abgezogen bekommen.
Wenn du das nicht haben möchtest, dann musst es spieler orientiert machen und zwar so:
new bool:s_Timer[MAX_PLAYERS char]; //Oben im Skript
//Unter OnPlayerConnect
s_Timer{playerid}=false;
s_Timer{playerid}=false;
//in deinem Wantedbefehl
if(!s_Timer{playerid}) s_Timer{playerid}=true,SetTimerEx("@w_loss",1000*60*15,0,"i",playerid);
if(!s_Timer{playerid}) s_Timer{playerid}=true,SetTimerEx("@w_loss",1000*60*15,0,"i",playerid);
//Außerhalb einer Funktion / Callbacks
@w_loss(i);@w_loss(i) {
if(!IsPlayerConnected(i) || WantedLevel[i] <= 0) return 0;
new tmp[32];
WantedLevel[i]--,SetPlayerWantedLevel(i,WantedLevel[i]);
format(tmp,sizeof(tmp), "Aktuelles Wantedlevel: %i",WantedLevel[i]);
SendClientMessage(i, COLOR_GREEN,tmp);
return (WantedLevel[i]) ? SetTimerEx("@w_loss",1000*60*15,0,"i",i) : 0;
}
@w_loss(i);@w_loss(i) {
if(!IsPlayerConnected(i) || WantedLevel[i] <= 0) return 0;
new tmp[32];
WantedLevel[i]--,SetPlayerWantedLevel(i,WantedLevel[i]);
format(tmp,sizeof(tmp), "Aktuelles Wantedlevel: %i",WantedLevel[i]);
SendClientMessage(i, COLOR_GREEN,tmp);
return (WantedLevel[i]) ? SetTimerEx("@w_loss",1000*60*15,0,"i",i) : 0;
}
mfg. ![]()
//Edit: Ups..hatte noch playerid da stehen...