实战用法
num_faction_members 常用于判断某国所在阵营的规模,例如在国策或决策的 available 块里限制"阵营至少有 N 个成员才能执行外交行动",或在 trigger 块里检测阵营是否已壮大到足以发动战争。需要注意的是,该 trigger 要求当前国家本身必须是某个阵营的成员,否则返回 false 而非 0。
# 国策 available:只有阵营成员超过 3 国时才能解锁此国策
focus = {
id = GER_grand_offensive
available = {
is_faction_leader = yes
num_faction_members > 3
}
...
}
配合关系
[has_completed_focus](/wiki/trigger/has_completed_focus):常先用国策完成情况判断外交路线走向,再用 num_faction_members 确认阵营规模,组合控制后续选项的解锁节奏。
[alliance_strength_ratio](/wiki/trigger/alliance_strength_ratio):阵营人数多不等于实力强,两者组合可以同时过滤"成员够多且综合军力达标"的双重条件,让触发更严谨。
[add_to_faction](/wiki/effect/add_to_faction):当 num_faction_members 未达阈值时,可在 effect 块里调用此命令拉入新成员,逻辑上形成"检测→补充→再检测"的完整闭环。
[create_wargoal](/wiki/effect/create_wargoal):典型用法是先用 num_faction_members > X 确保阵营体量足够,再生成战争目标,避免以弱小阵营仓促宣战。
常见坑
- 未加入阵营时使用会静默失败:若当前国家不属于任何阵营,trigger 直接返回 false,脚本不会报错,但逻辑永远不会触发——新手常误以为此时返回 0 参与比较,需在同一块内先加
is_in_faction = yes 做前置守卫。
- 比较运算符写成等号赋值:HOI4 脚本中数值比较必须写
num_faction_members > 5 或 num_faction_members < 5,不支持 ==;若漏写运算符或写成 = 5,游戏会解析报错或产生意外行为。