实战用法
remove_relation_rule_override 常用于撤销之前通过 add_relation_rule_override 设置的外交关系限制,例如当某个事件结束或国策完成后,解除对特定国家或一类国家(如所有民主国家)宣战的禁令。典型场景:和平协议事件触发后,移除曾经强制约束 AI 不对某目标宣战的规则,让外交逻辑恢复正常。
# 当和平条约到期事件触发时,解除对德国的宣战限制
country_event = {
id = my_mod.42
option = {
name = my_mod.42.a
remove_relation_rule_override = {
target = GER
can_not_declare_war = yes
}
}
}
配合关系
[add_relation_rule_override](/wiki/effect/add_relation_rule_override):这是配套的添加命令,通常先用 add 设定规则、后用 remove 撤销,形成完整的外交限制生命周期管理。
[has_active_rule](/wiki/trigger/has_active_rule):在执行移除前先用此触发器判断该规则是否确实存在,避免在规则未被添加时执行无效移除造成逻辑混乱。
[diplomatic_relation](/wiki/effect/diplomatic_relation):同样用于修改两国之间的外交状态,常与规则覆盖的添加/移除搭配,一起构建复杂的外交事件链。
[has_completed_focus](/wiki/trigger/has_completed_focus):常作为移除规则的前置条件,当特定国策完成后触发撤销,使外交限制与国策树进度绑定。
常见坑
- 移除时字段必须与添加时完全一致:
target 或 trigger 的值以及具体的规则字段(如 can_not_declare_war)必须与 add_relation_rule_override 中写的完全对应,若字段不匹配则移除不会生效,原有限制仍然存在,但游戏不会报错,导致规则"幽灵残留"难以排查。
target 与 trigger 不可混用:添加时用了 target = GER(针对具体国家),移除时却写成 trigger = is_democratic_country,两者属于不同类型的 override 条目,不能互相抵消,必须用同种方式才能正确移除对应规则。