Перейти к основному содержимому

Транспортные маршруты

Транспортные маршруты перемещают игрока по заданной автором кривой верхом на настроенном пользовательском боссе. Маршруты находятся в plugins/EliteMobs/transport_routes/. Ездовое существо — это обычное включённое YAML-определение из custombosses/, где задаются тип сущности, модель, маскировка и способности.

Маршрут ведёт из одной фиксированной точки старта в одну фиксированную точку финиша. Если игроки должны летать между несколькими станциями через распорядителей полётов или порталы полётов, создайте вместо этого сеть полётов. Сети используют тех же ездовых существ и те же правила поездки, что описаны на этой странице.

Создание маршрута в игре​

Команды редактора доступны только игрокам с правом elitemobs.transport.admin.

  1. Встаньте в точке отправления и выполните /em transport create guild_flight.
  2. Подлетайте к следующим путевым точкам и в каждой выполняйте /em transport add.
  3. Проверьте предварительный просмотр из частиц. Бледная кривая включает следующую предлагаемую точку.
  4. Повернитесь в направлении, куда должны смотреть пассажиры по прибытии, и выполните /em transport save.
  5. Проверьте сохранённые настройки ездового существа и маршрута, затем выполните /em transport start guild_flight для пробной поездки.

Новые маршруты редактора ссылаются на встроенного босса transport_cannon_seat.yml. При необходимости замените transportEntity именем другого включённого файла пользовательского босса.

КомандаДействие
/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"

Используйте идентификатор длиной от 1 до 64 символов из строчных латинских букв, цифр, подчёркиваний и дефисов. Мир должен соответствовать исходному авторскому миру, в котором находится игрок. Внутри экземпляра этого подземелья исходное имя мира разрешается в активный экземпляр игрока; не прописывайте сгенерированные имена экземпляров вручную.

speed и acceleration должны быть конечными положительными числами. countdownTicks не может быть отрицательным; значение по умолчанию составляет 60 тиков. При сохранении геометрии редактор сохраняет существующие настройки оформления и движения.

Файлы маршрутов поддерживают extends: other_route.yml: один маршрут может унаследовать настройки из файла другого маршрута и переопределить только то, что отличается. isEnabled не наследуется. См. повторное использование определений.

Во время обратного отсчёта стойте на месте. Изменение позиции отменяет отправление, но поворот камеры без перемещения его не отменяет. Это правило действует до посадки и не относится к движению ездового существа во время полёта. /em transport ride сначала перемещает вас к первой путевой точке черновика, и его обратный отсчёт отменяется, только если вы отойдёте от неё больше чем на 2 блока. Полёты из портала полётов допускают движение внутри портала.

Устаревшие поля маршрута carrier, customModel и flightAnimation отклоняются. Настраивайте внешний вид и поведение в определении указанного пользовательского босса.

Добавление транспортного NPC​

Используйте тип NPC TRANSPORT и перечислите идентификаторы загруженных маршрутов без .yml:

interactionType: TRANSPORT
transportRoutes:
- guild_flight

Добавьте эти поля в корректное определение NPC. Меню принимает от 1 до 54 различных доступных направлений и перед посадкой проверяет, что игрок всё ещё находится рядом с NPC. NPC, предлагающий пункты назначения сети полётов, описан в разделе распорядители полётов.

Свободное пространство и прерывание поездки​

За свободное пространство на маршруте отвечает создатель карты. Ездовое существо следует заданной кривой, не ищет обход препятствий и не исправляет опасную геометрию. Просмотрите и проедьте весь маршрут на выбранном ездовом существе, оставив достаточно места и для него, и для пассажира.

Полёты используют нативные летающие Mind. Если в версии сервера их нет или ездовое существо не удаётся создать, например потому, что transportEntity отсутствует или отключён, игрок вместо этого сразу телепортируется в конечную точку с 2 секундами слепоты. Если ездовое существо не удаётся создать, консоль записывает это один раз для каждого маршрута до перезагрузки EliteMobs, а игроки с elitemobs.transport.admin видят причину в чате. Ездовое существо, которое создалось, но не может посадить игрока, прерывает поездку с ошибкой.

Приседание не высаживает пассажира во время полёта. Смерть, телепортация, смена мира или экземпляра и удаление ездового существа завершают поездку. Прерванная поездка удаляет ездовое существо, но не гарантирует телепортацию обратно. Если полёт 5 секунд не продвигается, пассажир высаживается в конечной точке. Пассажир, отключившийся посреди полёта вне экземпляра подземелья, при следующем входе оказывается в конечной точке, а остановка или перезагрузка сервера высаживает находящихся на борту пассажиров в конечной точке. При успешном прибытии пассажир оказывается в конечной точке с направлением arrivalYaw.

Ездовые существа с типом сущности «курица» или «попугай» во время полёта роняют перья и машут крыльями.