- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- [PokéTibia / OTClient] Fly com sombra e botões de subir/descer — source + Lua
RA
[PokéTibia / OTClient] Fly com sombra e botões de subir/descer — source + Lua
Por raulcdj, há 10h em Mods, funções e outros
1
13
info
Grupo: Artesão
Registrado: 18/01/17
Posts: 142
Reputação: +3
Gênero: Masculino
Fly com sombra e botoes — PokéTibia / OTClient
Compartilhando os trechos que uso na minha base TFS 0.3.6 / PokexGeneration e no meu fork de OTClient. O jogador montado no Fly recebe uma sombra preta deslocada, e o painel oferece Subir/Descer. A criatura voando e desenhada apos os objetos do andar; a sombra fica no passe do chao. Nao e shader nem sistema completo de montar Fly.
Precisa da source do CLIENTE com g_drawQueue, g_adaptiveRenderer, g_sprites.getOffsetFactor e a assinatura de Outfit::draw mostrada no patch. Nao e compativel automaticamente com OTClient classico, v8, Redemption ou qualquer fork. O TFS precisa de extended opcodes e de um sistema Fly existente com storage 17000 e outfits/tiles de voo. Nao substitua order.lua nem login.lua completos.
Instalacao: salve o patch como fly_client.patch na raiz da source do cliente. Use git apply --check --ignore-space-change fly_client.patch antes de git apply --ignore-space-change fly_client.patch. Se houver contexto diferente, adapte manualmente os trechos. Nao aplique duas vezes se setFlying/drawShadow ja existem. Recompile o cliente. Copie os tres arquivos de game_fly para modules/game_fly e carregue o modulo depois de game_interface (no bootstrap ou em load-later de interface.otmod). Esta edicao publica usa botoes com texto para nao depender das imagens das setas.
Servidor: copie flyup.lua e flydown.lua para data/talkactions/scripts e registre dentro de <talkactions>:
Integre show/hide nos pontos de montar, desmontar e login conforme o bloco de integracao abaixo. O modulo envia h1/h2 pelo chat; nao envia up/down pelo opcode. O opcode 115 apenas informa show/hide do servidor ao cliente. Se 115 estiver ocupado, troque em todos os locais.
Os scripts h1/h2 usam tiles 11675/11676/11677, storage 17000, markPosEff e canWalkOnPos desta familia de bases. Confira seus IDs e helpers; nao sao recursos do TFS puro. Eles mantem as restricoes de teto, obstaculos/PZ e altura desta base (z de 1 a 7). O item de voo deve ser removido pelo movement/sistema existente; nao copie esses IDs para uma base sem os tiles e a limpeza correspondentes.
Limites: esta implementacao marca somente o jogador local como flying; outros jogadores nao recebem a sombra automaticamente. Nao modifica pathfinding nem cria voo para qualquer Pokemon. O deslocamento da sombra e 60 * offsetFactor nos dois eixos; ajuste em Creature::drawShadow. O patch foi extraido dos arquivos locais, nao de uma release universal. Revisao de codigo e testes Lua com simulacao realizados; nao foi feita nova compilacao nem teste visual nesta publicacao. Teste montando/desmontando, andando em todas as direcoes, mudando andar, reconectando e com GameMapDrawGroundFirst ligado/desligado antes de usar em producao.
Creditos: OTClient team e autores do fork, mantendo a licenca MIT do OTClient. Modulo game_fly identificado como autor raul. Organizacao da edicao publica com auxilio do Codex. Nao reivindico autoria dos sistemas de Fly preexistentes da base. Nao distribuo executavel, sprites, banco, mapa ou configuracoes particulares.
client\modules\game_fly\game_fly.lua
client\modules\game_fly\game_fly.otmod
client\modules\game_fly\game_fly.otui
fly_client.patch
server\data\talkactions\scripts\flydown.lua
server\data\talkactions\scripts\flyup.lua
server\integracao.lua