Ich vermute Mal, dass das erste ein Countdown sein soll und das 2. dann der Startschuss.(Jedenfalls siehts dannach aus)
forward RaceCount(playerid);
public RaceCount(playerid)
{
if(rcount > 0)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(vRacer[i] == 1)
{
new str[128];
format(str,sizeof(str),"~r~%d",rcount);
GameTextForPlayer(i,str,1050,4);
rcount--;
return 1;
}
}
return 1;
}
else
{
KillTimer(rtimer);
for(new ri=0; ri<MAX_PLAYERS; ri++)
{
if(vRacer[ri] == 1)
{
GameTextForPlayer(ri,"~r~GOOOOOOOOOOOOOOO!!!",1050,4);
TogglePlayerControllable(ri,1);
ClientLanguageText(ri,COLOR_RED,"Du hast 5 Minuten Zeit bis das Rennen automatisch beendet wird.","You have 5 minutes until the race will automatically end!");
retimer = SetTimerEx("Rends",300000,false,"i",playerid);
}
}
}
return 1;
Dieser Code ist ansich nicht richtig, da bei jedem Spieler der durchgegangen wird(und am Rennen teilnimmt) der Count runtergeht.
Du möchtest aber vermutlich dass es nur alle Sekunde runterzählt oder? so ists richtig:
forward RaceCount(playerid);
public RaceCount(playerid)
{
if(rcount > 0)
{
new str[128];//Variablen vor der for schleife deklarieren!
for(new i=0; i<MAX_PLAYERS; i++)
{
if(vRacer[i] == 1)
{
format(str,sizeof(str),"~r~%d",rcount);
GameTextForPlayer(i,str,1050,4);
continue;// wenn dann dieses ist aber eigentlich nicht notwendig!
}
}
}
else
{
KillTimer(rtimer);
for(new ri=0; ri<MAX_PLAYERS; ri++)
{
if(vRacer[ri] == 1)
{
GameTextForPlayer(ri,"~r~GOOOOOOOOOOOOOOO!!!",1050,4);
TogglePlayerControllable(ri,1);
ClientLanguageText(ri,COLOR_RED,"Du hast 5 Minuten Zeit bis das Rennen automatisch beendet wird.","You have 5 minutes until the race will automatically end!");
retimer = SetTimerEx("Rends",300000,false,"i",playerid);
}
}
}
return 1;
//edit 1: Fehler behoben
Ansich ist der code auch falsch, da du den playerid Parameter gar nicht brauchst