命令百科

trigger · has_active_rule

Definition

  • Supported scope:COUNTRY
  • Supported target:any

Description

Checks if the country's faction has a specific active rule

### Examples

TAG = { has_active_rule = rule_key }

实战 · 配合 · 坑

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

实战用法

has_active_rule 常见于派系/阵营 mod 中,用于根据当前派系规则动态开放或锁闭决议、国策以及科技奖励。例如,当派系激活了某条禁止单独媾和的规则时,可以用它来屏蔽相关外交选项或触发事件警告。

# 若派系当前激活了"no_separate_peace"规则,则禁止该决议
GER = {
    available = {
        NOT = { has_active_rule = no_separate_peace }
    }
}

配合关系

  • [compare_ideology_with_faction](/wiki/trigger/compare_ideology_with_faction):检查国家与派系的意识形态关系,配合 has_active_rule 可同时约束"派系规则是否激活"与"意识形态是否匹配",实现更精细的条件门槛。
  • [has_completed_faction_goal](/wiki/trigger/has_completed_faction_goal):先判断派系目标是否完成,再检查对应规则是否激活,常用于规则由目标完成后触发的链式逻辑。
  • [faction_goal_fulfillment](/wiki/trigger/faction_goal_fulfillment):评估派系目标的完成度,与 has_active_rule 组合可判断"规则激活是否与目标进度相符",避免规则状态与目标状态脱节。
  • [clear_rule](/wiki/effect/clear_rule):当条件不再满足时调用来清除规则,与 has_active_rule 配对使用,构成"检测→清除"的完整生命周期管理。

常见坑

  1. rule_key 写错或大小写不一致has_active_rule 的参数是精确字符串匹配,如果 rule_key 与派系模板中定义的键名拼写不同(包括下划线、大小写),条件将永远返回假且不会报错,极难排查。
  2. 在没有派系的国家上使用:该 trigger 检查的是"所在派系"的规则,若目标国家当前不属于任何派系,条件同样静默返回假,而非报错——新手容易误以为是规则键名问题,实际上需要先用 [any_allied_country](/wiki/trigger/any_allied_country) 等方式确认国家已加入派系再进行判断。