Timer idõ lekérés kérdés.

Indította SSK, 2013. december 04. - 20:45:30

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

SSK

Sziasztok!
Egy olyan kérdést tennék fel nektek,hogy hogyan csináljam azt meg hogy elindítok egy Timert és amikor lelép a player lekérje,hogy mennyi idõ telt el a timer idejébõl?

Dfoglalo

Egy másik timerrel, ami egy változó értékéhez másodpercenként mindig hozzáad egyet (az általad említett timer indulásától kezdve), majd disconnect alatt leállítja a timert, ezzel megkapva, hogy hány másodperc telt el? :hmmm:

Kovacs_Richard

ezzel a kérdésen én is foglalkoztam már és több megoldást találtam rá:
1. létrehozol 1 tömböt (1 cella = 1 játékos) és egy timer-el növeled a cellák értékét és bármikor letudod kérdezni mióta Online a játékos (mennyi idõt töltött a szerveren)
Ugye te ezt szeretnéd megvalósítani...nem ajánlom, mivel ez terhel a legjobban és nem pontos értéket ad ! ( csak akkor ha a SetTimer-ed pontosan van belõve! mivel nem 1mp-enként fut le az 1000 milisec-es timer )
2. én ezzel kísérleteztem, de sajnos nekem nem úgy mûködött ahogy vártam
http://wiki.sa-mp.com/wiki/GetTickCount\" rel=\"external nofollow\">http://wiki.sa-mp.com/wiki/GetTickCount
Az elõzõ megoldáshoz képest itt is egy tömböt hozol létre, csak itt mást tárolsz...
Csatlakozásnál eltárolod az aktuális visszatérési értéket (hogy mióta fut a szerver) és kilépésnél ismét lekéred és kivonod a csatlakozásnál mentett értéket:
 
new ConnectData[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
ConnectData[playerid] = GetTickCount();
return 1;
}
public OnPlayerDisconnect(playerid,reason)
{
   new OnlineTime = GetTickCount() - ConnectData[playerid];
return 1;
}

 
és így millisec-ben megkapod, hogy mennyit volt online a játékos
3. megoldás az szinte ugyanaz mint a második csak dátumot+idõt tárolsz el és nem a GetTickCount visszatérési értékét
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.