Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 08/05/19 em todas áreas

  1. [[ Sistema de PET TFS 0.4 ]]

    zLockey9 reagiu a Azzus22 por uma resposta no tópico

    1 ponto
    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 ? <<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo