RA

[PokéTibia / TFS 0.3.6] Nurse Joy com janela — Curar, Registrar e Fechar

Por raulcdj, 01 de out. de 2026 em Mods, funções e outros

1
224
raulcdjR
01 de outubro de 2026 às 17:07

Nurse Joy — tutorial de instalação

Download: https://www.mediafire.com/file/o4acm6aoslgirct/Nurse-Joy.zip/file

1. O que esta versão instala

Janela com Curar, Registrar e Fechar, usando transporte JSON. O pacote já contém módulo, fundo e scripts das duas pontas. Não instale junto ao módulo do Diálogo OTPokemon legado: os dois usam game_npcdialog/opcode 80, mas têm formatos diferentes.

Faça backup do cliente e servidor. Extraia o ZIP e localize client e server. A base precisa de NpcSystem/FocusModule, doSendPlayerExtendedOpcode, helpers de cura e tabela pokeballs. O cliente precisa de json.decode, UICreature e estilos padrão. Copiar apenas heal.lua em TFS puro não basta.

2. Copiar os arquivos do servidor

- server/data/lib/npcdialog_lib.lua → data/lib/npcdialog_lib.lua

- server/data/npc/scripts/heal.lua → data/npc/scripts/heal.lua

- server/data/npc/Nurse.xml → data/npc/Nurse.xml

Confirme que npcdialog_lib.lua carrega no ambiente dos NPCs. Se o bootstrap dos NPCs usa uma lista manual, inclua a biblioteca nela uma vez. Preserve seu npcsystem.lua e os demais arquivos.

Se a Nurse existente usa outro XML, preserve seu nome/look e adapte somente script e parâmetros. Faça backup de heal.lua: todas as Nurses que apontam para ele recebem a mudança. Coloque a Nurse no mapa/spawn. O lookType 532 é desta base; ajuste para um ID válido no seu DAT.

3. Configurar Registrar

No XML da Nurse, dentro de <parameters>, confira:

<parameter key="teleportStorage" value="0"/>

Zero desativa o registro. Para ativar, use a storage que SEU sistema de Teleport consulta para a cidade dessa Nurse. Cada cidade deve ter sua storage. Registrar grava 1 nela; não cria destinos, não muda townId e não teleporta. Curar não registra cidade automaticamente. Não copie o número de outra base sem conferir seu Teleport.

4. Conferir a cura na sua configuração

Confira nurseHealsOnlyInPZ, nurseHealsPokemonOut, baseNurseryHappiness, baseNurseryHunger e a tabela pokeballs com entradas all/on. Fome/felicidade precisam de valores numéricos. Preserve seu configuration.lua, alterando somente o necessário.

Helpers usados: exhaustion.get/set, isPokeball, getPokeballsInContainer, setCD, doCureStatus e, se useKpdoDlls=true, doUpdateMoves. Confira conflitos das storages: 9211 para exaustão de cinco segundos, 52480 para duelo e 17000/17001/63215 para Fly/Ride/Surf. HP da Ball é fração: 1 = cheio.

5. Instalar o cliente

Copie client/modules/game_npcdialog inteiro para modules/game_npcdialog, mantendo o PNG do fundo junto ao OTUI. Carregue depois de corelib e game_interface. Esta edição usa verdana-11px-rounded; confirme a fonte no cliente.

Se já usa a edição JSON desse diálogo, atualize seus arquivos correspondentes e use os scripts da Nurse. Não carregue uma segunda cópia do mesmo módulo. Se usa a edição legada com loadstring/table.serialize, escolha qual versão instalar e alinhe cliente/servidor ao mesmo formato.

O opcode é 80 na direção servidor→cliente. Se estiver ocupado, altere o número na biblioteca do servidor e no módulo do cliente. Não registre os dois formatos no mesmo opcode.

6. Acrescentar o clique esquerdo

client/clique_esquerdo.lua é um TRECHO, não um substituto de gameinterface.lua. Insira dentro de processMouseAction, em modules/game_interface/gameinterface.lua, depois de local keyboardModifiers = g_keyboard.getModifiers(). Se já existe, não duplique. Preserve o restante da função.

O clique simples em NPC manda hi. O NpcSystem controla foco e distância; com NPCs próximos pode atender outro NPC. O protocolo precisa identificar isNpc corretamente. Também pode abrir pela fala hi.

7. Reiniciar e testar

Reabra servidor e cliente. Fale hi com a Nurse visível e teste Curar, Voltar, Registrar e Fechar. Teste Registrar duas vezes, com zero e com a storage configurada. Confira que Curar restaura HP/cooldowns sem apagar held, boost, level ou nick. Teste mochila ausente, duelo, PZ e exaustão.

Janela não abre: confira biblioteca no ambiente NPC, json.decode, opcode e carregamento do módulo. Erro de buffer: confira se não misturou JSON com legado. Registrar indisponível: configure teleportStorage. Cura com erro: confira helpers, valores de fome/felicidade e os IDs on das Balls. Não use hífen dentro do nome de uma opção: é o separador dos botões.

Créditos e validação

game_npcdialog original identificado como Gengo, modificado por Biel; créditos OTClient, NpcSystem e sistema de cura anterior preservados. Raul compartilha a integração, organizada com auxílio do Codex.

Lua 5.1/XML e testes simulados de foco, registro, restrições e cura foram realizados. Não houve novo teste visual/end-to-end nem de todas as Balls. O pacote não traz cliente inteiro, executável, sprites, mapa ou banco.

Editado Outubro 2 por raulcdj

Tutorial por etapas, download e sem imagens.