实战用法
add_relation_modifier 常用于外交系统 mod 中,为两个特定国家之间附加持久性静态修正,例如签订秘密协议后赋予双方额外贸易收益或外交压力加成。与普通 add_opinion_modifier 不同,它绑定的是 static modifier,可以携带更丰富的数值效果。
# 当玩家完成某个外交决议后,向目标国添加关系修正
effect_on_complete = {
GER = {
add_relation_modifier = {
target = ITA
modifier = secret_pact_bonus
}
}
}
配合关系
[add_opinion_modifier](/wiki/effect/add_opinion_modifier) — 通常与关系修正同时使用,opinion modifier 负责显示外交好感度变化,relation modifier 负责挂载实际数值效果,二者互补。
[add_dynamic_modifier](/wiki/effect/add_dynamic_modifier) — 若需要带有到期时间或动态变量的修正,可与 add_relation_modifier 搭配:relation modifier 处理双边关系,dynamic modifier 处理本国内政效果。
[has_dynamic_modifier](/wiki/trigger/has_dynamic_modifier) — 在触发条件中检测某修正是否已存在,防止重复叠加同一 relation modifier 导致数值异常。
[diplomatic_relation](/wiki/effect/diplomatic_relation) — 在建立正式外交关系(如不侵犯协议)的同时调用,使外交状态与关系修正保持逻辑一致。
常见坑
- modifier 必须在
static_modifiers 中预先定义:新手常直接填写一个未在 common/modifiers/ 中声明的名称,导致修正静默失效且不报错,实际游戏内毫无效果。
- target 填写方向易搞反:该 effect 是在当前 scope 国家身上执行,
target 指向对方,修正是附加在"当前国 → target 国"这条关系上,而非双向生效;若需双向,必须在双方 scope 下各执行一次。