hallo,
es ist sehr wichtig, dass dieses Problem schnell gelöst wird. Ich habe schon soooo viel ausprobiert, aber ich bekomme es einfach nicht gebacken.
Ich will, dass sobald ein spieler in einen Checkpoint geht, ein Countdown in einem Textdraw nur für diesen Spieler, der sich im Cp befindet startet und von 20 auf 0 sekunden runterzählt. Jedoch ist dies total verbugt.
Sobald nämlich mehr als ein Spieler im Server sind, wird die Textdraw nur für einen oder einige spieler angezeigt. Auch zählt der countdown zu schnell runter, sobald mehrere player den cp gleichzeitig betreten.....
Auch soll der timer bzw. gekillt werden, sobald der besagte spieler den cp wieder verlässt.
Das ist der Code, den ich habe. Ich kann dieses problem einfach nicht lösen und hoffe auf eure hilfe.
falls was unverständlich sein sollte, bitte nachfragen.
Danke schon mal im voraus.
//at the top of the script
forward counterzone(playerid);
new countdownzone[MAX_PLAYERS] = 20;
new CDONZone[MAX_PLAYERS];
new Text:MiniCountdown;
//OnGameModeInit
MiniCountdown = TextDrawCreate(3.000000, 412.000000, "20");
TextDrawBackgroundColor(MiniCountdown, 255);
TextDrawFont(MiniCountdown, 3);
TextDrawLetterSize(MiniCountdown, 0.939999, 3.900000);
TextDrawColor(MiniCountdown, -1);
TextDrawSetOutline(MiniCountdown, 1);
TextDrawSetProportional(MiniCountdown, 1);
TextDrawUseBox(MiniCountdown, 0);
TextDrawBoxColor(MiniCountdown, 1684300900);
TextDrawTextSize(MiniCountdown, 41.000000, 0.000000);
//OnPlayerEnterCheckpoint
CDONZone[playerid] = SetTimerEx("counterzone",990,false,"i",playerid);
//the timer
public counterzone(playerid)
{
if(countdownzone[playerid] > 0)
{
TextDrawShowForPlayer(playerid,MiniCountdown);
new textformat[85];
format(textformat,sizeof textformat,"~g~%d",countdownzone[playerid]);
TextDrawSetString(MiniCountdown,textformat);
CDONZone[playerid] = SetTimerEx("counterzone",990,false,"i",playerid);
countdownzone[playerid] --;
}
return 1;
}
//OnPlayerLeaveCheckpoint
KillTimer(CDONZone[playerid]);
countdownzone[playerid] = 20;
TextDrawHideForPlayer(playerid,MiniCountdown);