实战用法
此 effect 主要用于制作突袭/破坏类事件或决策,让玩家或 AI 能够通过特定行动打断敌方的特殊项目(如核武器、火箭研究等)进度。典型场景是在突袭事件链中,根据突袭成果的好坏对目标州的特殊项目造成不同比例的破坏,配合随机数或条件分支实现多档次的破坏效果。
# 突袭成功事件选项:重创敌方特殊项目
country_event = {
id = my_raid.5
# Root scope = raid instance
option = {
name = my_raid.5.a
# 对目标州造成 30% 的项目进度损失
state = {
raid_reduce_project_progress_ratio = 0.3
}
}
option = {
name = my_raid.5.b
# 小规模破坏,仅损失 10%
state = {
raid_reduce_project_progress_ratio = 0.1
}
}
}
配合关系
[has_state_flag](/wiki/trigger/has_state_flag):在执行破坏前先检查目标州是否挂有特定标记(如"正在进行特殊项目"),避免对无关州触发效果。
[set_state_flag](/wiki/effect/set_state_flag):破坏项目进度后立即给该州打上"已被突袭"标记,可用于冷却判断或后续事件触发条件。
[add_resistance](/wiki/effect/add_resistance):突袭行动往往伴随当地抵抗运动的激增,可同步增加目标州抵抗值以反映事件的政治影响。
[state_event](/wiki/effect/state_event):破坏完成后向目标州所属国家发送后续事件,通知其项目受损并触发应对选项链。
常见坑
- Scope 误用:此 effect 必须在 STATE scope 下调用,而 Root 是突袭实例 scope;新手常直接在国家 scope 或事件顶层写该命令,导致脚本报错或无效,需显式用
state = { ... } 块包裹才能正确切换到 STATE scope。
- 数值范围理解偏差:输入值是占项目总所需进度的比例(0~1),而非当前剩余进度的百分比;填入
1.0 代表清空全部进度,而不是"减少当前剩余的 100%",若目标项目已完成大半,用较小的值可能效果不如预期,需结合项目总量来规划数值。