触发器决定了什么时候技能被触发。

可用的所有触发器:

触发器 何时触发...
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”,也就是当这些事发生时:

  • 生物收到伤害
  • 生物造成了伤害
  • 生物出生
  • 生物死亡
    SkeletalWarrior:
    Mobtype: skeleton
    Display: '&9A Skeletal Warrior'
    Health: 100
    Damage: 2
    Drops:
    - DropTable
    Skills:
    - skill{s=Bash} =10%-90%
    
    在这个例子里,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])信号后触发技能
  • 对于需要玩家和生物互相交流的技能,这是个不错的选择
  • 查看机制

results matching ""

    No results matching ""