Szerző Téma: SetTimer csak 1x fusson végig  (Megtekintve 1206 alkalommal)

SetTimer csak 1x fusson végig
« Dátum: 2014. július 06. - 01:35:30 »
0 Show voters
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;
}
« Utoljára szerkesztve: 2014. július 10. - 03:56:47 írta ZyZu. »

SetTimer csak 1x fusson végig
« Válasz #1 Dátum: 2014. július 06. - 06:13:40 »
0 Show voters
http://wiki.sa-mp.com/wiki/SetTimer
a truet mondjuk átírod falsera... és akkor nem ismétlödik

SetTimer csak 1x fusson végig
« Válasz #2 Dátum: 2014. július 06. - 07:59:41 »
0 Show voters
megpróbáltam akkor viszont el se indul

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
SetTimer csak 1x fusson végig
« Válasz #3 Dátum: 2014. július 06. - 08:09:56 »
0 Show voters
Használj SetTimerEx -et.. sokkal jobb, majd lelépéskor leállítod KillTimer -el.

SetTimer csak 1x fusson végig
« Válasz #4 Dátum: 2014. július 06. - 11:12:50 »
+1 Show voters
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;
    }

SetTimer csak 1x fusson végig
« Válasz #5 Dátum: 2014. július 08. - 01:08:04 »
0 Show voters
Ezt nem értem...elvileg jó ...de a pénzt nem vonja le

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
SetTimer csak 1x fusson végig
« Válasz #6 Dátum: 2014. július 08. - 08:17:03 »
0 Show voters
Idézetet írta: Dead Space date=1404774484\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49249\" data-ipsquote-contentclass=\"forums_Topic
Ezt nem értem...elvileg jó ...de a pénzt nem vonja le
 
Az üzenetet kiírja neked?

SetTimer csak 1x fusson végig
« Válasz #7 Dátum: 2014. július 08. - 16:15:39 »
0 Show voters
igen, de a pénzt leveszi és visszaadja

Nem elérhető BackUP

  • 908
    • Profil megtekintése
SetTimer csak 1x fusson végig
« Válasz #8 Dátum: 2014. július 11. - 23:17:55 »
0 Show voters
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.

SetTimer csak 1x fusson végig
« Válasz #9 Dátum: 2014. július 15. - 10:01:36 »
0 Show voters
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]

SetTimer csak 1x fusson végig
« Válasz #10 Dátum: 2014. augusztus 10. - 16:57:47 »
0 Show voters
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]
« Utoljára szerkesztve: 2014. augusztus 10. - 17:21:08 írta Dfoglalo »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
SetTimer csak 1x fusson végig
« Válasz #11 Dátum: 2014. augusztus 10. - 17:22:30 »
0 Show voters
Idézetet írta: SuBwayer date=1407682667\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49249\" data-ipsquote-contentclass=\"forums_Topic
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]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal