Skip to content

龙核技能视图 LyDragonSkillView

LyDragonSkillView 是面向 DragonCore 界面的技能系统插件,用于管理技能菜单、技能栏、主动技能、被动技能、读条、充能、蓝量、冷却、技能升级和职业数据。

插件负责保存玩家技能等级、技能点、职业、键位绑定和技能运行状态,并向 DragonCore 同步 HUD 变量。技能效果可通过技能配置中的事件脚本调用消息、音效、指令、MythicMobs 技能、蓝量和冷却操作。

MySQL 前置要求

启用 MySQL 存储时,必须安装 LyMySQLCore,并确认它已成功连接数据库。否则本插件的 MySQL 数据读取、保存、同步和相关记录不会生效。

基本信息

项目内容
插件名LyDragonSkillView
中文名龙核技能视图
作者离渊
当前项目版本1.0.4
主指令/ldsv
Java 版本Java 8
构建 APIPaper 1.16.5 API
技能配置目录plugins/LyDragonSkillView/skills/
主配置文件plugins/LyDragonSkillView/config.yml

版本说明

项目使用 Paper 1.16.5 API 编译。现有项目文件没有提供更完整的跨版本兼容范围,因此不能据此确认其他 Minecraft 版本一定可用。

玩法组成

玩家可以在技能菜单中查看技能、升级技能,并把已学习的技能绑定到开放键位。主动技能由玩家按键释放,被动技能则根据攻击、受击、击杀、技能释放或周期检测自动触发。

技能运行时会处理以下数据:

  • 技能原始等级、额外加成等级和最终有效等级。
  • 技能冷却、充能层数、下次充能恢复时间和公共冷却。
  • 当前蓝量、最大蓝量、每秒回蓝和技能蓝耗。
  • 当前读条技能、读条时间、进度、段数和中断状态。
  • 玩家技能点、职业、技能栏绑定和当前选中技能。
  • 技能升级所需条件与资源消耗。

依赖与兼容插件

plugin.yml 将相关插件声明为软依赖,但不同功能仍需要对应插件实际存在并正常运行。

插件或系统用途使用条件
DragonCore显示技能菜单、技能栏 HUD、读条 HUD,并处理界面发包和按键交互使用龙核界面功能时需要
PlaceholderAPI解析技能条件、属性数值、动态表达式和 %ldsv_...% 变量使用 PAPI 条件或变量时需要
Vault处理 eco 类型的技能升级金币消耗使用金币升级条件时需要
PlayerPoints处理 point 类型的技能升级点券消耗使用点券升级条件时需要
LyMySQLCore提供 MySQL 连接开启 mysql.enable 时必须安装并成功连接
AttributePlus应用职业属性attribute-plugin 选择该插件时需要
SX-Attribute2应用职业属性attribute-plugin 选择该插件时需要
SX-Attribute3应用职业属性attribute-plugin 选择该插件时需要
AttributeSystem应用职业属性attribute-plugin 选择该插件时需要
ItemLoreOrigin应用职业属性attribute-plugin 选择该插件时需要
MythicMobs执行技能事件脚本中的 MM技能 动作配置该动作时需要相应插件环境

主要功能

技能菜单

  • 可以在 skill-class 下建立多个技能菜单。
  • 每个菜单可以配置独立的技能列表。
  • 菜单打开条件支持职业、PAPI 表达式、拥有权限和没有权限。
  • 技能自身也可以通过 show-condition 控制是否显示。
  • 技能列表支持默认顺序、等级从高到低和等级从低到高三种排序方式。
  • 可以配置技能名称显示格式、满级升级条件文本和是否显示绑定键位。
  • DragonCore 界面可以读取当前选中技能的名称、贴图、等级和升级条件。

主动技能

释放方式配置值行为
瞬发instant按键后直接完成释放,不进入读条状态。
点按读条tap_cast按一下开始读条,读条完成后释放。
按住读条hold_cast按住按键开始读条,读条完成后自动释放。
按住并松开释放hold_release_cast按住按键完成读条,完成后松开按键才释放。

主动技能还支持:

  • 使用 cast-time-tick 设置读条时间。
  • 读条时间支持 PlaceholderAPI 变量和四则运算表达式。
  • 使用 cast-trigger-count 把一次读条分成多个触发段。
  • 使用 interrupt-when 设置移动、攻击或受伤时中断读条。
  • 使用 cooldown-on-cast-start 决定冷却从开始释放时计算,还是从读条完成或中断时计算。
  • 使用 cast-condition 在扣蓝和正式释放前拦截不满足条件的释放。
  • 为每个等级分别设置冷却、蓝耗、公共冷却和最大充能层数。

被动技能

触发配置说明
attack玩家造成伤害时检测。
damaged玩家受到伤害时检测。
kill玩家击杀目标时检测。
cast_skill玩家释放任意技能时检测。
cast_skill:all玩家释放任意技能时检测。
cast_skill:技能ID玩家释放指定技能时检测。
tick每个检测周期触发。
tick:间隔按指定 tick 间隔检测。

被动技能支持 PAPI、权限和反向权限条件,并可通过 chance 设置 01 的触发概率。概率文本支持 PlaceholderAPI 和四则运算。

require-bind-slot 用于控制被动技能是否必须装备到技能栏才能生效:

  • false:技能学习后即可参与被动触发。
  • true:技能必须绑定到任意开放键位后才会参与触发。

主动技能始终需要绑定技能栏才能通过玩家按键释放。

技能等级与升级

每个技能拥有独立的 max-levelskill-level 配置。0 级通常只用于显示未学习状态与下一级升级条件,实际效果配置放在后续等级中。

升级规则格式作用
PAPI 条件papi:{表达式}只检查条件,不扣除资源。
物品item:{物品名#数量}按物品名称统计并扣除指定数量。
金币eco:{数量}通过 Vault 检查并扣除金币。
点券point:{数量}通过 PlayerPoints 检查并扣除点券。
技能点skill-point:{数量}扣除玩家持有的技能点。

升级规则可以在 | 后附加界面显示文本。显示文本支持 {item}{amount}。一次升级需要当前目标等级的全部规则都满足。

技能等级由三部分组成:

等级说明
原始等级玩家存档中实际学习的等级。
额外等级由技能的 extra-level-placeholder 计算,可以使用 PAPI 和四则运算。
最终等级原始等级与额外等级相加后的运行时等级。

额外等级会参与技能效果、冷却、蓝耗和等级配置选择,但不会直接修改玩家保存的原始等级。技能降至 0 级后,插件会清理该技能已有的技能栏绑定。

技能栏与充能

  • 开放键位由 bind-key 配置,默认示例为 QRZXCV
  • 同一个技能只保留一个键位绑定。
  • 可以分别限制主动技能和被动技能的最大装备数量,设置为 0 时不限制。
  • max-stack 大于 1 时,技能按充能层数运行。
  • 每次释放固定消耗一层充能。
  • 充能未满时,根据技能冷却时间逐层恢复。
  • 单层技能冷却完成时会触发冷却完成事件,多层技能回满时会触发充能完成事件。
  • DragonCore HUD 可以显示键位贴图、技能 ID、技能名、当前层数、恢复倒计时和恢复比例。

蓝量、冷却与读条

系统说明
最大蓝量使用默认最大蓝量,并可叠加 PlaceholderAPI 百分比属性。
自动回蓝根据配置的每秒回蓝数值恢复。
蓝耗缩减按百分比降低技能蓝耗,结果向上取整。
冷却缩减按百分比降低技能冷却时间。
吟唱加速按百分比缩短读条时间,最高可缩短为瞬发。
公共冷却主动技能可以设置独立 GCD,被动技能不参与 GCD 判定。
禁用世界disable-skill-world 中的世界禁止主动释放和被动触发。

蓝量、蓝耗缩减、冷却缩减和吟唱加速均可以配置属性变量与百分比上限。

读条与中断

读条 HUD 可以取得当前技能名、已用时间、总时间、进度比例和总段数。读条过程中可以按照时间线执行多段事件。

读条支持以下中断来源:

中断值说明
move玩家移动时中断。
attack玩家造成伤害时中断。
damaged玩家受到伤害时中断。
提前松开按压类读条尚未完成时松开按键。
指令中断管理员使用中断指令。
世界限制玩家位于禁用技能世界。

中断事件可以取得当前段数、总段数、已读条秒数和中断比例。

技能事件脚本

主动技能支持以下事件节点:

事件节点触发时间
on-cast-start开始读条时。
on-cast-success瞬发完成或读条成功时。
on-cast-interrupt读条被中断时。
on-cast-trigger读条分段到达触发点时。
on-charge-recover每恢复一层充能时。
on-mana-consume技能成功扣除蓝量时。

被动技能支持 on-cast-successon-charge-recoveron-mana-consume

项目示例确认的脚本动作包括:

  • 发送玩家消息、全服消息和范围消息。
  • 播放音效。
  • 调用 MythicMobs 技能并传递参数。
  • 以控制台、OP 或玩家身份执行指令。
  • 增加或减少指定技能的冷却。
  • 增加或减少玩家蓝量。
  • 使用条件判断组织多条动作。

职业系统

  • 使用 class-setting 注册职业 ID、职业称号和职业属性。
  • 管理员可以设置或清除玩家职业。
  • 技能菜单和单个技能都可以按职业限制显示或打开。
  • 职业切换后会重新应用对应职业属性。
  • 支持通过变量读取职业 ID 和职业称号。

数据存储

插件保存的玩家数据包括技能等级、技能点、职业和技能栏绑定等内容。

存储方式说明
YAML未启用 MySQL,或 MySQL 未成功连接时使用本地 YAML 保存。
MySQLmysql.enable 开启且 LyMySQLCore 已成功连接时使用。
循环保存loop-save-thread-time 控制,设置为 0 可以关闭循环保存。

切换数据库开关需要重启服务器。

常用指令

plugin.yml 没有注册独立权限节点。原有管理指令按 OP 使用,普通玩家仅使用菜单打开指令。

指令使用者说明
/ldsv open [菜单ID]玩家打开指定技能菜单。
/ldsv open [菜单ID1;菜单ID2;菜单ID3]玩家按顺序尝试打开多个菜单,可作为不同职业菜单的统一入口。
/ldsv open [菜单ID] [玩家]OP让指定玩家打开技能菜单。
/ldsv reloadOP重载插件配置与技能配置。
/ldsv uplevel [玩家] [技能ID] [数量]OP无视升级条件提高技能原始等级,数量可以省略。
/ldsv downlevel [玩家] [技能ID] [数量]OP无视降级条件降低技能原始等级,数量可以省略。
/ldsv addsp [玩家] [数量]OP增加玩家技能点。
/ldsv takesp [玩家] [数量]OP扣除玩家技能点。
/ldsv setsp [玩家] [数量]OP设置玩家技能点。
/ldsv class [玩家] [职业ID]OP设置玩家职业。
/ldsv class [玩家] clearOP清除玩家职业。
/ldsv cast [玩家] [技能ID] [等级]OP让玩家按指定运行时等级释放技能,不修改玩家保存的原始等级。
/ldsv interrupt [玩家]OP中断玩家当前正在进行的读条。
/ldsv addmana [玩家] [数值]OP增加固定数值蓝量。
/ldsv addmana [玩家] [百分比%]OP按最大蓝量百分比增加蓝量。
/ldsv reducecd [玩家] [秒数]OP按固定秒数缩短技能冷却。
/ldsv reducecd [玩家] [百分比%]OP按百分比缩短技能冷却。

API 与事件

插件提供 LyDragonSkillViewAPI,可用于读取或修改技能等级、技能点、职业、充能层数、冷却、属性缩减,并调用技能释放逻辑。

已提供的 Bukkit 事件包括:

事件触发时机
SkillCastEvent技能释放流程事件基类。
SkillCastStartEvent读条开始。
SkillCastSuccessEvent技能释放成功。
SkillCastFinishEvent技能释放流程结束。
SkillCastInterruptEvent技能读条中断。
SkillCastTriggerEvent读条分段触发。
SkillChargeCompleteEvent多层技能充能恢复至满层。
SkillCooldownCompleteEvent单层技能冷却完成。

文档索引

页面内容
配置说明config.yml 的数据库、职业、蓝量、冷却、键位、存储和消息配置。
技能配置主动技能、被动技能、等级、升级条件、事件节点和脚本动作。
插件变量PlaceholderAPI 变量与同步给 DragonCore 的 HUD 变量。
龙核资源DragonCore 界面文件、HUD、贴图、按键和发包交互。
常见问题菜单、技能绑定、蓝量、冷却、读条、数据库和依赖排查。