-
Sziasztok!
Azt hogyan tudom megoldani, hogy a SetTimer csak egyszer fusson végig??
Tehát a kombó az úgy nézne ki, hogy ha range of point ba belemegyek akkor aktiválódik a Timer, viszont nekem az kellene, hogy ha aktiválódik ne minden egyes 2.5 másodpercenként(Megadott idõ) induljon el, hanem csak 1x 2.5 másodperc után.
És ha újra belemegyek akkor is csak 1x induljon el megadott idõ után...
igy néz ki:
public OnFilterScriptInit()
{
SetTimer(\"kozutado\", 2500, true);
return 1;
}
public kozutado();
public kozutado()
{
for(new playerid; playerid<MAX_PLAYERS; playerid++)
{
if(IsPlayerInRangeOfPoint(playerid, 8.0, 50.0511,-1539.1676,5.1490) || IsPlayerInRangeOfPoint(playerid,8.0, 52.6,-1524.3,5.1))
{
GivePlayerMoney(playerid, -10000);
GameTextForPlayer(playerid, \"~r~Áthaladsz a határon~n~ezért a szerver levon tõled~n~~y~10.000$-t\", 2500, 4);
}
}
return 1;
}
-
http://wiki.sa-mp.com/wiki/SetTimer
a truet mondjuk átírod falsera... és akkor nem ismétlödik
-
megpróbáltam akkor viszont el se indul
-
Használj SetTimerEx -et.. sokkal jobb, majd lelépéskor leállítod KillTimer -el.
-
Csak változó kell ide..
new athaladt[MAX_PLAYERS];
public OnFilterScriptInit()
{
SetTimer(\"kozutado\", 2500, true);
return 1;
}
forward kozutado();
public kozutado()
{
for(new playerid; playerid<MAX_PLAYERS; playerid++)
{
if(IsPlayerInRangeOfPoint(playerid, 8.0, 50.0511,-1539.1676,5.1490) || IsPlayerInRangeOfPoint(playerid,8.0, 52.6,-1524.3,5.1))
{
if(adhaladt[playerid] == 0){
GivePlayerMoney(playerid, -10000);
GameTextForPlayer(playerid, \"~r~Áthaladsz a határon~n~ezért a szerver levon tõled~n~~y~10.000$-t\", 2500, 4);
athaladt[playerid] = 1;
}
} else {
athaladt[playerid] = 0;
}
}
return 1;
}
-
Ezt nem értem...elvileg jó ...de a pénzt nem vonja le
-
Ezt nem értem...elvileg jó ...de a pénzt nem vonja le
Az üzenetet kiírja neked?
-
igen, de a pénzt leveszi és visszaadja
-
Az másért van. Gondolom nem saját mód. Gondolom a módba van egy védelem pénz cheat ellen, és az adja vissza. Ezért kell ismerni a módot, változóbol vond le az összeget, ne GivePlayerMoney(); függvénnyel.
-
Másolj be egy olyan parancsot (nem muszáj a leghosszabbat :D) ami a pénzedet módosítja. Vagy pedig ha tudod, akkor szedd ki belõle a pénz változót, és építsd bele a scriptbe a GivePlayerMoney helyére. Pl
[pawn]pInfo[playerid][pMoney] = pInfo[playerid][pMoney] - 10000[/pawn]
-
Próbáld meg így:
GivePlayerMoney(playerid, GetPlayerMoney(playerid)-10000);
[mod]Kitettem helyetted a
taget! Ráadásul több hetes témához nem kéne hozzászólni, arról nem is beszélve, hogy a témanyitó némítva van.[/mod]
-
Próbáld meg így:
GivePlayerMoney(playerid, GetPlayerMoney(playerid)-10000);
[mod]Kitettem helyetted a
taget! Ráadásul több hetes témához nem kéne hozzászólni, arról nem is beszélve, hogy a témanyitó némítva van.[/mod]
Ha elolvasnád a hozzászólásokat, akkor tudnád, hogy az nem mûködik, mert pénz cheat védelem van a módban...
[mod]Elavult téma és a témanyitó is némítva lett, így zárok.[/mod]