实战用法
remove_decision 常用于 mod 中需要手动清除某个进行中决议的场景,例如某个事件触发后强制取消玩家或 AI 正在激活的限时决议,或在国家转型(政变、内战结束)时清理旧阵营遗留的决议。值得注意的是,它不会触发决议的 remove_effect,也不会产生冷却时间,适合"静默撤销"的需求。
country_event = {
id = my_mod.10
# 政变成功,清除旧政府的外交斡旋决议
immediate = {
remove_decision = diplomatic_mediation_decision
}
}
配合关系
[has_decision](/wiki/trigger/has_decision):在移除前先检查该决议是否处于激活状态,避免脚本报错或逻辑异常。
[activate_decision](/wiki/effect/activate_decision):与 remove_decision 形成"撤销-重新激活"组合,常用于重置决议状态或切换决议变体。
[add_days_remove](/wiki/effect/add_days_remove):若只想加速决议自然到期而非强制静默移除,可选此命令作为替代方案对比考量。
[clr_country_flag](/wiki/effect/clr_country_flag):决议激活时往往会设置国家 flag,移除决议后通常需要同步清除对应 flag,防止后续条件判断出错。
常见坑
- 误以为会触发
remove_effect:remove_decision 属于"强制移除"而非正常到期,决议内定义的 remove_effect 块不会执行,如果该块里有重要的收尾逻辑(如清除 modifier、归还资源),必须在调用 remove_decision 的同一上下文中手动补写这些效果。
- 在非 COUNTRY scope 下使用:该 effect 仅支持 COUNTRY scope,若写在
every_owned_state 或角色相关的 scope 内会导致脚本解析错误,需确保执行块归属于正确的国家 scope。