ME

function repeatFunction(_times, _delay, _function, ...)

Por meubk, 22 de abr. de 2014 em Mods, funções e outros

6
1.1k
meubkM
22 de abril de 2014 às 09:58

Esta função serve para repetir outras funções por um certo tempo.

function repeatFunction(_times, _delay, _function, ...)
	if _times == 0 then return true end
	_function(...)
	addEvent(repeatFunction, _delay, _times - 1, _delay, _function, ...)
end

exemplo de uso:

repeatFunction(20, 1000, doSendMagicEffect, getThingPos(cid), 23)

ira repetir a função doSendMagicEffect, 20 vezes, com intervalos de 1000ms (1 segundo).

TechrlzT
22 de abril de 2014 às 10:23

Qual a diferença dessa função para 1 loop? ou ate mesmo para 1 for?

Editado Abril 22 por Techrlz

OneshotO
22 de abril de 2014 às 10:30

Qual a diferença dessa função para 1 loop? ou ate mesmo para 1 for?

 

A recursividade.

TechrlzT
22 de abril de 2014 às 10:34

Ah sim, tirando que sempre bom ter mais opções.

dalvorsnD
22 de abril de 2014 às 11:26

E nesse caso usa o addEvent, ele não executa como um loop, pois loop não da pause sem travar

E o bom de usar recursividade ai, é que voce não enche a pilha com varios addEvents, só adiciona um a um, menos memoria gasta

 

Porem usar diretamente assim não acho legal, é bom usar com condicionais, por exemplo um doSendMagicEffect com um if isCreature

Editado Abril 22 por dalvorsn

SlicerS
22 de abril de 2014 às 22:29

como o @dalvorsn flo generalizar tanto assim n eh tao bom... o sendMagicEffect por exemplo daria erro se o player deslogasse e tb ficaria mandando o efeito na pos q o player tivesse na hora q ativar a funçao, n ficaria seguindo o player...