命令百科

effect · set_relation_rule

Definition

  • Supported scope:COUNTRY
  • Supported target:THIS

Description

DEPRECATED: See add_relation_rule_override

实战 · 配合 · 坑

实战内容由 AI 生成,并已对照 vanilla 命令词表校验 —— 请当作起点而非权威依据。上方的定义节才是游戏自带文档原文。

实战用法

set_relation_rule 是一个已废弃的旧版指令,历史上用于设置国家间的外交关系规则(如是否允许宣战、贸易等),在早期 mod 中常见于阵营关系或傀儡关系的初始化阶段。由于官方已将其标记为 DEPRECATED,任何新 mod 应改用 add_relation_rule_override 替代。若你在维护老旧 mod,见到此指令时请视其为迁移标记。

# ❌ 旧写法(已废弃,不推荐在新 mod 中使用)
GER = {
    set_relation_rule = {
        # 旧参数写法,行为已不受保证
    }
}

# ✅ 新写法(应替换为)
GER = {
    add_relation_rule_override = {
        # 使用当前支持的参数
    }
}

配合关系

  • [add_relation_rule_override](/wiki/effect/add_relation_rule_override) — 这是官方指定的替代品,迁移时应直接用此指令重写原有逻辑,功能语义相同但受到持续支持。
  • [diplomatic_relation](/wiki/effect/diplomatic_relation) — 常与关系规则类指令搭配,用于同步设置正式外交关系状态(如保证、不侵犯条约等)。
  • [add_opinion_modifier](/wiki/effect/add_opinion_modifier) — 在调整关系规则的同时修改双边好感度,使外交状态与 AI 行为倾向保持一致。
  • [has_active_rule](/wiki/trigger/has_active_rule) — 用于检测某条关系规则是否已生效,可在条件判断中配合使用以避免重复设置。

常见坑

  1. 继续在新 mod 中使用此指令:由于游戏版本迭代,DEPRECATED 指令随时可能被引擎静默忽略或报错,直接照搬含有 set_relation_rule 的老 mod 代码而不替换为 add_relation_rule_override,会导致规则根本不生效且难以排查。
  2. 误以为 scope 可以是 STATE 或 CHARACTER:此指令仅在 COUNTRY scope 下有效,若在事件的 option 中写在 state scope 内(例如通过 every_owned_state 进入后调用),游戏不会报语法错误但指令会被跳过,造成逻辑静默失败。