Bug propio de un script o SA:MP?
#1

Bug de Timers
Bueno la verdad creo que descubrн un fallo, pero no tengo idea si es propio de script o si es SA:MP que lo produce.

Este fallo no es advertido por el compilador pawno, por lo que me pareciу interesante...

El fallo
Bueno hoy me dн cuenta que si pones 2 timers seguidos se bugean, es decir, se ejecuta el ъltimo que pusiste EJEMPLO:

Estos son unos timers que tenia yo y se me bugearon
pawn Код:
TimerIta[playerid] = SetTimerEx("ExpIta", 120000, false, "i", playerid);
TimerEstudioBar[playerid] = SetTimerEx("CheckEstudio", 2000, true, "i", playerid);
Bueno, se ejecutaba solo el TimerEstudioBar el primero no lo hacнa, y ya me paso con 2 Timers distintos.... Inclusive con el SetTimer()...


Bueno que opinaнs, es un error propio del script? o es SA:MP?... Ademas pienso que deberнa advertirlo el pawno.
Reply
#2

Prueba con esto...

Quote:

//Arriba del script
new timers[1];

//En OnPlayerConnect
timers[0] = SetTimerEx("Mensaje", 10000, false, "dd", playerid, 0);
timers[1] = SetTimerEx("Mensaje", 15000, true, "dd", playerid, 1);

//Abajo del script
forward Mensaje(playerid, numero); public Mensaje(playerid, numero){ new m[30]; m(format, sizeof m, "Mensaje nъmero %d", numero); SendClientMessage(playerid, 0xFFFFFFFF, m); }

Si al conectarte envia ambos mensajes, y si sigue enviando el segundo, tu script esta mal.
Reply
#3

Quй extraсo. Por lo que sй varios timers se pueden ejecutar simultaneamente. Una vez probй haciendo un timer bastante entretenido. Hice algo masomenos asн
pawn Код:
public OnGameModeInit()
{
SetTimer("Hola", 5000, true);
}
public Hola
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SendClientMessage(playerid, -1, "Buenas...");
}
SetTimer("Hola", 5000, true);
}
return 1;
}
La verdad es que era bastante entretenido ver como se multiplicaban los timers. Osea uno corria atras de otro y iban 1 despuйs 2 despuйs 4 despuйs 8 y asн jaja. Hasta que se me laggeo todo y cerre la prueba :C
Reply
#4

algunos timers pueden chocar si tienen los mismos segundos SetTimer("Hola", 5000, true);

en vez de 5000 pongalo SetTimer("Hola", 5123, true); le dan unos microsegundos a la maquina
Reply
#5

Hice un pequeсo script y ambos timers funcionaron perfectamente. Es un error de tu script y no de SA-MP.

Nota:
Mr.GeEk, no importa si tienen se repiten cada el mismo periodo de tiempo, funcionaran igual.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)