实战用法
modify_character_flag 常用于需要对角色进行计数或累积追踪的场景,例如记录某角色执行某项任务的次数、累积受伤次数或积累特定行为点数,配合后续 trigger 判断达到阈值时触发特殊事件或解锁特质。注意该指令只能修改已存在的 flag,因此通常需要先在角色初始化阶段用 set_character_flag 创建带初始值的 flag,之后再用本指令对其进行数值增减。
# 每次角色参与某事件,计数 flag +1
character_event = {
id = my_mod.10
hidden = yes
immediate = {
# 假设 "battle_count" flag 已在角色创建时初始化
modify_character_flag = {
flag = battle_count
value = 1
}
}
}
配合关系
[set_character_flag](/wiki/effect/set_character_flag):在使用 modify_character_flag 之前必须先用此命令创建并设定 flag 的初始值,否则本指令不会生效。
[has_character_flag](/wiki/trigger/has_character_flag):用于检查 flag 是否存在及其当前数值是否达到阈值,是触发后续逻辑(如解锁特质、触发事件)的必要判断条件。
[clr_character_flag](/wiki/effect/clr_character_flag):当计数达到目标值完成某阶段逻辑后,用于重置或清除该 flag,避免数值无限累积产生意外行为。
[add_trait](/wiki/effect/add_trait):常作为计数达标后的奖励结果,与 has_character_flag 的阈值判断配合,在满足条件时为角色添加对应特质。
常见坑
- flag 不存在时静默失效:新手最常见的错误是直接使用
modify_character_flag 而忘记预先用 set_character_flag 初始化该 flag,由于游戏不会报错只会静默跳过,导致计数逻辑完全不生效且极难排查。
- scope 指向错误:该指令必须在 CHARACTER scope 下执行,若在 COUNTRY 或其他 scope 中调用而未通过
character = { ... } 等方式正确切换作用域,同样会静默失败。