实战用法
在和平会议结算后的事件或决策中,用于检测某个州是否被叠加了非军事区惩罚,从而触发相应的后续逻辑,例如通知玩家、限制建造或调整抵抗值。典型场景是在和平会议结果处理事件的 trigger 块中,结合 FROM 链精确定位目标州。
# 和平会议后的州事件,检查该州是否被施加了非军事化叠加
state_event = {
id = my_mod.101
trigger = {
FROM.FROM.FROM = {
pc_does_state_stack_demilitarized = yes
}
}
option = {
name = my_mod.101.a
FROM.FROM.FROM = {
add_resistance = 10
}
}
}
配合关系
[is_demilitarized_zone](/wiki/trigger/is_demilitarized_zone):检查州当前是否已经处于非军事区状态,与本 trigger 结合可以区分"刚被裁决非军事化"和"早已是非军事区"两种情形,避免重复处理。
[set_demilitarized_zone](/wiki/effect/set_demilitarized_zone):在确认叠加裁决后,用此 effect 实际执行或重置非军事区标记,实现和平会议裁决与地图状态同步。
[has_state_flag](/wiki/trigger/has_state_flag) / [set_state_flag](/wiki/effect/set_state_flag):配合标记位防止事件重复触发,确保同一州的非军事化叠加只被处理一次。
[add_resistance](/wiki/effect/add_resistance):被强制非军事化的州往往伴随高抵抗值,检测到本条件为真后立即叠加抵抗,模拟当地民众的反应。
常见坑
FROM 链层级写错:本 trigger 通常在和平会议相关事件中使用,正确的 scope 路径往往需要 FROM.FROM.FROM 才能指向目标州,直接在顶层或错误层级调用会导致 scope 不是 STATE,触发器静默失败且不报错。
- 与
is_demilitarized_zone 混淆:pc_does_state_stack_demilitarized 仅在和平会议裁决叠加阶段为真,会议结束后该条件不再成立;若需要在常规游戏流程中判断非军事区状态,应改用 [is_demilitarized_zone](/wiki/trigger/is_demilitarized_zone),否则条件永远为假。