20.02.2017, 22:46
Quote:
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. Код:
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; } |
Deberнa haber puesto una nueva variable sin el = 30; sino la variable sola, y por eso me funcionу y ya no me da valor negativo.
Solucionado.
Cierren tema por favor, ah y por cierto te mereces la reputaciуn