部队行为微调【1.4.5-1.4.8 | 1.3.15 | 1.2.12】[适配战帆DLC]

收藏
部队行为微调【1.4.5-1.4.8 | 1.3.15 | 1.2.12】[适配战帆DLC]
总体评价(4.5)
  • 分类:骑砍2:霸主MOD - 霸主功能
  • 来源: 原创
  • 浏览:9413 次
  • 下载:1531 次
  • 大小:214.8K
  • 版本:1.4.5-1.4.8 | 1.3.15 | 1.2.12
  • 作者:爬行动物
  • 时间:2026-09-14
详细内容

需要四前置 | MCM 可随时开关
标有此色的内容为本次更新新增或调整的功能

主要功能

1. 旗手保护
   • 旗手会尽量待在编队后方,不会贸然往前冲。
   • 接敌时,编队士兵会尽量留意旗手,并把旗手护在身后。

2. 旗帜拾取
   • 旗帜掉落后,附近士兵会自动拾取。此行为仅作为辅助判定,不是强制指令,防止旗帜掉落在敌军阵中时士兵盲目前往拾取
   • 捡起后会继续按旗手逻辑行动。

3. 投掷武器行为调整
   • 士兵无法将投掷武器切换到近战模式。

4. 双手武器优先
   • 有双手武器的步兵会优先掏双手武器。

5. 强制避用纯戳刺长杆
   • 关闭时,士兵会以可挥砍的武器对付步兵,以长杆武器对付骑兵。
   • 开启时,士兵无论对步还是对骑都不会使用纯戳刺长杆。


6. 攻城入口优化
   • 攻城时,如果城门已经打开或被破坏,进攻编队会优先尝试从城门进入。
   • 减少城门已经可通行时,士兵仍然前往架设攻城梯的情况。



作用范围
上述功能均可按需限定为仅对玩家及同盟部队生效,默认不勾选时则对全阵营应用。
骑兵不受影响,玩家不受影响。



战场编队指令
下蹲 / 起身
• Ctrl+B 打开指令弹窗,选择编队后可设置下蹲/起身。
• Ctrl+1\~8 可直接切换指定编队的蹲下状态。
• 加入全选功能:例如部队士兵在 1、2、3、4 编队时,Ctrl+5 / 6 / 7 / 8 / 0 即为全选。

下蹲士兵视线碰撞优化
本次更新重点改善前排士兵下蹲后,仍然遮挡后排射手视线的问题。
• 前排士兵下蹲后,游戏会尽量按照下蹲状态处理其身体碰撞范围。
• 减少前排下蹲士兵对后排站立射手的视线遮挡。
• 后排射手可以更顺畅地观察并攻击前方目标。
• 不改变士兵实际下蹲动作,只调整下蹲状态下的视线与身体碰撞判定。






Mod 冲突处理策略
说明:可能没效果
0 默认
• 不做冲突检测,各跑各的。

1 覆盖
• 本 Mod 功能优先。
• 检测到与本 Mod 冲突的其他 Mod 时,本 Mod 照常运行,冲突 Mod 的对应功能会被覆盖。

2 让位
• 冲突 Mod 优先。
• 检测到冲突 Mod 时,本 Mod 自动禁用有冲突功能,把控制权交给对方。

与 RBM 一起使用
如需与真实战斗 Mod 一起游玩,请在 RBM 选项中启用原版攻防 AI,并在本 Mod 选项中关闭“ 强制避用纯戳刺长杆”的功能

补充说明
• 本 Mod 以优化士兵战场行为为主,尽量不改变原版整体战斗节奏。
• 不同版本、不同大型战斗 Mod 组合下,部分行为表现可能略有差异。
• 如果发现某项行为不符合预期,建议先在 MCM 中单独关闭对应功能排查。

提示:短弓可以蹲着射箭不会起身。


更新日志

2026/9/14
• 优化下蹲士兵的视线碰撞判定,显著减少前排下蹲士兵遮挡后排射手的问题。
• 新增攻城入口优化,改善城门打开或破坏后的进城判断。
• 优化下蹲士兵的视线碰撞,减少对后排射手的遮挡。
• 增加诊断日志功能,方便排查士兵武器状态异常。
• 纯戳刺长杆倾向调整更名,并改为默认关闭。
• 新增 1.3.15和1.2.12 版本适配。


2026/8/18
• 新增旗帜掉落后的补捡支持。
• 优化旗手跟随与旗手保护逻辑。
• 优化士兵武器使用行为。
• 优化纯戳刺长杆的使用倾向。
• 优化整体代码结构与部分行为细节。
相关视频
无法播放该视频源
相关截图添加图片
点评
* 给总体评价评分
*
Smilies

瞄瞄瞄????

总体评价

这mod崩有点厉害 攻城打3分钟左右就开始崩了

2026-10-27

123321ggg

总体评价

用这个mod就崩

2026-10-01

clawsans

总体评价

【Bug 报告】SoldierBehaviorTweaks — 战场中随机崩溃(原生访问违例)

**环境**
- 游戏:v1.3.15.110062(Steam,Win64)
- SoldierBehaviorTweaks:v1.3.15
- 触发场景:进入战场 Mission 后,战斗中**随机**(有几率)崩溃,非固定时点

**崩溃证据(WER 转储分析)**
- 异常:`0xC0000005` ACCESS_VIOLATION,**读操作,访问地址 = 0x0**(空指针)
- 崩溃指令:`TaleWorlds.Native.dll+0x34A8A0`
  ```
  movzx  r8d, byte ptr [r14 + r11]     ; r14+r11 = 0  → 空指针解引用
  ```
- 所属函数:Native RVA `0x34A7F0 – 0x34A939`,行为是**字符串规范化处理**
  (逐字符大小写转换 + 首尾空格检查,典型 ASCII 路径/名称比较)
- 调用链:`... → clr.dll(托管帧)→ TaleWorlds.Native.dll+0x4BEF33 → 崩溃`
  即:**托管代码调用引擎后,在引擎内部处理字符串时空指针崩溃**

**代码定位(反编译 SoldierBehaviorTweaks.dll)**

```csharp
CrouchedCapsuleTweaker.TryApply:
    if (Game.Current == null) return;
    var om = Game.Current.ObjectManager;
    if (om == null) return;                                  // 只检查了 ObjectManager 非空
    foreach (Monster m in om.GetObjectTypeList())   // 未校验元素字段是否已就绪
        if (ShouldPatchMonster(m)) PatchMonster(m);

CrouchedCapsuleTweaker.ShouldPatchMonster(Monster monster):
    if (monster == null) return false;                                    // 只判了 null
    if (!String.Equals(monster.MonsterUsage, \"human\", Ordinal)) return false;  // ← 读原生字符串
    if (!String.Equals(monster.StringId,     \"human\", Ordinal)) return false;  // ← 读原生字符串
    ... 随后读 CrouchedBodyCapsulePoint1/2、Radius
```

**根因分析**

(已确定的部分)
1. **Monster 定义全部来自官方模块**(`Native/ModuleData/monsters.xml`、`SandBox/ModuleData/monsters.xml`、`monster_usage_sets.xml`、`skeleton_scales.xml`)—— 玩家侧无任何 mod 添加或覆写 Monster,**排除第三方数据污染**。
2. 崩溃就发生在「读取 Monster 的字符串属性」→ 引擎字符串处理 → 空指针。
3. **该方法内的 try/catch 拦不住**:`0xC0000005` 是原生访问违例,不属于托管异常,所以即使有 catch 逻辑,游戏仍直接崩溃(此点在日志里能看到 `Crouched capsule tweak failed` 的格式串,说明作者已加保护,但对原生 AV 无效)。

(推断,供作者参考)
4. `TryApply` 的执行时机可能**早于 Monster 对象字段的完全初始化**——`GetObjectTypeList` 只保证「对象已注册」,不保证「字段已填充」。此时读 `MonsterUsage` / `StringId` 会拿到未初始化的原生字符串指针 → AV。这也能解释为什么是「随机/有几率」而非必现(装载时序竞态,mod 越多越容易命中窗口)。

**建议修复**
1. **推迟执行时机**:改为在 `OnGameStart`、或 Campaign 首个 tick、或 Mission 首次加载之后再执行,避开数据初始化窗口;
2. **逐项防御**:遍历时用 try/catch 包住**单个元素**的处理(而非整段),并先校验 `MonsterUsage`/`StringId` 是否可用,跳过无效项;
3. 若可能,把字符串比较前的读取做**惰性/缓存**处理,避免在不确定时机反复读原生字符串。

**补充**
- 可提供完整崩溃转储(88MB,含异常流)与对应 `rgl_log`。
- 复现路径:加载战役 → 进入战场 → 战斗中随机崩溃(与该 mod 的蹲伏功能相关,MCM 中**没有**该功能的开关,无法由用户侧关闭)。

2026-09-29

THE-FIRMAMENT

总体评价

现在bug还在,人多了战斗到一半就会崩溃,根本没办法打完一场完整的战斗,一个个排查出是该模组导致的

2026-09-16

绝版大泥巴

总体评价

看很多人说会报错崩溃,我1.4.7版本确实也报错,只装了4前置和战场2040人数的MOD,在战场里砍着砍着就会跳出让我重新设置的窗口,然后卡死无响应,只要不装这个MOD就没事。

2026-08-19

冰雪公子

总体评价

还是会报错

2026-08-19

dffssd

总体评价

和一些战场器械那种MOD有冲突然后和那种改了攻城逻辑还有沉浸式战场也可能存在冲突

2026-08-18
dffssd 回复 十字流程 :
回复 2026-08-18

进战场之前星星眼
十字流程:
回复 2026-08-18

具体咋冲突法,会直接崩溃吗,我这用战场器械用习惯了

三俗师

总体评价

1.4.7战场中F6委派会出现星星眼报错,最终二分法确定是这个mod导致的。看了一下crash文件,bug是由于调用F6 委派部队指挥(AssignMissionCaptain)引擎原生函数瞬间发生内存非法读写造成的。试验了一下,在所有小队都有NPC队长时不会触发,仅在无NPC队长时会报错。推测可能是mod修改的agent行为无法覆写AI队长agent行为,导致触发0xFFFFFFFFFFFFFFFF访问冲突。供您参考,谢谢您制作的mod!

2026-08-12
优雅永不过时 回复 爬行动物 :
回复 2026-08-12

修了吗  有最新版了吗 大佬
爬行动物:
回复 2026-08-12

非常感谢您提供的专业反馈!这对修复Bug非常有帮助,我会尽快着手修复。

zhaoxitt

总体评价

1.4.7进战场后右键格挡会崩溃闪退

2026-08-07
绝版大泥巴 回复 爬行动物 :
回复 2026-08-07

1.4.7确实是会崩溃,我只有4前置和战场2040人数这两个MOD一样闪退,就是进去后砍着砍着就跳出让我重新设置的窗口,无论点“是”还是“否”都会卡住无响应,只要不装这个MOD就没事。
爬行动物:
回复 2026-08-07

这个mod只改了小兵又没改玩家的数据这能怪我头上的,你确定是排除rts,崩溃跳过,番茄编辑器这类mod之外只打了本mod然后才崩溃的

大明铁骑

总体评价

1.46,一选编队蹲下就崩溃闪退

2026-08-07
12下一页
推荐下载more
热门下载more