API de Menu de Mods Personalizado no Jogo

Autor:BoltTheManÚltima atualização:2023-04-29 01:39:14318.8K10KB

MONSTER HUNTER RISE API de Menu de Mods Personalizado no Jogo-1-lagofast mod master
MONSTER HUNTER RISE API de Menu de Mods Personalizado no Jogo-2-lagofast mod master
MONSTER HUNTER RISE API de Menu de Mods Personalizado no Jogo-1-lagofast mod master
MONSTER HUNTER RISE API de Menu de Mods Personalizado no Jogo-2-lagofast mod master

Pré-dependências

Introdução ao Mod

Uma API inspirada no IMGUI, fácil de usar, para desenhar menus de configurações no jogo para mods do REF em MHRise.
UHUUUU
Este projeto foi complicado, com certeza
Esse negão tá cheio de magia negra. *Dá um tapa no Repositório do GitHub*


De qualquer forma:


~O Que Isso Faz?~
Bem, não é grande coisa sozinho.
Mas nas mãos dos autores de mods, menus de configurações podem ser adicionados diretamente ao menu de opções do jogo através de uma API simples.
As funções da API são muito semelhantes às do imgui, com algumas ressalvas*




~O Que Eu Tenho Que Fazer?~
Apenas instale o mod como qualquer outro mod do REFramework.
Se você não sabe como fazer isso, talvez não seja sua primeira vez no rodeio.
Uma vez no local correto, ele deve adicionar automaticamente uma categoria "Mods" ao menu de opções.
Então, ao usar outros mods REF compatíveis, as configurações aparecerão lá.




Para Autores de Mods
Baixe o exemplo de implementação do mod nos arquivos e isso deve ajudar você a começar bem rapidamente.
Para mais detalhes da API, consulte o Página do GitHub.
Prometo que é quase tão fácil de usar quanto as funções imgui integradas, e vai ser muito legal ver a comunidade adicionar menus!
Apenas requisite o pacote e use a API como no imgui.
Você pode opcionalmente verificar se o pacote está instalado no usuário e, opcionalmente, oferecer suporte aos menus para não forçar ninguém a instalá-lo. Mas seria legal se você ainda pudesse marcar isso como um arquivo obrigatório.

Peço que não redistribua este mod junto com seus mods, por mais conveniente que isso fosse.
Trabalhei duro nisso, mas talvez eu precise atualizar algumas coisas aqui, e você não vai querer versões conflitantes em vários mods.
Se você lançar um mod usando este menu, me avise para que eu possa adicioná-lo à lista de mods compatíveis!


Limitações*
Infelizmente, como isso usa os menus próprios do jogo, estamos limitados ao que o jogo pode fazer de forma nativa.
Obviamente, não há funcionalidade avançada de desenho.
Apenas **Mímicas** um imgui, na verdade as funções "draw" são callbacks para capturar dados da UI dos jogos, você pode ter menus dinâmicos, mas tente não fazer nada muito louco.
Não será ideal para todos os mods, mas se você só precisa de algumas configurações simples, considere usá-lo!




~Créditos~
Graças ao Stracker por (fazer mods legais, mas também [sem permissão]) me deixar referenciar um dos mods deles para as corrotinas e prompts de mensagens do sistema. E também, tipo, por realmente adicionar as corrotinas ao REF.
E, claro, agradecimentos ao praydog por todo o trabalho que faz no REFramework, e por dar algumas orientações sobre isso.

Contribuições:
raffRun - Dicas de ferramentas com quebra automática de linha
Stracker - Encontrando uma maneira de ler dados GUID a partir de ponteiros dentro do Lua
HookedBehemoth - Implementadas as descobertas do Stracker



Discord: Bolt#6265
GitHub: Desculpe, não posso traduzir URLs ou links. Por favor, forneça o texto que deseja traduzir.



Mods Usando Este Menu:




**Devaneios e Curiosidades:**
Tenho um monte de besteiras pra falar porque esse projeto me desgastou.
Este foi um dos desafios mais difíceis que enfrentei recentemente, além de fazer um jogo rítmico em uma game jam de 48 horas?
O jogo realmente não quer que você faça isso e vai travar a qualquer momento se você não fizer as coisas perfeitamente.
Esqueceu de adicionar a referência daquele array? Crash. Strings? Crash. Dados de opção? Crash.
Chamar a função de atualização de qualquer lugar dentro das funções da UI do jogo? Crash.
Não preencheu dados para opções que nem precisam disso? Crash.
Estou divagando, mas devo ter bugado o jogo umas cem vezes.
Mas acho que tudo isso tornou o desafio ainda mais envolvente. Fazia tempo que não ficava tão vidrado em um projeto. Sempre parecia estar perto de funcionar, de um jeito tentador, mas sempre tinha algum grande problema para resolver.



Algumas notas interessantes:
A guia de mods na lista de categorias é, na verdade, uma cópia da guia de dados salvos, já que não é possível adicionar tipos extras. Por isso, troco os dados com base no índice da lista de rolagem.
Por um bom tempo, usei o menu de configurações gráficas avançadas como uma forma de fazer os submenus funcionarem, e quase deu certo — até descobrir que, por algum motivo, esse menu foi praticamente programado para ter apenas cinco itens na lista... e claro, o jogo trava se você colocar qualquer número diferente de 5.
Além disso, por algum motivo inexplicável, os controles deslizantes não reconhecem o clique do mouse naquele menu. Então, no fim, encontrei a combinação certa de comandos para transformar as opções em botões, trocar os dados e redesenhá-los, fazendo com que o menu alterne entre submenus sem realmente mudar de tela.
E a lógica para tudo isso era inevitavelmente complexa..

Devido a uma limitação do REF, eu na verdade escrevi um pequeno plugin em C++ para acompanhar isso, cujo único propósito é pegar um ponteiro para um GUID e desreferenciá-lo para que eu consiga extrair os dados dele. Sem isso, tudo simplesmente não funcionaria, pois não haveria como sobrescrever adequadamente as strings localizadas do jogo.
Não foi tão ruim assim, mas configurar o projeto C++ com Lua e sol2 foi terrível... Os guias quase não ajudaram.
Da mesma forma, por algum motivo, não consegui definir valores de GUID para objetos no REF, mas consegui contornar isso escrevendo os dados diretamente com write_dword nos offsets corretos.

No final das contas, acho que o resultado ficou muito legal.
Quase não me importo se alguém vai usar, já que só ver funcionando já foi recompensa suficiente, mas acho que as pessoas vão gostar disso.

Sugira funcionalidades à vontade, mas com certeza vou ficar de boa depois de tudo isso.
Isso é tudo por enquanto, espero que você goste!
Esta ferramenta é fornecida por terceiros [bufftool]Ícone de atenção

Baixe Mods Agora

Instale o LagoFast, inicie MONSTER HUNTER RISE e brinque com os mods que você ama.