Shokuho 除以零修复

Shokuho 除以零修复

Shokuho Division by Zero Fix 是针对 Shokuho 模组的补丁。它解决了在计算 AI 派系时薪时,常见的“除以零”错误导致的游戏瞬间崩溃(CTD)问题。

游戏玩法

楚昊除零修复

Shokuho Division by Zero Fix 是针对 Shokuho 模组的一个修复补丁。它消除了在计算AI派系的每小时工资时常出现的“除零”错误,这个错误曾导致游戏立即崩溃(CTD)。

我在冬日6号那天遇到了这个错误,决定把它修复好。如果其他人遇到同样的问题,觉得有用的话尽管拿去用。这是我第一次做这种事,而且不是独自完成的,请不要太苛刻地评判。

发生了什么错误?

游戏用于计算工资的方法出现了错误。

问题:原版Shokuho代码使用了除法,其中分母(除数)是队伍中常规(非英雄)单位的总数。当某个AI队伍(例如,一个空据点)不包含常规单位,但可能只包含英雄单位时,TotalRegulars值会变为0。

结果:尝试除以零导致了致命异常(DivideByZeroException),导致游戏崩溃。

这个补丁是如何修复它的?

Shokuho修复补丁使用Harmony库和Prefix方法,在原始Shokuho代码执行前拦截GetTotalWage调用。该补丁执行精确判断:如果(mobileParty.MemberRoster.TotalRegulars 小于等于 0)。若除数为零或更小,补丁立即停止执行原始方法(通过返回false)。它强制将薪资结果设为0(ExplainedNumber(0f, false))。

要求(我仅在以下环境测试过)

  • Mount & Blade II: Bannerlord 1.2.12..54620
  • Shokuho 1.0.0.8
  • Harmony 2.3.6.220

安装

  1. 下载并解压ShokuhoFix.zip压缩包。
  2. 将ShokuhoFix文件夹放入你的Bannerlord模组目录中(.../Mount and Blade II Bannerlord/Modules/)。
  3. 在启动器中:确保 Shokuho Fix 已激活,并且位于 Shokuho 模组下方(它会在之后加载)。
  4. 启动游戏。补丁成功应用将通过左下角的消息确认。