命令百科

trigger · controls_state

Definition

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

Description

check controller for state(s)

实战 · 配合 · 坑

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

实战用法

controls_state 常用于判断某国是否实际控制了特定州,从而解锁后续决策、国策或事件分支——例如在领土扩张 mod 中,只有当玩家控制了目标州之后,才允许触发"整合占领区"决策。注意它检查的是控制权而非所有权,适合处理战时临时占领的逻辑。

# 在决策的 available 块中:只有控制了特定州才可执行
available = {
    controls_state = 42   # 42 为目标 state_id
}

# 也可以在 trigger 块中检查多个州
trigger = {
    controls_state = 42
    controls_state = 43
}

配合关系

  • [any_controlled_state](/wiki/trigger/any_controlled_state) — 当需要模糊查询("控制了任意一个满足条件的州")时与 controls_state 互补,前者适合范围遍历,后者适合精确 id 检查。
  • [divisions_in_state](/wiki/trigger/divisions_in_state) — 确认控制权的同时进一步核实该州内是否有兵力驻扎,常用于"占领并驻防"类双重条件决策。
  • [add_state_core](/wiki/effect/add_state_core) — 确认控制之后为该州添加核心,是"先控制、再宣示主权"流程的标准搭档 effect。
  • [has_defensive_war](/wiki/trigger/has_defensive_war) — 在战时事件中,先用 controls_state 确认前线州的归属,再结合是否处于防御战来决定事件走向。

常见坑

  1. 混淆控制与所有权:新手常误以为 controls_state 等同于"拥有"该州,但战争中敌方可能控制你名义上拥有的州,或你控制了属于他国的州——请根据实际需要选择 controls_state(控制方)还是配合 any_owned_state / is_owned_by(所有权)使用。
  2. 在 STATE scope 下误用:该 trigger 只支持 COUNTRY scope,若在 state 事件或 state 级别的 limit 块中直接写 controls_state,脚本不会报错但逻辑对象错误,需要先用 OWNERFROM 等切回国家 scope 再调用。