实战用法
modify_unit_leader_flag 用于在 mod 中对已存在的数值型将领标记进行累加或递减操作,常见于动态成长系统中追踪将领的战役次数、伤亡计数或特殊事件积分。需要注意的是该效果只在 flag 已经存在的情况下才会生效,因此通常与预先设置 flag 的逻辑搭配使用。以下示例展示在一场战役结束事件中为将领的战斗计数标记加一:
# 在某个 CHARACTER scope 的事件 option 中
option = {
name = my_event.1.a
# 先确保 flag 存在,再修改其值
modify_unit_leader_flag = {
flag = battles_fought_count
value = 1
}
}
配合关系
[set_unit_leader_flag](/wiki/effect/set_unit_leader_flag):在调用 modify_unit_leader_flag 之前,必须先用此命令初始化 flag 并赋予初始值,否则修改操作将静默失败。
[has_unit_leader_flag](/wiki/trigger/has_unit_leader_flag):在修改前用此触发器检查 flag 是否已存在及其当前值,实现条件分支逻辑,避免无效调用。
[clr_unit_leader_flag](/wiki/effect/clr_unit_leader_flag):当计数或积分达到阈值后,可用此命令清除 flag,配合 set_unit_leader_flag 重置循环计数。
[modify_character_flag](/wiki/effect/modify_character_flag):官方推荐的替代命令,功能相同但面向更通用的 CHARACTER scope,新 mod 应优先使用此命令替换旧写法。
常见坑
- flag 不存在时静默失败:新手常忘记该效果仅在 flag 已存在时才生效,如果没有事先用
set_unit_leader_flag 初始化,脚本不会报错但数值根本不会改变,导致难以排查的逻辑 bug。
- 在 COUNTRY scope 中误用:该效果仅作用于
CHARACTER scope,若在国家 scope 下直接调用而未先通过 any_character 或具体角色 scope 进入角色 scope,效果将无法执行,需确认当前 scope 类型正确。