SA-MP Forums Archive
[Include] h_Timer | Livraria de Timer - 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)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Include] h_Timer | Livraria de Timer (/showthread.php?tid=503776)



h_Timer | Livraria de Timer - Mr.Hardy - 31.03.2014

h_Timer 0.2


O h_Timer tem o principal intuito de matar ou setar timers com seguranзa ou chamar a callback OnTimerFinish ao temporizador ser matado ou finalizado. Algumas pessoas podem achar estб include inutil, porйm alguma pessoa ou alguem no futuro mais breve possa procurar e encontrar algo que lhe atenda.


Funзхes
pawn Код:
native SetTimer(funcname[], interval, repeating);
native SetTimerEx(funcname[], interval, repeating, const format[], {Float,_}:...);
native KillTimer(timerid); //Mata um timer somente se for existкnte.
native IsValidTimer(timerid);//Retorna true para existкnte, e false para nгo existкnte
native GetTimerCallback(timerid);//Obtкm a "funcname" utilizada em um timer.
forward OnTimerFinish(timerid, type, funcname[], txtf[], {Float,_}:...); //Callback chamada ao timer finalizar.

//Tipo de timer SetTimer();
#define TYPE_SETTIMER (1)
//Tipo de timer SetTimerEx();
#define TYPE_SETTIMEREX (2)
//Sistema de argumentos utilizado na callback OnTimerFinish
#define TIMER_ARG<%0> TimerArg[timerid][%0+3]
Aprenda
pawn Код:
/*
Antes de tudo vamos entender o TIMER_ARG<...> :
Estб й uma funзгo em que vocк vai puxar o valor setado no SetTimerEx();

Ex: SetTimerEx("Teste", 8000, false, "ds", 8, "palavra");

Ao timer finalizar os 8000 milйsimos ou 8 segundos ele vai chamar a callback OnTimerFinish, onde lб vocк poderб utilizar o TIMER_ARG...

De acordo com o SetTimerEx(); no exemplo acima os valores que TIMER_ARG resultarб sгo:

TIMER_ARG<1> = 8
TIMER_ARG<2> = palavra

Exemplo em printf:

printf("ARG1: %d | ARG2: %s", TIMER_ARG<1>, TIMER_ARG<2>);
*/

#define MAX_TIMERS (500)
#include <a_samp>
#include <h_timer>

new timerOFF;

public OnTimerFinish(timerid, type, funcname[], txtf[], {Float,_}:...)
{
    if(type == TYPE_SETTIMER) printf("TYPE_SETTIMER | ID: %d | FUNCNAME: %s", timerid, funcname);
    if(type == TYPE_SETTIMEREX) printf("TYPE_SETTIMEREX | ID: %d | FUNCNAME: %s | ARGS: %s | ARG1: %d | ARG2: %d | ARG3: %s", timerid, funcname, txtf, TIMER_ARG<1>, TIMER_ARG<2>, TIMER_ARG<3>);
    return true;
}
/* Saida no console:
[03:47:37] TYPE_SETTIMER | ID: 3 | FUNCNAME: Teste2
[03:47:32] TYPE_SETTIMEREX | ID: 2 | FUNCNAME: Teste1 | ARGS: dds | ARG1: 8 | ARG2: 5 | ARG3: testes
*/

forward Teste2();
public Teste2()
{
    KillTimer(timerOFF);
}

public OnGameModeInit(){
    timerOFF = SetTimerEx("Teste1",10000,false,"dds",8,5,"testes");
    SetTimer("Teste2",5000,false);
    return true;
}
Importante
  1. O sistema de argumentos das funзхes TIMER_ARG, SetTimerEx(); etc.. tem um limite de 8 argumentos nessa versгo atual.
  2. O funcname[] tem um limite de 80 caracteres na funзгo SetTimer/SetTimerEx. Ex: SetTimer("Aqui", ....
  3. O format[] tem um limite de 20 caracteres na funзгo SetTimer/SetTimerEx. Ex: SetTimer("Teste", 1000, true, "Aqui", ...
Instalaзгo
  1. Insira a include depois da include "a_samp".
  2. Coloque no topo do seu gamemode/filterscript "#define MAX_TIMERS (NЪMERO DE TIMERS QUE UTILIZARA)".
Download da Include Changelog Crйditos
Atenзгo:
Nгo dou permissгo para qualquer suposta postagem em outro forum ou parte deste forum.



Re: h_Timer | Livraria de Timer - shittt - 31.03.2014

Parapenis , bem util :P.

@Ofi : meu gay :3


Re: h_Timer | Livraria de Timer - Byted - 31.03.2014

Massa ,
#eu tava precisando de um desses
+rep


Re: h_Timer | Livraria de Timer - Mr.Hardy - 31.03.2014

Quote:
Originally Posted by shittt
Посмотреть сообщение
Parapenis , bem util :P.

@Ofi : meu gay :3
Apenas curta o clima kkkk

Quote:
Originally Posted by Byted
Посмотреть сообщение
Massa ,
#eu tava precisando de um desses
Vlw


Re: h_Timer | Livraria de Timer - Dolby - 31.03.2014

Interessante. Seria legal se vocк colocasse funзхes adicionais como obter o tempo que falta para a execuзгo da Callback e o tempo passado desde o inнcio do temporizador, aн sim seria uma livraria para temporizadores completa, atй porque nгo atualizarei a minha por motivos que nгo vem ao caso.

Gostei bastante da forma com que trabalhou com o preprocessor, sу nгo gostei muito da estrutura do cуdigo, pois ficou um tanto quanto ilegнvel.

De qualquer maneira, parabйns.


Re: h_Timer | Livraria de Timer - Mr.Hardy - 31.03.2014

Quote:
Originally Posted by Dolby
Посмотреть сообщение
Interessante. Seria legal se vocк colocasse funзхes adicionais como obter o tempo que falta para a execuзгo da Callback e o tempo passado desde o inнcio do temporizador, aн sim seria uma livraria para temporizadores completa, atй porque nгo atualizarei a minha por motivos que nгo vem ao caso.

Gostei bastante da forma com que trabalhou com o preprocessor, sу nгo gostei muito da estrutura do cуdigo, pois ficou um tanto quanto ilegнvel.

De qualquer maneira, parabйns.
Obrigado pela opniгo, creio que brevemente adicionarei mais termos ou atй mesmo callbacks "OnTimerFinish"..


Re: h_Timer | Livraria de Timer - Byted - 31.03.2014

Quote:
Originally Posted by Mr.Hardy
Посмотреть сообщение
Apenas curta o clima kkkk



Vlw
De nada


Re: h_Timer | Livraria de Timer - PT - 31.03.2014

Gostei desta sua include.

Ela e bem pratica e util, parabens.


Re: h_Timer | Livraria de Timer - Mr.Hardy - 31.03.2014

Quote:
Originally Posted by PT
Посмотреть сообщение
Gostei desta sua include.

Ela e bem pratica e util, parabens.
Obrigado


Re: h_Timer | Livraria de Timer - Dolby - 31.03.2014

Quote:
Originally Posted by Mr.Hardy
Посмотреть сообщение
Obrigado pela opniгo, creio que brevemente adicionarei mais termos ou atй mesmo callbacks "OnTimerFinish"..
Realmente seria interessante essa modulaзгo para gerenciar os temporizadores do script, criar uma unica callback para gerencia-los.

pawn Код:
public OnTimerFinish(timerid, format[], {Float,_}:...))