Skip to content

概述

hna-detonateot 用于引爆目标身上的周期效果,把未来若干跳的伤害/治疗一次性合并结算。

核心语义

  • 把未来若干跳一次性合并结算
  • stacks 计算要提前结算多少次剩余 repeat
  • consume=true 时才真正扣掉剩余 repeat

基本语法

yaml
- hna-detonateot{参数} @目标选择器

参数列表

参数别名类型默认值说明
all-布尔false是否忽略 key,处理所有匹配实例
keyk字符串-只处理某个 key(支持 * 前缀匹配)
source-字符串all来源过滤(caster/trigger/all
type-字符串all动作类型过滤(all/dot/hot
stacks-字符串/整数1提前清算多少次剩余 repeat(可写 all
consume-布尔true是否真的消耗这些剩余 repeat
aggregate-布尔false是否按"来源 + action 签名"聚合
amp-*---DOT 放大参数(仅 DAMAGE 生效)

基本示例

yaml
# 引爆目标的所有周期效果(提前清算 1 次)
- hna-detonateot{all=true;type=all;stacks=1} @target

# 引爆目标的所有 DOT(提前清算所有剩余跳动)
- hna-detonateot{all=true;type=dot;stacks=all} @target

# 引爆施法者施加的 DOT(提前清算 2 次)
- hna-detonateot{source=caster;stacks=2} @target

# 引爆但不消耗 repeat
- hna-detonateot{source=caster;consume=false} @target

stacks 参数

控制提前清算多少次剩余 repeat:

yaml
# 提前清算 1 次(默认)
- hna-detonateot{key="burn-dot";stacks=1} @target

# 提前清算 2 次
- hna-detonateot{key="burn-dot";stacks=2} @target

# 提前清算所有剩余跳动
- hna-detonateot{key="burn-dot";stacks=all} @target

consume 参数

控制是否真的消耗剩余 repeat:

yaml
# 引爆并消耗 repeat(默认)
- hna-detonateot{key="burn-dot";stacks=2;consume=true} @target

# 引爆但不消耗 repeat(周期效果继续)
- hna-detonateot{key="burn-dot";stacks=2;consume=false} @target

aggregate 参数

控制是否按"来源 + action 签名"聚合成更少的结算段:

yaml
# 不聚合(默认)
- hna-detonateot{all=true;stacks=all;aggregate=false} @target

# 聚合结算
- hna-detonateot{all=true;stacks=all;aggregate=true} @target

实际应用场景

场景 1:DOT 引爆技能

yaml
DetonateDots:
  Skills:
  # 引爆目标的所有 DOT,提前清算所有剩余跳动
  - hna-detonateot{all=true;type=dot;stacks=all} @target
  - effect:particles{p=EXPLOSION_HUGE;a=50} @target
  - message{m="&c持续伤害引爆!"} @target

场景 2:部分引爆

yaml
PartialDetonate:
  Skills:
  # 引爆 2 次剩余跳动,但不消耗 repeat
  - hna-detonateot{source=caster;stacks=2;consume=false} @target
  - effect:particles{p=EXPLOSION_NORMAL;a=20} @target

场景 3:引爆特定 DOT

yaml
DetonateBurn:
  Skills:
  # 只引爆灼烧效果
  - hna-detonateot{key="burn-dot";stacks=all} @target
  - effect:particles{p=FLAME;a=30} @target

场景 4:聚合引爆

yaml
AggregateDetonate:
  Skills:
  # 引爆所有 DOT,聚合结算
  - hna-detonateot{all=true;type=dot;stacks=all;aggregate=true} @target
  - effect:particles{p=EXPLOSION_LARGE;a=40} @target

完整技能示例

yaml
DotExplosion:
  Cooldown: 20
  Skills:
  # 检查目标是否有 DOT
  - hna-hasot{tag="dot"} true
  
  # 引爆所有 DOT,提前清算所有剩余跳动
  - hna-detonateot{all=true;type=dot;stacks=all;aggregate=true} @target
  
  # 特效
  - effect:particles{p=EXPLOSION_HUGE;a=50} @target
  - sound{s=entity.generic.explode;v=2;p=0.8} @target
  - message{m="&c&l持续伤害大爆炸!"} @target
  
  # 如果目标没有 DOT
  - hna-hasot{tag="dot"} false
  - message{m="&e目标没有持续伤害效果!"} @Self

与 hna-triggerot 的区别

特性hna-triggerothna-detonateot
语义立刻多跳一次提前清算未来若干跳
repeat 消耗扣掉 1 次stacks 参数扣除
伤害/治疗1 次跳动的量多次跳动的合并量
使用场景加速效果引爆/清算
consume 参数可选择是否消耗
aggregate 参数可选择是否聚合

注意事项

  1. 是"提前清算未来若干跳",不是"补跳一跳"
  2. stacks 可以是数字或 all
  3. consume=true 时才真正扣掉剩余 repeat
  4. aggregate=true 可以减少结算段数
  5. amp-* 参数只对 DAMAGE 生效
  6. 需要明确的目标选择器

调试方法

text
/hnattr periodic list
/hnattr periodic inspect <key>
/hnattr periodic debug detail <key>

相关文档

HN 系列插件文档