[AJUDA] pet system
-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por Bagon
Bom, hoje venho trazer á vocês um sistema de Pet System DIFERENCIADO de alguns presentes no fórum. Este sistema tem diversos comandos diferenciados, como:
!pet nomedopet este comando irá sumonar o pet.
!remove irá remover o pet.
!fale eu sou lindo o pet falará "eu sou lindo"
!conversar o pet irá conversar com vc.
Então sem mais delongas vamos ao script.
OBS: SCRIPT TESTADO SOMENTE EM TFS 0.4/0.3, e este script foi feito com a intenção de ser vendido no site do ot ou em poderá usar como quest usando o item selecionado como premio. fique ao seu critério.
Primeiro vá até a pasta talkaction/script e crie um arquivo chamado petsystem.lua, depois coloque o seguinte script:
Agora em talkactions/talkactions.xml adicione a seguinte tag:
<talkaction words="!pet;!remove;!fale;!conversar" event="script" value="petsystem.lua" />
EXPLICAÇÂO:
As partes em Negrito, são os pets. Você pode alterar ou criar monstros para fazer eles como pets. (Recomendo criar um monstro para que seja somente pet.)
Exemplo: ["dog"]= {stor=78552},
Lembrando que é necessário mudar esta parte no script do monstro colocado a cima.
<flag attackable="1" /> para :
<flag attackable="0" />
agora vá em action/script e crie um arquivo chamado pet com o seguinte script:
e vá em action.xml e adiciona a seguinte tag:
<action itemid="10063" script="pet.lua"/> Explicação: Na tag da action o itemid é o item que deverá ser usado para ganhar a storage 78552, e assim podera sumonar o monstro com esta storage.
CRIE UMA ACTION COM A TAG A CIMA PARA CADA MONSTRO COLOCADO NA TALKACTION,
BASTA VC ALTERAR A STORAGE DO SCRIPT DA ACTION
EXEMPLO: em action altere as storage que estão em vermelho, como mostra abaixo
if getPlayerStorageValue(cid, 78552) < 1 then
setPlayerStorageValue(cid, 78552, 1)
aonde tem 78552 altere para 78553 que no caso é a storage do cyclops escolhido lá no script da talkaction
e assim susecivelmente.
CREDITOS:
Mulizeu
Smartbox
Bagon
-
Por Azzus22
Fala galera do TK tudo belezura? Espero que sim com todo mundo...
Peço caridosamente a moderação que me mova para a área correta caso eu tenha feito o post no lugar errado. ??
Bom o que eu vim trazer na faixa para vocês é um sistema onde o jogador vai poder ter um PET que vai subindo até certo level e com isso vai ganhando mais força.
Eu me baseei no sistema desse amiguinho aqui:
@PsyMcKenzie
Link para o Post do amiguinho. Onde eu vi que tava muito legal mas estavam faltando algumas verificações.
Demorei para fazer esses scripts e toda a lógica mexendo apenas 2 horas por dia, por isso vou dar um alert:
<<<< -------------------- >>>>
"PAM: não me peça para mudar scripts ou adaptar de algum jeito pois eu não vou ter muito tempo para atender pedidos. Vou postar do jeito que está funcionando e se por acaso precisar de ajuste, peço para que outros scripters dêem a devida atenção. Obrigado pela compreensão amiguinhos ?"
<<<< -------------------- >>>>
Vamos lá, saiba que você vai ter que alterar várias partes de vários fontes, então deixa de preguiça e coloque a mão na massa...
Espero que esse script incentive a continuação e aperfeiçõamento de mais desenvolvedores a trabalhar com a nossa comunidade.
Na sua pasta de Movements Ex.: "Pasta do Ot Sever\data\movements" no arquivo movements.xml acrescente essas 2 tags:
Na pasta scripts dentro da pasta Movements Ex.: "Pasta do Ot Server\data\movements\scripts" crie um arquivo com nome equippet.lua e cole isso dentro do arquivo
Na pasta Actions Ex.: "Pasta do Ot Server\data\actions" no arquivo actions.xml cole a TAG:
Na pasta Scripts em Actions Ex.: "Pasta do Ot Server\data\actions\scripts" crie um arquivo chamado catchpet.lua e cole isso dentro:
Na pasta creaturescripts Ex.: "Pasta do Ot Server\data\creaturescripts" no arquivo creaturescripts.xml cole a TAG:
No arquivo dentro da pasta Scripts em CreatureScripts Ex.: "Pasta do Ot Server\data\creaturescripts\scripts" com o arquivo login.lua aberto, procure por "registerCreatureEvent" e adicione abaixo de qualquer um, a seguinte linha de comando:
Se o seu Ot server tiver o arquivo save.lua dentro da pasta de creaturescripts Ex.: "Pasta do Ot Server\creaturescripts\scripts\save.lua" você precisa adaptar o script abaixo para se adequar ao seu save.lua. caso seu ot server não tenha o arquivo save.lua apenas insira o script abaixo:
Na pasta Monster Ex.: "Pasta do Ot Server\data\monster" no arquivo monster.xml você vai precisar inserir as tags dos pets que for adicionando, por exemplo no meu caso eu criei 5 níveis de pet e você vai entender porque na explicação mais a frente.
Na pasta Scripts em Monster Ex.: "Pasta do Ot Server\data\monster\scripts" crie uma pasta chamada Pet e dentro dela o monstro deve ter o mesmo nome que está no arquivo "catchpet.lua" que criamos no começo do processo. Por exemplo no arquivo catchpet.lua que criamos o pet do Dragon Lord está definido como ["Dragon Lord Pet"] = {hp = 500, maxhp = 500, corpse = 7622, chance = 100, level = 0, experience = 0, basename = 'Dragon Lord Pet'} então o monstro deve ser Dragon Lord Pet seguido dos níveis: 0, 1, 2, 3, 4, 5, 6.
Por exemplo dentro da pasta "Pasta do Ot Server\data\monster\scripts\Pet" tem que ter os monstros DragonLord Pet0.xml, DragonLord Pet1.xml, DragonLord Pet2.xml, DragonLord Pet3.xml
----------------------------------
Na pasta lib Ex.: "Pasta do Ot Server\data\lib" acrescente no fim do arquivo 050-function.lua o script abaixo:
Obs.: Esse script foi feito pelo amiguinho @Orochi Elf e ficou espetacular, parabéns cara... eu só precisei remover o local da variável item pq quando o script verificava itens na BP e nos Slots estava fechando o servidor. Mas o crédito é todo dele, ótimo desenvolvedor sem dúvida.
Na pasta npc Ex.: "Pasta do Ot Server\data\npc" crie um arquivo com nome PetHealer.xml e acrescente o código abaixo:
Na pasta Scripts de npc Ex.: "Pasta do Ot Server\data\npc\scripts" crie um arquivo com nome pethealer.lua e acrescente o código abaixo:
Obs.: Esse script do TalkAlot não fui eu quem desenvolveu, foi alguém aqui do fórum mas tem muito tempo que eu peguei e uso e não lembro a quem devo os créditos, foi mal ai...
Execute essa query no seu banco de dados:
E agora finalmente a explicação do código:
Bom primeiramente o sistema inicial estava utilizando actions e não movements, mas eu resolvi colocar como movements para evitar um pouco de transtorno na lógica apesar de não ter evitado muito...
Bem, o sistema consiste em utilizar um item no corpse de um monstro morto para capturá-lo essa é a função do script: catchpet.lua
as definições de monstros que podem ser capturados estão no objeto
local mtrs = {
["Rat Pet"] = {hp = 500, maxhp = 1000, corpse = 2813, chance = 100, level = 0, experience = 0, basename = 'Rat Pet'},
["Dragon Lord Pet"] = {hp = 500, maxhp = 500, corpse = 7622, chance = 100, level = 0, experience = 0, basename = 'Dragon Lord Pet'}
}
Como podem ver o nome entre colchetes e o basename são iguais e tem que ser assim para não dar nenhum erro... o base name tem que ser o mesmo nome do monstro criado na pasta monster\Pet... na pasta como falei antes, o basename tem que ser acompanhado dos níveis no caso do Rat por exemplo, seria Rat Pet0.xml, Rat Pet1.xml, Rat Pet2.xml, até o nível que você determinar, esse sistema do jeito que está, habilita os pets até o nível 10.
Os pets são como summons, então coisas relacionadas a ATK, DEF, Magias que os pets tem, tem que ser configuradas no arquivo do monstro. Por exemplo se eu quiser que um Rat nível 2 use UE, vou configurar isso no XML Rat Pet2.xml
- hp e maxhp, são as configurações para o hp máximo e hp atual,
- chance é a chance em % que o player tem de capturar o monstro,
- corpse é o id do corpo que o player pode usar o item para capturar o monstro.
na linha de comando "local itemcatch = doPlayerAddItem(cid, 9980, 1, false, 1, 3) -- Cristal que contem o monstro." o id 9980 é o item que vai armazenar as informações do pet e isso você pode mudar sem a necessidade de mexer no items.xml.
Obs.: Lembrando que se esse id for alterado, você precisa verificar nos fontes onde mais ele faz referência para esse id, por exemplo no save.lua na pasta data\creaturescripts\scripts
Obs2.: não use itens stackáveis pois eles perdem a informação do pet quando você os movimenta, pelo menos nessa source que eu estou usando.
O itemid definido na tag actions.xml é o item que vai ser usado na captura do monstro.
No fonte do equippet.lua as informações cruciais são:
Toda vez que que o pet é equipado com sucesso, uma linha é gravada na database com o xp do player atualmente, e quando desequipado com sucesso, essa linha é removida, e a diferença de exp adiquirida é acrescentada no Pet.
Você pode alterar as condições de level do Pet dentro do método updateAttributes.
O arquivo save.lua só foi alterado para avaliar algumas condições antes do player deslogar caso ele esteja com o pet.
Para usar o pet, vc precisa estar com o item do pet capturado e colocar no slot da flecha, se as condições estiverem certas ele sumona o pet. Se o item for removido do slot e tiver com as condições corretas, ele remove o summon.
O sistema não tem muitos efeitos especiais pois acredito que isso é uma coisa particular de cada Host.
Se por acaso o pet for morto, o PetHealer pode trazê-lo de volta por uma quantia de 300k mas isso pode ser alterado no script é bem simples. Além disso o NPC PetHealer tem uma micro IA que explica como utilizar o Pet.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Bom, espero que vocês gostem do sistema, testem e me avaliem nos comentários se tiverem algum problema e se for útil para você, da um REP++ ai ?
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-
Por MateusDomingues
Bom, preciso de um script para OTServ 8.54
1° - Pet por vocação.
Cada vocação tem um pet, que você pode upa-lo, e conforme o level ele vá ganhando ficando mais forte e ganhando magias e etc...
2° - Outfit para o pet.
Editar a outfit para o pet.
Lembrando: Preciso que o pet também tenha level.
REP+ pra quem der uma ajudinha ;3
-
Por Light.Tenshimaru
Meu Server É 10.31 Uso OTX.
Gostaria De Um Script Que Permita Que Summon Possuam Corpos Ao Morrer, Pois Atualmente Eles Simplesmente Desaparecem Quando O HP Chega A 0.
Quero Remover Isso, Quero Fazer Com Que Eles Possuam Corpos Como Qualquer Outro Monstro.
-
Por Light.Tenshimaru
Olá.
Gostaria de pedir ajuda com minha versão do OtServ.(9.70)
Por algum motivo apos uma atualização em algumas versões anteriores, as criaturas que eram convencidas no jogo não deixavam mais seus corpos quando morriam, sumiam simplesmente em um curta fumaça, justamente o que impede que o recurso "death" de "TODOS" os PET Systems não funcione.
O meu pedido é justamente para que me ajudem a descobrir algo que permita que seus corpos apareçam novamente para os pet systems funcionem em versões superiores a 9.7.
Eu creio que talvez compilando o executável do servidor com algumas modificações isso será possivel.
Desde já agradeço.
-
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.