实战用法
modify_project_flag 适用于需要对特殊项目上已有的数值型 flag 做累加或递减的场景,例如追踪某项目的研究阶段计数器或资源消耗累计值。注意它只会在 flag 已经存在时才生效,因此通常与初始化逻辑配合使用。典型场景是在项目每次推进时将进度标记加一:
# 在特殊项目的某个阶段触发块中
SPECIAL_PROJECT = {
modify_project_flag = {
flag = research_stage_counter
value = 1
}
}
配合关系
[set_project_flag](/wiki/effect/set_project_flag) — 用于在首次进入项目时初始化 flag 的初始值,确保后续 modify_project_flag 有旗标可操作。
[clr_project_flag](/wiki/effect/clr_project_flag) — 当累计值达到上限或阶段重置时,配合清除旗标以便重新开始计数周期。
[has_project_flag](/wiki/trigger/has_project_flag) — 在执行修改前用作条件检查,确认旗标存在并符合预期状态,避免逻辑错误。
[add_project_progress_ratio](/wiki/effect/add_project_progress_ratio) — 常在同一执行块中配合使用,在修改 flag 计数的同时推动项目实际进度,保持数据与进度同步。
常见坑
- 忘记预先初始化 flag:
modify_project_flag 在 flag 不存在时静默失败,不会报错也不会创建新 flag,新手常因此误以为脚本正常运行,实际上计数器从未更新——务必先用 set_project_flag 赋予初始值。
- 在错误 scope 下调用:该 effect 仅在
SPECIAL_PROJECT scope 内有效,若在 country 或 state 等其他 scope 中调用不会产生任何效果,调试时难以察觉,需确认外层 scope 已正确切换至对应特殊项目。