配置说明
LyRide 的全局配置位于 config.yml,坐骑配置位于 ride/ 目录。插件重载时会重新读取全局配置和 ride/ 目录下的 YAML 文件,并结束当前正在进行的骑乘。
配置文件
| 文件 / 目录 | 用途 |
|---|---|
config.yml | 属性插件、移速加成、召唤按键、坐骑槽位、世界限制、冷却和消息 |
ride/*.yml | 坐骑类型、速度、跳跃、飞行、伤害、动作和触发技能 |
ride/ 目录下的 YAML 文件会递归读取。示例坐骑文件由插件在重载时重新保存,修改该示例文件前请注意文件中的重置提示。
config.yml
属性插件
yaml
attribute-plugin: ''| 配置 | 说明 |
|---|---|
attribute-plugin | 骑乘期间给玩家添加属性,以及结束骑乘时移除属性。支持 AttributePlus2、AttributePlus3、SX-Attribute2、SX-Attribute3。留空时不使用这些属性插件。 |
修改为 SX-Attribute2 或 SX-Attribute3 后需要重启服务器。
移速属性加成
yaml
move-speed-attribute: ''
move-speed-attribute-max: 100
move-speed-formula: '{speed_base}*(1+({speed_attribute}*0.01))'| 配置 | 说明 |
|---|---|
move-speed-attribute | 通过 PlaceholderAPI 读取玩家移速属性的变量表达式,例如 %ap_attack:min%。留空时属性值按 0 计算。 |
move-speed-attribute-max | 移速属性值上限。低于 0 时按 0 处理,默认值为 100。 |
move-speed-formula | 坐骑最终移动速度计算公式。 |
公式变量如下:
| 变量 | 含义 |
|---|---|
{speed_base} | 坐骑配置中的基础移动速度,即 ride/*.yml 的 move-speed。 |
{speed_attribute} | 读取到并限制在 0 到 move-speed-attribute-max 范围内的移速属性值。 |
当公式为空、缺失或计算结果无效时,使用坐骑基础移动速度。
召唤按键和坐骑槽位
yaml
spawn-ride-key: 'KEY_T'
ride-slot: ''| 配置 | 说明 |
|---|---|
spawn-ride-key | 召唤或结束骑乘使用的按键。按键注册取决于已启用的按键插件。 |
ride-slot | 检测坐骑物品的槽位来源和槽位位置。插件会读取该槽位中的物品名称,并与坐骑配置的 match-name 匹配。 |
ride-slot 支持以下格式:
| 格式 | 说明 |
|---|---|
DragonCore#槽位名 | 读取龙核槽位。 |
GermPlugin#槽位名 | 读取萌芽槽位。 |
APInventory#分页id#槽位id | 读取梦星桐背包槽位,槽位 ID 为 0 到 53。 |
LyInventory#背包id#类型 | 读取离渊背包槽位。 |
Origin#MainHand | 原版主手。 |
Origin#OffHand | 原版副手。 |
Origin#Helmet | 原版头盔。 |
Origin#ChestPlate | 原版胸甲。 |
Origin#Legging | 原版护腿。 |
Origin#Boots | 原版靴子。 |
Minecraft#槽位id | 原版背包槽位,槽位 ID 为 0 到 36。 |
按键格式取决于按键来源:
| 按键来源 | 格式说明 |
|---|---|
| 萌芽 | 一般填写 KEY_T 形式的 KeyType 名称。 |
| 龙核 | 一般填写 T 形式的键位名。 |
世界限制和飞行高度
yaml
anti-ride-world:
- 'antirideworld'
world-fly-limit:
world: 150| 配置 | 说明 |
|---|---|
anti-ride-world | 世界名称匹配列表。玩家所在世界名称包含其中任意文本时,禁止开始骑乘。可用于匹配副本世界名称。 |
world-fly-limit | 飞行坐骑的世界高度限制。键为世界名称,要求完整匹配;值为允许的最高 Y 轴高度。 |
world-fly-limit 只影响飞行坐骑的上升高度,不影响陆行坐骑。
骑乘冷却
yaml
riding-cooldown: 5000| 配置 | 说明 |
|---|---|
riding-cooldown | 开始或结束骑乘后的冷却间隔,单位为毫秒。默认值为 5000。管理员使用 lyzq riding 强制让玩家骑乘时会忽略该冷却。 |
消息
yaml
message:
damaged-stop-riding: '&f[&e坐骑&f] 你的坐骑受到致命伤害导致你取消了骑乘.'
anti-riding: '&f[&e坐骑&f] §c对不起, 当前世界禁止骑乘!'
start-riding: '&f[&e坐骑&f] §a开始骑乘! 本次坐骑: {ride}'
end-riding: '&f[&e坐骑&f] §a结束骑乘!'
riding-cooldown: '&f[&e坐骑&f] §c冷却中, {time}秒后才可以骑乘!'| 配置 | 说明 |
|---|---|
message.damaged-stop-riding | 坐骑受到伤害并触发结束骑乘时使用的提示。 |
message.anti-riding | 当前世界禁止骑乘时使用的提示。 |
message.start-riding | 开始骑乘时使用的提示。支持 {ride},会替换为坐骑名称。 |
message.end-riding | 结束骑乘时使用的提示。 |
message.riding-cooldown | 仍在骑乘冷却期间使用的提示。支持 {time},会替换为剩余秒数,保留一位小数。 |
消息中的 & 颜色代码会转换为 Minecraft 颜色代码。示例中也可以直接使用 §。
ride/*.yml
每个坐骑配置文件对应一个坐骑。坐骑配置会在插件重载时读取,文件中的 id 用于区分坐骑。
基础信息
yaml
id: '示例'
type: 'pig'
match-name: '&6神驹·赤兔'
name: '&6神驹·赤兔'| 配置 | 说明 |
|---|---|
id | 坐骑唯一 ID。管理员强制骑乘指令使用该 ID。 |
type | 原版实体类型。目前支持 pig 和 dragon。 |
match-name | 坐骑槽位物品名称匹配文本。物品显示名称包含该文本时,判定为对应坐骑。 |
name | 坐骑显示名称,也用于替换全局消息中的 {ride}。 |
推荐使用 pig 套用模型。dragon 类型存在朝向表现差异。
移动、跳跃和飞行
yaml
fly: false
move-speed: 0.4
jump-power: 1
jump-tick: 5
jump-count: 2
rise-power: 2
down-power:
-20: -0.5
-70: -1
up-power:
20: 0.5
70: 1| 配置 | 说明 |
|---|---|
fly | 是否启用飞行模式。飞行模式和陆行模式使用不同的移动逻辑。 |
move-speed | 坐骑基础移动速度,最终速度还会根据全局移速公式计算。 |
jump-power | 跳跃或上升力度。陆行模式下会影响跳跃,飞行模式下会参与上升计算。 |
jump-tick | 跳跃持续时间,单位为 tick,最低按 1 处理。 |
jump-count | 陆行模式最多连续跳跃次数。 |
rise-power | 陆行模式自动攀爬高度。仅陆行模式有效。 |
down-power | 飞行模式低头时的下降力度映射。仅飞行模式有效。 |
up-power | 飞行模式抬头时的上升力度映射。仅飞行模式有效。 |
down-power 和 up-power 使用角度到力度的映射:
| 配置 | 角度范围 | 说明 |
|---|---|---|
down-power | 0 到 90 | 玩家视角向下时匹配下降力度。 |
up-power | -90 到 0 | 玩家视角向上时匹配上升力度。 |
映射键使用示例中的角度写法,例如 20、70、-20、-70。插件读取后会转换为内部角度进行判断。
陆行模式下,坐骑会根据 rise-power 检测前方墙体并自动攀爬;飞行模式下,玩家视角和空格输入分别控制水平移动、上升和下降。
骑乘属性和伤害
yaml
riding-attribute:
- '物理伤害10'
ride-can-damaged: false
ride-or-player-damaged-end-riding: true
player-attack-end-riding: true| 配置 | 说明 |
|---|---|
riding-attribute | 骑乘期间添加到玩家身上的属性列表。实际生效依赖全局 attribute-plugin 配置及对应属性插件。 |
ride-can-damaged | 坐骑是否可以受到伤害。为 false 时,坐骑受到的伤害会被取消。 |
ride-or-player-damaged-end-riding | 坐骑或玩家受到伤害时是否结束骑乘。坐骑免疫伤害时,玩家受到伤害仍可触发结束骑乘。 |
player-attack-end-riding | 玩家在骑乘期间造成伤害时是否结束骑乘。 |
当坐骑允许受伤并且受到伤害时,插件会触发坐骑受伤事件;如果同时启用 ride-or-player-damaged-end-riding,则会结束骑乘。
骑乘循环动作
yaml
riding-animation:
- '动作1:1500'
- 'delay:2000'
- '动作2:1200'| 配置 | 说明 |
|---|---|
riding-animation | 玩家骑乘期间循环播放的动作列表。插件会根据已启用的萌芽或龙核自动选择播放方式。 |
每一项支持以下格式:
| 格式 | 说明 |
|---|---|
动作名 | 播放动作。未填写持续时间时,下一次动作默认间隔 1000 毫秒。 |
动作名:毫秒 | 播放动作,并以毫秒数作为下一条配置的等待时间。 |
delay:毫秒 | 不播放动作,仅等待指定毫秒数后继续处理下一项。 |
循环列表播放到末尾后会从第一项重新开始。技能触发时,循环动作会暂停约 1000 毫秒,恢复后从列表开头重新播放。
触发技能
技能配置位于 event 下,每个子节点代表一个技能配置。技能触发后可以执行 MythicMobs 技能、发送消息、执行指令,以及播放坐骑或玩家动作。
yaml
event:
骑乘技能示例:
trigger-type: 'start-riding'
chance: 0.5
cooldown: 1000
mythic-skill: ''
success-message:
- '你触发了示例技能'
fail-message:
- '你没有触发示例技能'
success-command:
- '[console]tell %player_name% 成功时执行这条指令'
fail-command:
- '[console]tell %player_name% 失败时执行这条指令'
ride-action: ''
player-action: ''技能配置项
| 配置 | 默认值 | 说明 |
|---|---|---|
event.<技能ID>.trigger-type | 无 | 技能触发条件。使用下表中的触发类型。 |
event.<技能ID>.chance | 1 | 触发成功概率,范围为 0 到 1。 |
event.<技能ID>.cooldown | 1000 | 技能冷却时间,单位为毫秒。无论成功或失败都会进入冷却。结束骑乘时会清除本次骑乘实例中的技能冷却。 |
event.<技能ID>.mythic-skill | '' | 触发成功时由玩家释放的 MythicMobs 技能。留空时不释放。 |
event.<技能ID>.success-message | 空列表 | 随机判定成功时发送给玩家的消息列表。 |
event.<技能ID>.fail-message | 空列表 | 随机判定失败时发送给玩家的消息列表。 |
event.<技能ID>.success-command | 空列表 | 随机判定成功时执行的指令列表。 |
event.<技能ID>.fail-command | 空列表 | 随机判定失败时执行的指令列表。 |
event.<技能ID>.ride-action | '' | 触发成功时播放的坐骑动作。支持 动作名 或 动作名:毫秒。 |
event.<技能ID>.player-action | '' | 触发成功时播放的玩家动作。支持 动作名 或 动作名:毫秒。 |
<技能ID> 是 event 下的配置节点名称,不是额外的变量占位符。每个坐骑可以配置多个技能。
技能触发类型
trigger-type | 触发时机 |
|---|---|
start-riding | 开始骑乘时。 |
end-riding | 结束骑乘时。 |
fly-up | 飞行坐骑上升时。 |
fly-down | 飞行坐骑下降时。 |
fly-move | 飞行坐骑直线移动时。 |
rising | 陆行坐骑攀爬时。 |
forward | 玩家按住前进键移动时。 |
cease | 玩家松开前进键并停止移动时。 |
damaged | 坐骑受到伤害时。 |
second | 骑乘期间每秒检测一次。 |
right | 玩家骑乘期间点击右键时。 |
left | 玩家骑乘期间点击左键时。 |
部分移动相关触发条件按事件间隔检测,具体触发频率由坐骑移动逻辑决定;cooldown 仍会限制同一技能的连续触发。
技能指令前缀
技能指令支持以下前缀:
| 前缀 | 执行身份 |
|---|---|
[console] | 以控制台身份执行。 |
[op] | 临时给予玩家 OP 后,以玩家身份执行;执行完成后恢复原 OP 状态。 |
[player] | 以玩家身份执行。 |
| 无前缀 | 默认以玩家身份执行。 |
指令执行前会处理 PlaceholderAPI 变量,并支持 eval:{表达式}、ceil:{表达式} 和 floor:{表达式} 数值表达式。表达式也可以使用 ~格式 指定输出格式。
例如:
yaml
success-command:
- '[console]give %player_name% diamond eval:{1+1}'
- '[player]say 当前数值为 ceil:{1.2}'动作播放格式
ride-action 和 player-action 支持以下格式:
yaml
ride-action: '攻击动作:1000'
player-action: '施法动作:800'| 格式 | 说明 |
|---|---|
动作名 | 播放动作,不主动设置停止时间。 |
动作名:毫秒 | 播放动作,并在指定时间后停止动作。 |
动作会根据当前启用的模型插件自动匹配萌芽或龙核。没有对应模型插件时,动作不会按对应方式播放。
配置注意事项
type目前只能填写pig或dragon,其它类型无法创建坐骑实体。- 玩家必须处于地面上时才能正常开始骑乘。
- 玩家传送、切换世界、退出服务器或主动下马时,插件会结束当前骑乘并移除坐骑实体。
- 打开背包时会清除当前移动输入,使坐骑暂停移动。
- 玩家骑乘期间的摔落伤害会被取消。
- 飞行坐骑的最高高度由
world-fly-limit.<世界名>控制;未配置对应世界时不应用该世界高度限制。 attribute-plugin、move-speed-attribute、mythic-skill和动作相关配置只有在对应功能插件已安装并正常启用时才会生效。