实战用法
can_construct_building 常用于决策或焦点的 available 块中,在玩家准备触发建造相关奖励前,预先验证目标州和国家是否满足建造条件,避免脚本执行后出现无效建造。例如在一个"工业化计划"决策里,只有当某州真正可建造工厂时才允许玩家点击:
available = {
GER = {
65 = {
can_construct_building = industrial_complex
}
}
}
配合关系
[free_building_slots](/wiki/trigger/free_building_slots):与 can_construct_building 配合,进一步确认目标州剩余建筑槽位足够,双重保险防止建造失败。
[add_building_construction](/wiki/effect/add_building_construction):通常作为满足 can_construct_building 条件后的 effect 执行体,负责真正将建造任务加入队列。
[is_owned_and_controlled_by](/wiki/trigger/is_owned_and_controlled_by):建造类操作往往要求该州既被目标国拥有又受其控制,与本 trigger 搭配确保前提完整。
[has_state_category](/wiki/trigger/has_state_category):不同州类别决定可建槽数上限,配合使用可筛选出具备建造潜力的高级别州。
常见坑
- Scope 写错层级:本 trigger 必须在 STATE scope 内调用,外层还需要切换到对应国家 scope(作为 ROOT)。新手常直接在国家 scope 下写
can_construct_building,导致游戏报错或条件永远不触发,务必按官方示例先切国家再嵌套州 scope。
- 混淆 trigger 与 effect:
can_construct_building 只做判断,不会真正开始建造。有玩家误以为条件成立后建筑会自动入队,实际必须在 effect 块中额外调用 add_building_construction 才能产生建造行为。