《无人深空》伙伴自动召唤 - 由Lineum Dynamics制作

《无人深空》伙伴自动召唤 - 由Lineum Dynamics制作

早期ALPHA 0.10.2:在本地存档加载或离开飞船后召唤已拥有的同伴,多人测试下带有实验性传送触发器。最后选择、随机或按栖息地加权,带有随机排序和快速菜单设置。仅限Windows/Steam版本25624745。备份存档并报告测试结果。

早期 ALPHA / 公开测试 — 0.10.2-native-test。预计会出现 bug、不完整行为以及可能的崩溃。 此实验版本适用于 Windows 10/11 x64 以及下方指定的确切 Steam 构建版本。它不是稳定版本。在安装或测试之前,请关闭游戏并单独备份你的存档。

已确认的内容与需要测试的内容

该原生模块会在本地存档加载或离开飞船后,请求游戏召唤一只你拥有的合格同伴。此版本添加了一个实验性的传送回调。同一候选版本的早期构建在两条本地路径上产生了可见的宠物:从货船到空间站,以及从空间站到行星基地(不先离开飞船)。这并不能确立回调的确切含义,也不能确定另一名玩家的传送是否能为一名静止玩家召唤宠物。此 0.10.2 归档已通过离线测试和 ZIP 回读,但尚未在游戏中启动。精确归档启动、第二台 PC 安装以及多人游戏行为仍未验证。

所有者此前已确认出现了一只可见宠物,并在分组同伴名单旁出现了一个设置条目。死亡/重生行为以及死亡或其他重建后的菜单恢复仍未验证。请报告所有测试结果,包括成功的结果,以便我们区分已确认的行为与假设。

该模组的作用

让你拥有的同伴保持在附近,而无需在每次着陆后打开同伴菜单。该模组遵循你选择的选取规则,并请求游戏自身的召唤系统来处理该请求。它不会给予你宠物、解锁同伴槽位、加速成长、更改战斗数值,也不会绕过所有权、资格或放置限制。如果地面不合适,请求可能会等待,直到游戏允许召唤。队列接受并不保证宠物已可见地出现。

这是一个由正常 Steam 游戏启动加载的原生模块。它不需要 Python 安装、单独的启动器或外部设置面板。不要同时运行较旧的 Python/pyMHF 测试和此原生包。

游戏内设置

打开 快捷菜单 → 同伴 → 同伴自动召唤。在 PC 上,默认快捷菜单键是 X。如果你更改了控制设置,请使用你分配的按键或控制器提示。该条目出现在各个宠物之前。控件是原生游戏菜单操作;它们不使用数字键绑定。

该页面包含七项设置:
- 自动召唤: 开/关。关闭会取消等待中的自动请求,而不会解散你当前的宠物。将其打开会等待之后的存档加载、离开飞船或实验性传送回调。
- 选取: 上次选择、随机或按栖息地。上次选择会记住该存档中一次成功的手动同伴选择。
- 随机:优先匹配生物群系: 仅影响行星上的随机。它偏向于其存储的原生栖息地与行星匹配的合格同伴;如果没有匹配项或栖息地未知,则使用普通的合格随机池。它不影响上次选择、按栖息地、空间站或太空异象。
- 行星、空间站、太空异象: 分别允许或阻止在这些地点进行自动请求。此模组不添加货船召唤。
- 轮换同伴: 在随机中使用打乱的循环,或在按栖息地选中的加权组内使用打乱的循环。它不影响上次选择。

全新安装的默认值为 按栖息地、轮换同伴开、自动化开、所有三个支持的位置开,以及随机生物群系偏好开。现有设置会被保留。更改设置不会立即召唤或解散宠物;它会在之后的机会中生效。在测试期间,关闭自动化是停止自动请求的最快方法。

选取与栖息地权重

- 上次选择: 使用记住的手动选择。栖息地偏好和轮换不会改变它。
- 随机: 从合格的已拥有池中选择。关闭轮换时,该池中的每只合格宠物都有相同概率,并且可能重复。单独的匹配生物群系选项可以在有任何合格项时,将池缩小为精确栖息地匹配项。
- 按栖息地: 在行星上,首先形成合格的精确匹配、相关和可接受组。然后使用权重 13:5:1 在非空组之间选择,并在所选组内选择一只同伴。如果所有组都存在,这大约为 68.4%、26.3% 和 5.3%。空组会被移除并重新归一化权重;某个组中拥有更多宠物不会增加该组的概率。未列出的组合会被排除;系统不会回退到不相关的宠物,例如在熔岩上的冰冻。

栖息地规则是该模组的选取偏好,而不是官方生物生存规则。每一行读作行星 → 同伴栖息地;列出的关系是有方向的:
- 茂盛:相关 沼泽;可接受 贫瘠、冰冻。
- 有毒:相关 沼泽;可接受 辐射。
- 灼热:相关 熔岩;可接受 贫瘠、死亡。
- 辐射:可接受 有毒、贫瘠、死亡;无相关组。
- 冰冻:可接受 贫瘠、死亡;无相关组。
- 贫瘠:相关 死亡;可接受 茂盛、灼热、辐射、冰冻。
- 死亡:相关 贫瘠;可接受 灼热、辐射、冰冻。
- 怪异/异常:仅精确匹配;已识别的怪异变体共享此类别。
- 沼泽:相关 茂盛、有毒;可接受 辐射、贫瘠。
- 熔岩/火山:相关 灼热;可接受 贫瘠、死亡。
- 水世界:仅精确匹配。水生同伴可以被拥有,但游戏仍可能禁止在水下召唤;此模组不会启用水下召唤。
- 气态巨行星:所审查的主要证据尚未确立原生可收养同伴池。按栖息地仅接受已拥有的精确匹配项,否则跳过该机会。

宠物的存储原生栖息地决定其类别,而不是其名称、颜色或火焰般的外观。灼热和熔岩是单独的类别。在冰冻行星上于水下收养的水生宠物,按其存储栖息地分类,而不是按收养它的水域分类。在空间站和太空异象中,按栖息地使用普通的合格已拥有池,因为没有行星栖息地可供偏好。

轮换的工作方式

随机保留一个打乱的合格循环。按栖息地首先选择其加权组,然后在该行星栖息地和组内使用单独循环。空间站和异象共享普通随机循环。只有被游戏召唤队列接受的请求才会消耗一轮;被拒绝的放置、重试或取消的请求不会。当该组中还存在另一只合格同伴时,一个循环轮次会避免立即重复上一次被接受的选择;唯一合格的宠物可以重复。收养或遗弃会更新循环。在机会之间重命名或重新排序槽位不会重置它。循环是临时的,并会在本地存档加载或新的游戏会话时重置;保存的手动收藏项是单独的。

0.10.2 中的已知问题

- 传送召唤是实验性的。 早期本地路径产生了可见宠物,但回调含义以及本地与远程多人游戏行为未知。此版本需要双人测试:让一名玩家保持静止,另一名玩家传送,然后交换角色并观察两个屏幕。报告谁移动了、两个位置、任何活动宠物、选取模式,以及每名玩家是否看到宠物。如果该行为造成干扰,请关闭自动召唤。
- 死亡/重生后不会自动召唤。 死亡是一个单独且尚未实现的触发器。手动解散或基地移除不会创建新机会,也不会导致该模组重生一只已被解散的宠物。
- 死亡及其他重建后的菜单恢复未验证。 一份报告描述了死亡后宠物和设置页面缺失。会话日志记录了一次 UI 线程安全停止,但没有死亡事件,因此原因未知。分组名单可见性和一个直接加载恢复场景成功,但两者都不能确立在每次重建中的可靠性。
- 未添加水下召唤和货船支持。正常游戏限制仍然有效。

请参阅当前已知问题和测试状态。请报告确切的模组/游戏版本、触发器、结果、位置、设置,以及自定义页面是否仍能打开。说明宠物是否可见地出现;仅被队列接受还不够。

兼容性

支持的目标:Windows 10/11 x64,Steam 构建 25624745 / Cosmos 7.05。受支持的 NMS.exe SHA-256 为:
671de22649274b49fa07f5a246bc7252c4e08bb9ab623d2e65722fbab4e497a4

该模块会检查正在运行的可执行文件,并拒绝未知构建。游戏更新需要新的兼容性检查。此测试构建不支持主机、GOG、Game Pass、macOS 和 Linux/Proton。精确构建支持并不证明与其他每个模组兼容。游戏内菜单和 HUD 文本当前使用英语;其他已维护的语言目录是未经审阅的草稿,不是已完成的本地化。

安装与启动

1. 正常关闭 No Man's Sky,并退出任何旧的 Companion Auto Summon Python/pyMHF 会话。在游戏关闭时单独进行备份。
2. 在 Steam 中,打开 No Man's Sky → 管理 → 浏览本地文件。游戏文件夹包含 Binaries 和 GAMEDATA。
3. 解压完整的 ZIP 并阅读英文 README.md。如果 Binaries/winmm.dll 已存在,不要覆盖另一个模组的加载器。仅当其 SHA-256 与此包的清单匹配时才复用。
4. 将 ZIP 中的 Binaries 和 GAMEDATA 文件夹复制到游戏文件夹中并合并它们。对于更新,请在游戏关闭时仅替换此模组的文件。
5. 通过 Steam 正常启动游戏。不要同时启动旧的 Python 启动器。不需要管理员命令或设置面板。

该包添加了 Binaries/winmm.dll、Binaries/scripts/CompanionAutoSummon.asi,以及 GAMEDATA/MODS/CompanionAutoSummon/ 下的八个图标。这是一个带有同伴图标资源的原生模块,不是一个仅安装在 GAMEDATA/MODS 中的独立 PAK。

存档、设置与卸载

偏好设置、每个存档的手动收藏项、日志和模组创建的备份保存在 %LOCALAPPDATA%/NMS-AutoPet/ 下。该模块不会直接编辑或覆盖原始 NMS 存档文件。在启用在游戏玩法钩子之前,它会在游戏进程已经运行时创建并验证一个私有快照。那是激活前快照,不能替代在游戏关闭时进行的单独备份。

要禁用或卸载,请关闭游戏并移除 Binaries/scripts/CompanionAutoSummon.asi。你也可以移除 GAMEDATA/MODS/CompanionAutoSummon/。如果另一个 ASI 模组使用 Binaries/winmm.dll,请保留它;仅当没有其他模组需要它且它与本包的加载器匹配时才移除它。切勿删除游戏的 Binaries、scripts 或 GAMEDATA 文件夹。设置和备份会被有意保留。

源代码、致谢与披露

源代码仓库:GitHub 上的 Companion Auto Summon。请报告测试期间遇到的所有问题,包括确切步骤以及重启后是否重复。从日志中移除个人路径或标识符;不要上传存档或凭据。

此包包含 ThirteenAG 的 Ultimate ASI Loader 9.7.4 x64、Tsuda Kageyu 及贡献者的 MinHook 1.3.4,以及 Niels Lohmann 及贡献者的 JSON for Modern C++ 3.12.0,并附有其要求的声明。monkeyman192 的 pyMHF 和 NMS.py 为最初的 Python 运行时和研究提供了信息;Python/pyMHF 不是此原生包的依赖项。生成式 AI 被广泛用于代码、界面工作、翻译和此描述。这是一个非官方模组,不是 Hello Games 的官方产品。