命令百科

trigger · can_select_trait

Definition

  • Supported scope:CHARACTER, COMBATANT
  • Supported target:none

Description

check if leader can select a trait

实战 · 配合 · 坑

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

实战用法

can_select_trait 常用于 mod 中为指挥官设计自定义晋升系统或特质解锁界面时,判断当前角色是否处于可以选取新特质的状态,从而决定是否显示或激活相关按钮/选项。例如在一个将领成长系统中,只有满足条件才弹出特质选择事件:

# 在某个 unit_leader_event 的 trigger 块中
trigger = {
    can_select_trait = yes
    is_corps_commander = yes
    skill > 2
}

配合关系

  • [has_trait](/wiki/trigger/has_trait):与 can_select_trait 搭配,先确认角色尚未拥有目标特质,再判断是否可以选取,避免重复授予同一特质。
  • [add_trait](/wiki/effect/add_trait):在确认 can_select_trait = yes 后,于 effect 块中执行实际的特质添加操作,形成"条件检查→状态修改"的完整流程。
  • [has_unit_leader_flag](/wiki/trigger/has_unit_leader_flag):用于标记该角色本次特质选择流程是否已触发过,配合 can_select_trait 防止事件重复触发。
  • [add_max_trait](/wiki/effect/add_max_trait):扩展角色可持有的特质上限后,再用 can_select_trait 验证是否真正解锁了选取资格,确保上限扩展与选取逻辑同步。

常见坑

  1. 将其用于错误的 scope:新手有时在国家 scope(country)或省份 scope 下调用 can_select_trait,导致脚本静默失败或报错。该 trigger 仅在 CHARACTER / COMBATANT scope 下有效,务必确认当前作用域已切换到具体的角色或战斗单位。
  2. 混淆"可以选特质"与"已有特质槽位"can_select_trait 只判断选取资格,并不保证特质槽位充足。若未配合 add_max_trait 提前扩展上限,直接执行 add_trait 可能因槽位已满而无效,且不会有任何错误提示。