怀孕氏族空值修复

怀孕氏族空值修复

防止由无氏族女性英雄触发原版怀孕系统而导致的《骑马与砍杀2:霸主》1.4.8战役崩溃。

Pregnancy Clan Null Fix

一个基于 Harmony 的《骑马与砍杀 II:霸主》小型崩溃修复模组。

修复内容

《霸主》中,当一个已婚且无氏族的女性英雄在每日英雄结算(Daily Hero Tick)时怀孕,游戏可能会崩溃。

典型的崩溃信息如下:

System.NullReferenceException
at TaleWorlds.CampaignSystem.LogEntries.PregnancyLogEntry.get_IsVisibleNotification()
at TaleWorlds.CampaignSystem.CampaignEvents.OnChildConceived(Hero mother)
at TaleWorlds.CampaignSystem.CampaignBehaviors.PregnancyCampaignBehavior.RefreshSpouseVisit(Hero hero)
at TaleWorlds.CampaignSystem.CampaignBehaviors.PregnancyCampaignBehavior.DailyTickHero(Hero hero)

原版 PregnancyLogEntry 的通知会访问母亲的氏族,但没有安全处理氏族引用为 null 的情况。

本模组的功能

本模组添加了两个精确的 Harmony 防护:

  1. 阻止 MakePregnantAction.Apply 在 Hero 为 null 或 Hero 没有氏族时运行。

  2. 阻止 PregnancyLogEntry.IsVisibleNotification 在以下情况下崩溃:

    • Mother 为 null
    • Mother.Clan 为 null
    • MainHero 为 null
    • MainHero.Clan 为 null

除此之外,正常的怀孕不受影响。

本模组不会:

  • 编辑存档文件
  • 替换《霸主》的 DLL 文件
  • 添加自定义战役数据
  • 修改现有的英雄或氏族
  • 需要 MCM
  • 需要 ButterLib
  • 需要 UIExtenderEx

前置要求

Mount & Blade II: Bannerlord 测试版本:v1.4.8

Bannerlord.Harmony 测试版本:v2.4.2.248

不需要 War Sails。

安装方法

将压缩包解压到你的《霸主》安装目录。

最终路径应为:

Mount & Blade II Bannerlord/Modules/PregnancyClanNullFix/SubModule.xml

在启动器中启用 Pregnancy Clan Null Fix。

推荐的加载顺序:

Harmony ... Pregnancy Clan Null Fix

兼容性

本模组会修补:

TaleWorlds.CampaignSystem.Actions.MakePregnantAction.Apply(Hero)

以及

TaleWorlds.CampaignSystem.LogEntries.PregnancyLogEntry.IsVisibleNotification

大量替换或改动《霸主》怀孕系统的模组可能会与本模组的预期行为冲突或将其覆盖。

重要提示

本模组有意阻止无氏族的英雄怀孕。

这是必要的,因为原版的怀孕通知路径在英雄没有氏族时会导致崩溃。

使用模组时,请始终备份重要的战役存档。