触发器决定了什么时候技能被触发。
可用的所有触发器:
触发器 | 何时触发... |
---|---|
onCombat | 默认 |
onAttack | 当生物攻击 |
onDamaged | 当生物受到伤害 |
onSpawn | 当生物生成 |
onFirstSpawn | 当生物第一次从刷怪点出生时 |
onDeath | 当生物死亡 |
onTimer:# | 每 # ticks |
onInteract | 当生物被右键 |
onKillPlayer | 当生物击杀玩家 |
onPlayerDeath | 当玩家死亡 |
onEnterCombat | 当生物开始战斗(需要开启威胁表) |
onDropCombat | 当生物停止战斗(需要开启威胁表) |
onChangeTarget | 当生物改变目标(需要开启威胁表) |
onExplode | 当生物爆炸(经常只用于爬行者) |
onTeleport | 当生物传送(经常只用于末影人) |
onSignal | 当生物接收到信号 |
onSignal:[signal] | 当生物接收到特定信号 |
使用触发器
触发器在技能栏里定义,常使用 ~ 开头,在 Timer 里,需要一个 ticks 作为单位的时间。
SkeletalWizard_Fire:
Type: WITHER_SKELETON
Display: '&Skeletal Fire Wizard'
Health: 50
Damage: 0.5
Skills:
- ignite{ticks=100} @target ~onAttack
- skill{s=FireShield} @trigger ~onDamaged 0.1
- skill{s=AOEFire} ~onTimer:300
在这个例子里,生物将近战攻击自己的生物点燃,在收到伤害时,会使用 FireShield 技能,还会每 300 ticks 使用 AOEFire 技能。
不使用触发器....
技能触发器给了我们更多的空间使用技能,我们高度推荐你使用最新的触发器,而不是那些老版的方法。
如果技能没有触发器,它会默认为 “~onCombat”,也就是当这些事发生时:
- 生物收到伤害
- 生物造成了伤害
- 生物出生
- 生物死亡
在这个例子里,Bash 技能会在生物受到或造成伤害时触发,并且需要在10-90%的血量之间。SkeletalWarrior: Mobtype: skeleton Display: '&9A Skeletal Warrior' Health: 100 Damage: 2 Drops: - DropTable Skills: - skill{s=Bash} =10%-90%
@trigger 目标选择器
你可能注意到了在这个例子里,有一个 @target 目标选择器。这个将把激活技能的“原因”作为目标。举个例子,如果玩家伤害了生物,并且生物使用了 ~onDamage 来触发技能,那么技能的目标设置为此玩家。如果一个信号发送给了生物,它将把发送信号的生物作为目标。
详细信息 & 示例
~onSpawn
- 当生物生成触发技能
- 只会触发一次
- 可以与几率参数一同使用
- skill{s=DamageImmunity} ~onSpawn 0.50
(生物出生时有 50% 获得上号免疫)
~onDeath
- 生物死亡时触发技能
- 只会触发一次
- 可以与几率参数一同使用
- skill{s=SpawnSpiderlings} ~onDeath 1
(生物死亡时 100% 使用 SpawnSpiderlings 技能)
~onAttack
- 当生物攻击时触发技能
- 在生物攻击什么东西时触发
- 可以与生命和几率参数一同使用
- skill{s=Bash} ~onAttack <50% 0.1
(当生物在 50% 血以下时,攻击有 10% 几率使用 Bash 技能)
~onDamaged
- 当生物受到伤害时触发
- 可以与生命和几率参数一同使用
- skill{s=FlameShield} ~onDamaged 1
(当生物受到伤害,有 100% 的几率使用 FireShield 技能)
~onExplode
- 生物爆炸时触发技能
- 除非你设置了 PreventSuicide 选项,否则只会触发一次。基本上只在爬行者使用,因为其他生物看起来不会爆炸...
- 可以与几率参数一同使用
- skill{s=SpawnCreeper} ~onExplode 0.25
(生物在爆炸时有 25% 的几率使用 SpawnCreeper 技能)
~onTeleport
- 当生物传送时触发技能
- 基本上在末影人使用,或者其他有传送技能的生物
- 可以与生命和几率参数一同使用
- skill{s=GustOfWind} ~onTeleport <50% 1
(生物在传送时有 100% 的几率使用 GustOfWind 技能,并且需要血量少于 50%)
~onTimer:
- 基于计时器触发技能
- ticks 作为单位
- 避免使用几率和生命参数
- 小心使用计时器,因为大量使用可能会造成服务器的性能影响,大量的粒子效果可能造成客户端的性能影响
- skill{s=SingleTargetFire} ~onTimer:200
(每10秒使用 SingleTargetFire 技能)
~onPlayerKill
- 当击杀玩家时触发技能
- 可以与生命和几率参数一同使用
- skill{s=BossRegen} ~onPlayerKill >0 1
(当生物击杀玩家,生物有 100% 的几率使用 BossRegen 技能)
~onEnterCombat
- 当生物停止战斗时触发技能
- skill{s=BuffSelf} ~onEnterCombat >0 1
(当生物开始战斗,有 100% 的几率使用 BuffSelf 技能)
~onDropCombat
- 当生物开始战斗时触发技能
- skill{s=BossRegen} ~onDropCombat >0 1
(当生物停止战斗,有 100% 的几率使用 BossRegen 技能)
~onTargetChange
- 当生物改变目标时触发技能
- skill{s=Charge} ~onTargetChange >0 1
(当生物改变目标,有 100% 的几率使用 Charge 技能)
~onInteract
- 当生物被右键时触发技能
- skill{s=QuestDialogue} ~onInteract >0 1
(当生物被右键时,有 100% 几率使用 QuestDialogue 技能)
~onSignal 或 ~onSignal:[signal]
- 在生物收到(特定[signal])信号后触发技能
- 对于需要玩家和生物互相交流的技能,这是个不错的选择
- 查看机制