new timer[MAX_PLAYERS];
timer[playerid] = SetTimerEx(\"Timer\",2000,false,\"i\",playerid);
KillTimer(timer[playerid]);
Egy nem ismétlõdõ timert nem kell leállítani az leáll magától és törlõdik.
Ha belegondolsz egy kicsit,
vegyük azt hogy van rengeteg timer használatban ismétlõdõ és egyszer lefutó is.
Ha tárolom egy változóban egy timer azonosító számát amivel letudom állítani, mint a példádban is, majd
leállítom a változó még mindig tárolni fogja a timer azonosító számát közben ez a folyamat megy tovább, timerek elindulnak leállításra kerülnek,
és emiatt elõfordulhat hogy egy újonnan induló timer leállításra kerül mondjuk pont egy játékos kilépésnél, egy vissza maradt azonosító érték miatt.
A szkripter meg agyalhat, hogy mi a fene is van.
Tipp:
A változót a timer leállítása után is meg kell változtatni mondjuk -1-re,
nem ismétlõdõ timerek-nek ne tároljuk változóban az azonosító számát.[pawn]
new timerid;
timerid = SetTimer(\"public_funcname\", true, 1000); // helyes
timerid = SetTimer(\"public_funcname\", false, 1000); // helytelen
Killtimer(timerid); // a timerid változó értéke nem törlõdik ezért
timerid = -1;
[/pawn]