Szerző Téma: Killtimer egy játékosnak  (Megtekintve 673 alkalommal)

Nem elérhető CANNONN

  • 2139
    • Profil megtekintése
Killtimer egy játékosnak
« Dátum: 2012. február 11. - 23:46:44 »
0 Show voters
Sziasztok! Nem tudom azt meg oldani, hogy csak 1 játékosnak kapcsolja ki a timert a KillTimer függvény, valaki  tudna esetleg ötletet?

Nem elérhető Norby

  • 1575
    • Profil megtekintése
Killtimer egy játékosnak
« Válasz #1 Dátum: 2012. február 12. - 00:05:18 »
+1 Show voters
new timer[MAX_PLAYERS];
timer[playerid] = SetTimerEx(\"Timer\",2000,false,\"i\",playerid);
KillTimer(timer[playerid]);

Nem elérhető CANNONN

  • 2139
    • Profil megtekintése
Killtimer egy játékosnak
« Válasz #2 Dátum: 2012. február 12. - 00:13:30 »
0 Show voters
??? nem is tudom minek nyitottam ezt a témát, ugyan ezt csináltam csak figyelmetlen voltam! Ettõl függetlenül megy a + köszönöm!

Killtimer egy játékosnak
« Válasz #3 Dátum: 2012. február 12. - 01:46:40 »
0 Show voters
Idézetet írta: Norby date=1329001518\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"16917\" data-ipsquote-contentclass=\"forums_Topic

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]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal