三国演义错误修正(易古三国演义)

三国演义错误修正(易古三国演义)

三国修复补丁(易骨三国)

📌 更新日志
这是一个独立的社区漏洞修复与稳定性补丁,适用于《骑马与砍杀 II:领主》v1.2.x 上的 [b]YiGu Three Kingdoms(衣谷三国)[/b]。解决了导致战役无法继续的关键崩溃和任务阻塞问题:
1. 每日外交与战争 AI 崩溃修复
[list]
[][b]根本原因:[/b] 在每日战役 tick 中,AI 家族会评估战争提案(
[code]DailyTickClan[/code] ->
[code]ConsiderWar[/code] ->
[code]DeclareWarDecision[/code])。TaleWorlds 的
[code]DefaultDiplomacyModel.GetScoreOfWarInternal[/code] 会无条件访问领袖和统治家族关系(
[code]rulingClan.GetRelationWithClan(...)[/code])。当某个势力被消灭、某位领主刚被处决/杀死,或某个家族没有领袖时,就会因未处理的
[code]NullReferenceException[/code] 而崩溃。[/
]
[][b]修复:[/b] 在整个外交链路(
[code]GetScoreOfWarInternal[/code]、
[code]GetScoreOfDeclaringWar[/code]、
[code]GetScoreOfDeclaringPeace[/code]、
[code]TKDiplomacyModel[/code]、
[code]DeclareWarDecision[/code]、
[code]DeclareWarBarterable[/code])中实现了安全的空值保护与 Harmony 异常终结器,安全返回中立分数(
[code]0f[/code])并防止战役崩溃。[/
]
[/list]2. 城镇锻造每日订单崩溃修复
[list]
[][b]根本原因:[/b] 在 TaleWorlds 的
[code]CraftingCampaignBehavior.CreateTownOrder[/code] 中,游戏会检查所选英雄是否在定居点外。然而,TaleWorlds 开发者加入了一个
[code]Debug.Print[/code] 调用,但[b]忘记添加 [/b]
[code]return;[/code],导致下一行立即访问
[code]orderOwner.CurrentSettlement.Town[/code],当英雄正在旅行或已解散时就会崩溃。[/
]
[][b]修复:[/b] 在生成订单前验证英雄的定居点状态,并为
[code]DailyTick[/code] 添加故障保护终结器,以抑制意外的轮换异常。[/
]
[/list]3. 无势力领主与百科崩溃修复
[list]
[][b]根本原因:[/b] 点击或查看其势力已被消灭的领主(
[code]Hero.Clan == null[/code])的百科条目时,会导致 UI 视图模型(
[code]HeroVM.ExecuteLink[/code]、
[code]EncyclopediaHeroPageVM.Refresh[/code]、
[code]EncyclopediaHeroPageVMMixin[/code])崩溃。[/
]
[][b]修复:[/b] 为官职和百科视图添加了全面的空值保护,并加入
[code]Common.InvokeWithLog[/code] 保护措施,以防止在 UI 链接/按钮点击时导致桌面崩溃。[/
]
[/list]4. 定居点所有权转移崩溃修复
[list]
[][b]根本原因:[/b]
[code]ClanVariablesCampaignBehavior.OnSettlementOwnerChanged[/code] 在定居点被占领且旧或新家族所有者为空时崩溃。[/
]
[][b]修复:[/b] 在尝试更新家乡定居点之前,安全验证家族有效性。[/]
[/list]5. 蔡文姬任务进度修复(HistoryQuest saiwaizhige 03)
[list]
[][b]根本原因:[/b] 原模组使用了严格硬编码的中文字符串检查(
[code]"匈奴控弦精锐"[/code])。本地化游戏或修改过的匪徒队伍无法增加胜利计数(卡在 0/4),导致队伍无限重生。[/
]
[][b]修复:[/b] 通过引擎
[code]StringId[/code] 匹配(
[code]xiongnuBanditParty[/code] 和
[code]xiongnuBanditPartyBoss[/code])以及中文、英文和泰文本地化名称检查来识别任务队伍。[/
]
[/list][line]
📥 安装指南
[list=1]
[]解压/复制文件夹
[code]ThreeKingdoms_BugFixes[/code] 到游戏的
[code]Modules[/code] 目录:
text

...\Mount & Blade II Bannerlord\Modules\ThreeKingdoms_BugFixes[/
]
[]确认文件夹中存在
[code]SubModule.xml[/code] 和
[code]bin\Win64_Shipping_Client\ThreeKingdoms_BugFixes.dll[/code]。[/
]
[]如有必要,右键单击
[code]ThreeKingdoms_BugFixes.dll[/code] -> [b]属性[/b] -> 勾选 [b]解除锁定[/b] -> 单击 [b]确定[/b]。[/
]
[]使用 [b]BLSE Launcher[/b] 启动游戏,并在单人游戏模组列表中启用 [b]Three Kingdoms Bug Fixes[/b]。[/]
[/list][line]
📋 加载顺序指南
加载顺序(独立 / 英文 / 中文)
text

1. Harmony
2. ButterLib(可选)
3. UIExtenderEx(可选)
4. Mod Configuration Menu v5(可选)
5. Native
6. SandBoxCore
7. Sandbox
8. CustomBattle
9. StoryMode
10. BirthAndDeath(可选)
11. YiGuThreeKingdoms
12. YiGuSanGuoPatchBundle(可选)
13. ThreeKingdoms_BugFixes <--- 直接放在 YiGu Three Kingdoms 之后
加载顺序(搭配泰语翻译模组)
text

...(TaleWorlds 核心模组)
- YiGuThreeKingdoms
- YiGuSanGuoPatchBundle(可选)
- ThreeKingdoms_BugFixes <--- 在翻译模组之前加载
- ThaiThreeKingdoms_v2 <--- 放在最底部

[line]

📌 更新日志(Patch Notes)
此模组是 [b]YiGu Three Kingdoms(衣谷三国)[/b] 的社区技术漏洞修复模组,并修复了影响三国战役的 Bannerlord v1.2.x 主游戏错误:
1. 修复因外交与战争评估 AI 在跨天时导致的游戏崩溃(Diplomacy AI Crash)
[list]
[][b]原因:[/b] 游戏中的每一天,各势力的 AI 都会随机评估开战(
[code]DailyTickClan[/code] ->
[code]ConsiderWar[/code]),TaleWorlds 的代码(
[code]GetScoreOfWarInternal[/code])尝试读取领袖家族关系(
[code]RulingClan[/code] 和
[code]Leader[/code]),但没有加入
[code]null[/code] 检查。当某个势力覆灭、武将刚死亡,或尚无首领的叛军家族时,游戏会立即崩溃。[/
]
[][b]修复:[/b] 加入 Null 拦截系统与 Exception Finalizer,覆盖工作链中的 8 个关键点(
[code]GetScoreOfWarInternal[/code]、
[code]GetScoreOfDeclaringWar[/code]、
[code]GetScoreOfDeclaringPeace[/code]、
[code]TKDiplomacyModel[/code]、
[code]DeclareWarDecision[/code]、
[code]DeclareWarBarterable[/code] 等),使游戏能够 100% 平稳跨天。[/
]
[/list]2. 修复因城镇铁匠铺订单系统在跨天时导致的游戏崩溃(Town Crafting Order Crash)
[list]
[][b]原因:[/b] 在 TaleWorlds 主游戏的
[code]CreateTownOrder[/code] 函数中,当检测到英雄不在城市时,代码中保留了 Debug Print 命令,但[b]忘记加入 [/b]
[code]return;[/code],导致下一行尝试读取城市并发生
[code]NullReferenceException[/code],游戏崩溃。[/
]
[][b]修复:[/b] 预先进行 Harmony Patch 拦截;如果英雄或城市无效,则安全跳过该订单生成,并加入 Finalizer 防止每日铁匠订单轮换期间游戏崩溃。[/]
[/list]3. 修复点击查看势力分裂/无归属武将时导致的游戏崩溃(Encyclopedia & Hero Link Crash)
[list]
[][b]原因:[/b] 当通过百科 UI 点击查看没有家族或势力已分裂的武将时,游戏本体以及模组的武将官职系统(
[code]OfficialPosition[/code])会因为家族值为
[code]null[/code] 而崩溃。[/
]
[][b]修复:[/b] 在
[code]HeroVM.ExecuteLink[/code]、
[code]EncyclopediaHeroPageVM.Refresh[/code]、
[code]EncyclopediaHeroPageVMMixin[/code] 和
[code]Common.InvokeWithLog[/code] 中加入 Safe Guard 拦截,防止点击 UI 链接时游戏崩溃回桌面。[/
]
[/list]4. 修复攻占城市导致城市易手时的游戏崩溃(Settlement Owner Change Crash)
[list]
[][b]原因:[/b] 在
[code]ClanVariablesCampaignBehavior.OnSettlementOwnerChanged[/code] 中,如果旧所有者或新所有者为 null(例如势力已覆灭或没有领袖),主游戏代码会立即崩溃。[/
]
[][b]修复:[/b] 在更新城市 HomeSettlement 前,拦截并检查 Clan 状态。[/]
[/list]5. 修复任务“塞外曲-最终章”(HistoryQuest saiwaizhige 03 / 蔡文姬任务)
[list]
[][b]原因:[/b] 原模组直接使用中文字符串检查士兵名称(
[code]"匈奴控弦精锐"[/code])。如果军队名称被翻译或 StringId 带有尾部编号,击杀计数将不会增加(卡在 0/4),导致敌军无限重生。[/
]
[][b]修复:[/b] 改为通过军队的
[code]StringId[/code](
[code]xiongnuBanditParty[/code] 和
[code]xiongnuBanditPartyBoss[/code])以及中文、英文和泰文军队名称进行检测。[/
]
[/list][line]
📥 安装方法(Installation)
[list=1]
[]复制文件夹
[code]ThreeKingdoms_BugFixes[/code] 并将其放入游戏的 Modules 文件夹:
text

...\Mount & Blade II Bannerlord\Modules\ThreeKingdoms_BugFixes[/
]
[]检查文件夹中是否完整包含
[code]SubModule.xml[/code] 文件以及
[code]bin\Win64_Shipping_Client\ThreeKingdoms_BugFixes.dll[/code] 文件夹。[/
]
[]右键单击
[code].dll[/code] 文件并选择 [b]属性[/b] -> 如果有 [b]解除锁定[/b] 复选框,请勾选并单击 OK。[/
]
[]打开 [b]BLSE Launcher[/b] 并勾选启用模组 [b]Three Kingdoms Bug Fixes[/b]。[/]
[/list][line]
📋 模组排序(Load Order)
情况 1:与泰语翻译模组一起游玩(Thai Translation + BugFixes)
text

[基础系统模组]
1. Harmony
2. ButterLib(如有)
3. UIExtenderEx(如有)
4. Mod Configuration Menu v5(如有)

[TaleWorlds 主游戏模组]
5. Native
6. SandBoxCore
7. Sandbox
8. CustomBattle
9. StoryMode
10. BirthAndDeath(如有)

[三国模组与附加模组]
11. YiGuThreeKingdoms(或三国主模组文件夹)
12. YiGuSanGuoPatchBundle(如有)
13. ThreeKingdoms_BugFixes <--- 放在三国模组之后
14. ThaiThreeKingdoms_v2 <--- 放在最后
[i](注意:泰语翻译模组带有自动检测系统,不会与 ThreeKingdoms_BugFixes 重复加入修复代码)[/i]
情况 2:仅游玩英文或中文(Standalone / English / Chinese)
text

[基础系统模组]
1. Harmony
2. ButterLib / UIExtenderEx / MCM(如有)

[主游戏模组]
3. Native
4. SandBoxCore
5. Sandbox
6. CustomBattle
7. StoryMode

[三国模组]
8. YiGuThreeKingdoms
9. YiGuSanGuoPatchBundle(如有)
10. ThreeKingdoms_BugFixes <--- 放在三国模组之后