Skip to content

插件变量

LyAutoAttack 在 PlaceholderAPI 中注册的标识符为 laa,完整格式为 %laa_变量名%

PlaceholderAPI 依赖

使用本页变量前,服务器必须安装并启用 PlaceholderAPI。PlaceholderAPI 未启动时,LyAutoAttack 不会注册 laa 变量扩展。

变量状态

%laa_status%%laa_lock% 不要求玩家已开启自动攻击。攻击模式、目标数量、抗击退、索敌范围和攻击速度变量只能读取已经启动自动攻击的玩家数据,否则返回 §c错误

变量列表

变量返回示例说明未开启自动攻击时
%laa_status%§a已启动 / §7未启动当前玩家的自动攻击开启状态,文本由配置文件控制正常返回关闭文本
%laa_lock%§a已启动 / §7未启动当前玩家的坐标锁定状态,文本与自动攻击状态共用配置正常返回关闭文本
%laa_mode%最近目标 / 范围目标当前攻击模式;near 返回 最近目标all 返回 范围目标返回 §c错误
%laa_max%1 / 3当前最大攻击目标数;near 模式固定返回 1all 模式返回实际目标上限返回 §c错误
%laa_knockback%1格当前生效的抗击退数值返回 §c错误
%laa_range%3.5x当前生效的索敌范围返回 §c错误
%laa_speed%每秒攻击4.0次根据当前攻击间隔换算的每秒攻击次数返回 §c错误

返回值说明

攻击模式

配置值%laa_mode% 返回值%laa_max% 返回值
near最近目标固定为 1
all范围目标当前实际最大攻击目标数

如果配置了无法识别的模式,模式和目标数量变量不会匹配到有效分支,最终返回 §c错误

攻击速度

%laa_speed% 根据玩家开启自动攻击时记录的攻击间隔计算:

text
每秒攻击次数 = 20 / 攻击间隔

攻击间隔单位为 tick,返回结果保留一位小数。例如攻击间隔为 5 tick 时,变量返回 每秒攻击4.0次

属性加成计算完成后,最终攻击间隔最低为 1 tick,因此变量最多显示为 每秒攻击20.0次

索敌范围

%laa_range% 返回玩家开启自动攻击时确定的最终范围,并在数值后附加 x。属性加成计算完成后,最终范围会被限制在 064 之间。

抗击退

%laa_knockback% 返回基础抗击退与属性加成相加后的数值,并在末尾附加 。变量只反映玩家开启自动攻击时记录的抗击退参数,不说明当前是否启用了增强防击退模式。

状态文本配置

自动攻击状态和坐标锁定状态共用以下两个配置项:

yaml
autoattack-enable-placeholer: '§a已启动'
autoattack-disable-placeholer: '§7未启动'
配置项用途
autoattack-enable-placeholer%laa_status%%laa_lock% 处于开启状态时返回的文本
autoattack-disable-placeholer%laa_status%%laa_lock% 处于关闭状态时返回的文本

配置键中的 placeholer 是插件实际读取的名称,不要改成 placeholder

状态文本支持使用 & 颜色代码,变量返回前会将 & 转换为 §

yaml
autoattack-enable-placeholer: '&a已启动'
autoattack-disable-placeholer: '&7未启动'

以上配置会分别返回 §a已启动§7未启动

条件表达式中的变量

自动开启条件和分组条件支持使用 papi:{表达式} 判断 PlaceholderAPI 变量。表达式中的占位符会先按当前玩家解析,再执行比较。

可使用的位置包括:

配置位置触发时机
join-auto-autoattack-condition玩家进入服务器后自动开启攻击前
respawn-auto-autoattack-condition玩家重生后自动开启攻击前
changeworld-auto-autoattack-condition玩家切换世界后自动开启攻击前
group.<分组ID>.condition玩家开启自动攻击并匹配分组时

支持的运算符

类型运算符
数值比较>>=<<=
相等比较==!=
逻辑与&&
逻辑或`
数学计算+-*/()

逻辑表达式会先按 || 分组,再处理每组中的 && 条件。

数值判断

yaml
join-auto-autoattack-condition:
  - 'papi:{%player_level% >= 30}'

多个条件可以写在同一个表达式中:

yaml
group:
  'high-speed':
    condition:
      - 'papi:{%vault_eco_balance% >= 10000 && %player_level% >= 50}'
    range: 6
    max: 3
    speed: 5
    knockback: 1
    mode: 'all'

数值比较的两侧也支持基础数学表达式:

yaml
condition:
  - 'papi:{(%player_level% + 10) >= 50}'

字符串判断

字符串比较建议在两侧添加相同类型的引号:

yaml
condition:
  - 'papi:{"%laa_status%" == "§a已启动"}'

YAML 外层使用单引号后,表达式内部可以安全使用双引号。字符串比较区分实际文本内容,颜色符号也属于文本的一部分。

状态条件

在进入服务器、重生或切换世界后准备自动开启攻击时,%laa_status% 通常仍是关闭文本。将 %laa_status% == §a已启动 作为自动开启条件,会要求玩家在检查发生前已经处于开启状态。

权限条件

权限条件不是 PlaceholderAPI 变量,但可以和 papi:{...} 条件一起使用。条件列表中的每一项都必须通过:

yaml
join-auto-autoattack-condition:
  - 'papi:{%player_level% >= 30}'
  - 'permission:{vip.1}'
  - 'nopermission:{example.blocked}'
格式通过条件
permission:{权限节点}玩家实际拥有该权限节点
nopermission:{权限节点}玩家实际不拥有该权限节点

插件检查 OP 玩家的权限条件时,会读取玩家的实际有效权限,不会仅因玩家是 OP 就自动通过任意权限节点。

属性加成变量

attribute-addition 可以读取 PlaceholderAPI 变量,并在玩家开启自动攻击时计算最终参数:

yaml
attribute-addition:
  enable: true
  range: '%player_level%'
  max: '%some_amount%'
  speed: '%some_speed_bonus%'
  knockback: '%some_knockback_bonus%'
配置项变量含义计算方式
attribute-addition.range范围百分比加成基础范围 + 基础范围 × 变量值 ÷ 100
attribute-addition.max目标数量加成基础数量 + 变量值的整数部分
attribute-addition.speed攻击速度百分比加成基础攻击间隔 ÷ (1 + 变量值 ÷ 100)
attribute-addition.knockback抗击退加成基础抗击退 + 变量值的整数部分

例如范围变量返回 20,表示基础范围增加 20%;速度变量返回 100,表示最终攻击间隔变为基础值的二分之一。

数值要求

属性加成变量必须解析为纯数字。带单位、百分号或颜色代码的文本无法直接转为数值,例如 10点10%§a10

如果变量无法解析为数字,插件会在控制台输出玩家名、变量内容和原始解析结果,并将本次加成按 0 处理。

属性加成在玩家开启自动攻击时计算。玩家开启后,即使外部变量发生变化,当前 %laa_range%%laa_max%%laa_speed%%laa_knockback% 也不会立即重新计算;需要重新开启自动攻击后才会载入新的数值。

无效变量

出现以下情况时,变量会返回 §c错误

  • 请求的变量名不存在。
  • 玩家对象或变量名为空。
  • 玩家尚未开启自动攻击,却请求了模式、数量、抗击退、范围或速度变量。
  • 当前攻击模式不是插件可识别的 nearall,导致模式或数量无法生成有效结果。

§c错误 是插件写死的返回文本,不能通过状态文本配置修改。