game background image

游戏内自定义模组菜单API

作者:BoltTheMan最后更新:2023-04-29 01:39:1431.9万10KB

怪物猎人 崛起 游戏内自定义模组菜单API-1-奇游Mod大师
怪物猎人 崛起 游戏内自定义模组菜单API-2-奇游Mod大师
怪物猎人 崛起 游戏内自定义模组菜单API-1-奇游Mod大师
怪物猎人 崛起 游戏内自定义模组菜单API-2-奇游Mod大师

前置依赖

Mod简介

一个受IMGUI启发的、便于使用的API,用于在《怪物猎人:崛起》的REF模组中绘制游戏内设置菜单。
哇吼吼
这确实是个棘手的项目。
这玩意儿里面黑魔法可多了。 *扇了你一巴掌 GitHub 仓库*


总之:


~这是做什么的?~
嗯,单独看没什么特别的。
但在模组作者手中,通过一个简单的API,设置菜单可以直接添加到游戏内的选项菜单中。
API 函数与 imgui 非常相似,但有一些注意事项*




~我该怎么做?~
像安装其他REFramework模组一样安装此模组即可。
如果你不知道怎么搞,那这活儿大概不适合你来练手。
一旦处于正确位置,它应在选项菜单中自动添加“模组”类别。
只需使用其他受支持的REF模组,相关设置便会显示在此处。




给模组作者:
从文件中下载示例模组实现,即可轻松上手。
更多API详情请参阅 GitHub 页面.
我保证它用起来跟内置的imgui函数差不多顺手,看到社区自己加菜单一定会很酷!
只需引入包,然后像使用 imgui 一样调用 API 即可。
你可以选择性地检查用户是否已安装该包,并可选地提供菜单支持,这样就不必强制用户安装。但如果你仍能将其标记为必需文件,那就更好了。

我请求您不要将此模组与您的模组一起重新分发,尽管那样做会很方便。
我在这上面花了不少功夫,但可能还需要更新内容,你总不希望不同Mod里出现版本冲突吧。
如果你使用此菜单发布模组,请务必告诉我,以便我将它添加到支持的模组列表中!


限制*
可惜的是,由于这使用了游戏自带的菜单,我们能做的事情就仅限于游戏本身支持的功能了。
显然这里没有高级绘图功能。
只需 拟态怪 一个imgui,实际上“绘制”函数是回调,用于从游戏UI中获取数据。你可以制作动态菜单,但尽量不要搞得太复杂。
它不一定适合所有模组,但如果你只需要一些简单设置,不妨考虑一下!




~鸣谢~
感谢Stracker(制作了很酷的模组,但[未经许可])允许我参考他们的一个模组来实现协程与系统消息提示。此外,他们还确实将协程加入了REF。
当然,还要感谢 praydog 在 REFramework 上的所有付出,以及为此提供的指导。

贡献:
竞速跑 - 自动换行的提示框
Tracker - 通过Lua中的指针读取GUID数据的方法
钩巨兽:实装了斯特拉克的发现



Discord:Bolt#6265
GitHub: https://github.com/BoltManGuy/MHR-InGame-ModMenu-API



使用此菜单的模组:




闲聊与冷知识:
我有一堆傻话想说,因为这项目把我折磨得够呛。
这是我近期记忆中除了在48小时游戏开发挑战中做一款节奏游戏之外,最难的一次挑战了。
游戏完全不希望你这么做,只要你操作有半点差池,它就会随时崩溃。
忘了添加那个数组引用?崩溃。字符串?崩溃。选项数据?崩溃。
在游戏UI函数中任何地方调用更新函数?会崩溃。
不需要填数据的选项却填了数据?崩溃。
说回正题,我大概把游戏弄崩溃了上百次。
但正因如此,这反而成了一个格外引人入胜的挑战——我很久没有如此沉浸于一个项目了。它总让人觉得胜利近在咫尺,却又总有棘手的难题亟待攻克。



一些有趣的笔记:
模组标签在分类列表中实际上是存档数据标签的复制,因为无法添加额外类型,所以我根据滚动列表的索引来替换数据。
有好一阵子,我都在借用高级图形设置菜单来实现子菜单的功能,本来都快搞定了,结果发现他们不知为何硬性规定那个菜单只能显示五个选项……更糟的是,如果你设成其他数量,游戏直接崩溃。
而且不知为何,那个菜单里的滑块无法接收鼠标输入,所以我最后找到了一组正确的调用方式,把选项变成了类似按钮的东西,替换数据并重绘界面,这样它就能在不真正切换菜单的情况下切换子菜单了。
而这一切的逻辑不可避免地变得复杂……

由于 REF 存在限制,我为此专门编写了一个小巧的 C++ 插件,其唯一作用就是获取 GUID 指针并解引用,以便从中提取数据。若没有这个插件,整个方案就无法运作,因为根本无法正确覆盖游戏的本地化字符串。
还行,但用 Lua 和 sol2 搭建 C++ 项目简直让人崩溃……教程基本帮不上忙。
同样地,由于某些原因我无法在REF中为对象设置GUID值,但通过使用write_dword在正确的偏移量处直接写入数据解决了这个问题。

说到底,我觉得这个结果真的很酷。
我几乎不在乎有没有人用它,光是看到它能正常工作,就已经是莫大的回报了。不过我觉得,大家会喜欢它的。

随便提建议吧,不过忙完这些我肯定要摆烂一阵子了。
目前大概就这些了,希望你喜欢!
本工具由三方[bufftool]提供Attention Nomal
下载

立即下载模组

下载客户端搜索怪物猎人 崛起后使用Mod大师工具。