命令百科

trigger · has_any_license

Definition

  • Supported scope:COUNTRY
  • Supported target:any

Description

Country has any active licenses
Example: has_any_license = yes

实战 · 配合 · 坑

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

实战用法

has_any_license 常用于外贸/装备授权系统相关的 mod 中,例如在 focus 或 decision 的 available 块里判断某国是否正在享受他国的生产许可,从而决定是否解锁额外外交选项或外交压力事件。也可用于 AI 策略中,区分"自力更生"与"依赖授权"两种国家状态,给予不同的 AI 行为权重。

# 示例:某决策仅对拥有活跃授权的国家可用
decision_category = {
    my_embargo_pressure = {
        available = {
            has_any_license = yes
        }
        # 触发对授权方的外交压力事件
    }
}

配合关系

  • [any_purchase_contract](/wiki/trigger/any_purchase_contract)has_any_license 确认存在授权后,可用 any_purchase_contract 进一步遍历具体合同内容,精确筛选特定装备或授权方。
  • [break_embargo](/wiki/effect/break_embargo):当检测到存在授权且满足特定条件时,可调用 break_embargo 中断对应贸易关系,两者形成"判断-执行"的完整逻辑闭环。
  • [create_production_license](/wiki/effect/create_production_license):常作为反向配合——若 has_any_license = no,则通过 create_production_license 新建授权,保证后续逻辑有效;两者合用可实现"无则创建"的模板写法。
  • [all_purchase_contracts](/wiki/trigger/all_purchase_contracts):配合 has_any_license 做前置过滤,确保进入 all_purchase_contracts 遍历时列表非空,避免空集合导致逻辑误判。

常见坑

  1. yes 写成 no 时语义反转却不自知has_any_license = no 表示"完全没有任何授权",新手有时误以为它检测的是"授权未激活",实际上只要存在哪怕一条活跃授权就返回假,需搭配 any_purchase_contract 做更细粒度的判断。
  2. 在非 COUNTRY scope 下使用:此 trigger 仅对国家 scope 有效,若错误地放在 any_owned_stateany_unit_leader 等子 scope 内部调用,脚本不会报错但判断结果会静默失效或被引擎忽略,应在进入子 scope 之前于外层国家 scope 完成判断。