主题
概述
hna-detonateot 用于引爆目标身上的周期效果,把未来若干跳的伤害/治疗一次性合并结算。
核心语义
- 把未来若干跳一次性合并结算
- 按
stacks计算要提前结算多少次剩余 repeat consume=true时才真正扣掉剩余 repeat
基本语法
yaml
- hna-detonateot{参数} @目标选择器参数列表
| 参数 | 别名 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
all | - | 布尔 | false | 是否忽略 key,处理所有匹配实例 |
key | k | 字符串 | - | 只处理某个 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} @targetstacks 参数
控制提前清算多少次剩余 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} @targetconsume 参数
控制是否真的消耗剩余 repeat:
yaml
# 引爆并消耗 repeat(默认)
- hna-detonateot{key="burn-dot";stacks=2;consume=true} @target
# 引爆但不消耗 repeat(周期效果继续)
- hna-detonateot{key="burn-dot";stacks=2;consume=false} @targetaggregate 参数
控制是否按"来源 + 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-triggerot | hna-detonateot |
|---|---|---|
| 语义 | 立刻多跳一次 | 提前清算未来若干跳 |
| repeat 消耗 | 扣掉 1 次 | 按 stacks 参数扣除 |
| 伤害/治疗 | 1 次跳动的量 | 多次跳动的合并量 |
| 使用场景 | 加速效果 | 引爆/清算 |
consume 参数 | 无 | 可选择是否消耗 |
aggregate 参数 | 无 | 可选择是否聚合 |
注意事项
- 是"提前清算未来若干跳",不是"补跳一跳"
stacks可以是数字或allconsume=true时才真正扣掉剩余 repeataggregate=true可以减少结算段数amp-*参数只对 DAMAGE 生效- 需要明确的目标选择器
调试方法
text
/hnattr periodic list
/hnattr periodic inspect <key>
/hnattr periodic debug detail <key>