实战用法
diplomatic_relation 常用于事件或决策触发时,动态建立或撤销两国之间的外交协议,例如在剧本 mod 中让某国在特定条件下获得或失去对另一国的军事通行权、保证关系等。它也常见于"历史修正"类 mod,在游戏开局的 history 块之外通过脚本动态调整外交格局。
# 示例:某事件选项中,ROOT 国向 POR 申请军事通行权
option = {
name = my_event.1.a
diplomatic_relation = {
country = POR
relation = military_access
active = yes
}
}
配合关系
[gives_military_access_to](/wiki/trigger/gives_military_access_to) — 在触发条件中先检查通行权是否已存在,避免重复添加或逻辑矛盾。
[give_guarantee](/wiki/effect/give_guarantee) — 两者常搭配使用,在同一事件选项中同时建立保证与通行权,模拟全面外交协议。
[add_opinion_modifier](/wiki/effect/add_opinion_modifier) — 建立外交关系后,同步添加好感度修正,使关系变动在 UI 上更有说服力。
[declare_war_on](/wiki/effect/declare_war_on) — 宣战前若存在军事通行权,需先用 active = no 撤销,否则可能产生逻辑冲突;两者常在对立的事件分支中配对出现。
常见坑
country 填的是固定 TAG 而非 scope 关键字:country 字段只接受国家标签(如 POR、GER)或可解析为国家的变量,不能直接写 THIS、ROOT 等 scope 关键字,新手常因此导致效果静默失效。
- 忘记
active = no 来撤销关系:省略 active 字段或始终写 yes 会导致无法通过脚本移除已有的外交关系,需要显式写 active = no 才能取消,而不是重新执行一次 active = yes。