模组菜单

创作者: IamfindingNemo
已更新:2026-10-07 19:12:01
37KB

关于此 MOD

在普通游戏设置中提供一个模组菜单
如果游戏更新了,请删除MELONLOADER缓存。这不是模组的问题

游戏选项界面中的模组选项卡

模组选项在游戏设置中添加一个模组标签页。兼容的模组使用此标签页进行设置。

每个模组都有一个标题。其设置以开关、滑块或列表的形式显示在标题下方。这些控件采用游戏的原生风格。

C#模组和原生C/C++模组共用同一标签页。每个模组都必须通过API注册其设置。

主要功能

  • 每个模组都有自己的一组设置。模组控制其行的顺序。
  • 该选项卡支持开关、数字步进、滑块、列表、枚举选项和文本注释。
  • 指向某一行时,页面下方会显示帮助文本。使用游戏手柄时,所选行决定帮助文本。
  • 嵌套行最多支持三级。
  • 每次打开菜单时,控件都会读取当前值。
  • 当模组添加设置或更改帮助文本时,页面会刷新。

设置与兼容性

该选项卡使用每个模组提供的读取和写入功能。每个模组保留自己的偏好设置部分和默认值。

未支持此标签页的模组会保留其现有的控件和配置文件。模组选项不会自动为其添加控件。

模组选项有一个可选设置:TabName。其默认值为Mods。UserData/MelonPreferences.cfg中的ModOptions部分包含此设置。

1.1.5 版本保留公共 C# API 和原生 C/C++ ABI。现有集成无需重新构建。

安装

  • 为Jump Space安装MelonLoader。
  • 首次安装 MelonLoader 后,请先启动一次游戏。
  • 退出游戏。
  • 将此压缩包中的 Mods/ModOptions.dll 复制到游戏的 Mods 文件夹。
  • 如有必要,请替换之前的ModOptions.dll。
  • 请将此 DLL 的旧副本或重命名副本移动到 Mods 文件夹之外。
  • 开始游戏。
  • 打开选项。
  • 选择音频旁边的模组选项卡。

在模组注册设置行之前,此选项卡没有设置行。“Authors”文件夹包含供模组作者参考的文件。

移除

  • 退出游戏。
  • 从 Mods 文件夹中删除 ModOptions.dll。

你的偏好设置仍保留在原有文件中。

C# 集成

  • 在你的项目中添加对 ModOptions.dll 的引用。
  • 将该引用的Private设为false。
  • 将可选依赖项属性添加到程序集。

[assembly: MelonLoader.MelonOptionalDependencies("ModOptions")]

  • 将注册调用放在单独的方法中。
  • 用 MethodImplOptions.NoInlining 标记该方法。
  • 在OnInitializeMelon中,用try/catch块调用该方法。

分开的方法将可选的 API 引用保留在主初始化方法之外。catch 块处理缺少 Mod Options 安装的情况。

此调用注册一个开关。Cfg.Thing 代表你模组中的一个布尔偏好设置。

模组选项.模组菜单.切换(
    我的模组,
    动手吧,
    () => Cfg.Thing.Value,
    value => Cfg.Thing.Value = value);

可选依赖属性和受保护的注册方法使 Mod 选项对你的玩家保持可选。

Authors/API.md 介绍了注册方法及其参数。

C 或 C++ 集成

  • 将此压缩包中的 Authors/native/ModOptions.h 复制到你的项目中。
  • 在源文件中包含头文件。
  • 从你的 DLL 中导出 ModOptions_Connect。
  • 如果你的源代码使用 C++,请为此导出使用 C 链接。
  • 通过提供的 API 表格注册您的设置。

#include "ModOptions.h"
#include <stddef.h>

如果定义了__cplusplus
“C”
#endif
MODOPTIONS_EXPORT void ModOptions_Connect(const ModOptionsApi* api)
{
    如果 (api == NULL || api->version < 1) 返回;

    接口->步骤(“我的模组”,“最大玩家数”,4,11,
               读取最大值, 写入最大值, 空值, 空值);
}

ReadMax 和 WriteMax 是来自你模组的回调函数。Authors/native/example.c 中包含一个完整的示例。

模组选项会自动找到导出内容。你的原生模组无需链接到ModOptions.dll。你的模组仍需自行负责其偏好设置文件。

嵌套行

ModMenu.Under 将后续行放在前一行下方。ModMenu.Back 返回上一级。最多三层。

C 接口从 API 版本 2 开始提供 Under 和 Back。提供的示例在这些调用之前会检查 API 版本。

我的模组
    后坐力
        力量
        恢复

需求

需要 MelonLoader。此版本在 Windows x64 上使用 MelonLoader 0.7.3 和 Jump Space 0.7.15.13。

存档中不包含MelonLoader或游戏程序集。

使用 Xmod 解锁 Jump Space 的全部潜力 — 今天就探索这些顶级 MOD!