实战用法
meta_trigger 适合在通用模板脚本中构建动态条件——例如做一个"任意国家达到某阈值"的复用判断框架,或者在 scripted_trigger 里根据变量动态拼接国家 tag 进行判断,而无需为每个国家硬写重复代码。以下示例检测变量指定的国家是否拥有某项科技:
# 判断 TARGET_TAG 指向的国家是否已研究 TARGET_TECH
meta_trigger = {
text = {
[NATION] = {
has_tech = [TECH]
}
}
NATION = "GER"
TECH = "infantry_weapons2"
debug = no
}
配合关系
[hidden_trigger](/wiki/trigger/hidden_trigger):将 meta_trigger 包裹在 hidden_trigger 内,可避免动态构建的条件以难以阅读的形式暴露在本地化提示中,保持 UI 整洁。
[any_country_with_core](/wiki/trigger/any_country_with_core):常与 meta_trigger 配合遍历场景,当需要对动态集合中的每个成员执行参数化判断时,两者嵌套使用可极大减少重复代码。
[has_dynamic_modifier](/wiki/trigger/has_dynamic_modifier):动态 modifier 的存在往往依赖运行时变量,与 meta_trigger 一起使用可将动态 modifier 的检查条件本身也参数化,统一由字符串模板驱动。
常见坑
- 占位符大小写必须完全一致:
text 块中 [COUNTRY] 与下方赋值键 COUNTRY = 的字符串必须逐字母匹配,任何大小写差异都会导致替换静默失败,条件永远返回假,且不会产生明显报错。
text 块内写的是目标 scope 的 trigger,而非当前 scope:初学者容易把外层 scope 的判断逻辑直接写进 text,忘记 [COUNTRY] = { ... } 已经切换了 scope,导致在错误的对象上执行条件判断,逻辑结果完全偏离预期。