命令百科

trigger · is_in_faction_with

Definition

  • Supported scope:COUNTRY
  • Supported target:THIS, ROOT, PREV, FROM, OWNER, CONTROLLER, OCCUPIED, CAPITAL

Description

check if member of same faction as specified country

实战 · 配合 · 坑

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

实战用法

is_in_faction_with 常用于联盟外交类 mod 中,判断两国是否同属一个阵营,从而决定是否触发特定事件、解锁决议或限制战争目标。例如在设计"只有盟友才能共享情报"的 decision 时,可用此 trigger 作为 available 条件:

# 判断当前国家是否与德国同属一个阵营,才可执行此决议
available = {
    is_in_faction_with = GER
}

配合关系

  • [any_allied_country](/wiki/trigger/any_allied_country):遍历所有盟国时,可配合 is_in_faction_with 进一步确认某个盟国是否真正在同一阵营内(盟国与同阵营成员在边缘情况下并不完全等价)。
  • [exists](/wiki/trigger/exists):在使用 is_in_faction_with 前先确认目标国家存在,避免因目标国家已亡导致 trigger 报错或静默失败。
  • [add_to_faction](/wiki/effect/add_to_faction):常用于"若尚未同属阵营则强制拉入"的逻辑中,与 is_in_faction_with 做取反判断后执行加入操作。
  • [has_defensive_war_with](/wiki/trigger/has_defensive_war_with):联合判断"同盟友处于防御战"场景,确定是否触发援助或自动参战类事件。

常见坑

  1. 目标国不在任何阵营时返回 false 而非报错:新手容易误以为只要双方存在某种外交关系(如互为保证国)就会返回 true,实际上两国必须同时是同一阵营的正式成员,否则一律返回 false,需提前用 exists 和阵营相关 trigger 做好前置过滤。
  2. scope 混淆导致判断对象错误is_in_faction_with 的 scope 是被判断的国家,target 是用来比较的国家,在嵌套 every_faction_memberany_allied_country 循环内使用时,容易将 THIS/ROOT/PREV 对应关系搞错,导致实际上在用同一个国家与自己比较,永远返回 true。