实战用法
当 mod 通过脚本动态修改某国的科技解锁状态(例如用 set_country_flag + 条件判断来隐藏或显示特定科技)后,游戏界面不会自动刷新隐藏科技的布局,此时需要调用此 effect 强制刷新。典型场景包括:自定义科技树 mod 在特定事件触发后改变科技可见性,或在国策完成时解锁隐藏科技分支。
country_event = {
id = my_mod.1
immediate = {
set_country_flag = unlocked_secret_tech_branch
mark_technology_tree_layout_dirty = yes
}
}
配合关系
[has_country_flag](/wiki/trigger/has_country_flag):通常先用此触发器检查某个标记是否存在,再决定是否需要刷新科技树布局,形成"条件 → 刷新"的完整逻辑链。
[clr_country_flag](/wiki/effect/clr_country_flag):清除控制科技可见性的国家标记时,科技树布局同样会过时,配合此 effect 确保界面与实际状态同步。
[complete_national_focus](/wiki/effect/complete_national_focus):国策完成脚本中若会影响隐藏科技的显示条件,应在同一执行块内调用刷新,避免玩家看到旧的科技树状态。
[add_ideas](/wiki/effect/add_ideas):某些 idea 会通过 modifier 影响科技树的隐藏逻辑,添加 idea 后紧跟此 effect 可保证显示即时更新。
常见坑
- 忘记调用导致界面不同步:修改了影响隐藏科技可见性的标记或变量后,若不调用此 effect,玩家在同一游戏会话中打开科技界面时看到的布局仍是旧状态,需要重新载入存档才能刷新,这是新手最常漏掉的一步。
- 在错误的 scope 下调用:此 effect 只能在 COUNTRY scope 下生效,若在 STATE 或 CHARACTER scope 中误用(例如写在
every_owned_state 的块内),脚本不会按预期执行,需确保调用前已切换或处于正确的国家 scope。