Ha játékosonként tárolod egy elindított idõzítõ azonosítóját mondjuk így:
new timer[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
timer[playerid] = SetTimer.........
....
Akkor a változó továbbra is tárolni fogja az elindított timer azonosító számát akkor is ha a játékos kifagy vagy crashel.
Ebbõl kiindulva le lehet állítani akkor is ha egy új játékos fellép a szerverre gyakorlatilag a helyére (ugyanazt az id-t kapja meg amelyik a kifagyott játékosé volt.
Persze azt nem tudni hogy a samp programozója ezt hogyan kezeli hogy idõzítõ azonosításra újra felhasznál-e olyan értéket amit korábban leállításra került, ezért biztonságra törekedve meglehet határozni egy értéket ami azt jelenti hogy az idõzítõ leállításra vagy egyáltalán nem is lett elindítva, ami lehetne mondjuk a -1.
new timer[MAX_PLAYERS] = { -1, ... };
public
OnPlayerConnect(playerid)
{
if(timer[playerid] != -1) KillTimer(timer[playerid]); // Így ha véletlenül nem kerülne meghívásra játékos kifagyásakor az OnPlayerDisconnect akkor OnPlayerConnect alatt le lehet állítani egy másik játékos által elindított idõzítõt
timer[playerid] = SetTimer(\"bla\", 1000, 1);
return 1;
}
public
OnPlayerDisconnect(playerid, reason)
{
KillTimer(timer[playerid]);
timer[playerid] = -1;
}
Ez lenne az elmélet, a kérdés hogy mûködik-e a valóságban?