实战用法
complete_mio_trait 常用于剧本事件或国策完成时,为特定军工组织强制解锁某个特性,无需玩家手动在特性树中逐级点选,适合制作"剧情奖励"或"历史节点触发解锁"的 mod 场景。例如,当某国完成特定国策后,立即赋予其主力军工组织一个高级特性:
# 在某国策完成效果中
if = {
limit = { has_mio_flag = mio_upgraded }
var:target_mio = {
complete_mio_trait = {
trait = advanced_manufacturing_trait
show_modifiers = no
}
}
}
配合关系
[is_mio_trait_completed](/wiki/trigger/is_mio_trait_completed) — 在执行前先检查该特性是否已解锁,避免重复触发造成逻辑混乱。
[has_mio_number_of_completed_traits](/wiki/trigger/has_mio_number_of_completed_traits) — 用于判断当前已完成特性数量,决定是否满足触发额外奖励的条件。
[add_mio_size](/wiki/effect/add_mio_size) — 虽然本指令会自动增加 1 个 size,但若需要额外奖励成长,可在同一块中再手动叠加 size。
[set_mio_flag](/wiki/effect/set_mio_flag) — 解锁特性后立即打上标记,防止同一事件链重复执行相同的解锁逻辑。
常见坑
- 忘记切换到 INDUSTRIAL_ORG scope:此 effect 只能在军工组织 scope 内使用,若直接写在国家 scope(如
country_event 的 option 块)中而不通过变量或专属 scope 进入 MIO,脚本会静默失效且不报错,特性不会被解锁。
- 误以为
show_modifiers = no 会阻止 size 增长:show_modifiers 仅控制界面提示是否显示加成内容,不影响 size 自动 +1 的行为;若在短时间内批量解锁多个特性,size 会累加多次,需提前规划好特性数量与 size 的对应关系。