Создание червоточин
Что такое червоточины?
Червоточины — это разновидность высокоэффективной системы телепортации от портала к порталу. Порталы отмечаются визуальными эффектами.
Механика червоточин
Червоточины могут делать следующее:
- Переносить через один портал к порталу назначения и от портала назначения обратно к первому.
- Воспроизводить звук, когда игроки проходят через них
- Временно ослеплять игроков при прохождении для плавного перехода
- Блокировать телепортацию, пока не пройдёт более 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
Устанавливает, включена ли червоточина.
| Key | Values | Default |
|---|---|---|
isEnabled | Boolean | true |
Пример
isEnabled: true
location1
Указывает первое местоположение червоточины. Оба поля принимают world,x,y,z,yaw,pitch или имя файла пакета подземелья, например adventurers_guild_hub.yml. Ссылка на пакет использует его настроенную точку телепортации. Перед использованием установите пакет и загрузите его мир. Телепортация проверяет найденную точку и загрузку мира, но не требует отдельно флага установки пакета. Новый экземпляр подземелья не создаётся.
| Key | Values | Default |
|---|---|---|
location1 | String | none |
Пример
location1: world_one,50,100,50,0,0
location2
Указывает второе местоположение червоточины.
| Key | Values | Default |
|---|---|---|
location2 | String | none |
Пример
location2: world_two,100,33,100,0,0
location1Text
Устанавливает отображаемый текст первого местоположения.
| Key | Values | Default |
|---|---|---|
location1Text | String | none |
Пример
location1Text: Awesome Wormhole In World One

location2Text
Устанавливает отображаемый текст второго местоположения.
| Key | Values | Default |
|---|---|---|
location2Text | String | none |
Пример
location2Text: Awesome Wormhole In World Two

permission
Задаёт право для использования червоточины в обоих направлениях. Игроки с включённым /em quest bypass пропускают эту проверку, но плата и задержка по-прежнему учитываются.
| Key | Values | Default |
|---|---|---|
permission | String | none |
Пример
permission: elitemobs.mypermission
coinCost
Задаёт стоимость использования червоточины. Используются элитные монеты, а при включённой экономической интеграции Vault используется валюта сервера.
Плата списывается только после успешных проверок права, задержки и точки назначения, и в обоих направлениях действует одна и та же стоимость. Игрок, который не может заплатить, получает insufficientCurrencyForWormholeMessage из Wormholes.yml и не телепортируется. Если телепортация отменена или не завершилась, плата возвращается.
Если экономика не может подтвердить списание или возврат, EliteMobs просит игрока обратиться к администратору, записывает сумму в журнал для ручной сверки и блокирует этому игроку все червоточины до перезапуска сервера. Отрицательный или не конечный coinCost вызывает предупреждение в журнале, и червоточина никого не телепортирует.
| Key | Values | Default |
|---|---|---|
coinCost | Double | 0 |
Пример
coinCost: 0
style
Устанавливает визуальную форму червоточины.
Форма отрисовывается как вращающийся каркас из block display, поверх которого каждые 5 тиков добавляется лёгкая присыпка из частиц. Установка style в NONE полностью пропускает форму.
Эти эффекты могут замедлять некоторые клиенты. Установите noParticlesMode: true в Wormholes.yml, чтобы отключить каркас и его частицы. Текст портала, пользовательские модели и отдельный маркер Bedrock сохранятся.
| Key | Values | Default |
|---|---|---|
style | NONE / CRYSTAL / ICOSAHEDRON / CUBE | CUBE |
Пример
style: CRYSTAL

particleColor
Устанавливает цвет частиц, используемых в параметре style. Блоки каркаса не используют точный цвет; EliteMobs выбирает блок бетона, чей цвет наиболее близок к заданному вами.
Значение по умолчанию 0 — это чёрный, поэтому эту настройку стоит задавать для каждой создаваемой вами червоточины.
| Key | Values | Default |
|---|---|---|
particleColor | 0x с последующим hex-кодом | 0 |
Пример
particleColor: 0x9f5cdd

blindPlayer
Определяет, накладывает ли портал слепоту на 40 тиков, примерно 2 секунды, при телепортации.
| Key | Values | Default |
|---|---|---|
blindPlayer | Boolean | false |
Пример
blindPlayer: true

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

customModel1
Устанавливает пользовательскую модель для отображения червоточины в первом местоположении. Использует строку-идентификатор модели. Это переопределяет форму, заданную в style, для местоположения 1.
Пользовательские модели червоточин требуют FreeMinecraftModels. Если модели нет, используется каркас style. Модель служит декорацией и не реагирует на нажатия. Телепортация по-прежнему зависит от расстояния.
| Key | Values | Default |
|---|---|---|
customModel1 | String | none |
Пример
customModel1: my_custom_wormhole_model
customModel2
Устанавливает пользовательскую модель для отображения червоточины во втором местоположении. Использует строку-идентификатор модели. Это переопределяет форму, заданную в style, для местоположения 2. Действует то же требование FreeMinecraftModels, что и для customModel1.
| Key | Values | Default |
|---|---|---|
customModel2 | String | none |
Пример
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 секунд без прямой видимости или когда рядом не остаётся игроков. Это не отключает телепортацию по близости и отдельное отображение пользовательской модели.
