Ir para conteúdo
Propaganda

client_arrowgame (MODULE - MINIGAME)


Posts Recomendados

  • Moderador

Esse é um módulo de minigame, feito para o Mehah (créditos ao Fresh). Ele criou o mesmo para o Mehah, mas dá para ser utilizado no V8 com algumas modificações.

Acho um bom sistema, pois pode ser colocado como um minigame no servidor, ou até para quests, eventos, etc.

image.gif.a65080137c56cf6edb0185df15351b0d.gif

Mais informações que têm no post original:

Este é um módulo autônomo testado e trabalhado como pretendido no cliente Mehah. No entanto, ele pode funcionar no cliente V8 também, mas precisa expor a função chamada intersects (de rect.h) para Lua.


Isenção de responsabilidade

Quero compartilhá-lo porque considero que alguém pode achar útil ou queira aprender algo, ou o que quer que seja. Lembre-se: este é apenas o código do lado do cliente (módulo). Se você quiser usá-lo em seu servidor, precisará adaptar este módulo, reescrever certas funções para atender às suas necessidades e lógica, manipulá-lo pelo servidor, etc. No entanto, eu acho que é uma "base suficiente" para "começar".


Que coisas "úteis" posso aprender com isso?
 

Simplesmente "animações"; Uso básico da função intersects que verifica se determinado widgetA está na faixa de retângulo de determinado widgetB; Uso básico de eventos; Uso básico de keyBindings dentro de determinado widget; Apenas para ver "como algo pode ser feito" e talvez para inspirar alguém.


Qualquer configuração ou instruções..
 

Simplesmente abra arrowgame.lua e, na parte superior do documento, edite as variáveis na tabela START_GAME_CONFIG. Para instruções, deixei alguns comentários lá dentro de arrowgame.lua para melhor compreensão. E, claro, se você quiser aprender ou entender algo com isso, infelizmente precisará ler o código inteiro. Eu não limpei muito o código, então um pouco de reescrita poderia ser feita, mas acho que é uma pequena quantidade.

 

Instalação

 

Baixe e descompacte o arquivo .rar anexado. Em seguida, arraste-o para a pasta client/modules/, mods ou a que você usa para armazenar módulos em seu cliente. Tem autoload: true no arquivo .otmod, então ele deve ser carregado corretamente no início do cliente, para fins de teste. Você não precisa de nenhum arquivo adicional, as imagens de UI necessárias e usadas por este módulo já estão no pacote e eu não usei nenhum outro material extra aqui.

 

Como fazê-lo funcionar no OTClient V8?

Spoiler

Você precisa "expor" algumas funções do código-fonte do cliente C++ para .Lua, então.


1) em uiwidget.h precisa ser adicionado:

bool intersects(const Rect rect) { return m_rect.intersects(rect); }

2) em luafunctions.cpp na lista de objetos <UIWidget>, tem de ser adicionado:

g_lua.bindClassMemberFunction<UIWidget>("intersects", &UIWidget::intersects);

3) Eu acho que é tudo, mas se não - apenas tente ler tudo sobre intersects função do repositório Mehah 

This is the hidden content, please
 e adapte o código de fontes em seu V8.

DOWNLOAD MODULE:

Spoiler

This is the hidden content, please

 

SCAN: 

This is the hidden content, please

  • Like 8
  • Thanks 1
Link para o comentário
https://tibiadevs.com/forums/topic/919-client_arrowgame-module-minigame/
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
  • Criar Novo...