Omega 377 Postado Agosto 30, 2013 Share Postado Agosto 30, 2013 (editado) Um usuário me pediu pra fazer e achei interessante, então vou postar aqui pra quem quiser usar: INFORMAÇÕES: Ring que previne a morte de um jogador que tiver equipado o ring por pelo menos 5 minutos. CÓDIGO: Creaturescript:Crie um arquivo chamado ring.lua em creaturescripts/scripts: -- [[ Anel ressucitador por Leoric (Omega Blueheaven no XTibia ]] -- local ringid = 12345 -- bote aqui o id do ring que vai reviver function onPrepareDeath(cid, deathList) if isPlayer(cid) then if getPlayerSlotItem(cid,CONST_SLOT_RING).itemid == ringid and getPlayerStorageValue(cid,716231) >= 30 then if doPlayerRemoveItem(cid,ringid,1) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doRemoveConditions(cid, false) return false end end end return true end Tag no creaturescripts.xml <event type="preparedeath" name="Anel Ressucitador" event="script" value="ring.lua"/> Tag no login.luaAdicione isso perto dos outros register em creaturescripts/scripts/login.lua registerCreatureEvent(cid, "Anel Ressucitador") Movement:Crie um arquivo ringres.lua em movements/scripts local ringid = 12345 -- itemid do ring function ringOn(cid) if not isPlayer(cid) then return false end if getPlayerSlotItem(cid,CONST_SLOT_RING).itemid == ringid then setPlayerStorageValue(cid,716231,getPlayerStorageValue(cid, 716231)+1) addEvent(ringOn,10000,cid) return true end end function onEquip(cid, item, slot) setPlayerStorageValue(cid,716231,0) addEvent(ringOn,10000,cid) return true end Tag no movements.xml: <movevent type="Equip" itemid="id do ring" level="level necessário" script="ringres.lua"/> OBSERVAÇÕES: Se houver algum bug, poste o erro em spoiler no comentário ou será ignorado Cuidado para não deixar duas tags do mesmo item no movements.xml Verifique quais atributos esse item muda no items.xml Editado Agosto 31, 2013 por omega blueheaven Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/ Compartilhar em outros sites More sharing options...
jonathasbizerril 0 Postado Agosto 30, 2013 Share Postado Agosto 30, 2013 Desculpa mais não sei por Spolier mais o erro foi esse [30/08/2013 20:37:05] [Warning - Event::loadScript] Event onPrepareDeath not found (data/creaturescripts/scripts/novos/Anel Ressucitador.lua) Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1556247 Compartilhar em outros sites More sharing options...
Omega 377 Postado Agosto 31, 2013 Autor Share Postado Agosto 31, 2013 Desculpa mais não sei por Spolier mais o erro foi esse [30/08/2013 20:37:05] [Warning - Event::loadScript] Event onPrepareDeath not found (data/creaturescripts/scripts/novos/Anel Ressucitador.lua) Pra por spoiler você faz isso: [ spoiler ] CONTEÚDO EM SPOILER [ /spoiler ]. Claro, sem os espaços dentro dos colchetes ( [ ] ). O erro foi que você botou numa pasta (novos) e não deve ter sinalizado isso dentro da tag do creaturescripts.xml Compara: <event type="preparedeath" name="Anel Ressucitador" event="script" value="ring.lua"/> (30/08/2013 20:37:05] [Warning - Event::loadScript] Event onPrepareDeath not found (data/creaturescripts/scripts/novos/Anel Ressucitador.lua) O erro diz: - Aviso: não consegui carregar o script que tá aqui (data/creaturescripts/scripts/novos/Anel Ressucitador.lua) - Então tenta mudar o value="ring.lua" para value="novos/Anel Ressucitador.lua" Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1556265 Compartilhar em outros sites More sharing options...
jonathasbizerril 0 Postado Agosto 31, 2013 Share Postado Agosto 31, 2013 Desculpa mais não sei por Spolier mais o erro foi esse [30/08/2013 20:37:05] [Warning - Event::loadScript] Event onPrepareDeath not found (data/creaturescripts/scripts/novos/Anel Ressucitador.lua) Pra por spoiler você faz isso: [ spoiler ] CONTEÚDO EM SPOILER [ /spoiler ]. Claro, sem os espaços dentro dos colchetes ( [ ] ). O erro foi que você botou numa pasta (novos) e não deve ter sinalizado isso dentro da tag do creaturescripts.xml Compara: <event type="preparedeath" name="Anel Ressucitador" event="script" value="ring.lua"/> (30/08/2013 20:37:05] [Warning - Event::loadScript] Event onPrepareDeath not found (data/creaturescripts/scripts/novos/Anel Ressucitador.lua) O erro diz: - Aviso: não consegui carregar o script que tá aqui (data/creaturescripts/scripts/novos/Anel Ressucitador.lua) - Então tenta mudar o value="ring.lua" para value="novos/Anel Ressucitador.lua" Já fiz isso e nada o erro dever ser no scrpit :x Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1556280 Compartilhar em outros sites More sharing options...
Omega 377 Postado Agosto 31, 2013 Autor Share Postado Agosto 31, 2013 Ô caramba, tem um erro imbecil mesmo! Cara, é o seguinte: estava escrito onPreprareDeath, mas a função é onPrepareDeath. Tô corrigindo no tópico principal, mas a solução é a seguinte: Substitua: -- [[ Anel ressucitador por Leoric (Omega Blueheaven no XTibia ]] -- local ringid = 12345 -- bote aqui o id do ring que vai reviver function onPreprareDeath(cid, deathList) if isPlayer(cid) then if getPlayerSlotItem(cid,CONST_SLOT_RING).itemid == ringid and getPlayerStorageValue(cid,716231) >= 30 then if doPlayerRemoveItem(cid,ringid,1) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doRemoveConditions(cid, false) return false end end end return true end Por -- [[ Anel ressucitador por Leoric (Omega Blueheaven no XTibia ]] -- local ringid = 12345 -- bote aqui o id do ring que vai reviver function onPrepareDeath(cid, deathList) if isPlayer(cid) then if getPlayerSlotItem(cid,CONST_SLOT_RING).itemid == ringid and getPlayerStorageValue(cid,716231) >= 30 then if doPlayerRemoveItem(cid,ringid,1) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doRemoveConditions(cid, false) return false end end end return true end Agora deve funcionar. Qualquer coisa estou a disposição. Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1556300 Compartilhar em outros sites More sharing options...
jonathasbizerril 0 Postado Agosto 31, 2013 Share Postado Agosto 31, 2013 (editado) Não teve nenhum efeito nada não funcionou nem deu nenhum bug nada não fez absolutamente nada. Opa Espera 1 minuto já edito aqui Está Funcionando 100% falta só umas coisas bota pra mim? Pra quando colocar no dedo e se remover antes ele some e quando colocar no dedo ele fala essa messagem "Você colocou o ring e agora está protegido" e o ultimo quando reviver o jogador dar um efeito no jogador e uma messagem "você ressucitou dos mortos bravo guerreiro" o id do efeito é 65 Editado Agosto 31, 2013 por jonathasbizerril Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1556368 Compartilhar em outros sites More sharing options...
SmiX 265 Postado Agosto 31, 2013 Share Postado Agosto 31, 2013 (editado) - Movements: local ringid = 12345 -- itemid do ring function ringOn(cid) if not isPlayer(cid) then return false end if getPlayerSlotItem(cid,CONST_SLOT_RING).itemid == ringid then setPlayerStorageValue(cid,716231,getPlayerStorageValue(cid, 716231)+1) addEvent(ringOn,10000,cid) return true end end function onEquip(cid, item, slot) setPlayerStorageValue(cid,716231,0) addEvent(ringOn,10000,cid) doPlayerSendTextMessage(cid, 20, "Você colocou o ring e agora está protegido.") return true end function onDeEquip(cid, item, slot) if item.itemid == ringid then if not doRemoveItem(cid, item.itemid, 1) then return true end end return true end Adiciona está tag: <movevent type="DeEquip" itemid="id do ring" level="level necessário" script="ringres.lua"/> -CreatureScript: -- [[ Anel ressucitador por Leoric (Omega Blueheaven no XTibia ]] -- local ringid = 12345 -- bote aqui o id do ring que vai reviver function onPrepareDeath(cid, deathList) if isPlayer(cid) then if getPlayerSlotItem(cid,CONST_SLOT_RING).itemid == ringid and getPlayerStorageValue(cid,716231) >= 30 then if doPlayerRemoveItem(cid,ringid,1) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doRemoveConditions(cid, false) doPlayerSendTextMessage(cid, 20, "Você ressucitou dos mortos, bravo guerreiro...") doSendMagicEffect(getThingPos(cid), 65) return false end end end return true end Editado Agosto 31, 2013 por SmiX Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1556377 Compartilhar em outros sites More sharing options...
Omega 377 Postado Agosto 31, 2013 Autor Share Postado Agosto 31, 2013 (editado) Adicione a tag onDeEquip no movements.xml (igual a do onEquip, mas com De) local ringid = 12345 -- itemid do ring function ringOn(cid) if not isPlayer(cid) then return false end if getPlayerSlotItem(cid,CONST_SLOT_RING).itemid == ringid then setPlayerStorageValue(cid,716231,getPlayerStorageValue(cid, 716231)+1) addEvent(ringOn,10000,cid) return true end end function onEquip(cid, item, slot) setPlayerStorageValue(cid,716231,0) addEvent(ringOn,10000,cid) doPlayerSendTextMessage(cid,22,'Com esse anel equipado por 5 minutos voce estara protegido da morte!') return true end function onDeEquip(cid, item, slot) if getPlayerStorageValue(cid,716231) < 30 then doRemoveItem(item.uid,1) doPlayerSendTextMessage(cid,25,'Seu anel sumiu!') end end Agora o creaturescripts: -- [[ Anel ressucitador por Leoric (Omega Blueheaven no XTibia ]] -- local ringid = 12345 -- bote aqui o id do ring que vai reviver function onPrepareDeath(cid, deathList) if isPlayer(cid) then if getPlayerSlotItem(cid,CONST_SLOT_RING).itemid == ringid and getPlayerStorageValue(cid,716231) >= 30 then if doPlayerRemoveItem(cid,ringid,1) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doPlayerSendTextMessage(cid,25,'Voce retornou da morte, bravo guerreiro.') doSendMagicEffect(getCreaturePosition(cid),65) doRemoveConditions(cid, false) return false end end end return true end Não tinha carregado o post do cara aí de cima. Só vi uma diferença significativa: - Na minha correção, o cara só perde o anel se ele não estiver ativado (se quiser mudar pra ativado você coloca getPlayerStorageValue(cid,...) >= 30) - Na correção do Smix você sempre vai perder o ring quando desequipar, ativado ou não. Editado Agosto 31, 2013 por omega blueheaven Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1556379 Compartilhar em outros sites More sharing options...
SmiX 265 Postado Agosto 31, 2013 Share Postado Agosto 31, 2013 Tecnicamente, você só adicionou linhas inúteis no código, já que o usuário pediu que ao retirar, não importando condições nenhuma, o player perdesse o ring. ^^ Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1556382 Compartilhar em outros sites More sharing options...
jonathasbizerril 0 Postado Agosto 31, 2013 Share Postado Agosto 31, 2013 Obrigado @Seiya de Smix darei +rep por ter me ajudado Mais estou usando o Scrpit do Omega Blueheaven porque ele me ajudou desde do inicio mais obrigado por tentar ajudar Omega Blueheaven +rep pra você man obrigado por me ajudar! Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1556383 Compartilhar em outros sites More sharing options...
jonathasbizerril 0 Postado Setembro 4, 2013 Share Postado Setembro 4, 2013 @Omega Blueheaven O seu scrpit ta dando conflito com um script meu tem como você ajeitar isso? e por o contador de tempo tipo quando eu colocar ele no dedo ele falar o anel sera ativando em 4:59 minutos e ficando cotando 4:58 minutos 4:57 minutos... o scrpit que da conflito é do meu aol porque meu aol é diferente dos normais ele não some ele só desenergyza ai quando o jogador usa o ring e morre ele desenergyza mais não é pra desenergyzar ): entendeu? olha meu script do aol ai --[[By Lucas Brito © 2012Version : v1.0]]--function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)local amulet = getPlayerSlotItem(cid, CONST_SLOT_NECKLACE)if (getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == 2361) then -- energyzadodoPlayerRemoveItem(cid, 2361, 1) -- energyzadolocal amulet = doPlayerAddItem(cid,11523) --quebradoelseif (getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == 11512) then -- energyzadodoPlayerRemoveItem(cid, 11512, 1) -- energyzadolocal amulet = doPlayerAddItem(cid,11511) --quebradoelseif (getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == 11513) then -- energyzadodoPlayerRemoveItem(cid, 11513, 1) -- energyzadolocal amulet = doPlayerAddItem(cid,11519) --quebradoendreturn trueend Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1557974 Compartilhar em outros sites More sharing options...
Omega 377 Postado Setembro 4, 2013 Autor Share Postado Setembro 4, 2013 Qual é o ID do anel que você tá usando pra ressucitar? Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1557989 Compartilhar em outros sites More sharing options...
jonathasbizerril 0 Postado Setembro 4, 2013 Share Postado Setembro 4, 2013 Qual é o ID do anel que você tá usando pra ressucitar? ID: 2121 Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1558006 Compartilhar em outros sites More sharing options...
Omega 377 Postado Setembro 4, 2013 Autor Share Postado Setembro 4, 2013 (editado) @Smix Tecnicamente, você só adicionou linhas inúteis no código, já que o usuário pediu que ao retirar, não importando condições nenhuma, o player perdesse o ring. ^^ Não teve nenhum efeito nada não funcionou nem deu nenhum bug nada não fez absolutamente nada. Opa Espera 1 minuto já edito aqui Está Funcionando 100% falta só umas coisas bota pra mim? Pra quando colocar no dedo e se remover antes ele some e quando colocar no dedo ele fala essa messagem "Você colocou o ring e agora está protegido" e o ultimo quando reviver o jogador dar um efeito no jogador e uma messagem "você ressucitou dos mortos bravo guerreiro" o id do efeito é 65 Antes do que? Eu imaginei que fosse antes de ele ser ativado, não foram linhas inúteis, foi questão de interpretação do pedido. @Jonathas Cara, não precisava nem ter perguntado o ID do anel, esse script só checa necklace. Se você não conseguir ver qual é o script que você tem e tá dando conflito, troca pra outro anel. No pior dos casos, cria outro anel a partir de um que já exista. Editado Setembro 4, 2013 por omega blueheaven Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1558032 Compartilhar em outros sites More sharing options...
jonathasbizerril 0 Postado Setembro 4, 2013 Share Postado Setembro 4, 2013 @Smix Tecnicamente, você só adicionou linhas inúteis no código, já que o usuário pediu que ao retirar, não importando condições nenhuma, o player perdesse o ring. ^^ Não teve nenhum efeito nada não funcionou nem deu nenhum bug nada não fez absolutamente nada. Opa Espera 1 minuto já edito aqui Está Funcionando 100% falta só umas coisas bota pra mim? Pra quando colocar no dedo e se remover antes ele some e quando colocar no dedo ele fala essa messagem "Você colocou o ring e agora está protegido" e o ultimo quando reviver o jogador dar um efeito no jogador e uma messagem "você ressucitou dos mortos bravo guerreiro" o id do efeito é 65 Antes do que? Eu imaginei que fosse antes de ele ser ativado, não foram linhas inúteis, foi questão de interpretação do pedido. @Jonathas Cara, não precisava nem ter perguntado o ID do anel, esse script só checa necklace. Se você não conseguir ver qual é o script que você tem e tá dando conflito, troca pra outro anel. No pior dos casos, cria outro anel a partir de um que já exista. Acho que você não entendeu o aol só é pra desenergizar no caso da segunda morte porque a primeira ele vai ressuscitar ai o aol tem que continuar lá energizado só quando morre na segunda vez sem o ring que é pra desenergizar o aol entendeu? Desculpa por ta lé abusando muito mais é que não sei mesmo ajeitar isso ): tentei bugei tudo ate que quando tirava o anel do dedo o servidor caia ): Link para o comentário https://xtibia.com/forum/topic/220287-anel-ressucitador/#findComment-1558052 Compartilhar em outros sites More sharing options...
Posts Recomendados