命令百科

trigger · has_tech

Definition

  • Supported scope:COUNTRY
  • Supported target:none

Description

check if country has technology

实战 · 配合 · 坑

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

实战用法

has_tech 常用于国策、决议或事件的 available/trigger 块中,判断国家是否已研究特定科技以解锁进一步选项——例如限制某项海军国策仅在研发了舰载机技术后才可选取,或在事件中根据玩家是否掌握核物理技术给出不同选项。

# 示例:仅当国家已研究基础坦克技术时,该决议才可用
available = {
    has_tech = gw_artillery
}

配合关系

  • [can_research](/wiki/trigger/can_research):先用 has_tech 确认已有前置技术,再用 can_research 判断下一级科技是否可开始研究,两者组合能精确描述科技树进度的"已学/可学"状态。
  • [add_tech_bonus](/wiki/effect/add_tech_bonus):通常在 has_tech 验证某前置科技存在后,通过 effect 给予下一步科技加速奖励,形成"检测已有科技→奖励进一步研究"的完整链条。
  • [has_completed_focus](/wiki/trigger/has_completed_focus):与 has_tech 并列放在 trigger 块中,同时要求完成特定国策且拥有特定科技,用于设置更严格的解锁条件。
  • [has_doctrine](/wiki/trigger/has_doctrine):与 has_tech 类似用于科技层面的条件检查,两者组合可区分"通用科技"与"条令科技",覆盖更全面的军事技术判断。

常见坑

  1. 科技 token 写错导致条件永远为假has_tech 的值必须是脚本中定义的技术 token(如 basic_tank_design),不能写科技的本地化显示名称或自行猜测名字,建议直接在 technologies/ 文件夹对应的 .txt 文件中查找准确 token。
  2. 在非 COUNTRY scope 中使用has_tech 只在国家 scope 下有效,若写在 owned_stateunit_leader 等子 scope 的 trigger 块内却未切换回国家 scope,条件将无法正确求值,需要用 owner/ROOT/FROM 等切换回 COUNTRY scope 后再调用。