命令百科

trigger · has_non_aggression_pact_with

Definition

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

Description

Check if country has non aggression pact with the specified country

实战 · 配合 · 坑

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

实战用法

常用于外交事件或国家焦点的前提条件中,判断两国之间是否存在互不侵犯条约,从而决定是否触发特定的外交选项或解锁后续决议。例如在冷战 mod 里,可以用它来阻止玩家对签署了互不侵犯条约的国家宣战,或触发"撕毁条约"的剧情事件。

# 在国家焦点 available 中,要求与目标国存在互不侵犯条约才能执行
available = {
    has_non_aggression_pact_with = FROM
}

# 在事件 trigger 中,检测本国是否与苏联签有互不侵犯条约
trigger = {
    tag = GER
    has_non_aggression_pact_with = SOV
}

配合关系

  • [has_defensive_war_with](/wiki/trigger/has_defensive_war_with):互不侵犯条约的存在与否往往需要配合防御战检测,二者共同用于判断当前敌对关系是否与协议相悖。
  • [can_declare_war_on](/wiki/trigger/can_declare_war_on):在限制宣战的条件块中与本 trigger 配合,确保只有在互不侵犯条约不存在时才允许发动战争。
  • [has_country_flag](/wiki/trigger/has_country_flag):常搭配国旗标记使用,记录条约是否曾被单方面违背,为后续事件提供状态追踪依据。
  • [any_allied_country](/wiki/trigger/any_allied_country):用于遍历盟友时,与本 trigger 联合筛选出既是盟友、又与第三方签有互不侵犯条约的国家,辅助复杂外交逻辑判断。

常见坑

  1. scope 方向写反:本 trigger 的 scope 是发起检测的国家,target 是条约对方。新手容易把双方对调,导致在错误的国家 scope 下执行判断,结果始终返回假而不自知。
  2. 误以为可接受普通国家标签以外的写法:target 仅支持白名单中的代词(THISFROM 等)或具体国家标签,不能直接写州/省 scope 或其他非国家对象,否则脚本会静默失败而不报错。