模组菜单装饰器

模组菜单装饰器

添加定义设置以捕获按键的功能,并可选地捕获点击或长按。例如,你的模组现在可以允许用户选择设置:- 回车/点击:快速截图 - 回车/长按:进入拍照模式 返回 ta 到消耗品槽位 1,在那里你可以快速治疗,然后 Q/长按 槽位 2,使用更大的治疗。

Mod Menu Decorator

Mod Menu Decorator 是一款开发者工具,它通过按键绑定控件扩展了 Dawnwalker Mod Menu。

继续使用 Mod Menu 的常规配置系统。只需添加少量元数据,Mod Menu Decorator 就能将整数设置转换为按键选择器,并可选择性地将其与点按/长按选择器组合。Mod Menu 继续负责处理应用、重置和保存。

其源代码也可作为扩展现有虚幻 UI 的实用示例:查找现有控件、将控件添加到其所属页面,以及将自定义呈现连接到原始设置系统。

功能

  • 将 Dawnwalker Mod Menu 的整数设置升级为交互式按键绑定选择器。
  • 将按键绑定与可选的点击/长按选择器组合。
  • 通过 mod_settings.ini 支持基于元数据的集成——无需注册代码。
  • 保留 Mod Menu 的应用、重置和配置保存行为。
  • 为按键和模式选择器添加独立的悬停反馈,并在按键捕获期间进行高亮显示。
  • 支持 Escape 取消并显示未绑定的按键。
  • 使装饰保持附加在其所属行上,并在页面重建时重新创建它们。
  • 使用菜单范围内的更新,无需永久性的游戏轮询循环。
  • 提供示例配置和源代码,用于学习如何扩展现有虚幻 UI。
  • 与 UE4SSLuaEventBridge 配合使用,实现增强输入和点击/长按行为。

已知问题 / 改进

  • 菜单更新使用 100 毫秒轮询,因此视觉反馈可能会略有延迟。
  • 依赖于 Mod Menu 的结构:其控件布局或生命周期的变化可能会破坏装饰。

文档

请参阅 GitHub 上的文档开发者集成指南

添加按键绑定控件

在 mod 的 mod_settings.ini 中,定义一个整数设置并添加 Decoration = keybind

[Setting.MyAction]
Id = MyAction
Type = integer
Decoration = keybind
Label = My action
Group = Controls
ConfigFile = config.ini
ConfigSection = Bindings
ConfigKey = MyAction
Minimum = 0
Maximum = 254
Step = 1
Default = 75

存储的值是一个 Windows 虚拟键码。在此示例中,75 表示 K;0 表示未绑定。

添加可选的点击/长按选择器

紧跟在该按键设置之后,添加一个选择器,其 ID 使用相同名称后跟 Mode。为其指定自己的装饰标志:

[Setting.MyActionMode]
Id = MyActionMode
Type = picker
Decoration = keybind
Label = My action mode
Group = Controls
ConfigFile = config.ini
ConfigSection = Bindings
ConfigKey = MyActionMode
PresetValues = 0|1
PresetLabels = Tap|Hold
Default = 0

将两个设置保持在同一个组中。

就是这样——神奇吧!按键选择器和点击/长按选择器一起出现了。无需注册代码。

你的 mod 仍需实现该绑定的功能,并将 0 解释为点击,1 解释为长按。Mod Menu Decorator 提供的是 GUI 升级,而不是输入行为。

它还与 UE4SSLuaEventBridge 配合良好,后者将虚幻引擎的增强输入暴露给 Lua,包括对点击/长按绑定的支持。

开发者链接