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

Tem um bug nessa função caso o summon esteja morto retorna um erro:
(luaDoRemoveCreature) Creature not found
por causa do addEvent.
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: 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
Grupo: Cavaleiro
Registrado: 03/03/07
Posts: 150
Reputação: +48
Gênero: Masculino
Char no Tibia: Kaball Madness

Ótimo Script Testado e aprovado! Muito legal para eventos :hi:
info
Grupo: Conde
Registrado: 09/09/09
Posts: 528
Reputação: +424
Char no Tibia: Emekalo Makalo

em vez de print usa error(), so botar error(msg)
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Valeu pelo toque mkalo, editei lá ja.
Boa função ![]()
info
Grupo: Conde
Registrado: 07/05/08
Posts: 612
Reputação: +12
Char no Tibia: 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
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: 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?
Editado Março 19 por Demonbholder
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: 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.
Editado Fevereiro 28 por Demonbholder