命令百科

trigger · country_exists

Definition

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

Description

check if the specified country exist

实战 · 配合 · 坑

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

实战用法

country_exists 常用于判断某个国家标签是否仍在游戏中存在(未被消灭/吞并),在事件、决议或 focus 中作为先决条件,避免对已消亡的国家执行无效操作。例如在一个联盟外交事件中,只有目标国依然存在时才显示相应选项:

available = {
    country_exists = GER
    country_exists = SOV
}

也可结合 NOT 使用,当某国家已被消灭时触发特殊剧情分支。


配合关系

  • [any_country](/wiki/trigger/any_country) — 遍历所有国家时,通常先用 country_exists 在 limit 中过滤,确保只对仍然存在的国家执行逻辑。
  • [scope_exists](/wiki/trigger/scope_exists) — 两者功能相近但作用对象不同;当不确定 event target 是否有效时,scope_exists 负责判断 scope 本身,而 country_exists 专门针对国家标签,常成对出现做双重保险。
  • [has_global_flag](/wiki/trigger/has_global_flag) — 常与 country_exists 共同放在 trigger / available 块中,先确认国家存在、再检查与该国相关的全局旗帜,防止对已消亡国家的旗帜做出错误判断。
  • [save_global_event_target_as](/wiki/effect/save_global_event_target_as) — 在 effect 块里保存某国为全局事件目标前,往往先用 country_exists 确认该国仍然存在,避免保存一个无效 scope。

常见坑

  1. 把标签写成变量或字符串country_exists 的参数必须是硬编码的国家标签(如 GER),不能填写变量名或带引号的字符串;新手有时写成 country_exists = "GER" 或试图传入 var:some_tag,这在大多数版本下会静默失败或报错。
  2. 误以为它能在 effect 块里直接使用country_exists 是纯 trigger,不能直接放在 effect 块的顶层;若需要在 effect 中做条件分支,必须包裹在 [if](/wiki/effect/if)limit = { } 内部才能生效,直接写在 effect 块中会被解析器忽略。