Szerző Téma: Timer lementése!  (Megtekintve 571 alkalommal)

Timer lementése!
« Dátum: 2014. Július 02. - 09:08:17 »
0
Sziasztok!
Szeretnék egy olyan scriptet kérni ami elmenti az adott játékosnak a timerét.
Erre a timerre szeretném kérni:
 
if(GetTickCount() - GetPVarInt(playerid, \"anti_flood\") < 60000*30)
        SetPVarInt(playerid, \"anti_flood\", GetTickCount());

 
Parancs használati idõhöz kell a timer, de így az a baj hogyha kilép a játékos és visszalép akkor olyan mintha lejárt volna a timer és már tudja is használni a parancsot :(
Szóval vahaogy elszeretném menteni mindenkinek a timerét vagy esetleg az adott játékos .ini fáljába eltárolni a visszaszámlálót.
Elõre is köszönöm a segítséget! :)

Timer lementése!
« Válasz #1 Dátum: 2014. Július 02. - 11:59:41 »
0
GetTickCount()

 helyett
gettime()

 
igaz, így másodpercben adja meg, de a lényege ugyanaz.

Timer lementése!
« Válasz #2 Dátum: 2014. Július 02. - 12:34:10 »
0
Áhá értem és azt hogy 2 óránként lehessen használni azt akkor hogykell megadni ? :D

Dupla hozzászólás automatikusan összefûzve. ( 2014. Július 02. - 12:35:35 )

És ha lejár a timer akkor újra tudja használni a parancsot és ahogy újra használta újraindúl a számláló ugye ?

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Timer lementése!
« Válasz #3 Dátum: 2014. Július 02. - 12:42:58 »
0
Idézetet írta: Jim Toretto date=1404297250\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49183\" data-ipsquote-contentclass=\"forums_Topic
Áhá értem és azt hogy 2 óránként lehessen használni azt akkor hogykell megadni ? :D
 
Értelemszerüen szorozd be 4-el vagy számold ki hogy mennyi 2 óra..
Szóval:
Jelenleg: 60000*30 -hoz hogy két óra legyen 60000*30*4
 

És ha lejár a timer akkor újra tudja használni a parancsot és ahogy újra használta újraindúl a számláló ugye ?
 
[/quote]
Ja

Timer lementése!
« Válasz #4 Dátum: 2014. Július 03. - 10:27:48 »
0
@Flash:
new Seconds = gettime();
printf(\"Seconds since midnight 1st January 1970: %d\", Seconds);
[/quote]
másodperccel tér vissza, tehát elég a 60*60*2 (60másodperc = 1perc, 60perc = 1óra, 2x1óra = 2óra :D)


CMD:test(playerid, params[]) {
if(GetPVarInt(playerid, \"anti_flood\") < gettime()) return SenClientMessage(playerid, -1, \"Még nem használhatod a parancsot\"); // ellenõrzi
SetPVarInt(playerid, \"anti_flood\", gettime() + 60*60*2); // hozzáad 2 órát
// parancs többi része
return 1;
}

 
ki lehet számolni azt is, hogy mennyi idõ múlva használhatja, de annyira azért nem értek az UNIX idõ számoláshoz.
illetve van ez a jó kis timec függvény (nem tudom ki írta)
 
stock timec(timestamp, compare = -1) {
    if (compare == -1) compare = gettime();
    new n,
        Float:d = (timestamp > compare) ? timestamp - compare : compare - timestamp,
        returnstr[32];
    if (d < 60) {
        format(returnstr, sizeof(returnstr), \"< 1 minute\");
        return returnstr;
    } else if (d < 3600) { // 3600 = 1 hour
        n = floatround(floatdiv(d, 60.0), floatround_floor);
        format(returnstr, sizeof(returnstr), \"minute\");
    } else if (d < 86400) { // 86400 = 1 day
        n = floatround(floatdiv(d, 3600.0), floatround_floor);
        format(returnstr, sizeof(returnstr), \"hour\");
    } else if (d < 2592000) { // 2592000 = 1 month
        n = floatround(floatdiv(d, 86400.0), floatround_floor);
        format(returnstr, sizeof(returnstr), \"day\");
    } else if (d < 31536000) { // 31536000 = 1 year
        n = floatround(floatdiv(d, 2592000.0), floatround_floor);
        format(returnstr, sizeof(returnstr), \"month\");
    } else {
        n = floatround(floatdiv(d, 31536000.0), floatround_floor);
        format(returnstr, sizeof(returnstr), \"year\");
    }
    if (n == 1) format(returnstr, sizeof(returnstr), \"1 %s\", returnstr);
    else format(returnstr, sizeof(returnstr), \"%d %ss\", n, returnstr);
    return returnstr;
}

 
ezzel összehasonlíthatod a 3 idõt, és kiírja, hogy mennyi a 2 között a különbség.. ez csak ilyen látványelem. :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal