Eai galera do xtibia, hoje venho por meio desse post trazer para vocês uma pokebar, sei que já existe porém este é um pouco diferente do que costumamos ver.
Antes de tudo faça o download do arquivo e vamos a configuração.
OBS: Seu otClient precisa ter opcodes para poder funcionar.
1) Coloque o module na pasta do seu otClient em /modules.
2) No arquivo do seu servidor em data/lib/106-mainfunctions.lua coloque o seguinte trecho de código:
3) Ainda no mesmo arquivo 106-mainfunctions.lua procure pela função doOTCSendPokemonHealth e substitua ela pelo trecho a seguir:
4) Caso seu servidor não tenha a função table.serialize, adicione ela no arquivo do servidor em data/lib/012-table.lua:
5) No arquivo do seu servidor data/creaturescripts/script/login.lua coloque o seguinte trecho no final do onLogin antes do return
sendPokeOTC(cid)
6) Abrindo o arquivo do npc Nurse Joy em especifico o script.lua, procure o trecho de codigo:
doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_POKEMON_HEALTH, healthMax.."|"..healthMax)
Substitui por esse:
doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_POKEMON_HEALTH, healthMax.."|"..healthMax.."|"..getItemAttribute(mypb.uid, "identificador"))
E no finalzinho da função do mesmo arquivo lua, antes do end, coloque o seguinte codigo:
for indice, value in pairs(getPlayerPokeballs(cid)) do
doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_POKEMON_HEALTH, getBallMaxHealth(cid, value).."|"..getBallMaxHealth(cid, value).."|"..getItemAttribute(value.uid, "identificador"))
end
7) E por ultimo no arquivo opcodes.lua localizado na pasta data/creaturescript/script/opcodes.lua procure por:
if buffer == "refresh" then
doOTCSendPokemonHealth(cid)
end
E substitui por:
if buffer == "refresh" then
for indice, value in pairs(getPlayerPokeballs(cid)) do
doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_POKEMON_HEALTH, getBallHealth(cid, value).."|"..getBallMaxHealth(cid, value).."|"..getItemAttribute(value.uid, "identificador"))
end
end
Bom é basicamente isso, a unica coisa que estará faltando e que vou deixar para vocês fazerem é quando o player colocar ou retirar outro pokemon na bag fazer com que o servidor chame a função sendPokeOTC(cid), não estarei ensinando essa parte pq o meu é bem diferente e não adiantaria eu mostrar como se faz, mas também não é um bixo de 7 cabeças fazer essa parte.
Fazendo esse tutorial certinho e tudo mais, ficará assim no game:
Espero que gostem e que entendam, desculpe-me por qualquer coisa não sou muito de explicar e ficar escrevendo tutorial.
Download do arquivo:
https://www.mediafire.com/file/p8wch1fogveh48e/game_poke.rar/file
Scan do arquivo:
https://www.virustotal.com/#/file/d88b33ad27520ddd28afdaeb7d17af26805fa3bf39400f1a30813a0da3ca1695/detection