命令百科

effect · save_event_target_as

Definition

  • Supported scope:any
  • Supported target:none

Description

save an event target

实战 · 配合 · 坑

实战内容由 AI 生成,并已对照 vanilla 命令词表校验 —— 请当作起点而非权威依据。上方的定义节才是游戏自带文档原文。

实战用法

save_event_target_as 常用于在事件链或决议执行中,将某个当前作用域(如一个国家或状态)暂存为命名目标,以便后续脚本通过 event_target:xxx 跨作用域引用它。典型场景包括:在一个国家触发事件时保存"发起国",然后在另一国的事件 option 中对其执行效果,或在复杂的 for_each_scope_loop 中记录某个关键迭代对象供后续逻辑复用。

# 在某国事件的 immediate 块中,将自身保存为事件目标
immediate = {
    save_event_target_as = initiating_country
}

# 随后在 option 中切换作用域后仍可引用
option = {
    name = MY_EVENT_OPTION_A
    every_country = {
        limit = { is_ally_with = event_target:initiating_country }
        add_political_power = 50
    }
}

配合关系

  • [has_event_target](/wiki/trigger/has_event_target):在使用保存的目标之前,先用此触发器检查该目标是否存在,避免目标失效时脚本报错。
  • [save_global_event_target_as](/wiki/effect/save_global_event_target_as):与本命令形成互补——本命令保存的目标仅在当前事件链(临时)生效,而全局版本跨越整个游戏会话持久存在,需根据生命周期需求选择。
  • [clear_global_event_target](/wiki/effect/clear_global_event_target):当使用全局版本时,往往与本命令搭配规划"临时用 save_event_target_as,持久用 global 版本后及时清除"的工作流,保持内存整洁。
  • [hidden_effect](/wiki/effect/hidden_effect):常将 save_event_target_as 包裹在隐藏效果块中,避免向玩家暴露无意义的日志或 tooltip 文本。

常见坑

  1. 作用域搞错导致保存了错误对象save_event_target_as 保存的是当前所在 scope 的对象,新手常在 ROOTFROM 混淆的情况下误存了错误的国家或状态,建议在写之前明确用注释标注当前 scope 是什么。
  2. 误以为目标永久存在:用本命令(非 global 版本)保存的事件目标生命周期仅限于当前事件处理过程,一旦事件结束便失效。若后续其他独立事件或 on_action 仍需引用,必须改用 save_global_event_target_as 并在合适时机手动清除。