命令百科

trigger · is_demilitarized_zone

Definition

  • Supported scope:STATE
  • Supported target:any

Description

checks if a state is a demilitarized zone

实战 · 配合 · 坑

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

实战用法

is_demilitarized_zone 常用于占领、外交或和平条约类 mod 中,检测某州是否处于非军事化状态,从而决定是否允许驻军、建造军事设施或触发特定事件。例如,当一个州被非军事化后,可以限制该州的某些玩家行为或触发对应的 AI 逻辑。

# 在某个决策的 available 块中,限制仅非军事化州可激活
available = {
    ROOT = {
        is_demilitarized_zone = yes
    }
}

配合关系

  • [set_demilitarized_zone](/wiki/effect/set_demilitarized_zone):最直接的配套 effect,用于将一个州设为或取消非军事化状态,与本 trigger 形成"设置-检测"闭环。
  • [has_state_flag](/wiki/trigger/has_state_flag):非军事化往往伴随自定义 flag 标记特殊协议或条约,两者结合可实现更精确的条件判断。
  • [is_controlled_by](/wiki/trigger/is_controlled_by):非军事化区域通常涉及控制权问题,配合使用可区分"被敌方控制的非军事区"与"正常非军事区"两种情形。
  • [building_count_trigger](/wiki/trigger/building_count_trigger):可用于验证非军事化约束是否被遵守——若州内仍存在军事建筑则触发违约逻辑。

常见坑

  1. Scope 混用错误:该 trigger 必须在 STATE scope 下调用,若写在 COUNTRY scope 的条件块中(如直接放在国家事件的 trigger 块顶层)会静默失败或报错,需先用 any_state / capital_scope 等切换到 STATE scope。
  2. 与非军事化 modifier 混淆:新手常误以为手动用 add_state_modifier 添加了某个"非军事化"效果后本 trigger 就会返回 yes,实际上只有通过 set_demilitarized_zone = yes 设置的内置标志才能被此 trigger 正确识别。