龙核资源
LyDragonSkillView 提供基于 DragonCore 的技能菜单、技能栏 HUD 和读条 HUD 配置。资源包中包含对应的服务端界面配置与客户端贴图,用于显示技能列表、技能详情、技能升级、技能降级、技能绑定、技能冷却、充能、蓝量、公共冷却和读条进度。
插件的 DragonCore 交互依赖 DragonCore 与 LyDragonSkillView 正常加载。若配置启用了 MySQL 存储,还必须安装 LyMySQLCore 并成功连接数据库,相关玩家数据读写功能才会生效。
文件放置
| 压缩包目录 | 放置位置 | 说明 |
|---|---|---|
龙核服务端配置文件/*.yml | plugins/DragonCore/Gui/ | DragonCore 服务端界面配置。 |
龙核客户端贴图文件/gui/LyDragonSkillView/ | 客户端 DragonCore/gui/LyDragonSkillView/ | 技能菜单、技能栏和读条 HUD 使用的贴图。 |
文件需要分别放置到服务端和客户端对应目录。只复制服务端 YAML 文件而不复制客户端贴图时,界面可能可以打开,但会出现贴图缺失、显示异常或组件无法正常操作。
放置完成后,建议重启客户端资源包,并重载或重启服务端 DragonCore,使界面配置和贴图重新生效。
服务端界面文件
| 文件 | 用途 |
|---|---|
LyDragonSkillView_Gui.yml | 技能菜单主界面,包含技能列表、技能详情、升级、降级、绑定和解绑等交互。 |
LyDragonSkillView_SkillBar.yml | 技能栏 HUD,显示绑定技能图标、充能层数、技能冷却、蓝量和公共冷却。 |
LyDragonSkillView_BootBar.yml | 读条 HUD,显示当前读条技能、读条进度、已用时间、总时间和读条段数。 |
主界面发包
DragonCore 自定义数据包标识使用 LyDragonSkillView。主界面通过以下数据包完成初始化和交互:
| 数据包 | 参数 | 作用 |
|---|---|---|
LyDragonSkillView / 初始化 | 无 | 初始化技能菜单,拉取技能列表、技能分类和玩家相关数据。 |
LyDragonSkillView / 点击技能 / 技能ID | 技能 ID | 选中技能并刷新右侧技能详情。技能 ID 必须是已成功加载的技能配置 ID。 |
LyDragonSkillView / 升级技能 / 技能ID | 技能 ID | 尝试升级指定技能,并刷新技能列表、详情和绑定状态。 |
LyDragonSkillView / 降级技能 / 技能ID | 技能 ID | 尝试降级指定技能,并按配置返还技能点。是否允许降级由 level-down-enable 控制。 |
LyDragonSkillView / 绑定技能 / 键位 / 技能ID | 键位、技能 ID | 将已学习且允许绑定的技能绑定到指定键位。 |
LyDragonSkillView / 解绑技能 / 键位 | 键位 | 清空指定键位上的技能绑定。 |
插件会根据 packet-interval 对 DragonCore 交互数据包进行间隔限制,用于减少短时间内重复点击造成的重复处理。该限制不会改变界面初始化数据包的用途。
HUD 初始化
| HUD | 初始化数据包 | 说明 |
|---|---|---|
| 技能栏 HUD | LyDragonSkillView / 初始化技能栏HUD | 初始化技能栏界面及绑定技能显示。 |
| 读条 HUD | LyDragonSkillView / 初始化读条HUD | 初始化读条界面,并根据读条相关变量控制显示和进度。 |
玩家进入服务器后,插件会尝试打开技能栏 HUD 和读条 HUD。DragonCore 配置文件重新加载时,对应 HUD 也会重新初始化。
如果需要在自定义界面中主动初始化 HUD,应发送对应的数据包:
text
LyDragonSkillView / 初始化技能栏HUD
LyDragonSkillView / 初始化读条HUD技能栏变量
技能栏 HUD 通过 PlaceholderAPI 变量读取玩家当前资源、公共冷却和各键位技能状态。变量刷新间隔由 dragon-placeholder-interval 控制,单位为 tick,最低值为 1。
玩家资源与公共冷却
| 变量 | 返回值 |
|---|---|
%ldsv_mana_now% | 玩家当前蓝量。 |
%ldsv_mana_max% | 玩家最大蓝量。 |
%ldsv_gcd% | 玩家全局公共冷却剩余时间,单位为秒,保留 1 位小数。 |
%ldsv_gcdScale% | 玩家全局公共冷却剩余比例,范围为 0~1。 |
%ldsv_skill_point% | 玩家当前技能点数量。 |
键位技能状态
以下变量中的 {键位} 必须替换为 bind-key 中配置的键位名,例如 Q、R 或 Z。
| 变量 | 返回值 |
|---|---|
%ldsv_skillbar_icon_{键位}% | 指定键位技能的贴图路径或裁剪值。 |
%ldsv_skillbar_charge_{键位}% | 指定键位技能当前可用的充能层数。 |
%ldsv_skillbar_skill_id_{键位}% | 指定键位绑定的技能 ID。 |
%ldsv_skillbar_skill_name_{键位}% | 指定键位绑定的技能显示名称。 |
%ldsv_skillbar_cooldown_{键位}% | 指定键位技能下次恢复的剩余时间,单位为秒,保留 1 位小数。 |
%ldsv_skillbar_cooldownScale_{键位}% | 指定键位技能下次恢复的剩余比例,范围为 0~1。 |
修改 bind-key 后,DragonCore 技能栏中的键位组件也需要同步调整。组件名称、键位文本和对应变量中的键位名必须保持一致。
读条 HUD 变量
读条 HUD 使用以下变量显示当前正在释放的读条技能及其进度:
| 变量 | 返回值 |
|---|---|
%ldsv_boot_skill% | 当前读条技能名称。没有正在读条的技能时不返回有效的读条技能名称。 |
%ldsv_boot_scale% | 当前读条进度比例,范围为 0~1。 |
%ldsv_boot_elapsed% | 当前读条已用时间,单位为秒,保留 1 位小数。 |
%ldsv_boot_total% | 当前读条总时间,单位为秒,保留 1 位小数。 |
%ldsv_boot_trigger_count% | 当前读条总段数。 |
%ldsv_boot_count% | 当前读条总段数。 |
常见显示逻辑是使用 %ldsv_boot_skill% 判断当前是否存在读条技能,再使用 %ldsv_boot_scale% 控制进度组件。读条技能的总段数来自技能等级中的 cast-trigger-count。
技能释放与键位事件
技能栏中的绑定键位由 DragonCore 按键事件触发:
- 按下绑定键位时,插件尝试释放该键位绑定的技能。
- 同一键位在按下到抬起期间只处理一次按下事件,避免长按造成重复释放。
- 使用
hold_cast或hold_release_cast时,抬起键位会参与读条结算。 - 读条未完成就抬起键位时,会按提前松开处理为读条中断。
- 读条完成后抬起键位时,会触发技能释放成功事件。
instant技能不会产生读条进度;tap_cast、hold_cast和hold_release_cast可使用读条 HUD 显示释放进度。
主动技能的读条中断场景可在技能配置的 interrupt-when 中设置,当前代码支持的场景包括:
| 值 | 说明 |
|---|---|
move | 移动时中断读条。 |
attack | 造成伤害时中断读条。 |
damaged | 受到伤害时中断读条。 |
技能栏显示内容
技能栏 HUD 可根据变量显示以下内容:
- 每个开放键位绑定的技能图标和技能名称。
- 技能当前充能层数。
- 技能下次恢复时间和恢复比例。
- 玩家当前蓝量与最大蓝量。
- 玩家全局公共冷却剩余时间和比例。
- 技能冷却完成或充能达到满层时的图标闪烁动画。
技能是否可以绑定到技能栏,还会受到技能类型和配置限制:
- 主动技能固定要求绑定技能栏后释放。
- 被动技能是否要求绑定技能栏,由技能配置中的
require-bind-slot控制。 - 未学习的技能不能绑定。
- 不要求绑定技能栏即可生效的被动技能不能绑定到技能栏。
max-active-skill-amount和max-passive-skill-amount可以限制绑定的主动、被动技能数量;配置值小于等于0时不限制。
技能菜单显示内容
技能菜单从技能配置读取以下内容:
| 配置字段 | 用途 |
|---|---|
name | 技能显示名称。 |
texture | 技能图标贴图路径。 |
simple-description | 技能列表中的简要描述。 |
max-level | 技能菜单显示的等级上限。 |
show-condition | 技能是否显示在技能菜单中的条件列表。 |
skill-level.<等级>.description | 指定技能等级的详情描述。 |
skill-level.<等级>.upgrade-list | 升级到指定等级时需要满足的条件和消耗。 |
技能详情中的描述通常会显示当前等级、额外等级、最终等级、等级上限、冷却、蓝耗和升级条件。DragonCore 界面只负责展示这些数据,实际升级条件由服务端技能配置和插件逻辑判断。
技能分类与职业菜单
插件支持通过 skill-class 将技能分配到不同的技能菜单分类。分类可以配置打开条件,并指定该分类显示的技能 ID。玩家职业相关数据使用 class-setting 配置,技能菜单中的 class 条件会读取玩家当前职业。
DragonCore 自定义界面打开某个分类时,应使用项目中对应的分类数据结构,不要将显示名称误当作技能 ID。技能 ID 必须与 skills 目录中技能配置的顶层节点名称一致。
贴图目录
客户端贴图需要保留以下目录结构:
text
DragonCore/
└── gui/
└── LyDragonSkillView/
├── 技能菜单贴图
├── 技能列表贴图
├── 按钮贴图
├── 技能栏贴图
├── 公共冷却贴图
└── 读条贴图技能配置中的 texture 使用相对于 DragonCore 资源目录的路径,例如:
yaml
texture: "gui/LyDragonSkillView/skill.png"如果技能图标或 HUD 贴图显示异常,优先检查以下内容:
- 客户端目录是否为
DragonCore/gui/LyDragonSkillView/。 - 技能配置中的
texture路径是否与实际文件名一致。 - 是否只复制了服务端 YAML,而没有复制客户端贴图。
- 客户端是否重新加载了 DragonCore 资源包。
- 服务端 DragonCore 是否重新加载了对应 GUI 文件。
MySQL 数据存储
LyDragonSkillView 可以将玩家技能等级、技能点、蓝量、职业和技能绑定等数据保存到 MySQL。
启用 mysql.enable: true 后,必须同时满足以下条件:
- 已安装 LyMySQLCore 插件。
- LyMySQLCore 已成功连接配置的数据库。
- LyDragonSkillView 能够正常获取数据库连接。
如果数据库未成功连接,相关功能不会正常生效。插件在数据库模式下会通过 LyMySQLCore 的玩家数据加载和保存事件读取、保存玩家数据;数据库连接未完成时,玩家登录可能会被阻止。
常见问题
界面可以打开,但没有贴图
检查客户端是否完整放置了 DragonCore/gui/LyDragonSkillView/ 目录。服务端的 plugins/DragonCore/Gui/ 只存放界面 YAML,不能替代客户端贴图。
技能栏没有显示绑定技能
检查以下内容:
- 是否发送了
LyDragonSkillView / 初始化技能栏HUD。 bind-key中是否配置了该键位。- DragonCore 技能栏组件使用的键位名是否与
bind-key完全一致。 - 玩家是否已经学习技能。
- 技能是否允许绑定技能栏。
- 是否超过主动或被动技能的绑定数量上限。
读条 HUD 没有显示进度
检查是否发送了 LyDragonSkillView / 初始化读条HUD,并确认读条 HUD 使用了 %ldsv_boot_skill%、%ldsv_boot_scale%、%ldsv_boot_elapsed% 和 %ldsv_boot_total% 等变量。技能等级中的 cast-time-tick 不能为有效的零时长配置,否则不会产生正常的读条进度。
点击升级或绑定没有反应
确认发送的数据包标识为 LyDragonSkillView,并检查参数顺序是否正确。技能 ID 必须是已加载的技能配置 ID,键位必须是 bind-key 中注册的键位名。
修改键位后 HUD 显示错位
修改 bind-key 后,需要同步修改 DragonCore 技能栏中对应键位的组件、文本和变量引用。仅修改服务端 config.yml 不会自动重命名已有的 DragonCore 组件。
开启 MySQL 后玩家数据没有保存
确认已经安装 LyMySQLCore,并检查 LyMySQLCore 是否成功连接数据库。只有数据库连接成功时,MySQL 相关玩家数据加载、自动保存和退出保存才会生效。