实战用法
在制作自定义军工组织(MIO)时,常需要根据该组织是否具有特定研究分类来决定能否解锁某条特性或触发某段事件。例如,你想为一个专注于装甲研究的 MIO 限制某特性的可用条件,可以写:
some_mio_trait = {
available = {
mio:my_armor_mio = {
has_mio_research_category = mio_cat_armor
}
}
}
这样只有当该 MIO 拥有装甲研究分类时,特性才对玩家可见可选。
配合关系
[has_mio_trait](/wiki/trigger/has_mio_trait):常与本 trigger 并列使用,同时检查 MIO 是否拥有某研究分类且已完成特定特性,构成更精确的解锁前提。
[has_mio_size](/wiki/trigger/has_mio_size):配合使用可在"研究分类符合且规模达到一定级别"时才开放高级内容,避免玩家过早获得强力加成。
[add_mio_research_bonus](/wiki/effect/add_mio_research_bonus):在 effect 块中作为后续奖励,当 trigger 判断研究分类存在后,给予对应加成,逻辑上形成"检查分类 → 发放奖励"的完整流程。
[is_mio_trait_available](/wiki/trigger/is_mio_trait_available):两者组合可以在特性可用性检查中先确认研究方向是否匹配,再判断特性本身是否满足其他前提。
常见坑
- Scope 写错位置:本 trigger 必须在
INDUSTRIAL_ORG scope 下执行,新手容易在国家 scope 直接写 has_mio_research_category,导致脚本报错或静默失效。正确做法是先通过 mio:my_mio = { ... } 进入对应 MIO 的 scope 再使用。
- 分类 token 拼写不一致:研究分类的 token 需与
mio_categories 定义文件中的名称完全一致(区分大小写),若直接填写装备类型名或研究科技 token 将始终返回假,且游戏不会给出明显报错提示。