命令百科

effect · save_global_event_target_as

Definition

  • Supported scope:any
  • Supported target:none

Description

save a global event target

实战 · 配合 · 坑

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

实战用法

save_global_event_target_as 常用于需要跨事件、跨国家 scope 传递特定对象引用的场景,例如在全局剧情链中记录"触发战争的国家"或"当前谈判目标",以便后续任何事件都能通过 event_target:xxx 直接引用该对象,而无需重复查找。典型应用包括多国联动的外交事件链、全局阵营领袖追踪、以及跨 scope 的动态国家标记。

# 在某个事件的 immediate 块中,将当前国家保存为全局目标
immediate = {
    save_global_event_target_as = negotiation_initiator
}

# 之后任意事件或 effect 中,可直接引用:
# event_target:negotiation_initiator = { ... }

配合关系

  • [clear_global_event_target](/wiki/effect/clear_global_event_target):保存全局目标后,在剧情链结束或目标失效时应及时清除,避免残留的无效引用污染后续逻辑。
  • [save_event_target_as](/wiki/effect/save_event_target_as):局部版本的目标保存,常与全局版本搭配使用——先用局部目标在当前事件内做临时计算,确认后再用全局版本持久化存储。
  • [has_event_target](/wiki/trigger/has_event_target):在使用 event_target:xxx 前先检查目标是否存在,防止因全局目标未被正确保存而导致的脚本报错。
  • [if](/wiki/effect/if):配合条件判断,仅在满足特定条件时才执行保存操作,避免意外覆盖已有的全局目标引用。

常见坑

  1. 全局目标会被后续调用覆盖:同名的全局目标在任何 scope 下调用 save_global_event_target_as 都会无声地覆盖旧值。多条事件链共用同一个目标名时,极易出现"后来者覆盖先来者"的竞争问题,务必为不同链路使用唯一命名。
  2. 忘记清理导致目标悬空:全局目标在整个游戏会话中持续存在,若被保存的国家/州已不再有效(如被消灭),继续引用该目标不会自动报错,但会导致逻辑静默失效。应在事件链结束时显式调用 clear_global_event_target 进行清理。