SA-MP Forums Archive
[Ajuda] SetTimer e KillTimer - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] SetTimer e KillTimer (/showthread.php?tid=580623)



SetTimer e KillTimer - RafaelOsio - 06.07.2015

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:
Код:
 
SetTimer("AFK", 1000, true);
UpTimer[playerid] = SetTimerEx("TimerUp", 1000, true, "i", playerid);
Quando ele fica AFK, eu uso um KillTimer:
Код:
KillTimer(UpTimer[playerid]);
Quando ele digita o comando /sairafk, eu recomeзo o meu Timer:
Код:
UpTimer[playerid] = SetTimerEx("TimerUp", 1000, -1, "i", playerid);
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 ?


Re: SetTimer e KillTimer - JonathanFeitosa - 06.07.2015

Duas perguntas. O que seria -1 no segundo SetTimerEx?
e... vocк nгo estб a utilizar o SetTimer do AFK no OnPlayerConnect, nй?


Re: SetTimer e KillTimer - RafaelOsio - 06.07.2015

Quote:
Originally Posted by JonathanFeitosa
Посмотреть сообщение
Duas perguntas. O que seria -1 no segundo SetTimerEx?
e... vocк nгo estб a utilizar o SetTimer do AFK no OnPlayerConnect, nй?
Й o seguinte amigo, antes eu havia feito um tуpico aqui no fуrum com praticamente a mesma dъvida. Meus timers estavam correndo mais rбpido que o normal, a mesma coisa que estб acontecendo agora. A soluзгo proposta foi que eu baixasse um plugin que supostamente corrigia este bug. Veja: https://sampforum.blast.hk/showthread.php?tid=580356

Eu baixei o plugin e adaptei meu GM por ele. As nativas deste plugin recebem em um dos parвmetros o -1, que й o equivalente ao valor true no parвmetro de repetiзгo do SetTimer original.
Quando crei este tуpico, eu copiei do meu GM os timer, e os modifiquei para que se tornassem os originais do SAMP. Com isso, o -1 nгo seria nada.
Corrigindo:
Код:
*UpTimer[playerid] = SetTimerEx("TimerUp", 1000, true, "i", playerid);
Segunda questгo, nгo. O Timer do AFK estб no OnGameModeInit