客户端下载
联机宝
主机加速
手游加速器
MOD大师
会员
支持游戏
免费体验
会员充值
热门游戏
/
怪物猎人 崛起
/
游戏内自定义模组菜单API
游戏内自定义模组菜单API
作者:
BoltTheMan
最后更新:
2023-04-29 01:39:14
31.9万
10KB
前置依赖
重新构建框架
218.1万
1.4MB
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
使用此菜单的模组:
更佳匹配
-
绿舒茶
强制显示设置
-
绿怡茶
禁止图标闪烁
- 绿色舒茶
装备清空
- 绿舒茶
链接装备与幻化套装
- 冲刺跑
技能消息不刷屏
- 拉夫奔跑
硬核还是休闲
- 纳特勒
无限村庄翔虫
银龙
弹药自动制造
kadnys(保留为凯德尼斯,音译)
锐度调整器
- 两只爬行者
RiseTweaks (上升调节)
- 艾莎夫人
移除怪物击杀特写与华丽慢动作终结
-
螺栓
可调节UI缩放
-
螺栓
闲聊与冷知识:
我有一堆傻话想说,因为这项目把我折磨得够呛。
这是我近期记忆中除了在48小时游戏开发挑战中做一款节奏游戏之外,最难的一次挑战了。
游戏完全不希望你这么做,只要你操作有半点差池,它就会随时崩溃。
忘了添加那个数组引用?崩溃。字符串?崩溃。选项数据?崩溃。
在游戏UI函数中任何地方调用更新函数?会崩溃。
不需要填数据的选项却填了数据?崩溃。
说回正题,我大概把游戏弄崩溃了上百次。
但正因如此,这反而成了一个格外引人入胜的挑战——我很久没有如此沉浸于一个项目了。它总让人觉得胜利近在咫尺,却又总有棘手的难题亟待攻克。
一些有趣的笔记:
模组标签在分类列表中实际上是存档数据标签的复制,因为无法添加额外类型,所以我根据滚动列表的索引来替换数据。
有好一阵子,我都在借用高级图形设置菜单来实现子菜单的功能,本来都快搞定了,结果发现他们不知为何硬性规定那个菜单只能显示五个选项……更糟的是,如果你设成其他数量,游戏直接崩溃。
而且不知为何,那个菜单里的滑块无法接收鼠标输入,所以我最后找到了一组正确的调用方式,把选项变成了类似按钮的东西,替换数据并重绘界面,这样它就能在不真正切换菜单的情况下切换子菜单了。
而这一切的逻辑不可避免地变得复杂……
由于 REF 存在限制,我为此专门编写了一个小巧的 C++ 插件,其唯一作用就是获取 GUID 指针并解引用,以便从中提取数据。若没有这个插件,整个方案就无法运作,因为根本无法正确覆盖游戏的本地化字符串。
还行,但用 Lua 和 sol2 搭建 C++ 项目简直让人崩溃……教程基本帮不上忙。
同样地,由于某些原因我无法在REF中为对象设置GUID值,但通过使用write_dword在正确的偏移量处直接写入数据解决了这个问题。
说到底,我觉得这个结果真的很酷。
我几乎不在乎有没有人用它,光是看到它能正常工作,就已经是莫大的回报了。不过我觉得,大家会喜欢它的。
随便提建议吧,不过忙完这些我肯定要摆烂一阵子了。
目前大概就这些了,希望你喜欢!
本工具由三方[bufftool]提供
立即下载模组
下载客户端搜索
怪物猎人 崛起
后使用Mod大师工具。