实战用法
set_grand_doctrine 常用于国策树、决策事件或剧本触发器中,当某国完成特定历史节点时自动解锁并激活指定的大条令(grand doctrine),无需玩家手动在条令界面操作。例如德国完成"闪击战"相关国策后自动赋予对应大条令:
focus = {
id = GER_blitzkrieg_focus
...
completion_reward = {
set_grand_doctrine = mobile_warfare
}
}
配合关系
[has_completed_focus](/wiki/trigger/has_completed_focus):在 limit 中检查是否已完成前置国策,确保大条令按正确顺序解锁,避免跳级激活。
[has_any_grand_doctrine](/wiki/trigger/has_any_grand_doctrine):用于判断目标国家是否已持有任意大条令,可在条件判断中防止重复赋予或用于 AI 逻辑分支。
[add_doctrine_cost_reduction](/wiki/effect/add_doctrine_cost_reduction):常与其配合,在激活大条令的同时降低后续子条令的研究费用,给予额外的条令发展奖励。
[has_completed_subdoctrine](/wiki/trigger/has_completed_subdoctrine):用于检查子条令完成情况,配合 set_grand_doctrine 构建"完成某子条令 → 解锁大条令"的完整条令推进逻辑。
常见坑
- 直接在 STATE scope 下调用:该 effect 仅支持 COUNTRY scope,若在州事件或
every_owned_state 内直接调用会导致脚本报错或静默失效,必须确保执行块位于国家 scope 下。
- 传入不存在的大条令键名:
set_grand_doctrine 的值必须是 00_grand_battle_plan.txt 等条令文件中实际定义的 grand_doctrine 键名,拼写错误或使用普通子条令名称不会有任何提示,但效果不会生效,调试时极易遗漏。