堆叠大师

堆叠大师

更大的物品堆叠,不替换任何游戏数据。选择一个倍数,每个已经可堆叠的物品都会容纳该倍数那么多:选择5倍时,100个一组的物品会变成500个。

[size=5][b]Stack Master[/b][/size]
一个物品栏格子,能装下更多东西。选择一个倍率,游戏里所有原本可堆叠的物品都会按该倍率提升上限:设为 5 时,100 个一组的堆叠变成 500,20 个一组的堆叠变成 100。适用于 Crimson Desert 2.02.00 和 2.03.00。

[b]它不会修改任何游戏文件。[/b]游戏在启动时读取其物品表,本插件在读取过程中于内存中提升每个物品自身的上限。不会解包、替换或还原任何内容。游戏补丁无法将其失效,卸载也只需删除一个文件。

[size=4][b]功能说明[/b][/size]
[list]
[]游戏中所有原本可堆叠的物品都会按其通常上限乘以倍率,因此游戏自身对物品种类之间的区分依然保留。100 个一组的堆叠和 20 个一组的堆叠不会变成同一个数字。[/]
[]游戏本身不可堆叠的物品,例如装备和任务物品,永远不会开始堆叠。[/]
[]任何堆叠都不会超过 999999。对于你原本就能持有超过该数量的物品(例如金钱),则完全保持不变。[/]
[]在 2.03.00 上,结果是 2,397 个物品被提升,4,404 个保持不变,日志每次运行都会告知你。[/]
[/list]
[size=4][b]安装[/b][/size]
[list=1]
[]将 Ultimate ASI Loader 放入 [b]bin64[/b],与 CrimsonDesert.exe 放在一起。如果它名为 version.dll 且没有任何加载,请将其重命名为 winmm.dll。[/]
[]关闭游戏后,将 [b]StackMaster.asi[/b] 复制到 bin64。[/]
[]启动游戏一次。[b]StackMaster.ini[/b] 会出现在插件旁边,其中解释了每一项设置。[/]
[]在 ini 中设置 [b]Multiplier[/b],然后再次启动游戏。[/]
[/list]DMM 下载仅包含插件本身,用于 Definitive Mod Manager。手动下载则额外包含 readme 和许可证。

[size=4][b]设置[/b][/size]
[list]
[][b]Multiplier[/b] (1) 一个格子能容纳多少,以游戏自身上限的倍数表示。1 表示不做任何更改,插件也完全不会安装钩子。[/]
[][b]Enabled[/b] (1) 设为 0 可关闭整个模组。[/]
[][b]DebugLog[/b] (0) 设为 1 会列出前十个被提升的物品,并保留每次会话的日志。提交报告时请附上它。[/]
[/list]编辑 ini 会在下次游戏启动时生效,因为该文件只读取一次。

[size=4][b]游戏过程中更改设置[/b][/size]
使用 [url=https://www.nexusmods.com/crimsondesert/mods/3402]Master Looter[/url] 1.6.33 或更高版本时,其菜单中有一个 [b]Stacks[/b] 标签页,你可以在那里选择倍率。调高倍率会立即生效,前提是同时安装了 [url=https://www.nexusmods.com/crimsondesert/mods/3521]Private Storage Master[/url]:本插件借用该模组的自由游玩检查来判断何时可以安全地进行更改。单独使用时,从标签页进行的更改会等到下次启动才生效。

调低倍率总是会等到下次启动,这是有意为之。详见下文。

[size=4][b]在你调低倍率之前[/b][/size]
[color=#f0ad4e][b]先清空大堆叠。[/b][/color]你的存档会记录你堆叠出的物品,因此在你将倍率设回 1 或卸载后,某个格子仍然可能容纳超过游戏允许的数量。它会保留其中的物品,直到你取出一些。不会有任何东西被删除,但超过上限的格子是游戏不会再往里添加物品的格子。

[size=4][b]与其他模组[/b][/size]
[list]
[][b]Private Storage Master[/b] 1.1.2 及更高版本带有相同的功能。两者都安装时,由 Stack Master 生效,Private Storage Master 会不处理堆叠并在其日志中说明,因此两者绝不会对同一上限重复相乘。请在此处设置倍率。[/]
[][b]不要同时运行 Fat Stacks 之类的堆叠大小数据模组。[/b]两者都会更改相同的上限,结果取决于游戏最后读取的是哪一个。[/]
[]除了加载器之外,它与其他插件不共享任何内容。它只钩住一个游戏函数,不读取输入,也不绑定按键。[/]
[/list]
[size=4][b]兼容性[/b][/size]
[list]
[]已在 Crimson Desert 2.03.00(CrimsonDesert.exe 1.0.0.2944)、Steam 上测试。它所需的那个函数在 2.02.00(1.0.0.2850)中也存在,并已针对该可执行文件进行核对。[/]
[]它通过搜索来定位该函数,而不是使用固定地址,并通过游戏自身针对其所写入字段的错误文本来确认。如果补丁移动了代码,模组仍能找到它。如果补丁更改了它所读取的内容,模组会关闭该功能并在日志中说明,而不是写到错误的地方。[/]
[/list]
[size=4][b]如果出现问题[/b][/size]
在 StackMaster.ini 中设置 DebugLog=1,游玩直到问题发生,关闭游戏,并将 bin64 中的 [b]StackMaster.log[/b] 附到 bugs 标签页的帖子或 GitHub issue 中。日志会说明有多少物品被提升、写入的最大上限以及按编号排列的前十个物品。

[size=4][b]杀毒软件[/b][/size]
一两个扫描器可能会标记 StackMaster.asi,因为它所做的事情在模型看来像是修改器:它是一个加载到游戏中的 DLL,在游戏代码中搜索字节模式,并在其某个函数上写入跳转。它只导入 kernel32 和 user32,因此其中没有网络代码,也不读取或写入任何注册表项和游戏文件。它已进行代码签名,在“属性”、“数字签名”中会显示 Seth Walker 位于 Microsoft 的身份验证链下。每一行代码都在 GitHub 上,可供阅读或自行构建。

[size=4][b]文件[/b][/size]
SHA-256:
[code]37483b08773e8f40ebbb671395d49cd2c39e46003af30f9dbc9b90fd8da44b28 StackMaster-1.0.0-DMM.zip
b294d98cec0615aea776acd1e13e4f498f013cbb94000957c68a3433daf48142 StackMaster-1.0.0.zip
7eb1e71644466c2f8d42c1440b590402b42f065e442557eddcf9cc758c315319 StackMaster.asi[/code]
[size=4][b]源码与许可证[/b][/size]
MIT。源码位于 [url=https://github.com/shin2344234/stack-master]github.com/shin2344234/stack-master[/url],其中包括另一个插件可以调用的接口,用于读取或更改倍率。

[size=4][b]鸣谢[/b][/size]
[b]momenaya[/b] 的 [url=https://www.nexusmods.com/crimsondesert/mods/157]Fat Stacks[/url],它展示了更大的堆叠能为游戏带来什么。Fat Stacks 通过替换游戏数据来实现这一点,这也是它需要为每个版本重新构建的原因;此处未使用它的任何内容,本插件所写入的字段是通过阅读游戏自身的物品表加载器找到的。

[size=4][b]Discord 和 Patreon[/b][/size]
[url=https://discord.gg/AZ2ztQYy74]Shin234's Mods 'n Stuff[/url] 是 Discord 服务器,用于提问和了解正在进行中的内容。Bug 最好通过 GitHub issues 或 bugs 标签页提交,以便被跟踪。Patreon 是 [url=https://patreon.com/cw/Shin234]patreon.com/cw/Shin234[/url]。所有发布内容都保持免费,不会为此有所保留。