Tipo: Tutorial.
Autor: Skymagnum(Skyforever).
Encina: Como usar corretamente o addEvent sem bugs e erros no console.
Creio que todos vocês conheçam a função addEvent senão vou explicar, ela funciona da seguinte maneira
addEvent(function, seconds, ...).
Bom se você usar a função doSendMagicEffect(position, effect) ela vai soltar o efeito na hora correto?
com addEvent você pode fazer o efeito soltar depois se usar corretamente
exêmplo de uso incorreto:
addEvent(doSendMagicEffect, getThingPos(cid), 5 * 1000, 35)
agora veremos do jeito certo:
addEvent(doSendMagicEffect, 5 * 1000, getThingPos(cid), 35)
.
O addEvent se baseia em
addEvent(função, tempo, aqui você segue os parâmetros da função normalmente como se fosse sem o addEvent).
Como vocês já sabem se o addEvent envolver cid e a pessoa logar/morrer pode dar vários erros no console mais acalme-se para isso há uma solução você somente deve criar uma função e nela colocar:
if isCreature(cid) then
Exêmplo de um script que irá dar erro se a pessoa logar/morrer.
function onSay(cid, words, param) local pos = {x = 1, y = 2, z = 3} if getPlayerStorageValue(cid, 12345) > 0 then addEvent(doTeleportThing, 10 * 1000, cid, pos) setPlayerStorageValue(cid, 12345, 0) end return true end
.
Se a pessoa logar/morrer nesse período estipulado no addEvent irá dar erro no console de creature not found.
Agora um jeito de arrumar seria criando uma função e colocando if isCreature(cid) then nela ficando assim:
function doTeleportThing2(cid, toPos, time) if isCreature(cid) then addEvent(doTeleportThing, time * 1000, cid, toPos) end return true end
function onSay(cid, words, param) local pos = {x = 1, y = 2, z = 3} if getPlayerStorageValue(cid, 12345) > 0 then doTeleportThing2(cid, pos, 10) setPlayerStorageValue(cid, 12345, 0) end return true end
Bom é meu primeiro tutorial então espero que gostem.