Posts: 4,930
Threads: 467
Joined: Dec 2010
Quote:
Originally Posted by _Zume
Sн, hay maneras de hacer mбs eficiente un cуdigo de timers, he visto personas que por ejemplo lo siguiente >
pawn Код:
new TimerComer[MAX_PLAYERS];
SetTimer("VariablesTimer", 1000, 1);
forward VariablesTimer(); public VariablesTimer(){ foreach(new i : Player){ if(TimerComer[playerid] > 0){ TimerComer[MAX_PLAYERS]--; } } }
entonces, lo que hacen ellos para este codigo es digamos, establecer TimerComer[playerid] = 60; que le darнa 60 segundos para crearlo como una condiciуn a no poder comer cada 60 segundos. Cуdigos como estos podrнan resumirse a algo mas eficiente >
pawn Код:
new TimerComer[MAX_PLAYERS];
if(TimerComer[playerid] > GetTickCount()) return SendClientMessage(playerid, -1, "Solo puedes comer cada 60 segundos");
y para situar que cada 60 segundos pueda comer valga la redundancia el que, pues se establece >
pawn Код:
TimerComer[playerid] = GetTickCount() + 60000;
sin uso de timers, claro tambiйn es posible con gettime(), pero el punto es ese, que si no es necesario el uso de timers pues no se usen, ahora, un timer podrнa causar lag si el tiempo que tenga es muy corto, y su funciуn sea mucha, podrias categorizar timers, ponerlos en diferentes tiempos, unir timers que tengas en diferencias para que al ejecutarse no 'choquen'.
Puede ser problema del hosting, es algo que no puede descartarse, pero tampoco de que sea un problema de eficiencia en el codigo.
|
ya lo deberias saber... es mejor utilizar gettime que GetTickCount.
saludos.
https://sampwiki.blast.hk/wiki/GetTickCount