quando pet morrer o item vira outro , ou tem que ser o mesmo ? e qual tfs ?
- Fórum
- OTServ
- Pedidos
- Tópicos Sem Resposta
- Sistema de morte e atributos para PET
Sistema de morte e atributos para PET
Por Nildson, 05 de abr. de 2017 em Tópicos Sem Resposta
Editado Abril 5 por lazarocp
Em 05/04/2017 at 15:40, lazarocp disse:quando pet morrer o item vira outro , ou tem que ser o mesmo ? e qual tfs ?
é como se fosse um item normal que ativa e desativa o pet entende, quando o monstro morrer ele não pode renascer por que vai estar morto, ai tem que falar com um npc para revive-lo, só isso, infelizmente n sei qual é a versão do meu tfs más vou deixar um print ai

Em \data\creaturescripts\
no arquivo creaturescripts.xml
Adicione isso
<event type="death" name="Petdie" event="script" value="petdeath.lua"/>
Em \data\creaturescripts\scripts\
Crie um arquivo chamando petdeath.lua e coloque isso dentro
function onDeath(cid, deathList)
local owner = getCreatureMaster(cid)
doPlayerSendTextMessage(owner, 21, "Seu pet esta morto!")
setPlayerStorageValue(owner, 24000, 1)
doRemoveCreature(cid)
return FALSE
end
Substitua seu script por esse , teste e me diga se funcionou.
[11256] = {pet = "Frenzy Boar"},
[11207] = {pet = "Demon"},
[5791] = {pet = "Dragon"},
}
local summon = getCreatureSummons(cid)
---------------------------------------------------
if getPlayerStorageValue(cid, 24000) == 1 then
doPlayerSendTextMessage(cid, 19, "Seu pet esta morto!")
return false
end
if #summon >= 1 then
for _, pid in ipairs(summon) do
doRemoveCreature(pid)
doCreatureSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1)
end
return true
end
if getPlayerStorageValue(cid, 6666) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(summon, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if getPlayerStorageValue(cid, 4444) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(summon, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if getPlayerStorageValue(cid, 4445) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(summon, "Petdie")
else
doPlayerSendTextMessage(cid, 19, "Voce precisa fazer a quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
doPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
return true
end
end
Editado Abril 12 por lazarocp
Estar a mesma coisa, única coisa que modificou foi a frase de tirar e por o monstro, quando ele morre o item continua vivo e consigo sumonar ele denovo
function onUse(cid, item, frompos, item2, topos)
[11256] = {pet = "Frenzy Boar"},
[11207] = {pet = "Demon"},
[5791] = {pet = "Dragon"},
}
local summon = getCreatureSummons(cid)
---------------------------------------------------
if getPlayerStorageValue(cid, 24000) == 1 then
doPlayerSendTextMessage(cid, 19, "Seu pet esta morto!")
return false
end
if #summon >= 1 then
for _, pid in ipairs(summon) do
doRemoveCreature(pid)
doCreatureSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1)
end
return true
end
if getPlayerStorageValue(cid, 6666) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(cid, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if getPlayerStorageValue(cid, 4444) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(cid, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if getPlayerStorageValue(cid, 4445) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(cid, "Petdie")
else
doPlayerSendTextMessage(cid, 19, "Voce precisa fazer a quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
doPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
return true
end
end
Acho que resolvi.
1 minuto atrás, lazarocp disse:function onUse(cid, item, frompos, item2, topos)
local dolls = {[11256] = {pet = "Frenzy Boar"},
[11207] = {pet = "Demon"},
[5791] = {pet = "Dragon"},
}
local go = dolls[item.itemid]local summon = getCreatureSummons(cid)
---------------------------------------------------
if getPlayerStorageValue(cid, 24000) == 1 then
doPlayerSendTextMessage(cid, 19, "Seu pet esta morto!")
return false
end
if not (getTilePzInfo(getCreaturePosition(cid))) thenif #summon >= 1 then
for _, pid in ipairs(summon) do
doRemoveCreature(pid)
doCreatureSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1)
end
return true
end
if item.itemid == 5791 thenif getPlayerStorageValue(cid, 6666) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(cid, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if item.itemid == 11256 thenif getPlayerStorageValue(cid, 4444) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(cid, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if item.itemid == 11207 thenif getPlayerStorageValue(cid, 4445) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(cid, "Petdie")
else
doPlayerSendTextMessage(cid, 19, "Voce precisa fazer a quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
elsedoPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
return true
end
end
Acho que resolvi.
Infelizmente ainda não, eu to achando que o problema é o summon, será ?
@NildsonSó precisa registrar o evento no summon , deixa eu dar uma olhada. Faz um tempo que não trabalho nessas tfs antiga kkk
function onUse(cid, item, frompos, item2, topos)
local dolls = {
[11256] = {pet = "Frenzy Boar"},
[11207] = {pet = "Demon"},
[5791] = {pet = "Dragon"},
}
local go = dolls[item.itemid]
local summon = getCreatureSummons(cid)
---------------------------------------------------
if getPlayerStorageValue(cid, 24000) == 1 then
doPlayerSendTextMessage(cid, 19, "Seu pet esta morto!")
return false
end
if not (getTilePzInfo(getCreaturePosition(cid))) then
if #summon >= 1 then
for _, pid in ipairs(summon) do
doRemoveCreature(pid)
doCreatureSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1)
end
return true
end
if item.itemid == 5791 then
if getPlayerStorageValue(cid, 6666) == 1 then
creature = doSummonCreature(go.pet, getCreaturePosition(cid))
doConvinceCreature(cid, creature)
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(creature, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if item.itemid == 11256 then
if getPlayerStorageValue(cid, 4444) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(cid, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if item.itemid == 11207 then
if getPlayerStorageValue(cid, 4445) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(cid, "Petdie")
else
doPlayerSendTextMessage(cid, 19, "Voce precisa fazer a quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
else
doPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
return true
end
end
Não tenho como testar , mas use o 5791 para testar e me diga no que deu
Editado Abril 13 por lazarocp
Em 12/04/2017 at 23:22, lazarocp disse:@NildsonSó precisa registrar o evento no summon , deixa eu dar uma olhada. Faz um tempo que não trabalho nessas tfs antiga kkk
function onUse(cid, item, frompos, item2, topos)
local dolls = {
[11256] = {pet = "Frenzy Boar"},
[11207] = {pet = "Demon"},
[5791] = {pet = "Dragon"},
}
local go = dolls[item.itemid]
local summon = getCreatureSummons(cid)
---------------------------------------------------
if getPlayerStorageValue(cid, 24000) == 1 then
doPlayerSendTextMessage(cid, 19, "Seu pet esta morto!")
return false
end
if not (getTilePzInfo(getCreaturePosition(cid))) then
if #summon >= 1 then
for _, pid in ipairs(summon) do
doRemoveCreature(pid)
doCreatureSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1)
end
return true
end
if item.itemid == 5791 then
if getPlayerStorageValue(cid, 6666) == 1 then
creature = doSummonCreature(go.pet, getCreaturePosition(cid))
doConvinceCreature(cid, creature)
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(creature, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if item.itemid == 11256 then
if getPlayerStorageValue(cid, 4444) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(cid, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if item.itemid == 11207 then
if getPlayerStorageValue(cid, 4445) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(cid, "Petdie")
else
doPlayerSendTextMessage(cid, 19, "Voce precisa fazer a quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
else
doPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
return true
end
endNão tenho como testar , mas use o 5791 para testar e me diga no que deu
Bom na realidade não tenho o monstro dragon más o mesmo monstro da funcionando da mesma forma que antes sem nenhuma alteração.
Como assim não tem o monstro dragon ?
local dolls = {
[11256] = {pet = "Frenzy Boar"},
[11207] = {pet = "Demon"},
[5791] = {pet = "Dragon"},
}
local go = dolls[item.itemid]
local summon = getCreatureSummons(cid)
---------------------------------------------------
if getPlayerStorageValue(cid, 24000) == 1 then
doPlayerSendTextMessage(cid, 19, "Seu pet esta morto!")
return false
end
if #summon >= 1 then
for _, pid in ipairs(summon) do
doRemoveCreature(pid)
doCreatureSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1)
end
return true
end
if item.itemid == 5791 then
if getPlayerStorageValue(cid, 6666) == 1 then
local pet = doSummonCreature(go.pet, getCreaturePosition(cid))
doConvinceCreature(cid, pet)
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(pet, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if item.itemid == 11256 then
if getPlayerStorageValue(cid, 4444) == 1 then
local pet = doSummonCreature(go.pet, getCreaturePosition(cid))
doConvinceCreature(cid, pet)
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(pet, "Petdie")
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if item.itemid == 11207 then
if getPlayerStorageValue(cid, 4445) == 1 then
local pet = doSummonCreature(go.pet, getCreaturePosition(cid))
doConvinceCreature(cid, pet)
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
registerCreatureEvent(pet, "Petdie")
else
doPlayerSendTextMessage(cid, 19, "Voce precisa fazer a quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
else
doPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
return true
end
end
Tente Assim.
Editado Abril 17 por lazarocp
Ta complicado, infelizmente não está funcionando, você não aconselha usar o sistema que é feito para o poketibia ?
info
Grupo: Cavaleiro
Registrado: 22/03/17
Posts: 166
Reputação: +2
Gênero: Masculino

Refiz ele aqui :
Em \data\creaturescripts\
no arquivo creaturescripts.xml
Adicione isso
<event type="death" name="Petdie" event="script" value="petdeath.lua"/>
Em \data\creaturescripts\scripts\
Crie um arquivo chamando petdeath.lua e coloque isso dentro
function onDeath(cid, deathList)
local owner = getCreatureMaster(cid)
doPlayerSendTextMessage(owner, 21, "Seu pet esta morto!")
setPlayerStorageValue(owner, 24000, 1)
doRemoveCreature(cid)
return true
end
local PetMax = 1
[11256] = {pet = "Frenzy Boar"},
[11207] = {pet = "Demon"},
[5791] = {pet = "Dragon"},
}
local go = pets[item.itemid]
return doPlayerSendCancel(cid, "Seu pet esta morto.")
end
if #summons < PetMax then -- Criar pet
creature = doSummonCreature(go.pet, getCreaturePosition(cid))
doConvinceCreature(cid, creature)
registerCreatureEvent(creature, "Petdie")
doPlayerSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1)
doSendMagicEffect(getCreaturePosition(creature), 188)
return false
end
if not (getTilePzInfo(getCreaturePosition(cid))) then
if #summons >= 1 then
for _, pid in ipairs(summons) do
doPlayerSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1)
doRemoveCreature(pid)
end
return true
end
Novamente não tenho como testar ( fiz baseado na 0.3.6 , se não funcionar eu faço com a 0.4 )





info
Grupo: Campones
Registrado: 02/05/13
Posts: 66
Reputação: +2
Gênero: Masculino
Estou utilizando essa script para poder summonar o pet e queria acrescentar algumas coisas, Como HP, Força, Fome e um sistema para quando o pet morrer que seria no caso desabilitar o item do pet até que vá a um npc que está cobrando x item e x quantia para reviver o pet (REABILITAR O ITEM), me ajudem de qualquer forma.
SCRIPT DOS PETS
function onUse(cid, item, frompos, item2, topos)
local dolls = {
[11256] = {pet = "Frenzy Boar"},
[11207] = {pet = "Demon"},
[5791] = {pet = "Dragon"},
}
local go = dolls[item.itemid]
local summon = getCreatureSummons(cid)
---------------------------------------------------
if not (getTilePzInfo(getCreaturePosition(cid))) then
if #summon >= 1 then
for _, pid in ipairs(summon) do
doRemoveCreature(pid)
doCreatureSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1)
end
return true
end
if item.itemid == 5791 then
if getPlayerStorageValue(cid, 6666) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if item.itemid == 11256 then
if getPlayerStorageValue(cid, 4444) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
if item.itemid == 11207 then
if getPlayerStorageValue(cid, 4445) == 1 then
doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)
else
doPlayerSendTextMessage(cid, 19, "Voce precisa fazer a quest para usar esse PET!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
end
end
else
doPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")
doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)
return true
end
end
Editado Abril 5 por Nildson