实战用法
compare_intel_with 常用于情报系统相关的 mod 场景,例如判断某国是否已对目标国取得足够的情报优势,从而解锁特殊决策或触发事件(如策反行动、预判敌军部署等)。下面示例判断德国对波兰的平民情报是否领先,若满足则可用于某决策的 available 块:
# 在决策的 available 块中,判断 GER 是否对 POL 有足够情报优势
available = {
GER = {
compare_intel_with = {
target = POL
civilian_intel > 0.3
army_intel > 0
}
}
}
配合关系
[has_collaboration](/wiki/trigger/has_collaboration):协作度与情报获取密切相关,通常先检测是否已对目标国建立一定协作度,再用 compare_intel_with 确认情报量级是否达标,两者共同作为行动前置条件。
[add_intel](/wiki/effect/add_intel):当情报比较结果不满足时,可在对应 effect 块中补充情报值;或在条件满足时奖励更多情报,形成情报滚雪球逻辑。
[has_active_mission](/wiki/trigger/has_active_mission):情报任务进行中时往往需要同时满足特定情报数值条件,两者配合可精确控制任务触发时机。
[any_operative_leader](/wiki/trigger/any_operative_leader):间谍行动派遣后情报会发生变化,配合此 trigger 可检查是否已有特工活跃于目标国,再结合 compare_intel_with 做双重门槛判断。
常见坑
- 比较运算符写成等号赋值语法:新手容易将
civilian_intel > 0.5 误写为 civilian_intel = 0.5,但在该 trigger 内 = 表示"恰好相等"而非赋值,数值必须精确匹配才为真,导致条件几乎永远不触发。请根据实际需求明确区分 >、<、= 三种运算符的语义。
- scope 指向错误导致比较主客体颠倒:
compare_intel_with 的 scope 是"拥有情报的一方",target 是"被侦察的一方",若在错误的国家 scope 下书写,navy_intel < 0 实际上反映的是目标国情报更多,初学者容易混淆比较方向,写出与预期完全相反的逻辑。