跳到主要内容

运输路线

运输路线让玩家乘坐配置好的自定义 Boss,沿作者绘制的曲线移动。路线保存在 plugins/EliteMobs/transport_routes/。坐骑使用 custombosses/ 中普通且已启用的 YAML 定义;实体类型、模型、伪装和技能均在该定义中配置。

一条路线只有一个固定的起点和一个固定的终点。如果想让玩家通过飞行管理员或飞行传送门在多个站点之间往返飞行,请改为构建飞行网络。飞行网络使用与本页相同的坐骑和旅程规则。

在游戏内创建路线​

编辑命令仅供玩家使用,需要 elitemobs.transport.admin 权限。

  1. 站在出发点,执行 /em transport create guild_flight。
  2. 飞到后续各个途经点,分别执行 /em transport add。
  3. 检查粒子预览。浅色曲线会包含准备添加的下一个点。
  4. 面向希望乘客抵达时朝向的方向,执行 /em transport save。
  5. 检查已保存的坐骑和路线设置,再执行 /em transport start guild_flight 试乘。

编辑器新建的路线引用内置自定义 Boss transport_cannon_seat.yml。如有需要,将 transportEntity 改为另一个已启用的自定义 Boss 文件名。

命令操作
/em transport create <id>从当前位置开始新草稿
/em transport edit <id>编辑已启用的现有路线
/em transport add追加当前位置
/em transport move <number>将指定途经点移到当前位置,编号从 1 开始
/em transport remove移除最后一个途经点
/em transport undo撤销上一次几何编辑,最多保留 32 次编辑
/em transport status显示当前草稿
/em transport ride不保存,直接试乘草稿,从草稿的第一个途经点出发
/em transport save保存几何形状和抵达朝向
/em transport cancel丢弃草稿
/em transport list列出已加载路线
/em transport reload重载路线文件和飞行网络文件;正在进行的飞行继续使用原路线
/em transport start <id>开始一条已保存的路线
/em transport stop取消自己的当前旅程

保存时会先检查路线能否按已保存的路径点和到达朝向重新加载,再删除草稿。如果检查失败,即使文件已经写入,草稿仍会保留,供修正或重试。草稿仅保存在内存中,断开连接或关闭时会被清除。

路线 YAML​

guild_flight.yml 示例:

isEnabled: true
name: Guild flight
world: my_dungeon
transportEntity: transport_cannon_seat.yml
speed: 12
acceleration: 8
countdownTicks: 60
arrivalYaw: 90
waypoints:
- "10,70,10"
- "20,85,20"
- "40,70,40"

路线 ID 长度为 1 至 64 个字符,只使用小写字母、数字、下划线或连字符。世界名必须对应玩家所在的原始地图世界。在该地牢的实例中,原始世界名会解析为玩家当前的实例;不要写死自动生成的实例名称。

speed 和 acceleration 必须是有限正数。countdownTicks 不得为负数,默认为 60 tick。保存几何形状时,编辑器会保留现有外观与调节设置。

路线文件支持 extends: other_route.yml,因此一条路线可以继承另一个路线文件的设置,只覆盖不同的部分。isEnabled 不会被继承。参见复用定义。

出发倒计时期间请站着不动。改变位置会取消出发;只转动视角不会取消。此规则仅适用于登乘前,不适用于飞行期间坐骑的移动。/em transport ride 会先把你移到草稿的第一个途经点,其倒计时只有在你从那里移动超过 2 格时才会取消。从飞行传送门出发的飞行允许在传送门范围内移动。

旧路线字段 carrier、customModel 和 flightAnimation 已被拒绝使用。请在引用的自定义 Boss 定义中设置外观和行为。

添加旅行 NPC​

使用 TRANSPORT NPC 类型,并列出已加载的路线 ID,不带 .yml:

interactionType: TRANSPORT
transportRoutes:
- guild_flight

将这些字段添加到有效的 NPC 定义中。菜单接受 1 至 54 个互不重复且可用的目的地,并在登乘前检查玩家是否仍在 NPC 附近。如果想让 NPC 提供某个飞行网络的目的地,请参见飞行管理员。

路线净空与中断​

地图作者负责确保路线畅通。坐骑沿指定曲线移动,不会寻路绕开障碍,也不会修正危险的几何形状。请使用预定坐骑预览并试乘完整路线,为坐骑和乘客都留出足够空间。

飞行使用原生的飞行 Mind。如果服务器版本没有该功能,或者坐骑无法生成(例如缺少 transportEntity 或它已被禁用),玩家会被直接传送到终点,并获得 2 秒失明。坐骑生成失败时,控制台对每条路线只记录一次,直到 EliteMobs 重载为止,拥有 elitemobs.transport.admin 的玩家会在聊天中看到原因。坐骑已生成但无法让玩家入座时,旅程会报错并停止。

飞行期间潜行不会让乘客下来。死亡、传送、切换世界或实例,或坐骑被移除,都会结束旅行。中断会移除坐骑,但不保证传送回起点。如果飞行连续 5 秒没有任何进展,会把乘客放在终点。乘客在地牢实例之外的飞行途中断线,会在下次登录时被放置在终点;停止或重载服务器时,已登乘的乘客会被放置在终点。成功抵达后,乘客会位于终点并朝向 arrivalYaw。

实体类型为鸡或鹦鹉的坐骑在飞行时会掉落羽毛并拍动翅膀。