Tem um bug nessa função caso o summon esteja morto retorna um erro:
(luaDoRemoveCreature) Creature not found
por causa do addEvent.
info
Group: Campones
Joined: 26/02/11
Posts: 20
Reputation: 0

Tem um bug nessa função caso o summon esteja morto retorna um erro:
(luaDoRemoveCreature) Creature not found
por causa do addEvent.
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

É, assim como em qualquer script que tu use addEvent e a criatura morrer, mas só vai dizer que não achou a criatura, não acontece nada de mais. Se souber como eu poderia remover esse erro sem adicionar outra função, por favor, se manifeste.
MEU DEUS!
VO USA! JA TO PUIS NOO MEU OT!!
MUITO BOM MESMO MAN RECOMENDO AI EM GALERA!
RULOU!
info
Group: Cavaleiro
Joined: 03/03/07
Posts: 150
Reputation: +48
Gender: Masculino
Tibia Character: Kaball Madness

Ótimo Script Testado e aprovado! Muito legal para eventos :hi:
info
Group: Conde
Joined: 09/09/09
Posts: 528
Reputation: +424
Tibia Character: Emekalo Makalo

em vez de print usa error(), so botar error(msg)
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

Valeu pelo toque mkalo, editei lá ja.
Boa função ![]()
info
Group: Conde
Joined: 07/05/08
Posts: 612
Reputation: +12
Tibia Character: leviana luciferiana

Faala pessoal do XTibia! Hoje venho aqui postar a primeira função que eu fiz, adicionei na lib e deu certo HAHA. Eu não encontrei nenhum erro, então vai lá a explicação:
Utilidade: A função summona um monstro (que não ataca o jogador) e remove o monstro depois de tantos segundos.
Foi bem fácil, em data/lib abre o arquivo functions e cola isto no final, ou em algum lugar dele:
function doRemoveSummon(cid, name, time) if isMonster(getCreatureByName(name)) then if (type(time) == "number" and time) > 0 then doSummonMonster(cid, name) for _, monsters in ipairs(getCreatureSummons(cid)) do addEvent(doRemoveCreature, time*1000, monsters) end return TRUE end return error("Time must be a number higher than 0!") end return error("Creature not found!") end
Então, bem fácil certo? Vamos aos exemplos de uso:
Talkaction:
function onSay(cid, words, param) if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return TRUE end return doRemoveSummon(cid, param, 10) end
Action:
function onUse(cid, item) local sec = 30 local mon = 'demon' if getPlayerStorageValue(cid, 15692) - os.time() <= 0 then doRemoveSummon(cid, mon, sec) doSendAnimatedText(getPlayerPosition(cid), "Your pet will die in "..sec.." seconds.", TEXTCOLOR_ORANGE) setPlayerStorageValue(cid, 15692, sec + os.time()) end return TRUE end
É isso, bem simples mesmo, espero que ainda não exista algo assim, e lembrando que vai remover todos os summons, porque a função que eu usei é getPlayerSummons. Valeu.
Caso queira retirar essa mensagen de error por não encontrar o monstro devido a morte dele, faz o seguinte:
retira isso da função(doremovesummon) "doSummonMonster(cid, name)" deixa isso na talkaction ou qualquer outro lugar que summone o monstro.
Agora na talkaction ou qualquer outro que summone o monstro faça com que seja direcionado a função addevent() para a sua função(doremovesummon) nela você remove a função addevent() e deixa a doremovecreature() use a estrutura de controle if pra verificar se ainda está summonado o monstro.
Além de que o nome da função é doremovesummon() e nela cria um summon pra depois remover o que não condiz com o nome da função.
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

O nome da função realmente não importa, se desejar, troque. Segundo, não importa o lugar onde aparecerá o erro, se o erro existir, é claro. Obrigado pela sugestão, mas essa foi a minha idéia inicial e definitiva para esta função.
OBS: Acho que é possível fazer o que você falou pela própria função doRemoveSummon. Depois eu tento.
EDIT:
Precisa quotar todo o tópico?
Edited Março 19 by Demonbholder
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder
Faala pessoal do XTibia! Hoje venho aqui postar a primeira função que eu fiz, adicionei na lib e deu certo HAHA. Eu não encontrei nenhum erro, então vai lá a explicação:
Utilidade: A função summona um monstro (que não ataca o jogador) e remove o monstro depois de tantos segundos.
Foi bem fácil, em data/lib abre o arquivo functions e cola isto no final, ou em algum lugar dele:
function doRemoveSummon(cid, name, time) if isMonster(getCreatureByName(name)) then if (type(time) == "number" and time) > 0 then doSummonMonster(cid, name) for _, monsters in ipairs(getCreatureSummons(cid)) do addEvent(doRemoveCreature, time*1000, monsters) end return TRUE end return error("Time must be a number higher than 0!") end return error("Creature not found!") endEntão, bem fácil certo? Vamos aos exemplos de uso:
Talkaction:
Action:
É isso, bem simples mesmo, espero que ainda não exista algo assim, e lembrando que vai remover todos os summons, porque a função que eu usei é getPlayerSummons. Valeu.
Edited Fevereiro 28 by Demonbholder