周期、堆叠与持续时间

Buff 体系的大部分复杂度集中在三个配置上:周期执行、堆叠策略、持续时间管理。

周期性 GE(DOT / HOT)

配置 Duration Policy = Duration,并开启 Period:

GE_Poison(中毒)
├─ Duration Policy: Duration, 10 秒
├─ Period: 2 秒(每 2 秒执行一次)
├─ Modifier: Health -10(每周期扣 10)
├─ Duration 标签: Effect.Debuff.Poison(驱散用)
└─ Granted Tags: State.Poisoned(状态查询用)
  • 周期开始时执行一次(配置项"Execute Periodic Effect on Application"可控制);
  • 配 PeriodicExecutionPolicy 可选首周期是否立即执行。

常见用途:中毒(HOT/DOT)、持续回血光环、充能类技能。

堆叠策略(Stacking)

同一个 GE 重复应用时怎么处理?GE 的 Stacking 选项:

策略 行为 例子
No Stacking 各次独立(各自一份 GE) 多个来源的中毒各扣各的
Aggregate by Source 同一来源叠加层数 玩家自己的点燃叠层
Aggregate by Target 目标身上只保留一份并叠层 Boss 身上最多一层"破甲"

配置页里还有: - Stack Limit:最多叠几层; - Stack Duration Refresh:叠加时是否刷新持续时间(常见于"中毒越叠越久"设计); - Expiration(到期/remove)触发的 GE。

持续时间管理:用标签来移除

"驱散"在 GAS 里就是"按标签移除 GE":

// 驱散所有负面
ASC->RemoveActiveEffectsWithTags(FGameplayTag::RequestGameplayTag("Effect.Debuff"));

所以每个 GE 都应当在"Duration Tags"或"Granted Tags"里写清楚"我是正面还是负面、什么类型"——这不是可选项,是驱散/查状态的前提。

与动画/事件联动的无限 GE

光环类效果用 Infinite GE,配合 GA 的 AbilityTask(如 WaitOverlap 或周期 Tick 方法)。光环影响范围内动态添加/移除:

// 进入范围:ApplyInfiniteGE;离开:RemoveEffectsWithTags

本章小结

  • 周期执行 GE(Period)覆盖 DOT/HOT/充能;首周期是否立即执行可配。
  • 堆叠三策略:No Stacking / Aggregate by Source / by Target,叠加叠层与刷新时长可配。
  • 每个 GE 必须带"身份标签",驱散按标签移除,光环类用 Infinite GE。