[OTClient - Module] Caught Achievement v1.4 - Atualizado
Autor: Tony Araújo (OrochiElf)
Fala meus bacanos, de boas? Espero que sim. Bom, há uns 4 anos atrás, cheguei a fazer ultima atualização do sistema de Caught Achievement, que nada mais é do que aquele sistema da PxG, onde você ganha um determinado XP pela captura de um pokemon, além de mostrar quantas pokebolas foram utilizadas, porém, aquela versão não estava muito boa, pois era necessário fazer diversas adaptações para adição de novas pokebolas, fora o código que não estava mais me agradando, então resolvi fazer uma nova atualização e deixar o sistema "auto-adaptável", onde não é necessário mais nenhuma edição nele, pois ele recebe os dados do servidor e interpreta de forma automática, sendo assim, suportando um número ilimitado de pokebolas e sem burocracias. Bom, sem mais, vamos lá.
PS: Como não existe uma base única de servidor utilizada atualmente, e sim diversas, não tem como eu fazer um tutorial único e pré-destinado de instalação, então tentarei explicar mais ou menos o que é necessário fazer para o sistema funcionar perfeitamente, mas fiquem tranquilos, é algo beeem simples.
Primeiramente, precisaremos criar um arquivo no [data/lib], chamado (CODDINGS-CaughtWindow.lua) (sugestivo não? kkk) e dentro adicione o código:
LINK DO HASTEBIN AQUI
Bom, a configuração é bem auto explicativa, não tem muito mistério, vamos lá:
["Nome do Pokemon" = {portrait = Item ID do portrait, experience = Quantidade de Exp pelo Caught, storage_balls = Storage de armazenamento, aconselho seguir o fluxo}
ex: ["bulbasaur"] = {portrait = 11989, experience = 3000, storage_balls = 15050},
Bom, segunda parte da instalação é o seguinte, agora nós vamos adicionar o contador de balls, acredito que o melhor local e o de mais fácil instalação, seria no script de catch do actions, então vá nesse arquivo e procure por esse código aqui
doRemoveItem(item.uid, 1)
E então, acima dele, você adiciona:
-- Caught Window System
CaughtWindow.ballcount(cid, name, item.itemid)
Sendo o (name) necessariamente o nome do pokemon, então caso a variável onde guarda esse valor seja diferente, você só arruma ali na função e pronto.
Bom, para finalizarmos, vamos agora enviar a sinalização de quando o pokemon é capturado. O servidor que estou usando aqui (não sei o nome dele, achei perdido no pc), ele possui uma lib onde existe essa função responsável, então acredito que possa existir no de vocês também. Procurem por algo como catch system, catch ou algo deste genero. Aqui, existe a função chamada: doCapturePokemon, tentem procurar por ela ou similar.
Dentro desta função, procure por essa função aqui, ou também, similar a ela: doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a pokemon ("..poke..")!")
e logo acima, adicione:
-- Caught Window System
CaughtWindow.sendcaught(cid, poke)
Seguindo a mesma lógica da anterior, a variavel (poke), necessariamente precisa ser o nome do pokemon.
Bom galera, feito isso, o sistema está perfeitamente instalado, bastando apenas vocês adicionarem o módulo no cliente. Só fazer o download dele aqui no tópico, que deixarei o .zip anexado, aconselho adicionarem ele dentro da pasta mods e não da modules, por conta do auto-carregamento de forma mais simplificada (no caso, não sendo necessário criar dependencia no game_interface), mas caso seu client não tenha, você pode criar esta pasta sem nenhum prejuízo.
Bom, por hoje é isso rapeize, tamu junto e até a próxima xD
[coddings]caughtwindow.rar