
自适应存储框架 - 内容标签页修复
修复了自适应储存中与存储内容和插槽限制计算相关的NullReferenceException。使用了轻量级的Harmony补丁,未修改原始DLL文件。
查看大图你是否曾在存档/读档测试中,或当模组尝试构建存储内容和槽位上限时,遇到过与 Adaptive Storage Framework 相关的 NullReferenceException 错误?本模组添加了一个轻量级的 Harmony Prefix,可在所需地图上下文未完全初始化时,阻止 Adaptive Storage 跟随错误的存储查找路径,从而在不修改原始 DLL 的情况下避免该异常。
[line]
[🌸 总体描述]
本模组使用 Harmony 实现了一个轻量级的 C# 修复,当存储父对象没有完全可用的地图上下文时,能安全停止 Adaptive Storage 的内容处理和槽位上限计算。与直接修改 DLL 不同,此补丁不会覆盖原始模组的文件,因此修复体积小、针对性强且易于维护。
[line]
[✨ 主要特性]
[list]
[][color=#00ff00]✔[/color] 阻止因无效存储/地图上下文导致的 NullReferenceException。[/]
[][color=#00ff00]✔[/color] 采用保守的 Harmony Prefix。[/]
[][color=#00ff00]✔[/color] 不修改原始 DLL。[/]
[][color=#00ff00]✔[/color] 设计与现有存档兼容。[/]
[/list]
[line]
[🛠️ 技术细节与兼容性]
本模组使用 Harmony 修改内部 C# 逻辑。
[list]
[][b]要求:[/b] 必须安装 Harmony 和 Adaptive Storage Framework 才能生效。[/]
[][b]加载顺序:[/b] 在模组列表中,将此模组置于 Harmony 和 Adaptive Storage 之后。[/]
[][b]定位方法:[/b] AdaptiveStorage.LegacyStorageUtility:AddThingsFromSlotGroup 和 AdaptiveStorage.LegacyStorageUtility:TotalSlots。[/]
[][color=#ffff00]⚠[/color] 本模组针对 RimWorld 1.6 版本。虽然可能在旧版本上运行,但不在测试和支持范围内。[/]
[/list]
[line]
[📥 安装步骤]
[list=1]
[]下载文件。[/]
[]将文件夹解压到你的 RimWorld [b]Mods[/b] 目录。[/]
[]在游戏内的模组管理或 [b]RimSort[/b] 中激活模组。[/]
[]确保它排在 [i][b]Adaptive Storage Framework[/b][/i] 之后加载。[/]
[/list]
[line]
[❓ 常见问题 (FAQ)]
[1. 能否用于已存档的游戏?]
可以!此修复旨在安全地添加至正在进行的游戏中。
[2. 这个模组会影响性能吗?]
没有明显影响。增加的防护极其轻量,仅在 Adaptive Storage 尝试处理内容前检查有效的地图上下文。
[3. 这个模组会导致崩溃吗?]
不会。它专为防止 Adaptive Storage 在存储内容处理时的 NullReferenceException 而创建。
[4. 如果还没看到任何错误,值得使用这个模组吗?]
值得。如果你使用 Adaptive Storage 并想主动避免这种特定异常,这是一个小型的防御性修复,旨在从一开始就防止错误出现。
[5. 你接受修复其他模组错误的请求吗?]
很遗憾,不接受。我目前专注于解决自己模组列表中的特定红色错误。我只在我遇到问题时,为我正在积极使用和测试的模组编写修复。
[6. 进行了哪些测试?]
在游戏中进行了反复存档/读档循环和新游戏检查的测试,确认存储内容路径和槽位上限标题路径不再抛出 NullReferenceException。
[7. Adaptive Storage 中还有其他错误或不兼容问题吗?]
我并未审计该模组的全部源代码,因此无法确认这是否是唯一的问题。此补丁专门针对堆栈跟踪中报告的存储内容和槽位上限标题错误。
[8. 这个模组能在 RimWorld 1.5 或更早版本上工作吗?]
有可能。此补丁是为 1.6 版本开发和测试的。早期版本也可能有效。我不为 1.6 之前版本提供技术支持或兼容性测试。如果你仍想尝试,请前往:Mods\AdaptiveStorageFrameworkFix\About.xml
用文本编辑器打开文件,将支持的游戏版本从 1.6 改为你的 RimWorld 版本,保存文件,然后自行承担风险进行测试。
[9. 这个模组还会更新更多功能吗?]
目前,此补丁专注于 Adaptive Storage 的内容问题。但如果我发现模组中的其他错误,或者游戏/模组更新破坏了当前补丁,我可能会发布更新。
[10. 这个错误是否已报告给 Adaptive Storage 的作者?]
是的,但他们不会修复。
[11. 你计划发布更多模组吗?]
是的。我还有更多修复计划,包括针对 RimWar 和 Empire 兼容性的补丁。请关注我 Nexus 上的页面。
[12. 源代码注释是西班牙语吗?]
是的。我的母语是西班牙语,因此如果你反编译 DLL 或查看源代码,会发现我的开发者注释是用西班牙语编写的。
[13. 加载顺序重要吗?]
是的。由于此补丁依赖于原始模组,它必须在模组列表中加载于 Harmony 和 Adaptive Storage 之后。
[14. 如果 Adaptive Storage 更新了该怎么办?]
大多数情况下,你可以保持此修复激活。由于它使用动态的 Harmony 补丁,设计上保持兼容,除非原作者大幅重命名或重写了受影响的代码。如果原始模组更新后你发现错误再次出现,或者作者官方修复了该错误,请告诉我,以便我更新或停用此补丁。
[15. 我可以向你询问关于模组、Harmony 或其他相关问题吗?]
可以。尽管提问!我会尽快回复。
[16. 这个模组在 Steam 上吗?]
目前不在 Steam Workshop 上。但你可以在那里自由上传此模组、其描述和截图。我只要求在描述中包含指向此原始 Nexus 页面的直接链接。谢谢!
[line]
[quote]❤❤❤ [i]此模组源于在使用复杂模组列表和加载存档时,希望保持 Adaptive Storage 稳定、不受红色错误干扰的愿望。我的目标是为每个人提供可靠的体验。如果此修复帮助到你,别忘了在 Nexus 上留下你的 👍 点赞。这能帮助其他玩家找到此修复。[/i] ❤❤❤[/quote]
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。