06.07.2015, 21:50
Olб amigos. Eu jб postei uma dъvida referente a Timers aqui no fуrum, mas a soluзгo que parecia ser a certa, nгo funcionou para o meu caso. Analisando meu cуdigo, cheguei б conclusгo de conde estava o problema, ou pelo menos acho que esteja.
O meu GM possui um sistema de relуgio UP e um sistema de AFK. Quando o player entra em AFK, o relуgio UP trava. E quando ele digita o comando /sairafk, o relуgio up volta ao normal. A forma que fiz isso foi assim:
Quando o player conecta ao servidor, o TimerAFK e o TimerUP comeзa:
Quando ele fica AFK, eu uso um KillTimer:
Quando ele digita o comando /sairafk, eu recomeзo o meu Timer:
Qual deveria ser o real resultado disso ?
Eu entro no servidor e comaзa a rodar meu TimerUp;
Eu fico OFF por um tempo e o relуgio trava;
Quando volto, escrevo o comando e o TimerUP volta normalmente.
Qual estб sendo o resultado disso ?
Eu entro no servidor e comaзa a rodar meu TimerUp;
Eu fico OFF por um tempo e o relуgio trava;
Quando volto, escrevo o comando e o TimerUP volta errado. Parece que ele roda de 500 em 500 milissegundos, ou como se 2 timers estivessem em execuзгo ao mesmo tempo. Entendem ?
O que pode estar acontecendo, e como resolver isso ?
O meu GM possui um sistema de relуgio UP e um sistema de AFK. Quando o player entra em AFK, o relуgio UP trava. E quando ele digita o comando /sairafk, o relуgio up volta ao normal. A forma que fiz isso foi assim:
Quando o player conecta ao servidor, o TimerAFK e o TimerUP comeзa:
Код:
SetTimer("AFK", 1000, true); UpTimer[playerid] = SetTimerEx("TimerUp", 1000, true, "i", playerid);
Код:
KillTimer(UpTimer[playerid]);
Код:
UpTimer[playerid] = SetTimerEx("TimerUp", 1000, -1, "i", playerid);
Eu entro no servidor e comaзa a rodar meu TimerUp;
Eu fico OFF por um tempo e o relуgio trava;
Quando volto, escrevo o comando e o TimerUP volta normalmente.
Qual estб sendo o resultado disso ?
Eu entro no servidor e comaзa a rodar meu TimerUp;
Eu fico OFF por um tempo e o relуgio trava;
Quando volto, escrevo o comando e o TimerUP volta errado. Parece que ele roda de 500 em 500 milissegundos, ou como se 2 timers estivessem em execuзгo ao mesmo tempo. Entendem ?
O que pode estar acontecendo, e como resolver isso ?