Skip to content

插件变量

LySkillView 注册的 PlaceholderAPI 变量标识符为 lsv。所有变量均以 %lsv_...% 格式调用。

变量功能需要安装 PlaceholderAPI。技能等级、键位绑定、技能冷却、当前蓝量和最大蓝量依赖玩家数据库数据,必须安装 LyMySQLCore,并确保 LySkillView 成功连接 MySQL 数据库后才能正常生效。

技能变量

技能 ID 是 plugins/LySkillView/skills 目录中技能配置文件的顶级节点名称,例如 测试主动技能

变量返回内容无有效数据时
%lsv_level:技能ID%玩家指定技能的当前等级0
%lsv_mana:技能ID%指定技能当前等级经过耗蓝缩减后的实际蓝耗0
%lsv_cooldown:技能ID%指定技能当前等级经过冷却缩减后的冷却时间,单位为秒,保留一位小数0

以技能 ID 测试主动技能 为例:

变量返回内容
%lsv_level:测试主动技能%玩家 测试主动技能 的当前等级
%lsv_mana:测试主动技能%当前等级经过耗蓝缩减后的实际蓝耗
%lsv_cooldown:测试主动技能%当前等级经过冷却缩减后的冷却秒数

蓝耗计算

%lsv_mana:技能ID% 按以下顺序计算:

  1. 读取玩家当前技能等级配置中的 mana
  2. 读取 mana-reduction-placeholder 配置的 PlaceholderAPI 变量结果。
  3. 将缩减数值限制在 mana-reduction-max 配置的上限内。
  4. 按百分比减少技能蓝耗。
  5. 将结果转换为整数,小数部分直接截断。

计算关系为:

text
实际蓝耗 = mana × (1 - 耗蓝缩减百分比 ÷ 100)

mana-reduction-placeholder 留空、无法转换为数字或玩家数据未正确载入时,耗蓝缩减按 0 处理。

冷却计算

%lsv_cooldown:技能ID% 按以下顺序计算:

  1. 读取玩家当前技能等级配置中的 cooldown
  2. 解析其中的 PlaceholderAPI 变量和计算表达式。
  3. 读取 cooling-reduction-placeholder 配置的冷却缩减数值。
  4. 将缩减数值限制在 cooling-reduction-max 配置的上限内。
  5. 应用冷却缩减,并将毫秒转换为秒。
  6. 返回保留一位小数的结果。

计算关系为:

text
冷却秒数 = cooldown × (1 - 冷却缩减百分比 ÷ 100) ÷ 1000

技能等级配置中的 cooldown 支持 PlaceholderAPI 变量,以及 +-*/ 和括号组成的计算表达式。

例如:

yaml
cooldown: '1000 + %player_level% * 10'

技能变量应填写已经加载的真实技能 ID。不存在的技能 ID 不属于稳定支持的查询目标,不应依赖其返回值。

键位变量

键位变量使用省略 KEY_ 前缀后的键位名称。配置中的 KEY_Z 在变量中写作 Z

默认配置注册了以下键位:

配置键位变量键位对应萌芽组件
KEY_ZZ技能槽位1
KEY_XX技能槽位2
KEY_CC技能槽位3
KEY_VV技能槽位4
KEY_BB技能槽位5

下表中的 键位 应替换为 register-skill-slot 中已经注册的键位名称,并省略 KEY_ 前缀。

变量返回内容未绑定技能或无有效数据时
%lsv_键位:cd%键位所绑定技能的剩余冷却时间,单位为毫秒0
%lsv_键位:cdmax%键位所绑定技能当前等级配置的冷却时间,单位为毫秒0
%lsv_键位:cdsecond%键位所绑定技能的剩余冷却时间,单位为秒,保留一位小数0
%lsv_键位:icon%键位所绑定技能的萌芽图标路径default-slot-texture 配置的默认槽位贴图
%lsv_键位:skill%键位所绑定技能的技能 IDnull
%lsv_键位:autocast%该键位记录的自动释放开关状态disable

KEY_Z 为例:

变量返回内容
%lsv_Z:cd%Z 键技能的剩余冷却毫秒数
%lsv_Z:cdmax%Z 键技能当前等级配置的冷却毫秒数
%lsv_Z:cdsecond%Z 键技能的剩余冷却秒数
%lsv_Z:icon%Z 键技能的图标路径
%lsv_Z:skill%Z 键绑定的技能 ID
%lsv_Z:autocast%Z 键自动释放的开关状态

冷却变量区别

变量后缀单位是否应用冷却缩减说明
cd毫秒已体现在实际冷却结束时间中当前时刻距离冷却结束的剩余时间
cdsecond已体现在实际冷却结束时间中将剩余冷却转换为秒并保留一位小数
cdmax毫秒当前技能等级 cooldown 表达式的原始计算结果

当技能未处于冷却状态时,cdcdsecond 均返回 0

cdmax 只计算技能等级配置中的 cooldown 表达式,不应用玩家的冷却缩减,也不表示技能当前实际剩余冷却。主动技能释放时,如果技能配置了更长的公共冷却,实际冷却结束时间还可能受到 gcdgcd-group 影响。

自动释放状态

%lsv_键位:autocast% 只返回以下固定值:

返回值含义
enable该键位的自动释放开关已记录为开启
disable该键位的自动释放开关未开启

自动释放任务还会检查玩家是否拥有对应键位权限 lsv.autocast.键位。例如 Z 键对应 lsv.autocast.Z

变量返回 enable 只表示该键位的开关状态已开启,不代表技能一定能够自动释放。实际自动释放还要求:

  • 玩家拥有对应的 lsv.autocast.键位 权限。
  • 玩家不是旁观者模式。
  • 键位已经注册并绑定有效主动技能。
  • 玩家数据和蓝量数据已经载入。
  • 技能已经激活且满足显示条件。
  • 技能不在冷却中。
  • 玩家满足技能释放条件。
  • 玩家拥有足够蓝量。

不支持的键位蓝耗变量

默认 config.yml 的注释中列出了 %lsv_Z:mana%,但当前 PlaceholderAPI 扩展代码没有处理键位的 mana 后缀。该变量会落入未识别变量处理,不应使用。

需要显示键位技能蓝耗时,可以先通过 %lsv_键位:skill% 获取技能 ID,但 PlaceholderAPI 不能直接将一个变量的返回值动态作为另一个 LySkillView 变量的参数。固定技能可以直接使用 %lsv_mana:技能ID%

蓝量变量

变量返回内容玩家蓝量数据未载入时
%lsv_mana%玩家当前蓝量0
%lsv_maxmana%玩家当前最大蓝量100

当前蓝量和技能数据存储在 MySQL 中。必须安装 LyMySQLCore,并确保数据库连接成功,否则相关玩家数据不会正常载入。

玩家当前蓝量始终限制在 0 到当前最大蓝量之间。恢复蓝量或修改最大蓝量时,超过最大蓝量的部分会被截断;低于 0 的蓝量会被修正为 0

最大蓝量以 player-max-mana-default 为基础,并结合 player-max-mana-placeholder 的结果计算。回蓝数值由 player-mana-recovery-valueplayer-mana-recovery-placeholder 共同决定,恢复间隔由 player-mana-recovery-interval 控制。

%lsv_maxmana% 在玩家蓝量数据尚未载入时固定返回 100,此返回值不读取 player-max-mana-default

当前选中技能变量

当前选中技能是玩家在萌芽技能菜单中点击的技能。玩家关闭 LySkillView 技能菜单后,插件会清除当前选中状态。

变量返回内容未选中技能或无有效数据时
%lsv_target_skill_max_level%当前选中技能的最大等级0
%lsv_target_skill_level%玩家当前选中技能的等级0
%lsv_target_skill_name%当前选中技能配置的名称文本空字符串
%lsv_target_skill_icon%当前选中技能的图标路径通常为空字符串;选中记录存在但技能数据无效时返回默认槽位贴图
%lsv_target_skill_id%当前选中技能的技能 ID空字符串

技能名称处理

%lsv_target_skill_name% 直接读取技能配置中的 skill-name 列表,并使用换行连接各行。实现会在每一行后追加换行符,因此返回文本末尾也可能包含换行。

技能菜单组件会处理技能名称中的 {level}{max},但 %lsv_target_skill_name% 本身不会替换这两个标记,也不会主动处理颜色符号或其他 PlaceholderAPI 变量。

例如配置为:

yaml
skill-name:
  - '&6天火暴动 &7({level}/{max})'
  - '&b主动技能'

%lsv_target_skill_name% 返回的是配置中的原始两行文本,而不是替换等级后的菜单显示结果。

返回值规则

情况返回结果
PlaceholderAPI 请求没有关联玩家空字符串
未识别的 LySkillView 变量null
技能等级数据不存在技能等级变量通常返回 0
键位未绑定技能冷却变量返回 0,技能 ID 返回 null,图标返回默认槽位贴图
当前没有选中技能选中技能等级返回 0,文本和 ID 返回空字符串
玩家蓝量数据未载入当前蓝量返回 0,最大蓝量返回 100

使用注意

  • 技能 ID 必须与 plugins/LySkillView/skills 中的顶级节点名称一致。
  • 键位必须已经在 register-skill-slot 中注册。
  • 键位名称建议保持配置中的原始大小写,例如 KEY_Z 对应变量中的 Z
  • 图标变量返回萌芽资源路径,例如 local<->textures/gui/技能视图/slot.png,主要用于萌芽 GUI 或 HUD 贴图组件。
  • %lsv_cooldown:技能ID% 返回应用冷却缩减后的秒数,%lsv_键位:cdmax% 返回未应用冷却缩减的配置毫秒数,两者不能直接作为同一单位比较。
  • 当前技能等级决定蓝耗和冷却配置。技能等级为 0 时,不应将该技能视为已经激活或可以正常释放的技能。
  • 自动释放开关数据只保存在运行时内存中,项目代码没有将该开关写入玩家 MySQL 存档。