Skip to content

技能状态栏 ​

配置技能状态栏 (Action Bar) 要定下这些: 显示什么内容, 有哪些模板变量, 刷新间隔怎么设, 以及强制延迟怎么用

技能状态栏就是玩家施法时显示在屏幕底部的那行提示, 用来展示技能槽, 触发器, 强制延迟和当前状态. 这样玩家不用老是打开 GUI 去看自己绑了什么

配置位置 ​

状态栏的配置在 config.yml 的 actionbar 节点:

yaml
actionbar:
  # 是否启用技能状态 ActionBar
  enabled: true
  # 刷新间隔, 单位 tick; 小于 1 按 1 处理
  refresh_interval_ticks: 10
  # 施法模式下的显示模板
  template_cast_mode: "<gold>施法模式</gold> %slot_1% %slot_2% %slot_3% <gray>延迟:</gray> %forced_delay%"
  # 非施法模式模板; 空值回退源码默认文本, 不关闭显示
  template_idle: ""
字段类型必填默认值取值范围说明
actionbar.enabledboolean否truetrue / false是否启用状态栏刷新. 关掉后就不再启动刷新任务了
actionbar.refresh_interval_ticksinteger否10≥ 1, 小于 1 按 1刷新间隔, 单位 tick (20 tick ≈ 1 秒)
actionbar.template_cast_modestring否&aCast Mode &7| %slot_display%MiniMessage 文本施法模式开启时用的模板. 留空或全是空白时, 回退成内置默认模板
actionbar.template_idlestring否&7IdleMiniMessage 文本非施法模式的模板. 留空或全是空白时, 回退成内置默认值

IMPORTANT

目前的实现只在玩家处于施法模式并且技能档案已加载时才推送 Action Bar: 玩家退出施法模式或档案没加载时会直接跳过刷新, template_idle 不会发给玩家. 这个键仍然会被解析, 并作为回退的默认值留着

模板变量 ​

变量说明
%slot_display%所有槽位合并后的展示文本, 槽位之间用空格分隔
%slot_1% ~ %slot_n%指定槽位的展示文本. n 取决于玩家的技能槽数量 (slots.default_count); %slot_1% 对应索引 0 的槽位
%forced_delay%全局强制施法延迟的剩余时间, 格式是 1.5s; 没有延迟时是 0s

槽位的展示文本由几部分拼起来: 技能绑定, 触发器显示名, 冷却状态和空槽状态. 空槽用语言文件里的 gui.slot_empty_short, 触发器显示名来自 triggers.<id>.display_name, 没绑触发器时用 gui.trigger_unbound_short

强制延迟 ​

cast_timing 控制释放成功后写进去的全局强制延迟; 剩余时间用上面的 %forced_delay% 展示给玩家看

yaml
cast_timing:
  # 成功施法后的全局延迟, 单位 tick; 0 关闭
  forced_global_cast_delay_ticks: 0
字段类型必填默认值取值范围说明
cast_timing.forced_global_cast_delay_ticksinteger否0≥ 0, 负数按 0成功施法后写进去的全局强制延迟, 单位 tick. 延迟期间新的施法尝试会以 cast.forced_delay 失败. 0 表示关闭

与施法模式的关系 ​

状态栏只在施法模式开启时才刷新. 施法模式的入口键, 启用开关和重登恢复策略写在 config.yml > cast_mode, 见 触发器 - 施法模式

  • 施法模式开启后, 主动触发器才会监听左键, 右键, Q 键, 数字键这些服务端能看到的操作
  • 玩家重登时若 cast_mode.restore_last_state_on_join: true, 会恢复上次的施法模式状态, 状态栏刷新也随之恢复

推荐模板 ​

简洁模板 ​

yaml
actionbar:
  template_cast_mode: "<gold>施法</gold> %slot_display%"

技能槽比较少的服务器, 用它最合适

带延迟提示 ​

yaml
actionbar:
  template_cast_mode: "<gold>施法模式</gold> %slot_1% %slot_2% %slot_3% <gray>延迟:</gray> %forced_delay%"

你启用了 cast_timing.forced_global_cast_delay_ticks 的话, 用它最合适

使用建议 ​

  • 如果你服务器上已经有战斗提示, 区域提示, 任务提示等 Action Bar 输出, 最好统一规划一下谁优先显示
  • 技能槽数量比较多时, 建议用 %slot_display% 或拆成好几组显示, 免得一行太长

排查建议 ​

  • 状态栏不显示: 检查 actionbar.enabled 是否为 true, 你是否已进入施法模式, 技能档案是否已加载
  • 槽位显示为空: 检查你是否拥有技能, 是否已绑定槽位, 技能来源是否已同步
  • 延迟一直不变: 检查 cast_timing.forced_global_cast_delay_ticks 是否配置异常, 技能释放是否成功写入延迟
  • 与其他 Action Bar 插件冲突: 调整 actionbar.refresh_interval_ticks