19.02.2017, 07:11
relee el codigo...
en la funcion CountTillEvento1 le restas a CountEvento1.
si es 0 matas el timer y haces el resto.
pero en ningun momento veo que reinicies "CountEvento1".
dentro del if(CountEvento1 == 0) agrega una linea para reiniciar la variable a su valor por defecto.
por ejemplo: CountEvento1 = 30;
entonces cuando vuelvas a usar el comando y el timer se active, CountEvento1 no va a quedar en 0 de la ultima vez y no se va a restar y quedar en negativo hasta el infinito.
creo que ese es el problema, cualquier cosa responde de nuevo.
en la funcion CountTillEvento1 le restas a CountEvento1.
si es 0 matas el timer y haces el resto.
pero en ningun momento veo que reinicies "CountEvento1".
dentro del if(CountEvento1 == 0) agrega una linea para reiniciar la variable a su valor por defecto.
por ejemplo: CountEvento1 = 30;
entonces cuando vuelvas a usar el comando y el timer se active, CountEvento1 no va a quedar en 0 de la ultima vez y no se va a restar y quedar en negativo hasta el infinito.
Код:
funcion CountTillEvento1(playerid) { CountEvento1--; // En la primera hara su trabajo bien, pero cuando lo vuelvas a usar, CountEvento1 habra quedado en 0 de la ultima cuenta regresiva, y esta linea le restara 1, quedando en -1, y repitiendose el timer hasta el infinito ya que la siguiente condicion jamas se va a cumplir if(CountEvento1 == 0) { TogglePlayerControllable(playerid, 1); SendClientMessage(playerid, COLOR_MSG, "|-INFO-| Ya no puedes unirte al evento, tiempo agotado"); CountEvento1 = 30; // Antes de matar el timer seteamos CountEvento1 a 30 para que la proxima vez que se ejecute esta variable no valga 0 y se produzca lo anterior. KillTimer(CountTimerEvento1); return 1; } new str[128]; format(str, sizeof(str), "|-INFO-| Tiempo restante para que comience: %d segundos", CountEvento1); SendClientMessageToAll(AMARILLO, str); return 1; }