实战用法
remove_province_modifier 常用于事件或决策的"清除阶段",例如当一个特殊事件结束后移除之前通过 add_province_modifier 施加的临时省份加成(如受损基础设施、占领期间的特殊效果等)。也适合在 mod 中配合周期性决策实现"buff 轮换"——先移除旧修正器,再添加新修正器。
# 示例:解除封锁后移除港口封锁修正器
state_event = {
id = blockade.2
...
immediate = {
remove_province_modifier = {
static_modifiers = { port_blockade_penalty }
province = {
limit_to_naval_base = yes
}
}
}
}
配合关系
[add_province_modifier](/wiki/effect/add_province_modifier):最直接的配套命令,通常先用它添加修正器,再在适当时机用 remove_province_modifier 将其清除,构成完整的"添加—移除"生命周期。
[has_occupation_modifier](/wiki/trigger/has_occupation_modifier):在 limit 块中配合使用,可以先检查目标省份是否确实存在某个修正器,避免移除一个不存在的修正器时产生不必要的警告日志。
[add_state_modifier](/wiki/effect/add_state_modifier):有时省级修正器和州级修正器需要同步清除,在同一事件选项里将两者配合使用以保持逻辑一致性。
[any_province_building_level](/wiki/trigger/any_province_building_level):可在条件判断中筛选出具有特定建筑等级的省份再执行移除,精确控制修正器清除的范围。
常见坑
-
province 块未指定时默认不生效:province 字段是必填的,新手容易只写 static_modifiers 而忘记指定目标省份,导致命令静默失败——既没有报错,修正器也没有被移除。必须明确写 province = 500 或使用省份筛选选项(如 all_provinces)。
-
修正器名称必须与 add_province_modifier 时完全一致:如果当初添加时用的是 my_port_mod,移除时写成 my_Port_mod(大小写不同)或拼写有误,游戏不会报错但修正器不会被移除,导致修正器永久残留在省份上。建议在脚本中统一用常量或注释标注修正器名称。