RadarKeys - 另一个无限天堂插件

RadarKeys - 另一个无限天堂插件

允许通过IHHook方法调用,使按键绑定在按钮交互时运行脚本。

描述

你是否曾经希望为 Snake 的某些动作单独设置按键,而不必在游戏过程中依赖执行特定动作?

比如,无需打开环形菜单就能召唤马匹?

或者,无需按住姿态按钮就能卧倒?

或者,只需按一下按钮就能标记敌人?

对于第二个问题我还没有答案,但对于第一、第三和第四个问题,我有解决方案。哈哈


安装说明

  1. 安装 Snakebite
  2. 安装 InfiniteHeaven
  3. 安装本模组。

注意:


主要特性

  • 独立运行于自身的 .dll 文件,因此不会占用 IHHook 或其他插件。可以同时与它们一起工作。

  • 允许通过按键交互来运行脚本,适配了 IHHook 的方法调用。

  • 拥有一个原生的游戏内菜单,与 InfiniteHeaven/IHHook 菜单分开。

  • 拥有自己的可视化列表,显示哪些按键被特定的模组脚本使用。

  • 拥有原生的调试器和日志系统。它会检测错误是发生在核心层面还是脚本层面,以便于调试。

  • 系统运行在独立线程上,因此如果在运行时检测到可能导致游戏崩溃的脚本错误,它将避免游戏崩溃 (除非是侵入性故障。哈哈)

  • 仅对触发器进行实时响应,因此你可以修改触发器,它会在游戏中立即生效,无需重启。

  • 尚不支持手柄或鼠标按键,但这在我的计划之内。

  • 我还添加了一个示例预设,你可以在游戏中使用,即由伟大的 OrionAcerola 修改的 “Ultimate Auto Marking” 模组,以及我自己修改的 “Prone Shortcut” 模组。

    • 我分离了标记敌人和禁用标记的功能,从根本上改变了该模组的工作方式。

默认按键:

  • F7 — 打开游戏内菜单
  • X — 激活 ProneShortcut
  • B — 激活 AutoMarking
  • N — 移除 AutoMarking 标记
  • 如果你愿意,可以在游戏内菜单中重新分配按键。请参阅“使用与说明”部分。

— 重要文件如下:

  • RadarKeys.dll → 在主目录中,与 ".exe" 文件在一起
  • RadarKeys_Core.lua → 在 mod/modules 中。是 LUA 脚本和 .dll 库之间的桥梁。
  • radar_keybinds.conf → 存储设置的配置文件。位于 mod/radarKeys 文件夹中
  • 日志文件存储在 "mod/radarKeys" 文件夹中

— 预设文件如下:

  • AutoMarkingCore.lua → 在 mod/modules 中
  • AutoMarkingMenu.lua → 在 mod/modules 中
  • AutoMarkingTrigger.lua → 在 mod/radarKeys 中
  • AutoMarkingDisable.lua → 在 mod/radarKeys 中
  • ProneShortcut.lua → 在 mod/modules 中

使用与说明

  • 你可以将你的模组文件放在任何地方,但默认情况下,.dll 会将 GameDIr/mod/modules 作为其回退路径。所以,如果你只输入 LUA 脚本名称,它会自动在 mod/modules 中查找。

  • 否则,你将需要输入你想要用于所修改按键的脚本触发器的绝对路径。

  • 例如:“ProneShortcut.lua” 是一个独立脚本。它的 “核心” 和 “触发器” 都在同一个脚本中。因此,在重新分配此脚本时,你可以简单地将其放在 mod/modules 中,在按键分配时设置名称 “ProneShortcut.lua”,就可以了。

  • AutoMarking 模组则更复杂一些,因为它分为三个不同的部分:

    • 核心: InfModule — 包含所有全局声明和函数。这是保存模组系统的主脚本。
    • 菜单: InfModule — 包含 InfiniteHeaven 中菜单的可视化表示。
    • 触发器 — 包含连接 RadarKeys.dll 调用函数和 LUA 脚本模组核心资源的脚本触发器。

**“InfModules” 是需要在 InfiniteHeaven 启动时声明的脚本。它必须位于 “mod/modules” 中,否则无法工作。**你只需在游戏内菜单中分配 “触发器”,但确保系统自身正常运行很重要。你可以将 “启用器” 和 “禁用器” 分配到不同的按键上,但不能分配到同一个按键上(目前如此)。 在预设文件中,它们存储在 “radarKeys” 文件夹中,配置文件也存在于此,位于 “Triggers” 文件夹内。 因此,要将脚本分配到新的按键,你需要声明它们所在目录的起始点:

  • 启用:选择一个按键 → “mod/radarKeys/Triggers/AutoMarkingTrigger.lua” → 分配
  • 禁用:选择一个按键 → “mod/radarKeys/Triggers/AutoMarkingDisable.lua” → 分配

或者,如果你不想在游戏内菜单中操作这么麻烦,你可以直接修改 “radar_keybinds.conf” 文件,效果是一样的。哈哈

如果你想要探索脚本功能是如何工作的,欢迎查看脚本。 如果你发现这个模组有任何问题,请告诉我。


需求


致谢

  • Discord 上的 Modder's Heaven
  • Topher 和 LordRamza 制作的 SnakeBite Mod Manager
  • tinmantex 制作的 Infinite Heaven
  • OrionAcerola 制作的 Ultimate Auto Marking 模组。
  • 还要感谢 yazed0071,V Framework 的创建者。他是我理解如何为这个游戏进行 LUA 脚本修改的主要导师。哈哈