Skip to content

触发器

Skills 触发器决定技能什么时候被释放。系统分为主动触发器和被动触发器两种架构。

架构概述

  • 主动触发器:玩家在 GUI 中将技能绑定到触发器槽位,通过对应操作释放。
  • 被动触发器:技能配置中通过 passive_triggers 声明,满足条件时自动触发。
text
主动技能:玩家在 GUI 绑定技能到 right_click 槽位 → 右键时释放
被动技能:技能配置 passive_triggers: [attack] → 攻击命中时自动触发

主动触发器

主动触发器是全局槽位,玩家通过技能 GUI 将技能绑定到某个槽位。进入施法模式后,执行对应操作即可释放。

触发器操作
left_click左键
right_click右键
shift_left_clickShift + 左键
shift_right_clickShift + 右键
drop_qQ 键丢弃
hotbar_1 ~ hotbar_9数字键 1~9

主动触发器的冷却由技能定义中的 cooldown_ticksglobal_cooldown_ticks 控制,不在触发器层面配置。

被动触发器

被动技能通过 trigger_type: passivepassive_triggers 列表声明。当列表中的事件发生时,自动尝试释放。

yaml
id: lifesteal_passive
trigger_type: passive
passive_triggers:
  - attack
cooldown_ticks: 60

完整被动触发器列表

触发器触发时机
attack攻击命中实体。
damaged受到任何伤害。
damaged_by_entity被实体伤害。
death玩家死亡。
kill_entity击杀非玩家实体。
kill_player击杀玩家。
shoot_bow射出弓箭。
arrow_hit箭矢命中实体。
arrow_land箭矢落地(未命中)。
shoot_trident掷出三叉戟。
trident_hit三叉戟命中实体。
trident_land三叉戟落地。
break_block破坏方块。
place_block放置方块。
drop_item丢弃物品。
shift_drop_itemShift + 丢弃物品。
swap_items交换主副手。
shift_swap_itemsShift + 交换主副手。
login玩家登录。
sneak潜行切换。
teleport传送。
timer定时触发(间隔由全局 passive_trigger_settings.timer_interval_ticks 控制)。
combo_attack连击触发。连续攻击间隔不超过 passive_trigger_settings.combo_timeout_ticks 时累计连击状态。

被动触发器全局设置

yaml
passive_trigger_settings:
  timer_interval_ticks: 20
  combo_timeout_ticks: 60
字段说明
timer_interval_tickstimer 被动触发器的检查间隔。
combo_timeout_tickscombo_attack 连击状态的超时时间。超过该间隔未攻击会重置连击。

触发器冲突解决

触发器之间存在互斥关系,通过 incompatible_with 声明双向互斥:

  • 每个触发器与自身冲突(同一触发器不能绑定两个技能)。
  • 互斥的触发器之间不能同时绑定技能(如 left_clickshift_left_click)。

冲突矩阵在配置加载时构建,玩家在 GUI 中绑定时会自动检查冲突。

施法模式

主动技能需要进入施法模式才能释放:

  • 默认按 F 键切换施法模式(cast_mode.entry_key: "f")。
  • restore_last_state_on_join: true 时重登后恢复施法模式状态。
  • 施法模式下 ActionBar 显示技能槽信息。

ActionBar 模板变量

变量说明
%slot_display%所有槽位合并显示。
%slot_1% ~ %slot_n%单个槽位显示。
%forced_delay%强制延迟剩余时间。

配置示例

主动技能

yaml
id: fireball
trigger_type: active
display_name: '<red>火球术'
cooldown_ticks: 100
global_cooldown_ticks: 20
resource_costs:
  - type: ea-resource
    target_id: mana
    amount: 20
    operation: consume

玩家在 GUI 中将火球术绑定到 right_click 槽位,进入施法模式后右键释放。

被动技能

yaml
id: thorns_aura
trigger_type: passive
passive_triggers:
  - damaged_by_entity
display_name: '<yellow>荆棘反击'
cooldown_ticks: 40

被实体伤害时自动触发,受 cooldown_ticks 冷却限制。

定时被动

yaml
id: regen_aura
trigger_type: passive
passive_triggers:
  - timer
display_name: '<green>恢复光环'
cooldown_ticks: 0
resource_costs:
  - type: ea-resource
    target_id: mana
    amount: 5
    operation: consume

按全局 timer_interval_ticks 间隔自动触发。