https://www.mediafire.com/file/syn6945l07m10ef/Dialogo-OTPokemon-Completo.zip/file o modules
- Forums
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- [PokéTibia / TFS 0.3.6] Pokémon solto na house — limite, falas e persistência
RA
[PokéTibia / TFS 0.3.6] Pokémon solto na house — limite, falas e persistência
By raulcdj, 01 de out. de 2026 in Mods, funções e outros
3
416
02 de outubro de 2026 às 06:06
03 de outubro de 2026 às 05:48


info
Group: Artesão
Joined: 18/01/17
Posts: 145
Reputation: +3
Gender: Masculino
Pokémon solto na house — tutorial de instalação
Download: https://www.mediafire.com/file/qp6kw9lmhxhcmlw/Pokemon-na-House.zip/file
1. Funcionamento e compatibilidade
O dono coloca uma Ball com Pokémon recolhido e saudável no chão da house e usa para soltar. Outro uso recolhe. Limite inicial: dois por house. O Pokémon é decorativo, anda dentro da house, fala frases da espécie e não combate. A Ball permanece original, com nick, level, boost, shiny, addon, helds e demais atributos.
Faça backup do servidor e source. Extraia o ZIP: localize data e house_pokemon_source.patch. É preciso recompilar o SERVIDOR TFS 0.3.6 / PokexGeneration. O patch acrescenta getHouseDisplayBalls; somente os arquivos Lua não bastam. Outras bases precisam adaptar o patch e os helpers; não foi testado em TFS 1.x/OTX.
2. Aplicar o patch e compilar
Na pasta que contém source, coloque house_pokemon_source.patch e confira:
git apply --check --ignore-space-change house_pokemon_source.patchSe passar, aplique:
git apply --ignore-space-change house_pokemon_source.patchSe não aplicar, adapte manualmente os trechos sem substituir arquivos inteiros da sua base. Não aplique duas vezes. O patch altera game.cpp, house.cpp, housetile.cpp, luascript.cpp/h e npc.cpp para impedir mover Balls expostas, restringir o NPC à house, proteger contra dano, liberar marcadores na troca de dono e registrar a leitura das Balls.
Recompile com o projeto da sua base. Use o executável recompilado ao iniciar. Não há comando único para todas as sources.
3. Copiar os três arquivos de data
- data/lib/house_pokemon.lua → data/lib/house_pokemon.lua do servidor
- data/globalevents/scripts/house_pokemon.lua → data/globalevents/scripts/house_pokemon.lua
- data/npc/HousePokemon.xml → data/npc/HousePokemon.xml
Confirme que data/lib carrega nos ambientes de actions e globalevents. Se a base carrega bibliotecas por lista manual, inclua house_pokemon.lua uma vez no bootstrap desses ambientes. Preserve o nome interno HousePokemon: os bloqueios da source usam essa identidade.
4. Integrar o goback
No INÍCIO do onUse que atende às Balls, antes de transformar a Ball ou soltar o Pokémon, acrescente:
Use o nome de posição real do seu script: se o parâmetro é fromPosition, substitua frompos por fromPosition. Preserve todo o restante do goback. Se ele foi compartilhado com a Pokébar em PokeBarActions.useBall, coloque o trecho no início dessa rotina compartilhada.
Não crie uma segunda action para as mesmas Balls. Não precisa alterar catch nem recriar atributos.
5. Registrar o globalevent
Dentro de <globalevents> em data/globalevents/globalevents.xml, acrescente uma única entrada:
<globalevent name="HousePokemon" interval="0" event="script" value="house_pokemon.lua"/>Na revisão alvo, interval=0 roda aproximadamente a cada segundo. Se sua revisão usa outra unidade/agendamento, configure o equivalente a um segundo. O NPC é criado/recolhido no próximo ciclo. Não coloque HousePokemon em spawn fixo: o sistema cria as decorações a partir das Balls.
6. Conferir nomes, aparência e falas
HousePokemon.xml corrigido usa hidename="0" e hidehealth="0". A biblioteca envia o nick da Ball, ou a espécie se o apelido estiver vazio, por doCreatureSetNick. Essa função precisa existir na source. O nome interno continua HousePokemon.
Neste cliente, HP percentual zero impedia desenhar também o nome. Por isso a correção pode mostrar barra de vida junto ao nome; a proteção contra dano continua. Confira a opção de mostrar nomes no cliente.
A aparência usa addon quando positivo; senão, lê o look da espécie em data/monster/monsters.xml e no XML correspondente. O atributo poke deve corresponder ao nome registrado. As falas vêm de <voices>, com mínimo de cinco segundos e cache. Alakazam tem também “Ala alak alakazam!”. Shiny sem falas usa as da espécie normal; espécies sem frases usam seu nome. São falas em texto, não áudio.
7. Ajustar limite e verificar persistência
Em data/lib/house_pokemon.lua, altere limit = 2 para ajustar o limite. Guild halls não são atendidas nesta versão.
A Ball recebe apenas house_display_owner e house_display_key como marcadores. Não são salvos CIDs de NPC ou UIDs de item. O save de houses da sua base precisa preservar atributos personalizados. Depois de restart, o sistema lê as Balls e recria as decorações. Queda antes de salvar pode perder mudanças desde o último save.
Se não houver espaço de spawn na house, mantém o marcador e tenta novamente. O dono pode usar a Ball para cancelar. Na desinstalação, recolha as decorações antes de remover o sistema.
8. Reiniciar e testar
Abra o servidor recompilado. Com o dono da house, coloque uma Ball saudável diretamente no chão e use. Confira nome/aparência/falas. Teste limite de dois, outro jogador tentando usar, movimento da Ball, dano e saída/teleporte do NPC.
Recolha e confira todos os atributos. Salve a house, reinicie e confira restauração sem duplicar. Teste troca de dono em uma cópia da base.
Função getHouseDisplayBalls ausente: confirme patch, registro Lua e executável recompilado. HousePokemon/use nil: confira carregamento da biblioteca. Aparência ausente: confira poke, monsters.xml e addon. Nome ausente: confira XML corrigido, doCreatureSetNick e opção do cliente. Não restaurou: confira save dos marcadores e registre o globalevent. Reinicie após mudar XML de nomes ou falas.
Créditos e validação
Ideia inspirada no pedido de eriveltonpacheco: https://tibiaking.com/topic/93254-pokemon-solto-na-house/ . Compartilhado por Raul/DarkRed, desenvolvido para sua base com auxílio do Codex. Créditos e licença do TFS preservados; conteúdo Pokémon/sprites não são distribuídos.
Compilação, Lua 5.1/XML e testes no motor isolado de criação, trava, dano/teleporte, caminhada, save/restart e recolhimento passaram. Nomes/falas tiveram verificação de código e testes Lua; ainda dependem de conferir no cliente. Houve falhas intermitentes anteriores ao carregar items, sem causa identificada; não há garantia de teste prolongado ou compatibilidade universal.
Edited Outubro 2 by raulcdj
Tutorial reorganizado com instalação por etapas e sem imagens.