HD2 模组快速部署

HD2 模组快速部署

亚秒级增量部署。冲突已解决。Lua 加载器共存。开源。

[center][size=6][b]HD2 Mod Quick Deploy[/b][/size]
[size=4]《绝地潜兵2》的模组管理器:增量式、硬链接部署,按资源逐项解决冲突,并自动处理 Lua 加载器。[/size][/center]

[line]

[size=5][b]它与众不同之处[/b][/size]

[list]
[][b]非常快。[/b] 它从不先清空游戏文件夹再复制回全部内容。它会将加载顺序与游戏文件夹进行比对,只触碰有差异的文件。一次典型部署耗时 [b]0.13–0.29 秒[/b]。[/]
[][b]不复制任何内容。[/b] 部署后的文件是以第二个名字存在的库自身文件(硬链接):部署写入的模组数据为 [b]0 字节[/b],游戏文件夹[b]不占用额外空间[/b]。[/]
[][b]按资源逐项解决冲突。[/b] 两个模组替换的每一项资源都会列出,并标明生效的模组,一键即可选择胜出者。两个模组提供的逐字节完全相同的文件会被识别为共享,而非报告为冲突。[/]
[][b]自动处理 Lua 加载器。[/b] 可识别 Boot Mod Loader、Chef Shared Loader、Bingus Shared Loader 和 MDL3。选定一个后,每次部署都会将其放在最后,因此其启动脚本就是游戏运行的那个。[/]
[][b]干净简洁。[/b] 模组以文件夹式分组呈现,而非一长串加载顺序编号。每个模组一个开关;其选项位于各自的卡片上。[/]
[/list]
[size=5][b]它能节省多少[/b][/size]

在一份包含 68 个模组、284 个补丁文件、共 2.84 GB 的库上测量,库与游戏位于同一块 NTFS 驱动器:

[list]
[][b]无任何变化:[/b] 清空再复制的管理器写入 2.84 GB;Quick Deploy 在 0.13–0.18 秒内写入 [b]0 字节[/b]。[/]
[][b]一个模组的新版本:[/b] 2.84 GB 对 [b]0 字节[/b](一次硬链接、一次删除),耗时 0.14–0.29 秒。[/]
[][b]关闭或重新启用一个模组:[/b] 2.84 GB 对 [b]0 字节[/b](重命名、删除或硬链接),耗时 0.23–0.25 秒。[/]
[][b]在加载顺序中移动一个模组:[/b] 2.84 GB 对 [b]0 字节[/b](重命名),耗时 0.19–0.21 秒。[/]
[][b]游戏文件夹占用的空间:[/b] 2.84 GB 的副本对 [b]0 字节[/b]。[/]
[/list]
“0 字节”指模组数据:重命名、链接和删除仍会改动几 KB 的文件条目。若库与游戏位于不同驱动器,则无法使用硬链接:此时会复制发生变化的文件,且仅复制这些文件。

[line]

[size=5][b]功能[/b][/size]

[size=4][b]部署[/b][/size]
[list]
[]使用硬链接的增量部署;部署前永远无需清空。[/]
[][b]还原原版[/b] 会从游戏文件夹中移除所有模组,以便在不使用模组的情况下游玩;库不受影响。[/]
[][b]创建硬链接[/b] 会将其他管理器在游戏文件夹中的副本转换为硬链接,在不写入任何内容的情况下释放其占用空间。[/]
[][b]启动游戏[/b] 通过 Steam 启动游戏,并在有变更待部署时提示先进行部署。[/]
[/list]
[size=4][b]冲突与 Lua 模组[/b][/size]
[list]
[]按资源显示冲突,包括其类型(安装 HD2SDK 时还包括其名称)以及生效的模组。[/]
[]每个配置文件使用一个 Lua 加载器,在面板中选择;其他加载器会被排除在部署之外。[/]
[]Boot Mod Loader 0.13.0 或更高版本与 Chef Shared Loader 协同工作:仅为 Chef 制作的模组会交给它处理。[/]
[]自带启动脚本的模组(例如 Objective Tracker 0.6.7)会由 Boot Mod Loader 运行,而不会占用游戏唯一的启动槽位。[/]
[]游戏所用 Lua 5.1 无法运行的脚本(goto、仅限 LuaJIT 的语法、无回退的 ffi 等)会在游戏启动前被标记,并附上原因。[/]
[]Boot Mod Loader 上次会话的日志:哪些模组启动了、各自耗时多久、哪些失败了。[/]
[/list]
[size=4][b]库[/b][/size]
[list]
[]导入 HD2 Arsenal、HD2ModManager 和 Echelon 库,包括其顺序、开关和选项。它们的文件仅被读取。[/]
[]最多三层的文件夹式分组、标签、筛选器,以及跨所有名称、描述、选项和文件的搜索。[/]
[]将 zip、7z、rar 或文件夹拖放到列表上即可安装。新版本会保留模组的位置、开关和选项。[/]
[]配置文件(可选):每个都有各自的模组、加载顺序、开关和选项。[/]
[]Storage 页面会像 Steam 列出其库文件夹那样列出存放模组的文件夹,并在它们之间移动或删除模组。[/]
[/list]
[size=4][b]省心无忧[/b][/size]
[list]
[][b]上一版本与回滚[/b](设置中,默认关闭):带 Lua 脚本的模组在新版本到来时会保留其原有版本,并可一键回滚到该版本。[/]
[][b]更新检查[/b] 适用于来自 GitHub 的模组,在原位更新。更新可被跳过,直到出现更新的版本。[/]
[][b]翻译包[/b] 会随其翻译的模组一同关闭和开启。[/]
[][b]一键问题报告[/b]:一个 zip,包含模组、其顺序、冲突、Lua 检查和日志,可随问题一同发送。[/]
[]供模组制作者和脚本使用的命令行 [b]hd2qd.exe[/b]。它与窗口共享库和设置。[/]
[/list]
[line]

[size=5][b]此版本[/b][/size]

这是[b]开发者版本 0.12.0[/b]。它[b]没有 Nexus Mods 集成[/b]:没有登录、不处理 Mod Manager Download 按钮,也不对来自 Nexus Mods 的模组进行更新检查。上文描述的其他所有内容均已包含。0.12.0 新增:MDL3 支持、上一版本与回滚、跳过某个版本、随其模组一同启用的翻译包,以及大幅加快的 7z 和 rar 压缩包安装速度。

[size=5][b]系统要求[/b][/size]
[list]
[]Windows 10(1903 或更高版本)或 Windows 11。[/]
[]无需安装任何内容:使用 Windows 已包含的 .NET Framework 4.8。[/]
[]要使用硬链接,模组库与游戏必须位于同一块 NTFS 驱动器。位于其他驱动器时,模组会以副本形式部署,窗口会指出这一点。[/]
[/list]
[size=5][b]安装[/b][/size]
[list=1]
[]将 [b]HD2 Mod Quick Deploy.exe[/b](如需命令行,还包括 [b]hd2qd.exe[/b])下载到任意文件夹。[/]
[]运行 [b]HD2 Mod Quick Deploy.exe[/b]。它会自行找到游戏文件夹,或向你询问。[/]
[]如果已安装其他管理器,请接受导入其库的提议。[/]
[]按下 [b]Deploy[/b](部署)。[/]
[/list]
[size=5][b]须知[/b][/size]
[list]
[][b]只使用一个管理器进行部署。[/b] 来自另一个管理器的部署会撤销此管理器的部署,反之亦然。[/]
[][b]不要就地编辑已部署的补丁文件。[/b] 作为硬链接,它就是库自身的文件,因此库也会随之改变。[/]
[]部署或还原原版会等待游戏关闭。[/]
[]设置和记录保存在 %USERPROFILE%\.hd2-mod-cli 中;每个文件都会保留其先前副本为 .bak。[/]
[/list]
[size=5][b]卸载[/b][/size] 按下 [b]还原原版[/b],然后删除程序及文件夹 %USERPROFILE%\.hd2-mod-cli。模组文件夹会保留在原处。

[line]

[size=5][b]源码与许可[/b][/size] 基于 MIT 许可免费开源。源代码、完整文档和问题报告:[url=https://github.com/pat-pat-patrick/hd2-mod-cli]github.com/pat-pat-patrick/hd2-mod-cli[/url]