SetTimer csak 1x fusson végig

Indította kamionos, 2014. július 06. - 01:35:30

Előző téma - Következő téma

kamionos

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;
}

Kyosuke_Hiroshi

http://wiki.sa-mp.com/wiki/SetTimer\" rel=\"external nofollow\">http://wiki.sa-mp.com/wiki/SetTimer
a truet mondjuk átírod falsera... és akkor nem ismétlödik

kamionos

megpróbáltam akkor viszont el se indul

ZyZu.

Használj SetTimerEx -et.. sokkal jobb, majd lelépéskor leállítod KillTimer -el.

lackos888

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;
    }

kamionos

Ezt nem értem...elvileg jó ...de a pénzt nem vonja le

ZyZu.

Idézetet írta: Dead Space date=1404774484\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49249\" data-ipsquote-contentclass=\"forums_TopicEzt nem értem...elvileg jó ...de a pénzt nem vonja le
 
Az üzenetet kiírja neked?

kamionos

igen, de a pénzt leveszi és visszaadja

BackUP

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.

blackdog476

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]

SuBwayer

#10
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]

Dfoglalo

Idézetet írta: SuBwayer date=1407682667\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49249\" data-ipsquote-contentclass=\"forums_TopicPró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]