实战用法
has_captured_operative 常用于谍报相关的 focus、decision 或 event 场景,例如判断某国是否已捕获己方特工,从而触发外交危机或解救任务。也可以用 yes/no 形式检测本国是否持有任何被俘特工,配合反间谍剧情推进。
# 在 decision 的 available 块中,检测德国是否被俘了我方特工
available = {
GER = {
has_captured_operative = ROOT # 检测 GER 是否捕获了 ROOT 国家的特工
}
}
# 或者简单判断本国是否持有任何被俘特工
trigger = {
has_captured_operative = yes
}
配合关系
[capture_operative](/wiki/effect/capture_operative):主动捕获特工的 effect,与本 trigger 形成"捕获→检测状态"的完整逻辑链,常用于测试捕获事件是否成功触发。
[free_operative](/wiki/effect/free_operative):释放被俘特工的 effect,通常在 has_captured_operative = yes 为真时才有意义执行,避免对无俘虏状态无效调用。
[free_random_operative](/wiki/effect/free_random_operative):随机释放一名被俘特工,配合本 trigger 做前置校验,确保至少存在俘虏再触发外交谈判或交换俘虏的 event。
[any_operative_leader](/wiki/trigger/any_operative_leader):可进一步筛选被俘特工的具体属性(如特质、派系),与 has_captured_operative 形成粗筛+细筛的两级判断结构。
常见坑
- scope 混淆:
has_captured_operative = GER 的主语必须是 COUNTRY scope,新手容易在 STATE scope 下直接写此 trigger,导致脚本报错或静默失效;需要先用 OWNER 等切换到国家 scope 再调用。
yes/no 与具体国家标签的语义差异:has_captured_operative = yes 检测"是否持有任何被俘特工",而 has_captured_operative = GER 检测"是否持有来自 GER 的特工",两者不可互换;漏掉目标标签会导致条件范围比预期宽泛,触发逻辑出现误判。