trigger · has_opinion_modifier
Definition
- Supported scope:
COUNTRY - Supported target:
none
Description
check if a country has the opinion modifier
has_opinion_modifierCOUNTRYnonecheck if a country has the opinion modifier
实战内容由 AI 生成,并已对照 vanilla 命令词表校验 —— 请当作起点而非权威依据。上方的定义节才是游戏自带文档原文。
has_opinion_modifier 常用于判断外交关系是否已进入特定阶段,例如检查某国是否已对玩家施加了"不信任"或"友好协议"等舆论修正,从而决定后续外交事件或决议是否可用。在制作外交链条 mod 时,可以用它来防止重复添加同名修正,或作为解锁高级合作选项的前置条件。
# 示例:只有目标国尚未拥有"贸易协定"舆论修正时,才允许触发该决议
available = {
FROM = {
NOT = {
has_opinion_modifier = {
modifier = trade_agreement_bonus
target = ROOT
}
}
}
}
[add_opinion_modifier](/wiki/effect/add_opinion_modifier) — 最直接的搭档:先用 has_opinion_modifier 检查修正是否存在,避免重复叠加同名修正导致逻辑混乱。[add_opinion_modifier](/wiki/effect/add_opinion_modifier) 的反向操作对应触发侧常与 [has_country_flag](/wiki/trigger/has_country_flag) 联用 — 用国家旗标记录外交状态,配合舆论修正共同构成"已处理过"的双重保险判断。[has_dynamic_modifier](/wiki/trigger/has_dynamic_modifier) — 同样用于检查某种附加状态是否存在,两者常在同一 trigger 块内并列,共同描述完整的外交或关系状态条件。[has_relation_modifier](/wiki/trigger/has_relation_modifier) — 在白名单外,但逻辑上… (注:白名单中无此 trigger,故不列入) — 改用 [has_country_flag](/wiki/trigger/has_country_flag) 作为补充判断,标记双边关系阶段。target 字段:has_opinion_modifier 通常需要同时写明 modifier(修正名)和 target(被施加修正的对象),如果只写修正名而遗漏 target,脚本可能报错或始终返回假,新手常以为 trigger 本身有问题。add_opinion_modifier 中的定义名不一致:opinion modifier 必须在 /common/opinion_modifiers/ 中预先定义,has_opinion_modifier 里填写的名称必须与定义文件中的 key 完全匹配(区分大小写),拼写细微差异会导致判断永远为假且无任何报错提示。