Skip to content

机制详解:触发

Liqueur Librazy edited this page Nov 26, 2018 · 5 revisions

触发 (Trigger)

关于触发

触发是 RPGItems 3.6 引入的一个新机制。它的基本概念在之前的版本中就已经出现(如 command 里的 isRight 属性),在 3.6 中变得更加灵活。

当玩家持有 RPGItem 执行某些事件(如右击、攻击实体、弹射物命中),RPGItem 会执行物品上的技能,这个过程被称为“触发”。在老版本中,每个技能的触发是固定的,而在 3.6 中,您可以设置一个技能有效的触发列表。一次触发可以顺序执行多个技能,一个技能也可以设置多个触发。

每个技能具体可用的触发参见该技能的帮助[WIP],在游戏内可以用 Tab 补全查看。

例如我们可以制作一把左键发射火焰右键发射冰块的武器:

/rpgitem create fireandice
/rpgitem power fireandice rpgitems:fire triggers:LEFT_CLICK
/rpgitem power fireandice rpgitems:ice

这里我们设置了技能 fire 的触发为 LEFT_CLICK 即左键,而 ice 默认的触发即为右键。

我们还可以修改该武器的触发,例如将 ice 的触发改为左键,fire 的改为左键与右键。

/rpgitem set fireandice rpgitems:fire 1 triggers LEFT_CLICK,RIGHT_CLICK
/rpgitem set fireandice rpgitems:ice 1 triggers LEFT_CLICK

一个触发的技能是顺序执行的,而某些技能可以中断当前触发的执行,例如 repair 修理技能和 economy 经济技能设置属性 abortOnFailure 后,即可设置修理失败/支付失败后不再执行后续技能。

如制作每0.5s(10tick)可支付十元发射一个火球的物品:

/rpgitem create tendollarfireball
/rpgitem power tendollarfireball rpgitems:economy amountToPlayer:-10 abortOnFailure:true cooldown:10
/rpgitem power tendollarfireball rpgitems:fireball cooldown:0

RPGItems 内置触发列表

默认的触发有:

  • HIT
    玩家使用 RPGItem 近战或者远程击中实体时触发
  • PROJECTILE_HIT
    玩家使用 RPGItem 发射弹射物击中实体或者方块时触发
  • HIT_TAKEN
    玩家持有或背包中有 RPGItem 受伤时触发。注意这个触发里玩家尚未受伤,伤害仍可能被修改或者取消。
  • HURT
    玩家持有或背包中有 RPGItem 受伤后触发。玩家已经受伤,伤害不可被修改或取消。
  • LEFT_CLICK
    玩家使用 RPGItem 主手左击
  • RIGHT_CLICK
    玩家使用 RPGItem 主手右击
  • OFFHAND_CLICK
    玩家使用 RPGItem 副手右击
  • SNEAK
    玩家使用 RPGItem 时潜行
  • SPRINT
    玩家使用 RPGItem 时疾跑
  • SWAP_TO_OFFHAND
    玩家将 RPGItem 交换至副手
  • SWAP_TO_MAINHAND
    玩家将 RPGItem 交换至主手
  • PLACE_OFF_HAND
    玩家将 RPGItem 在背包界面放置在副手
  • PICKUP_OFF_HAND
    玩家将 RPGItem 在背包界面从副手取出
  • TICK
    玩家持有或装备 RPGItem ,每游戏刻(1/20s)触发一次

扩展开发:新增触发

TBD

Clone this wiki locally