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

Создание червоточин

webapp_banner.jpg

Что такое червоточины?​

Червоточины — это разновидность высокоэффективной системы телепортации от портала к порталу. Порталы отмечаются визуальными эффектами.

Механика червоточин

Червоточины могут делать следующее:

  • Переносить через один портал к порталу назначения и от портала назначения обратно к первому.
  • Воспроизводить звук, когда игроки проходят через них
  • Временно ослеплять игроков при прохождении для плавного перехода
  • Блокировать телепортацию, пока не пройдёт более 5 секунд и игрок не отойдёт от портала назначения дальше чем на 1.5 × sizeMultiplier + 2 блока, чтобы избежать зацикливания
  • Автоматически отключать режим полёта при телепортации игроков
  • Воспроизводить сложные визуальные эффекты
  • Требовать прав (permissions) для использования червоточины
  • Требовать использования валюты для использования червоточины
  • Уведомлять игроков и администраторов, когда портал назначения недоступен

Игроки проверяются на близость к червоточине только каждые 5 тиков (четверть секунды) и только пока они находятся в пределах 30 блоков от неё.

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

Создание червоточины

Добавляйте файлы конфигурации в plugins/EliteMobs/wormholes. Поддерживаются подпапки, например plugins/EliteMobs/wormholes/dungeonName/dungeonName_identifier.yml.

Размещение червоточины в игре​

Вместо того чтобы прописывать координаты вручную, вы можете встать там, где хотите разместить портал, и выполнить:

/em place wormhole <filename> <1/2>

1 задаёт location1, 2 задаёт location2. Команда требует право elitemobs.place.admin, должна запускаться игроком и записывает новые координаты прямо в конфигурационный файл червоточины. Портал закрепляется на один блок (умноженный на sizeMultiplier) выше того места, где вы стояли, поэтому прибывающие через него игроки опускаются на тот блок, на котором стояли вы.

Направление прибытия​

Yaw и Pitch (два последних числа в координатах) в location1 и location2 задают направление, в котором игрок смотрит при прибытии на эту сторону червоточины. Рассмотрим этот пример:

location1: my_world,20,10,20,180,20

Поскольку Yaw установлен в 180, игрок прибывает лицом на север. Pitch следует соглашению Minecraft, где положительные значения смотрят вниз, а отрицательные — вверх, поэтому Pitch равный 20 означает, что игрок прибывает, глядя слегка вниз.

Учтите, что червоточина никуда игроков не выталкивает; местоположение прибытия — это просто координаты другой стороны, включая её yaw и pitch.

Конфигурация червоточины​

Ниже приведён пример корректной конфигурации червоточины:

isEnabled: true
location1: em_primis,1288.5,19,452.5,135,-23
location2: em_primis,1288.5,-39,451.5,180,-1

isEnabled​

Устанавливает, включена ли червоточина.

KeyValuesDefault
isEnabledBooleantrue
Пример
isEnabled: true

location1​

Указывает первое местоположение червоточины. Оба поля принимают world,x,y,z,yaw,pitch или имя файла пакета подземелья, например adventurers_guild_hub.yml. Ссылка на пакет использует его настроенную точку телепортации. Перед использованием установите пакет и загрузите его мир. Телепортация проверяет найденную точку и загрузку мира, но не требует отдельно флага установки пакета. Новый экземпляр подземелья не создаётся.

KeyValuesDefault
location1Stringnone
Пример
location1: world_one,50,100,50,0,0

location2​

Указывает второе местоположение червоточины.

KeyValuesDefault
location2Stringnone
Пример
location2: world_two,100,33,100,0,0

location1Text​

Устанавливает отображаемый текст первого местоположения.

KeyValuesDefault
location1TextStringnone
Пример
location1Text: Awesome Wormhole In World One

create_wormhole_location1text.jpg


location2Text​

Устанавливает отображаемый текст второго местоположения.

KeyValuesDefault
location2TextStringnone
Пример
location2Text: Awesome Wormhole In World Two

create_wormhole_location2text.jpg


permission​

Задаёт право для использования червоточины в обоих направлениях. Игроки с включённым /em quest bypass пропускают эту проверку, но плата и задержка по-прежнему учитываются.

KeyValuesDefault
permissionStringnone
Пример
permission: elitemobs.mypermission

coinCost​

Задаёт стоимость использования червоточины. Используются элитные монеты, а при включённой экономической интеграции Vault используется валюта сервера.

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

Если экономика не может подтвердить списание или возврат, EliteMobs просит игрока обратиться к администратору, записывает сумму в журнал для ручной сверки и блокирует этому игроку все червоточины до перезапуска сервера. Отрицательный или не конечный coinCost вызывает предупреждение в журнале, и червоточина никого не телепортирует.

KeyValuesDefault
coinCostDouble0
Пример
coinCost: 0

style​

Устанавливает визуальную форму червоточины.

Форма отрисовывается как вращающийся каркас из block display, поверх которого каждые 5 тиков добавляется лёгкая присыпка из частиц. Установка style в NONE полностью пропускает форму.

Эти эффекты могут замедлять некоторые клиенты. Установите noParticlesMode: true в Wormholes.yml, чтобы отключить каркас и его частицы. Текст портала, пользовательские модели и отдельный маркер Bedrock сохранятся.

KeyValuesDefault
styleNONE / CRYSTAL / ICOSAHEDRON / CUBECUBE
Пример
style: CRYSTAL

create_wormhole_style.jpg


particleColor​

Устанавливает цвет частиц, используемых в параметре style. Блоки каркаса не используют точный цвет; EliteMobs выбирает блок бетона, чей цвет наиболее близок к заданному вами.

Значение по умолчанию 0 — это чёрный, поэтому эту настройку стоит задавать для каждой создаваемой вами червоточины.

KeyValuesDefault
particleColor0x с последующим hex-кодом0
Пример
particleColor: 0x9f5cdd

create_wormhole_particlecolor.jpg


blindPlayer​

Определяет, накладывает ли портал слепоту на 40 тиков, примерно 2 секунды, при телепортации.

KeyValuesDefault
blindPlayerBooleanfalse
Пример
blindPlayer: true

create_wormhole_blind.jpg


sizeMultiplier​

Масштабирует форму style и задаёт радиус активации 1.5 × sizeMultiplier блоков. Расстояние учитывает высоту, а отдельный поиск игроков в пределах 30 блоков по-прежнему ограничивает активацию. Используйте конечное положительное число. Параметр также влияет на высоту размещения и текста, но не меняет размер модели FreeMinecraftModels.

KeyValuesDefault
sizeMultiplierMultiplier1
Пример
sizeMultiplier: 3

Помните, что после применения множителя размера вам придётся скорректировать координаты Y червоточины.

create_wormhole_size.jpg


customModel1​

Устанавливает пользовательскую модель для отображения червоточины в первом местоположении. Использует строку-идентификатор модели. Это переопределяет форму, заданную в style, для местоположения 1.

Пользовательские модели червоточин требуют FreeMinecraftModels. Если модели нет, используется каркас style. Модель служит декорацией и не реагирует на нажатия. Телепортация по-прежнему зависит от расстояния.

KeyValuesDefault
customModel1Stringnone
Пример
customModel1: my_custom_wormhole_model

customModel2​

Устанавливает пользовательскую модель для отображения червоточины во втором местоположении. Использует строку-идентификатор модели. Это переопределяет форму, заданную в style, для местоположения 2. Действует то же требование FreeMinecraftModels, что и для customModel1.

KeyValuesDefault
customModel2Stringnone
Пример
customModel2: my_custom_wormhole_model

Пример конфигурации червоточины

В этом примере мы создадим простую червоточину, которая переносит нас из одного мира в другой. Не забывайте, что червоточины также могут просто телепортировать игроков в другое место в том же мире.

isEnabled: true #We enable the worm by setting this value to true
location1: my_world,1.5,11.0,1.5,108.0,5.0 #this is where the wormhole will appear in my_world
location2: my_other_world,766.5,29.0,517.5,-136.0,5.0 #this is where the wormhole will appear in my_other_world
location1Text: "&aGo to My World" #makes a nice display text above wormhole location1
location2Text: "&aGo to My Other World" #makes a nice display text above wormhole location2
permission: eliteperm.coolplayers #only players with this permission will be able to use the wormhole, both for location1 and location2
coinCost: 0 #free to use; a positive value charges elite coins, or Vault currency when Vault is enabled
style: CRYSTAL #this wormhole will be in the shape of a crystal
particleColor: 0x00ff00 #this will set the wormhole particles to green
blindPlayer: true #the wormhole teleport will blind the player for a short duration to make the transition less jarring
sizeMultiplier: 1.0 #sets how big the shape of the wormhole should be

Проблемы с производительностью​

Эффекты червоточин могут замедлять клиенты Bedrock. Их можно настроить в plugins/EliteMobs/Wormholes.yml:

  • reducedParticlesMode: true по умолчанию уменьшает число точек вдоль формы.
  • noParticlesMode: false по умолчанию. Значение true полностью отключает форму и её частицы.

При включении любого из параметров игроки Bedrock также могут видеть простой маркер, если на сервере доступен мост пользовательских сущностей Bedrock. Он использует particleColor и масштаб не меньше 0.5. Успешно загруженная пользовательская модель заменяет маркер. Игроки Java его не видят.

Каркас обновляется, только пока игрок в пределах 30 блоков видит портал без препятствий. Он удаляется примерно через 5 секунд без прямой видимости или когда рядом не остаётся игроков. Это не отключает телепортацию по близости и отдельное отображение пользовательской модели.