Megvannak rá a pluginok, illetve a függvények, na meg a pontos algoritmusok, de szerintem hagyd a fenébe. Inkább használj timert, ugyanis hiteddel ellentétben egyáltalán nem laggoltat, sok játékos esetében sem. Én is nyugalommal használom a timereket. Nem véletlenül vannak. Állítsd be õket 1 percre, melybõl kiszámolható a pontos eltöltött idõ.
new EltoltottIdo = 123; // 2 óra és 3 perc
printf(\"A szerveren eltöltött idõd: %d óra %d perc\", EltoltottIdo / 60, EltoltottIdo % 60); // A szerveren eltöltött idõd: 2 óra 3 perc
Megvannak rá a pluginok, illetve a függvények, na meg a pontos algoritmusok, de szerintem hagyd a fenébe. Inkább használj timert, ugyanis hiteddel ellentétben egyáltalán nem laggoltat, sok játékos esetében sem. Én is nyugalommal használom a timereket. Nem véletlenül vannak. Állítsd be õket 1 percre, melybõl kiszámolható a pontos eltöltött idõ.
new EltoltottIdo = 123; // 2 óra és 3 perc
printf(\"A szerveren eltöltött idõd: %d óra %d perc\", EltoltottIdo / 60, EltoltottIdo % 60); // A szerveren eltöltött idõd: 2 óra 3 perc
Ez a világ legnagyobb hülyesége. Szerintem. ( A figyelmeztetésem miatt, most nem adok mínuszt, hanem leírom a véleményem, örüljetek. :gumicsirke: )
Az idõzítõ ilyesfajta feladatra teljes mértékben felesleges!
Van egy egyszerû módja a játszott óra kiszámításának!
Létezik egy olyan, hogy Unix Idõ (rákattintva megtudhatod pontosan, hogy mi is az), mégpedig samp-ban is van alap függvény hozzá, amivel le lehet kérni..
Ami nem más mint a gettime függvény.
Gyakorlati példa 1 játékidõ kiszámolásához...
public OnPlayerConnect(playerid) {
SetPVarInt(playerid, \"Connect_UNIXTIME\", gettime()); //elmentsük csatlakozáskor, a jelenlegi UNIX idõt..
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
new EltoltottIdo = gettime() - GetPVarInt(playerid, \"Connect_UNIXTIME\");
//és akkor Dfoglalo példája most jön a dologba..
printf(\"A szerveren eltöltött idõd: %d óra %d perc\", EltoltottIdo / 60, EltoltottIdo % 60); // A szerveren eltöltött idõd: 2 óra 3 perc
return 1;
}
És akkor jön a kérdés, hogy hogyan mentsem.. Egyszerû.. 2 megoldás létezik.. A sz*rakodósat le se írom, csak a kézenfekvõt..
Minden kilépéskor elmented ezt a EltoltottIdo változó értékét, mint eltöltött idõ.. Betöltéskor pedig úgy mented a változót, hogy:
SetPVarInt(playerid, \"Connect_UNIXTIME\", gettime() - BETÖLTÖTTIDÕVÁLTOZÓJA); //elmentsük csatlakozáskor, a jelenlegi UNIX idõt.. + kivonjuk ebbõl az összegbõl a betöltött idõt
AFK Time-ot is ki lehet vonogatni.. Ha azt is ilyen alapon mentegeted, akkor logikával megtudod oldani..
[mod]Javítottam a
taget
tagre![/mod]
Dupla hozzászólás automatikusan összefûzve. ( [time]2014. augusztus 22. 19:23:37[/time] )
Nekem te ne javítsad. Nekem a sima code tag a szimpatikus.. Nem értem miért kell módosítgatni..
[mod]Azért, mert benne van a szabályzatban. :)[/mod]
HMM. Nem lenne neki szabad 12 percet írni. :)
Ja igen.. Bocs.. A szöveg.. Óra = Perc .. Perc = Másodperc..
Javítva:
public OnPlayerConnect(playerid) {
SetPVarInt(playerid, \"Connect_UNIXTIME\", gettime()); //elmentsük csatlakozáskor, a jelenlegi UNIX idõt..
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
new EltoltottIdo = gettime() - GetPVarInt(playerid, \"Connect_UNIXTIME\");
//és akkor Dfoglalo példája most jön a dologba..
printf(\"A szerveren eltöltött idõd: %d perc %d másodperc\", EltoltottIdo / 60, EltoltottIdo % 60); // A szerveren eltöltött idõd: 2 perc 3 másodperc
return 1;
}
[mod]Javítottam a
taget
tagre![/mod]