SA-MP Forums Archive
[Include] Multi Task Timers - 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] Multi Task Timers (/showthread.php?tid=640169)



Multi Task Timers - Jelly23 - 29.08.2017

• Multi Task Timers
Executa mais de uma funзгo com um ъnico timer, tambйm suporta parвmetros. Nгo hб limite de parвmetros ou funзхes que um timer multi tasks possa ter, use a quantidade que preferir.

Qualquer funзгo pode ser executada, a keyword public nгo й um requerimento.
• Macros
PHP код:
Create_MultiTask:NomeDaTarefa("Func1(), Func2(), Func3()");
Create_MultiTaskEx:NomeDaTarefa("ComParams(a), ComParams2(b, c, a)""a,b,c");
Start_MultiTask:NomeDaTarefa(Tempo_Em_MSrepetir true false);
Start_MultiTaskEx:NomeDaTarefa(Tempo_Em_MSrepetir true false"iii"123);
Stop_MultiTask:NomeDaTarefa;
GetID_MultiTask(NomeDaTarefa); 
• Explicando cada macro
Код:
Create_MultiTask:NomeDaTarefa("Func1(), Func2()");

-Verde: Create_MultiTask, cria tarefas para funзхes sem parвmetros.
-Vermelho: Nome da tarefa.
-Azul: Funзхes para serem executadas, como nenhuma tem parвmetros, nгo deixe nada entre parкnteses. Separe cada funзгo utilizando vнrgulas.
Код:
Create_MultiTaskEx:NomeDaTarefa("ComParams(a), ComParams2(b, c, a)", "a,b,c"); 

-Verde: Create_MultiTaskEx, cria tarefas para funзхes com parвmetros.
-Vermelho: Nome da tarefa.
-Azul: Funзхes para serem executadas, os parвmetros a serem utilizados devem existir na funзгo e no handler que estб em laranja que serб explicado em breve.
-Laranja: a,b,c sгo as variбveis passadas pela macro Start_MultiTaskEx: e os parвmetros que as funзхes da task podem utilizar. Vocк pode utilizar tags nos parвmetros sem problemas, ex: "a,Float:b,c".
Код:
Start_MultiTask:NomeDaTarefa(Tempo_Em_MS, repetir = true / false);

-Verde: Start_MultiTask, comeзa a execuзгo de uma tarefa sem parвmetros.
-Vermelho: Nome da tarefa.
-Azul: Tempo em milesimos.
-Laranja: Se a tarefa vai repetir apуs o intervalo, utilize true se essa for a intenзгo.
Код:
Start_MultiTaskEx:NomeDaTarefa(Tempo_Em_MS, repetir = true / false, "iii", 1, 2, 3); 

-Verde: Start_MultiTaskEx, comeзa a execuзгo de uma tarefa com parвmetros.
-Vermelho: Nome da tarefa.
-Azul: Tempo em milesimos.
-Laranja: Se a tarefa vai repetir apуs o intervalo, utilize true se essa for a intenзгo.
-Rosa: Formato que indica os tipos de valores que a tarefa irб receber na callback.
-Marrom: Valores que serгo passados para a callback como parвmetros que podem ser utilizados pelas funзхes da tarefa.
Код:
Stop_MultiTask:NomeDaTarefa; 

-Verde: Stop_MultiTask, para a execuзгo de uma tarefa com ou sem parвmetros.
-Vermelho: Nome da tarefa.
Код:
GetID_MultiTask(NomeDaTarefa);

-Verde: GetID_MultiTask, obtйm o ID do timer de uma tarefa.
-Vermelho: Nome da tarefa.
• Exemplo com parвmetros
PHP код:
Create_MultiTaskEx:ExemploComParams("teste(a,c,b,d)""a,b,c,Float:d");
public 
OnGameModeInit()
{
    
Start_MultiTaskEx:ExemploComParams(1000false"iiif"1,2,3,3.5);
    return 
1;
}
teste(vsmFloat:l) return printf("%i %i %i %f",vsml); //saнda: 1 3 2 3.500000 
• Exemplo sem parвmetros
PHP код:
Create_MultiTask:ExemploSemParams("teste1(), teste2(), func1()");
public 
OnGameModeInit()
{
    
Start_MultiTask:ExemploSemParams(1000false);
    return 
1;
}
teste1() return print("1");
teste2() return print("2");
func1() return print("5");
//saнda: '1'
//saнda: '2'
//saнda: '5' 
• Download
Github



Re: Multi Task Timers - IlanZ - 29.08.2017

Muito bom Jelly. Vai economizar muitas linhas, achei super ъtil, estarб no meu servidor, Observei o cуdigo e vi que isso deu menos de 30 linhas :O.

+Rep.


Re: Multi Task Timers - C4rtm4n - 29.08.2017

Bem Ъtil Essa Include +REP.


Re: Multi Task Timers - Swinte - 29.08.2017

Уtimo, ainda explicado.


Re: Multi Task Timers - Jelly23 - 30.08.2017

Quote:
Originally Posted by zLink
Посмотреть сообщение
Caramba, muito bom Jelly, jб vi muitas pessoas falando que os SetTimer nгo sгo muito precisos,
e que o Y_timers resolvia muitas coisas.. porem parei de carregar a biblioteca YSI

Se puder claro, dar uma olhada na sugestгo, seria maravilhoso.
[Include] Timer Fix

Bom trabalho
Se vocк quiser utilizar o timerfix do Slice para tornar os timers mais precisos, basta incluir antes da minha include. Agora, se vocк quiser utilizar o plugin fixes2, basta apenas carregar o plugin sem a necessidade de nenhuma mudanзa.


Re: Multi Task Timers - PT - 01.09.2017

Muito bom trabalho jelly!


Re: Multi Task Timers - XandyMello - 02.09.2017

Opa, Jelly de volta huehu ?

Уtimo sistema Jelly, uns dias desse um membro do fуrum pediu um sistema
similar, eu fiz um, depois de uma olhada ..