Szerző Téma: Egy parancs napi 1x  (Megtekintve 1749 alkalommal)

Egy parancs napi 1x
« Válasz #15 Dátum: 2012. október 24. - 18:46:56 »
0 Show voters
A timeres megoldás hülyeség.. laggol, és nem biztonságos, illetve restart után törlõdik.
a GetPlayerTime a játékbeli idõt kérdezi le (a játékban 24 perc 1 nap)
Én megoldásom.
 
new CommandTime[MAX_PLAYERS]; //változó
CMD:mittomén(playerid, params[]) {
if(getdate() < CommandTime[playerid]) return SendClientMessage(playerid, -1, \"Ma már használtad ezt a parancsot!\"); //lekérdezi, hogy a mai dátum nagyobb-e a mentettnél, ha nem, akkor hibaüzenetet küld.
//ha nem használta, akkor blablabla..
CommandTime[playerid] = getdate() + 1; //hozzáad a mai naphoz egyet, majd változóba menti
return 1;
}
public OnPlayerConnect(playerid) {
CommandTime[playerid] = dini_Int(fájl, \"CommandTime\"); //betölti az idõt a változóba
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
dini_IntSet(fájl, \"CommandTime\", CommandTime[playerid]); //elmenti a változóból az idõt fájlba
return 1;
}

 
nem teszteltem.

Nem elérhető bendor

  • 2949
    • Profil megtekintése
Egy parancs napi 1x
« Válasz #16 Dátum: 2012. október 24. - 19:29:08 »
0 Show voters
Idézetet írta: TengeriMalac date=1351097216\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28977\" data-ipsquote-contentclass=\"forums_Topic
GetPlayerTime a játékbeli idõt kérdezi le (a játékban 24 perc 1 nap)
 
Ha realtime a játékbeli idõ,akkor is?

Nem elérhető Casamiro

  • 1046
    • Profil megtekintése
Egy parancs napi 1x
« Válasz #17 Dátum: 2012. október 24. - 19:37:46 »
0 Show voters
Elvileg jónak kell lennie
CMD:parancs(playerid,params[])
{
    new fajl[32];
    format(fajl, sizeof fajl, \"%s.ini\", pName(playerid));
    if(!fexist(fajl) || fexist(fajl) && gettime() > dini_Int(fajl, \"ParancsIdo\"))
    {
        // használhatja
        dini_IntSet(fajl, \"ParancsIdo\", (gettime()+24*3600));
    }
    else
    {
        // nem használhatja
    }
    return 1;
}

Egy parancs napi 1x
« Válasz #18 Dátum: 2012. október 24. - 20:14:43 »
0 Show voters
Idézetet írta: Casamiro date=1351100266\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28977\" data-ipsquote-contentclass=\"forums_Topic
Elvileg jónak kell lennie
CMD:parancs(playerid,params[])
{
    new fajl[32];
    format(fajl, sizeof fajl, \"%s.ini\", pName(playerid));
    if(!fexist(fajl) || fexist(fajl) && gettime() > dini_Int(fajl, \"ParancsIdo\"))
    {
        // használhatja
        dini_IntSet(fajl, \"ParancsIdo\", (gettime()+24*3600));
    }
    else
    {
        // nem használhatja
    }
    return 1;
}

 

gyakorlatilag is, de minden parancsnál lekérdezni fájlból, illetve beleírni, kicsit laggoltatja azt.

Nem elérhető Petrik

  • 318
    • Profil megtekintése
Egy parancs napi 1x
« Válasz #19 Dátum: 2012. október 25. - 19:23:03 »
0 Show voters
Köszönöm a válaszokat, megoldottam a problémát :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal