Ir para conteúdo

Sistema de morte e atributos para PET


Nildson

Posts Recomendados

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 por Nildson
Link para o comentário
Compartilhar em outros sites

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

 

Screenshot_2.png

 

Screenshot_2.png.c2f3ee89689802e8274c3cd841d656d5.png

Link para o comentário
Compartilhar em outros sites

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.

 

Spoiler
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
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 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(summon, "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(summon, "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

 

Editado por lazarocp
Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

Spoiler

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
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 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

 Acho que resolvi.

Link para o comentário
Compartilhar em outros sites

1 minuto atrás, lazarocp disse:
  Mostrar conteúdo oculto

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

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 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

 Acho que resolvi.

Infelizmente ainda não, eu to achando que o problema é o summon, será ?

Link para o comentário
Compartilhar em outros sites

@NildsonSó precisa registrar o evento no summon , deixa eu dar uma olhada. Faz um tempo que não trabalho nessas tfs antiga kkk

Spoiler

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 por lazarocp
Link para o comentário
Compartilhar em outros sites

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

  Mostrar conteúdo oculto

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

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.

Link para o comentário
Compartilhar em outros sites

Como assim não tem o monstro dragon ?

 

Spoiler
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
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 por lazarocp
Link para o comentário
Compartilhar em outros sites

Em 19/04/2017 at 10:30, Nildson disse:

Ta complicado, infelizmente não está funcionando, você não aconselha usar o sistema que é feito para o poketibia ?

Amigo sem á versão do seu TFS é Complicado, segue o tutorial de como ver:

 

Sem título.png

 

 

58fea2c398b6e_Semttulo.thumb.png.d4544b57443271019c6fd3fbec1671b7.png

Link para o comentário
Compartilhar em outros sites

Agora, America disse:

Amigo sem á versão do seu TFS é Complicado, segue o tutorial de como ver:

 

Sem título.png

 

 

 

Obrigado, a versão do meu tfs é 0.4.0.0

Link para o comentário
Compartilhar em outros sites

@Nildson

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

 

 

Spoiler
function onUse(cid, item, fromPosition, itemEx, toPosition)
local PetMax = 1
local pets = {
[11256] = {pet = "Frenzy Boar"},
[11207] = {pet = "Demon"},
[5791] = {pet = "Dragon"},
}
local summons = getCreatureSummons(cid)
local go = pets[item.itemid]
if getPlayerStorageValue(cid, 24000) == 1 then      
 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 )

Link para o comentário
Compartilhar em outros sites

Está a mesma coisa, só alterou as mensagens e até já tinha o petdie que não lembro onde peguei e tentei colocar, só que fica na mesma coisa...

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...