trigger · count_triggers
Definition
- Supported scope:
any - Supported target:
none
Description
Returns true if the specified number of sub-triggers return true
count_triggers = { amount = 2 <trigger> <trigger> <trigger> }
count_triggersanynoneReturns true if the specified number of sub-triggers return true
count_triggers = { amount = 2 <trigger> <trigger> <trigger> }
实战内容由 AI 生成,并已对照 vanilla 命令词表校验 —— 请当作起点而非权威依据。上方的定义节才是游戏自带文档原文。
count_triggers 适合需要"满足若干条件中的若干个"这类模糊阈值判断的场景,例如判断某国是否同时满足"人口、工业、政治"等多项条件中的至少两项,而不要求全部成立。相比嵌套多层 or/and,它让代码意图更直观、更易维护。
# 示例:某国满足至少 2 条条件才触发决策
available = {
count_triggers = {
amount = 2
has_war = no
has_global_flag = special_event_flag
threat < 0.5
is_historical_focus_on = yes
}
}
[and](/wiki/trigger/and) / [or](/wiki/trigger/or):count_triggers 本身不支持逻辑嵌套语义,常在其子触发器内部用 and/or 构造复合子条件,从而实现"X 项复合条件中满足 N 项"的细粒度控制。[custom_trigger_tooltip](/wiki/trigger/custom_trigger_tooltip):count_triggers 本身在界面上的提示文本较难读懂,建议用 custom_trigger_tooltip 包裹整个块,提供玩家友好的本地化说明。[check_variable](/wiki/trigger/check_variable):当阈值数量 amount 需要依赖变量动态变化时,可在外层用 check_variable 先做变量判断再决定是否进入 count_triggers 逻辑块。[if](/wiki/trigger/if):在复杂条件块中,if 可用于根据不同情境动态决定是否评估整个 count_triggers,避免不必要的性能开销。amount 超出子触发器总数:如果 amount 设置的数值大于实际列出的子触发器数量,该触发器将永远返回 false 且不会报错,排查时非常隐蔽,务必手动核对子条件数量。count_triggers 会"优先评估前几项",实际上它会评估所有子触发器并统计返回 true 的数量,不存在短路求值,在子触发器数量较多时应注意性能影响。