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

Действия Elite Script

Действия являются ядром скрипта. Они определяют, что делает скрипт, и позволяют устанавливать пользовательские интервалы.

Каждое действие содержит тип action и его настройки. Большинство действий получает сущности или позиции через Target, который по умолчанию равен SELF. RUN_COMMAND_AS_CONSOLE и MODIFY_DAMAGE не читают цели, а RUN_SCRIPT передаёт контекст дочерним скриптам. Для задержки используйте wait; остальные настройки описаны у каждого действия.

В примерах ниже NEARBY_PLAYERS, NEARBY_MOBS и NEARBY_ELITES ищут цели в прямоугольной области, простирающейся на range блоков вдоль каждой оси, а не в сфере заданного радиуса. Исключения и ограничения числа целей описаны в разделе Цели.

Общие атрибуты​

ЗначенияПодробностиОсобое
TargetПодробнее здесь❌
waitЗадаёт количество времени для ожидания (тики) перед запуском действий❌
repeatEveryПовторяет действие с положительным интервалом в тиках. times ограничивает число выполнений. Поддерживает диапазоны вроде 1~5; правила завершения приведены ниже.❌
timesЗадаёт, сколько раз будет происходить действие. Вы можете рандомизировать это значение с помощью ~, например: 1~5.Требует repeatEvery
scriptsЗадаёт скрипты, которые будут запущены по окончании действия❌
onlyRunOneScriptВыбирает один из scripts случайным образом и запускает только его.❌
offsetЭтот параметр размещается под Target. Позволяет вам сместить местоположение цели. Для целей ZONE_FULL или ZONE_BORDER смещает каждую выбранную точку зоны.❌
debugЭтот параметр размещается в секции действия скрипта. Когда установлено в true, он будет отображать значки барьеров в области, где находится действие.❌
ConditionsУсловия отдельного действия. Подробнее здесь. В отличие от условий скрипта, здесь conditionType по умолчанию равен FILTERING.❌
FinalTargetВторой блок цели, задающий место назначения. На уровне действия его читают только TELEPORT и NAVIGATE. У Zone: есть собственные FinalTarget / FinalTarget2 для TRANSLATING_RAY.❌
RelativeVectorПодробнее здесь. Используется в PUSH, SET_FACING, SPAWN_FALLING_BLOCK, SUMMON_ENTITY и SUMMON_REINFORCEMENT. Для SPAWN_PARTICLE помещайте relativeVector внутрь записи каждой частицы.❌
offset должен находиться внутри Target

offset:, записанный непосредственно в действии, у которого есть блок Target, разбирается без предупреждения, но нигде не читается и ничего не смещает. Чтобы он работал, поместите его в блок Target (либо FinalTarget / Target2). Если у действия вообще нет блока Target, его цель по умолчанию SELF читает ключи цели, такие как offset, из самого действия.

Типы действий​

wait задерживает только своё действие. Повторяющееся действие выполняется сразу после ожидания, затем с интервалом repeatEvery. Например, times: 3 и repeatEvery: 20 дают выполнения примерно на тиках 0, 20 и 40 после ожидания. Невыполненное блокирующее условие завершает повторение. При отсутствии times используется -1; повторение также прекращается, когда босс становится недействительным. Не используйте times: 0 для отключения действия.

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

Целочисленные диапазоны включают обе границы. repeatEvery выбирается при планировании повторяющейся задачи, а случайное значение times выбирается заново при проверках счётчика. Диапазоны дробных чисел выбирают значения от min до max, не включая max. Обратный диапазон вроде 5~1, диапазон из более чем двух значений, дробное число в целочисленном поле, например duration, или текст, не являющийся числом, заставляют EliteMobs пропустить весь скрипт и записать в журнал Skipped script <name> in <file>.

Временные изменения SCALE, SET_MOB_AI, SET_MOB_AWARE, MAKE_INVULNERABLE, TAG и UNTAG сохраняют исходное состояние. Если изменения одного свойства сущности перекрываются, действует самое новое из ещё активных. По истечении срока восстанавливается более раннее активное значение либо исходное состояние. Длительность 0 или меньше задаёт постоянное значение и отменяет ожидающие восстановления этого свойства. При выключении плагина ещё активные временные изменения восстанавливаются.

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

POTION_EFFECT, SET_ON_FIRE и VISUAL_FREEZE повторно проверяют цели при выполнении. Игроки должны быть онлайн, живы и находиться в исходном мире. В экземпляре подземелья они также должны оставаться его участниками. Эти проверки не распространяются на все действия на этой странице.

ACTION_BAR_MESSAGE​

Задаёт сообщение в action bar для целей.

Примечание: это действие поддерживает плейсхолдеры. Полный список см. в разделе Плейсхолдеры.

ЗначенияПодробностиОбязательноОсобое
TargetПодробнее здесь✅❌
sValueСообщение✅Можно использовать цветовые коды с &
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: ACTION_BAR_MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: "&2Hello World!"

elitescript_actions_actionbar.jpg

Установит action bar с текстом Hello World для всех игроков, находящихся в пределах 10 блоков от босса.


BOSS_BAR_MESSAGE​

Добавляет полосу босса (bossbar) для цели(ей).

Примечание: это действие поддерживает плейсхолдеры. Полный список см. в разделе Плейсхолдеры.

ЗначенияПодробностиОбязательноОсобое
TargetПодробнее здесь✅❌
sValueСообщение✅Можно использовать цветовые коды с &
durationДлительность полосы босса в тиках❌Если не задана или неположительна, используется 100 (5 секунд)
barColorЗадаёт цвет полосы босса. Допустимые значения здесь❌По умолчанию WHITE
barStyleЗадаёт стиль полосы босса. Допустимые значения здесь❌По умолчанию SOLID
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: BOSS_BAR_MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
duration: 120
sValue: "&2Hello World!"
barColor: GREEN
barStyle: SEGMENTED_10

elitescript_actions_bossbar.jpg

Установит полосу босса с текстом Hello World для всех игроков, находящихся в пределах 10 блоков от босса, на 6 секунд (120 тиков).


DAMAGE​

Так вы можете наносить урон сущностям от лица других сущностей.

Примечание: это нативно использует систему урона EliteMobs! Это значит, что вы увидите обычное снижение урона от элитной брони при ударах. Подробнее об этом в разделе множителей.

ЗначенияПодробностиОбязательноПо умолчанию
TargetПодробнее здесь✅❌
multiplierМножитель урона в обработке боя с игроками❌1.0
amountУрон, передаваемый Bukkit. Если источник — живой босс, бой с игроком пересчитывает его по характеристикам босса и multiplier; событие боя между элитными мобами также может заменить его.❌1.0

О рекурсии: вложенные синхронные вызовы DAMAGE останавливаются на глубине урона 3. Обычные вызовы дочерних скриптов не учитываются в этой глубине. Ограничение не останавливает циклы, запланированные на последующие тики.

Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: DAMAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
multiplier: 0.5

Устанавливает урон равным половине базового урона, который босс нанёс бы игроку, с учётом снижений урона.

multiplier​

Задаёт множитель урона босса для эффекта.

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

1.0 сохраняет базовый урон босса, 2.0 удваивает его, а 0.5 уменьшает вдвое. Броня, другие боевые модификаторы, отмена события и невосприимчивость к урону по-прежнему влияют на итоговый полученный урон.

multiplier действует только на цели-игроков через боевую обработку EliteMobs. Для остальных целей действие передаёт Bukkit amount (по умолчанию 1.0) без этого множителя. Другая обработка урона сохраняется: если источник и цель распознаны как элитные мобы, их обработчик заменяет переданный урон базовым уроном атакующего плюс его уровень. Если у босса больше нет живой сущности, действие передаёт урон без указанного источника вместо атаки босса.


HEAL​

Так вы можете лечить сущности, включая игроков.

Для элитных целей используется система лечения EliteMobs. У остальных живых целей, включая игроков, здоровье меняется напрямую с ограничением по базовому значению атрибута максимального здоровья. Этот путь не создаёт событие лечения EliteMobs или всплывающее уведомление.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
amountНа сколько очков лечить. (2 очка — это одно сердце)✅
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: HEAL
Target:
targetType: NEARBY_MOBS
range: 15
amount: 20

Когда босса бьют, он вылечит всех мобов в пределах 15 блоков на 20 очков (10 сердец).


MAKE_INVULNERABLE​

Делает цель неуязвимой.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
invulnerableЗадаёт неуязвимость босса. По умолчанию true❌
durationЗадаёт длительность неуязвимости (тики)❌
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MAKE_INVULNERABLE
Target:
targetType: SELF
invulnerable: true
duration: 60

Делает босса неуязвимым на 60 тиков (3 секунды).


MODIFY_DAMAGE​

Изменяет урон, наносимый боссу, или урон, наносимый игрокам этим боссом. Это особое действие с несколькими специальными требованиями.

ЗначенияПодробностиОбязательно
multiplierМножитель урона.✅

Это действие особое и должно находиться в скрипте, у которого есть слушатель события для события урона. Следующие события урона являются допустимыми: EliteMobDamagedByEliteMobEvent, EliteMobDamagedByPlayerEvent, EliteMobDamagedEvent для событий, снижающих урон, наносимый боссу, и PlayerDamagedByEliteMobEvent для событий, снижающих урон, наносимый игрокам.

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

Для управления этим действием используйте hasTags с условием BLOCKING. MODIFY_DAMAGE меняет текущее событие напрямую и не применяет фильтрующие условия к отдельным целям. Выполняйте его синхронно в обработчике урона: отложенное действие изменит уже обработанное событие.

Поместите MODIFY_DAMAGE непосредственно в Actions скрипта события. Дочерние скрипты, вызванные через scripts или RUN_SCRIPT, не получают событие урона в своих данных действия. Перенос действия в дочерний скрипт лишает его возможности изменить этот удар.

Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MODIFY_DAMAGE
multiplier: 2.0
Conditions:
conditionType: BLOCKING
hasTags:
- "CoolPlayer"
Target:
targetType: DIRECT_TARGET

Увеличивает урон, наносимый боссу игроками, в 2 раза, но только если у игрока есть тег под названием "CoolPlayer"


MESSAGE​

Отправляет сообщение цели(ям).

Примечание: это действие поддерживает плейсхолдеры. Полный список см. в разделе Плейсхолдеры.

ЗначенияПодробностиОбязательноОсобое
TargetПодробнее здесь✅❌
sValueСообщение✅Можно использовать цветовые коды с &
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: "&2Hello World!"

elitescript_actions_message.jpg

Отправит сообщение в чат всем игрокам в пределах 10 блоков от босса.


Заставляет выбранных пользовательских боссов идти к первой позиции, полученной из FinalTarget. Каждое выполнение фиксирует пункт назначения один раз и не следует непрерывно за движущимся игроком. Новое действие навигации заменяет предыдущую задачу навигации этого босса.

ЗначенияПодробностиОбязательноОсобое
TargetПодробнее здесь✅❌
FinalTargetПодробнее здесь✅❌
velocityСкорость, передаваемая адаптеру навигации.❌По умолчанию 1.0
bValueПри true телепортирует босса в пункт назначения по истечении времени навигации, но не при любом досрочном завершении.❌По умолчанию false
durationСколько босс должен пытаться перемещаться, прежде чем сдастся. Задаётся в тиках. По умолчанию 100 тиков.❌❌
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: NAVIGATE
Target:
targetType: SELF
FinalTarget:
targetType: DIRECT_TARGET
velocity: 1.0
bValue: true
duration: 100

Заставит босса переместиться к месту, где стоял игрок, когда он ударил босса.


PLACE_BLOCK​

Размещает блок в местоположении(ях) цели на время длительности.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
materialMaterial блока, полный список здесь✅
durationДлительность эффекта в тиках❌
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: DOME
radius: 3
Target:
targetType: SELF
Actions:
- action: PLACE_BLOCK
Target:
targetType: ZONE_FULL
duration: 120
material: GLASS

elitescript_actions_placeblock.jpg

Размещает стеклянный купол вокруг босса, который продержится 6 секунд.

Примечание: если длительность не задана, размещение блока постоянно.

Когда срок временного размещения истекает, восстанавливаются данные блока, который был на этом месте до первого размещения, если размещённый блок всё ещё там. Игрок, сломавший временный блок, не получает дропа, и блок не восстанавливается. Новое временное размещение на блоке, который всё ещё временный, заменяет материал и перезапускает таймер с новой duration. Временные размещения пропускают контейнеры и другие блоки с сущностями блоков, а также блоки, которые уже удерживает как временные другой владелец, например другой плагин.


PLAY_ANIMATION​

Воспроизводит указанную анимацию пользовательской модели. Цель должна быть пользовательским боссом с корректной моделью от FreeMinecraftModels или Model Engine. Цели без пользовательской модели пропускаются без предупреждения.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
sValueЗадаёт имя анимации✅
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PLAY_ANIMATION
Target:
targetType: SELF
sValue: "fortnite_dance"

Воспроизводит fortnite_dance на пользовательской модели босса. Модель должна предоставлять анимацию с таким именем через FreeMinecraftModels или Model Engine.


PLAY_SOUND​

Воспроизводит внутриигровой звук.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
sValueЗадаёт имя воспроизводимого звука✅
pitchВысота звука. По умолчанию 1.0.❌
volumeГромкость звука. По умолчанию 1.0.❌

Вот удобный список всех звуков Minecraft! Помните, что это также может воспроизводить пользовательские звуки из ресурс-паков. Звук воспроизводится в мире в каждой полученной позиции, поэтому его слышат и находящиеся рядом игроки, не выбранные целями. Зона создаёт звук в каждой выбранной точке. Чтобы звуки не накладывались, используйте одну позицию или уменьшите громкость.

Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PLAY_SOUND
Target:
targetType: SELF
sValue: minecraft:block.bell.resonate

Воспроизводит звук резонанса колоколов Minecraft в местоположении босса


POTION_EFFECT​

Применяет определённый эффект зелья к цели(ям).

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
potionEffectTypeТип эффекта, допустимый список здесь✅
amplifierУровень эффекта зелья (начинается с 0)✅
durationДлительность эффекта (тики)✅
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: POTION_EFFECT
Target:
targetType: NEARBY_PLAYERS
range: 10
potionEffectType: LEVITATION
amplifier: 1
duration: 40

elitescript_actions_potioneffect.jpg

Это заставит всех игроков в пределах 10 блоков от босса левитировать в течение 2 секунд (40 тиков).


PUSH​

Через один тик применяет один вектор скорости ко всем полученным целям. По умолчанию заменяет их текущую скорость. RelativeVector имеет приоритет над vValue; отсутствующий или неконечный вектор становится нулевым.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
vValueВектор скорости. Можно опустить при использовании RelativeVector.❌
bValueЕсли установлено в true, добавляет скорость к текущей скорости цели вместо её замены.❌

Примечание: это действие также принимает относительные векторы. Подробнее о том, как их использовать, здесь.

Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
wait: 3
Target:
targetType: NEARBY_PLAYERS
range: 10
vValue: 0,0.3,0
times: 10
repeatEvery: 10

elitescript_actions_push.jpg

Подбрасывает игроков в ближайшей области поиска вверх со скоростью 0.3. После ожидания в 3 тика действие выполняется 10 раз с интервалом 10 тиков. Между первым и последним выполнением проходит 90 тиков (4.5 секунды); каждый толчок применяется через тик после своего действия. Это не задаёт фиксированную длительность возникшего движения.

Это создаст видимость того, что игроки прыгают.

vector​

Векторы определяются как vValue: x,y,z. Например, если вы хотите, чтобы цель была подброшена вверх, вы можете указать vValue: 0,0.3,0.


REMOVE_ELITE​

Это действие удалит всех нацеленных элитных мобов. Можно сочетать с условиями (Conditions) и тегами (Tags), чтобы удалять только определённых элитных мобов.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: REMOVE_ELITE
Target:
targetType: NEARBY_ELITES
range: 10

Удаляет элитных мобов в области поиска, простирающейся на 10 блоков вдоль каждой оси.

eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: REMOVE_ELITE
Target:
targetType: NEARBY_ELITES
range: 3
Conditions:
conditionType: FILTERING
hasTags:
- remove_me
Target:
targetType: ACTION_TARGET

Удаляет элитных мобов с тегом remove_me в области поиска, простирающейся на 3 блока вдоль каждой оси.


RUN_COMMAND_AS_CONSOLE​

Выполняет команду от лица консоли. Чтобы запретить её по условию, используйте BLOCKING: это действие не получает сущности-цели и не применяет к ним фильтрующие условия.

Команда выполняется один раз на вызов действия, а не для каждой сущности в Target. Плейсхолдеры игрока относятся к прямой цели события, если это игрок.

ЗначенияПодробностиОбязательно
TargetНе читается этим действием; команда выполняется один раз.❌
sValueКоманда, которая будет выполнена✅

Примечание: это действие поддерживает плейсхолдеры. Полный список см. в разделе Плейсхолдеры.

Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: RUN_COMMAND_AS_CONSOLE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: say Hello $bossName my name is $playerName. What is your level? $bossName my level is $bossLevel.

elitescript_actions_commandconsole.jpg

Заставляет консоль разослать сообщение "Hello $bossName my name is $playerName. What is your level? $bossName my level is $bossLevel"


RUN_COMMAND_AS_PLAYER​

Выполняет команду от лица игрока. Требует, чтобы целью были игроки.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
sValueКоманда, которая будет выполнена✅

Плейсхолдеры​

RUN_COMMAND_AS_PLAYER, RUN_COMMAND_AS_CONSOLE, MESSAGE, TITLE_MESSAGE, ACTION_BAR_MESSAGE и BOSS_BAR_MESSAGE поддерживают следующие плейсхолдеры:

$playerName и координаты игрока описывают прямую цель события, а не каждого получателя. Если прямой цели-игрока нет, имя равно Unknown, а координаты — нулю. $targetName — имя учётной записи каждого исполнителя команды; оно доступно только в RUN_COMMAND_AS_PLAYER. Ни один из этих двух плейсхолдеров имени не использует отображаемый псевдоним.

ПлейсхолдерПодробностиОсобое
$playerNameИмя учётной записи прямой цели-игрока событияUnknown, если такого игрока нет
$playerXКоордината X прямой цели-игрока0, если такого игрока нет
$playerYКоордината Y прямой цели-игрока0, если такого игрока нет
$playerZКоордината Z прямой цели-игрока0, если такого игрока нет
$targetNameИмя учётной записи каждого исполнителя команды. Доступно только в RUN_COMMAND_AS_PLAYER и заменяется для каждой цели.Целью должен быть игрок
$bossNameОтображаемое имя босса❌
$bossXКоордината X босса❌
$bossYКоордината Y босса❌
$bossZКоордината Z босса❌
$bossLevelУровень босса❌
$bossWorldNameИмя мира босса❌
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: RUN_COMMAND_AS_PLAYER
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: say Hello $bossName my name is $playerName.

elitescript_actions_commandplayer.jpg

Заставляет игрока выполнить команду say с текстом Hello $bossName my name is $playerName., то есть он просто скажет "Hello $bossName my name is $playerName."


RUN_SCRIPT​

Запускает скрипты из scripts. Другие действия также могут использовать это поле для вызова дочерних скриптов после собственного выполнения. Сам RUN_SCRIPT не получает цели и не применяет фильтрацию по ним; для запрета вызова используйте условие BLOCKING. Если дочерний скрипт использует наследуемые цели, настройте необходимые ему цели родителя.

ЗначенияПодробностиОбязательно
TargetНеобязателен для этого действия; дочерние скрипты получают собственные цели и могут наследовать контекст вызова.❌
scriptsСкрипты, которые будут выполнены✅
onlyRunOneScriptЗапустить только один скрипт из списка.❌
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: RUN_SCRIPT
onlyRunOneScript: false
scripts:
- Example1
- Example2
Example1:
Actions:
- action: DAMAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
multiplier: 0.5
Example2:
Actions:
- action: MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: "&cCool boss!: &fGotcha back!"

elitescript_actions_runscript.jpg

Когда элитный моб получает урон, запускает RUN_SCRIPT, который запускает скрипты Example1 и Example2.

Скрипт Example1 нанесёт урон всем игрокам в пределах 10 блоков от босса.
Скрипт Example2 отправит всем игрокам в пределах 10 блоков от босса сообщение "&cCool boss!: &fGotcha back!".


SCALE​

Позволяет масштабировать сущности.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
scaleЗадаёт размер масштабирования✅
durationЗадаёт, как долго должен длиться эффект масштабирования❌

При масштабировании 1.0 представляет размер по умолчанию. Чтобы сделать сущность больше, увеличьте значение (например, 1.2). Чтобы сделать сущность меньше, уменьшите значение (например, 0.8).

Примечание: это может нацеливаться на игроков, поэтому будьте осторожны с тем, как вы это используете!

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

Пример
eliteScript:
Example:
Events:
- EliteMobDamagedEvent
Actions:
- action: SCALE
Target:
targetType: SELF
scale: 0.3
duration: 60

При ударе базовый масштаб моба становится 0.3. Через 60 тиков возвращается прежний базовый масштаб, если к этому моменту не действует более новое временное изменение.


SET_FACING​

Поворачивает выбранные сущности в одном направлении; часто используется вместе с анимацией. Target по умолчанию равен SELF. Укажите vValue или RelativeVector: относительный вектор имеет приоритет, и все цели используют одно направление.

ЗначенияПодробностиОбязательно
vValueВ каком направлении должен смотреть босс. X,Y,Z❌
RelativeVectorИспользует относительные векторы, чтобы заставить босса смотреть на цель.❌
Пример
eliteScript:
Example:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: SET_FACING
vValue: 1,0,0

Заставит босса смотреть на восток.

eliteScript:
Example:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: SET_FACING
RelativeVector:
SourceTarget:
targetType: SELF
DestinationTarget:
targetType: NEARBY_PLAYERS
range: 20

Поворачивает босса к первому игроку, возвращённому поиском в области на 20 блоков вдоль каждой оси. Это не выбор ближайшего игрока.


SET_MOB_AI​

Задаёт, есть ли у моба ИИ. В Minecraft мобы без ИИ не будут двигаться и не будут атаковать. Они всё ещё могут получать урон, но удары по ним не будут приводить к отбрасыванию.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
bValueЗадаёт, есть ли у босса ИИ✅
durationДлительность в тиках; неположительное значение делает изменение постоянным.❌
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_MOB_AI
Target:
targetType: SELF
bValue: false
duration: 40

Делает так, что у босса нет ИИ в течение 2 секунд (40 тиков).


SET_MOB_AWARE​

Задаёт, осведомлён ли моб. В Minecraft мобы, которые не осведомлены, не будут перемещаться в новые места и не будут атаковать. Они всё ещё могут получать урон, и они будут отбрасываться.

После отключения осведомлённости движение по существующему маршруту может продолжиться. Действие принимает только мобов и не меняет осведомлённость игроков.

Это значит, что вы можете использовать неосведомлённых мобов для перемещения к заданным местам, в отличие от мобов без ИИ.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
bValueЗадаёт, осведомлён ли моб✅
durationДлительность в тиках; неположительное значение делает изменение постоянным.❌
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_MOB_AWARE
Target:
targetType: SELF
bValue: false
duration: 40

Делает так, что босс не осведомлён в течение 2 секунд (40 тиков).


SET_ON_FIRE​

Поджигает сущность на время длительности.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
durationДлительность эффекта в тиках✅
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_ON_FIRE
Target:
targetType: NEARBY_PLAYERS
range: 10
duration: 60

elitescript_actions_setonfire.jpg

Поджигает всех игроков в пределах 10 блоков от босса на 3 секунды (60 тиков).


SET_TIME​

Задаёт внутриигровое время мира, в котором находится цель.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
timeЗадаёт время✅
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_TIME
Target:
targetType: SELF
time: 10000

elitescript_actions_settime.gif

При ударе босс установит время мира, в котором он находится, равным 10000 тиков.


SET_WEATHER​

Задаёт погоду мира, в котором находится цель, на заданное количество времени.

Действие получает сущности-цели, поэтому используйте SELF или другой селектор сущностей, а не отдельный LOCATION. При отсутствующей или неположительной длительности ванильный таймер погоды получает 6 000 тиков. Положительная длительность осадков или грозы также планирует ясную погоду через duration + 1 тик. Перекрывающиеся действия погоды не используют механизм восстановления временных состояний, описанный выше.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
weatherЗадаёт тип погоды✅
durationДлительность в тиках; при отсутствии или неположительном значении действует правило выше.❌
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: PRECIPITATION
duration: 120

elitescript_actions_setweather.gif

Устанавливает дождь или снег в мире босса на 120 тиков (6 секунд). Вид осадков зависит от биома и позиции.

Примечание: эффект сработает не сразу.

weather​

Следующие погодные явления являются допустимыми:

  • CLEAR — устанавливает ясную погоду
  • PRECIPITATION — устанавливает погоду дождь / снег, в зависимости от биома, высоты местоположения и других ванильных факторов Minecraft.
  • THUNDER — устанавливает грозу

SPAWN_FIREWORKS​

Создаёт фейерверки.

ЗначенияПодробностиОбязательноОсобое
TargetПодробнее здесь✅❌
vValueЗадаёт скорость ракеты фейерверка. Также включает запуск под углом вместо вертикального полёта.❌❌
flickerЗадаёт, будут ли частицы фейерверка мерцать❌По умолчанию: true
withTrailЗадаёт, будет ли ракета фейерверка оставлять след❌По умолчанию: true
powerЗадаёт мощность полёта фейерверка.❌По умолчанию 10
fireworkEffectsЦвета каждого эффекта взрыва. Длительностью полёта управляет power, а не этот список.✅❌
fireworkEffectTypeЗадаёт форму фейерверка из этого списка.❌По умолчанию BALL_LARGE
fireworkEffectTypesЗадаёт формы фейерверка из этого списка . Это список форм — если вам нужен список форм, не используйте fireworkEffectType! [1]❌❌

[1] Каждая форма использует список цветов с тем же индексом. Если форм больше, последующие повторно используют последний список цветов. Лишние списки цветов без соответствующей формы не используются.

Пример
eliteScript:
fireworkShot1:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SPAWN_FIREWORKS
Target:
targetType: SELF
offset: 1,1.5,0
vValue: .5,-.35,1
flicker: false
withTrail: false
power: 2
fireworkEffects:
- [ORANGE, RED]
- [YELLOW, BLUE]
fireworkEffectTypes:
- BALL_LARGE
- STAR

elitescript_actions_fireworks.jpg

Создаёт фейерверки у босса со смещением x=1, y=1.5, z=0 и скоростью x=.5, y=-.35, z=1. Они не мерцают и не оставляют следов. power: 2 передаётся в настройку мощности полёта; это не задержка в 2 тика или 2 секунды.

Наконец, есть два списка списков цветов: список 1 — оранжевый и красный, а список 2 — жёлтый и синий. Есть две формы для фейерверков: BALL_LARGE и STAR. Это означает, что BALL_LARGE (элемент 1) будет использовать оранжевый и красный цвета (список 1), а STAR (элемент 2) будет использовать жёлтый и синий цвета (список 2).

fireworkEffects​

Это эффекты, которые покажет ракета фейерверка. Требуется как минимум один эффект. Следующие эффекты являются допустимыми:

  • WHITE, SILVER, GRAY, BLACK, RED, MAROON, YELLOW, OLIVE, LIME, GREEN, AQUA, TEAL, BLUE, NAVY, FUCHSIA, PURPLE, ORANGE

STRIKE_LIGHTNING​

Бьёт молнией. Это визуальный эффект, если вам нужен урон, вам следует добавить действие урона.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: STRIKE_LIGHTNING
Target:
targetType: SELF
repeatEvery: 5
times: 5

elitescript_actions_strike.jpg

Бьёт молнией по боссу каждые 5 тиков 5 раз.


SPAWN_FALLING_BLOCK​

Создаёт падающий блок у цели. Только визуальный, не размещает блок.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
materialЗадаёт Material падающего блока. Проверьте допустимые типы здесь и убедитесь, что это допустимый материал блока.✅
landingScriptsСкрипты, запускаемые при попытке падающего блока превратиться в обычный блок. Необязательны: визуальный эффект работает и без обратного вызова.❌
vValueЗадаёт скорость и направление падающего блока.❌

landingScripts работает так же, как RUN_SCRIPT, но может принимать особый тип цели LANDING_LOCATION.

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

Примечание: это действие также принимает относительные векторы. Подробнее о том, как их использовать, здесь.

Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SPAWN_FALLING_BLOCK
Target:
targetType: SELF
offset: 3,10,0
material: STONE
vValue: 0,0,0
landingScripts:
- LandingScriptExample
LandingScriptExample:
Actions:
- action: PLACE_BLOCK
Target:
targetType: LANDING_LOCATION
duration: 200
material: STONE

elitescript_actions_block.gif

Когда босса бьют, этот скрипт создаст падающий каменный блок на 10 блоков выше и в 3 блоках рядом с местоположением босса.

Как только блок упадёт, он запустит скрипт LandingScriptExample, который разместит каменный блок в месте, куда приземлился блок. Блок останется там на 10 секунд (200 тиков), прежде чем исчезнет.


SPAWN_PARTICLE​

Создаёт частицы у цели.

Только для целей-зон отсутствующий coverage по умолчанию равен 0.3. Для выборки всей зоны явно задайте coverage: 1.0. К обычным целям-сущностям или позициям это уменьшение по умолчанию не применяется.

Цели частиц в зонах, фиксированных позициях и местах приземления смещаются на 0.5 по X и Z перед созданием частиц. Цели-сущности используют полученные позиции без такого смещения.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
particlesПеречисляет частицы, которые будут созданы✅

particles​

У частиц есть собственные специальные настройки, которые выглядят следующим образом:

ЗначенияПодробностиПо умолчаниюОсобое
xЗадаёт смещение по X0.01(1)
yЗадаёт смещение по Y0.01(1)
zЗадаёт смещение по Z0.01(1)
amountЗадаёт количество создаваемых частиц1(1)
speedЗадаёт скорость частиц0.01❌
particleЗадаёт тип частицыFLAMEДопустимые частицы перечислены ниже
redЗадаёт значение красного255(2)
greenЗадаёт значение зелёного255(2)
blueЗадаёт значение синего255(2)
toRedЗадаёт конечное значение красного255(3)
toGreenЗадаёт конечное значение зелёного255(3)
toBlueЗадаёт конечное значение синего255(3)
materialЗадаёт блок или предмет, отображаемый частицами, которые несут данные блока/предметаSTONE(4)
relativeVectorЗадаёт относительный вектор для направления частицы. Подробнее об относительных векторах здесь.none(5)

(1) Если amount установлено в 0, x, y и z будут вместо этого задавать скорость частицы.

(2) RGB применяется к DUST, DUST_COLOR_TRANSITION и частицам с цветовыми данными, например ENTITY_EFFECT. Цвет WITCH фиксирован; red, green и blue его не меняют.

(3) Только для частицы DUST_COLOR_TRANSITION

(4) Только для частиц, которым нужны данные блока (BLOCK, FALLING_DUST, DUST_PILLAR, BLOCK_CRUMBLE, BLOCK_MARKER) или данные предмета (ITEM). Материал, недопустимый для типа данных частицы, откатывается к STONE.

(5) Задание relativeVector принудительно устанавливает amount в 0 и перезаписывает x, y и z разрешённым вектором — именно это превращает частицу в направленную.

moveToTarget ничего не делает

moveToTarget по-прежнему принимается парсером без предупреждения, но никто его не читает — он не имеет вообще никакого эффекта. Для нацеливания частицы используйте relativeVector, который действительно работает.

Важно отметить, что один скрипт SPAWN_PARTICLE может создавать несколько частиц. У каждой частицы затем могут быть собственные поля конфигурации внутри действия SPAWN_PARTICLE. Вот пример:

Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 30
Target:
targetType: DIRECT_TARGET
track: true
Actions:
- action: SPAWN_PARTICLE
Target:
targetType: ZONE_BORDER
particles:
- particle: FLAME
speed: 0.2
amount: 1
- particle: SMOKE_NORMAL
speed: 0.1
amount: 1
repeatEvery: 10

elitescript_actions_particle.jpg

Это создаст цилиндр из частиц пламени и дыма вокруг игрока, который нанёс урон боссу.

Перемещение частицы:​

Можно задать конкретную скорость для частицы, и это работает так же, как в Spigot API. Это позволяет создателям скриптов задавать движение частицы в определённом направлении с определённой скоростью. Невозможно заставить частицы менять направление на полпути. Этот эффект используется в зачаровании flamethrower и одноимённой способности босса.

Чтобы переместить частицу, установите amount: 0. Это просигнализирует Minecraft, что значения x, y и z на самом деле являются вектором. Этот вектор задаёт направление, в котором будет двигаться ваша частица.

Допустим, вы хотите, чтобы частица FLAME двигалась вверх. Чтобы сделать это, вам нужно положительное значение y и ничего больше. Наконец, вам нужно установить скорость на ту, которую вы хотите. Вот полный пример:

Пример
eliteScript:
Example:
Events:
- EliteMobEnterCombatEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 30
Target:
targetType: DIRECT_TARGET
track: true
Actions:
- action: SPAWN_PARTICLE
Target:
targetType: ZONE_BORDER
particles:
- particle: FLAME
amount: 0
x: 0
y: 1
z: 0
speed: 0.2
- particle: SMOKE_NORMAL
speed: 0.1
amount: 0
x: 0.5
y: 1
z: 0.5
repeatEvery: 10

Создаёт движущееся вверх пламя и диагонально движущийся дым вдоль границы цилиндра вокруг игрока, вызвавшего бой. Задавайте amount внутри записи каждой частицы; amount на уровне действия не управляет частицами.

Допустимые частицы​

EliteMobs принимает любую частицу из перечисления Particle в Spigot. Ниже перечислены наиболее часто используемые частицы. Унаследованные имена частиц (из более старых версий Minecraft) автоматически преобразуются в их современные эквиваленты.

Простые частицы (не требуют дополнительных данных в EliteScript; у следов боссов отдельные ограничения):

POOF, EXPLOSION, EXPLOSION_EMITTER, FIREWORK, BUBBLE, SPLASH, FISHING, UNDERWATER, CRIT, ENCHANTED_HIT, SMOKE, LARGE_SMOKE, WITCH, DRIPPING_WATER, DRIPPING_LAVA, ANGRY_VILLAGER, HAPPY_VILLAGER, MYCELIUM, NOTE, PORTAL, ENCHANT, FLAME, LAVA, CLOUD, ITEM_SNOWBALL, ITEM_SLIME, HEART, RAIN, ELDER_GUARDIAN, END_ROD, DAMAGE_INDICATOR, SWEEP_ATTACK, TOTEM_OF_UNDYING, SPIT, SQUID_INK, BUBBLE_POP, CURRENT_DOWN, BUBBLE_COLUMN_UP, NAUTILUS, DOLPHIN, SNEEZE, CAMPFIRE_COSY_SMOKE, CAMPFIRE_SIGNAL_SMOKE, COMPOSTER, FALLING_LAVA, LANDING_LAVA, FALLING_WATER, DRIPPING_HONEY, FALLING_HONEY, LANDING_HONEY, FALLING_NECTAR, SOUL_FIRE_FLAME, ASH, CRIMSON_SPORE, WARPED_SPORE, SOUL, DRIPPING_OBSIDIAN_TEAR, FALLING_OBSIDIAN_TEAR, LANDING_OBSIDIAN_TEAR, REVERSE_PORTAL, WHITE_ASH, FALLING_SPORE_BLOSSOM, SPORE_BLOSSOM_AIR, SMALL_FLAME, SNOWFLAKE, DRIPPING_DRIPSTONE_LAVA, FALLING_DRIPSTONE_LAVA, DRIPPING_DRIPSTONE_WATER, FALLING_DRIPSTONE_WATER, GLOW_SQUID_INK, GLOW, WAX_ON, WAX_OFF, ELECTRIC_SPARK, SCRAPE, SONIC_BOOM, SCULK_SOUL, SCULK_CHARGE_POP, CHERRY_LEAVES, PALE_OAK_LEAVES, EGG_CRACK, DUST_PLUME, WHITE_SMOKE, GUST, SMALL_GUST, GUST_EMITTER_LARGE, GUST_EMITTER_SMALL, TRIAL_SPAWNER_DETECTION, TRIAL_SPAWNER_DETECTION_OMINOUS, VAULT_CONNECTION, INFESTED, ITEM_COBWEB, OMINOUS_SPAWNING, RAID_OMEN, TRIAL_OMEN, FIREFLY, COPPER_FIRE_FLAME

Особые частицы (требуют дополнительных данных конфигурации в EliteScript):

ЧастицаПримечания
DUSTИспользует значения red, green, blue для цвета. Унаследованное имя: REDSTONE
DUST_COLOR_TRANSITIONИспользует red/green/blue для начального цвета и toRed/toGreen/toBlue для конечного цвета
ENTITY_EFFECT и другие частицы с цветовыми даннымиИспользуют red, green, blue для цвета

Частицы, требующие данных блока или предмета — используются в EliteScript, блок или предмет задаётся через material:

BLOCK, FALLING_DUST, DUST_PILLAR, BLOCK_CRUMBLE, BLOCK_MARKER принимают материал блока; ITEM принимает материал предмета. Если material пропущен или недопустим для этой частицы, используется STONE.

      particles:
- particle: BLOCK
material: CRIMSON_NYLIUM
amount: 20

Частицы с другими особыми типами данных:

EliteScript теперь проверяет, что Bukkit требует для каждой частицы, и предоставляет это автоматически:

  • Частицам, принимающим одно число (например, SCULK_CHARGE), передаётся значение speed частицы.
  • Частицам, принимающим одно целое число (например, SHRIEK), передаётся 0.
  • Остальные частицы, для которых EliteScript не может построить данные (например, VIBRATION), пропускаются. Повторы предупреждений подавляются по сочетанию частицы и требуемого типа данных для всех скриптов; первое предупреждение указывает скрипт, встретивший проблему:
[EliteMobs] Skipping script particle VIBRATION in script MyScript because Bukkit requires unsupported Vibration data.

Следы боссов — отдельная система с более строгими требованиями: работа частицы в EliteScript не гарантирует, что она работает как след.

Преобразования унаследованных имён (старые имена всё ещё работают в конфигурационных файлах):

Унаследованное имяСовременное имя
EXPLOSION_NORMALEXPLOSION
EXPLOSION_LARGEEXPLOSION
EXPLOSION_HUGEEXPLOSION
SMOKE_NORMALSMOKE
SMOKE_LARGELARGE_SMOKE
REDSTONEDUST
SLIMEITEM_SLIME
DRIP_LAVADRIPPING_LAVA
DRIP_WATERDRIPPING_WATER
SNOWBALLSNOWFLAKE
SPELLWITCH
SPELL_MOBWITCH
VILLAGER_ANGRYANGRY_VILLAGER
VILLAGER_HAPPYHAPPY_VILLAGER
WATER_BUBBLEUNDERWATER
WATER_SPLASHSPLASH

SUMMON_REINFORCEMENT​

Призывает подкрепления из пользовательских боссов EliteMobs.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
sValueЗадаёт имя файла подкрепления-пользовательского босса✅
durationЗадаёт длительность подкрепления (тики)❌
vValueЗадаёт скорость созданного подкрепления❌

Примечание: это действие также принимает относительные векторы. Подробнее о том, как их использовать, здесь.

Пример
eliteScript:
Example:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: SUMMON_REINFORCEMENT
Target:
targetType: DIRECT_TARGET
sValue: your_boss_file.yml

Создаёт your_boss_file.yml в позиции игрока, вызвавшего бой. Для создания у босса используйте SELF.


SUMMON_ENTITY​

Призывает сущность в позиции цели. Исключение — снаряды, запускаемые живым боссом: они вылетают из босса по одному на каждую полученную целевую позицию. Эти позиции не перемещают точку запуска снаряда.

Для landingScripts состояние проверяется периодически, пока сущность не окажется на земле, не станет недействительной или время наблюдения не превысит 6 000 тиков. Это не обратный вызов попадания снаряда. Для точного момента попадания используйте подходящее событие.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
sValueЗадаёт тип призываемой сущности✅
vValueЗадаёт скорость призванной сущности❌
durationЗадаёт, через сколько призванная сущность будет удалена (тики)❌
landingScriptsСкрипты для запуска, когда сущность приземляется или становится недействительной❌

Примечание: это действие также принимает относительные векторы. Подробнее о том, как их использовать, здесь.

Пример
eliteScript:
Example:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: SUMMON_ENTITY
sValue: ARROW
vValue: 0,1,0
Target:
targetType: SELF
track: false
RelativeVector:
SourceTarget:
targetType: SELF
DestinationTarget:
targetType: NEARBY_PLAYERS
range: 20
normalize: true
multiplier: 8.0

Запускает стрелу из босса к первому игроку в области поиска на 20 блоков вдоль каждой оси. Относительное направление нормализуется и умножается на 8.0, заменяя vValue.


TAG​

Добавляет теги боссам или игрокам. Теги — это просто строки или слова, которые могут определять создатели скриптов. Они используются только для выполнения проверок условий и не имеют прямого игрового эффекта помимо того, для чего они используются в скриптах.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
tagsЗадаёт теги✅
durationЗадаёт длительность тегов (тики)❌
Пример
eliteScript:
Example:
Events:
- EliteMobSpawnEvent
Actions:
- action: TAG
Target:
targetType: SELF
tags:
- fireworks
- action: SPAWN_FIREWORKS
Target:
targetType: SELF
offset: 0,3,0
wait: 20
vValue: 0,.1,0
flicker: true
withTrail: true
power: 1
fireworkEffects:
- [ORANGE, RED]
repeatEvery: 20
Conditions:
hasTags:
- fireworks

Помечает босса строкой "fireworks", которую позже можно проверить через условия скрипта.

Важно: возможно помечать тегами только игроков и элитных мобов.


TELEPORT​

Телепортирует все сущности-цели в первую позицию, полученную из FinalTarget. Несколько пунктов назначения не сопоставляются отдельным сущностям и не выбираются случайно.

ЗначенияПодробностиОбязательно
TargetЗадаёт, кто будет телепортирован. Общая информация о целях здесь!✅
FinalTargetЗадаёт, куда они будут телепортированы. Общая информация о целях здесь!✅
location — настройка цели, а не действия

Место назначения задаётся только через FinalTarget. При записи location: непосредственно в действии на запуске появляется Failed to read key location ..., а при выполнении — Failed to get teleport destination ... because there is no set FinalTarget!.

Для фиксированных координат поместите location внутрь FinalTarget вместе с targetType: LOCATION:

FinalTarget:
targetType: LOCATION
location: world,0,64,0,0,0
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: TELEPORT
Target:
targetType: NEARBY_PLAYERS
range: 10
FinalTarget:
targetType: SELF_SPAWN

elitescript_actions_teleport.gif

Это телепортировало бы всех игроков, находящихся в пределах 10 блоков от босса, к месту появления босса.

location​

Задаёт местоположение, куда будет телепортирован игрок. Оно указывается внутри FinalTarget, рядом с targetType: LOCATION. Формат — стандартный для EliteMobs world_name,x,y,z,yaw,pitch.

Пример

FinalTarget:
targetType: LOCATION
location: world,0,64,0,0,0

Парсер принимает ровно три формы:

ФормаПримерПримечания
world,x,y,z,yaw,pitchworld,0,64,0,0,0Обычная форма
world,x,y,zworld,0,64,0yaw и pitch по умолчанию равны 0
x,y,z,yaw,pitch0,64,0,0,0Без имени мира, см. предупреждение ниже

Последние два значения — это сначала yaw, затем pitch, именно в таком порядке. Всё остальное — в частности, голая форма из трёх значений x,y,z — отвергается с сообщением Attempted to deserialize an invalid location! в консоли, а действие при запуске завершается с ошибкой.

Если имя мира установлено в same_as_boss, оно заменяется именем мира, в котором босс находится в данный момент:

location: same_as_boss,0,64,0,0,0

Незагруженный настроенный мир также разрешается в мир босса, когда босс находится внутри его инстансовой копии (<worldName>_1, <worldName>_2, ...) — именно это позволяет скриптам подземелий работать внутри инстансов.

У формы без мира нет мира

x,y,z,yaw,pitch разбирается, но даёт локацию без привязанного мира, и EliteScript его не подставляет. Это не сокращение «относительно босса». Чтобы разместить что-то относительно босса, используйте same_as_boss для абсолютных координат в мире босса или targetType: SELF / SELF_SPAWN со offset.


TITLE_MESSAGE​

Задаёт сообщение-заголовок (title) для целей.

Примечание: это действие поддерживает плейсхолдеры. Полный список см. в разделе Плейсхолдеры.

ЗначенияПодробностиОбязательноОсобоеПо умолчанию
TargetПодробнее здесь✅❌❌
titleЗаголовок. Укажите хотя бы одно из title или subtitle.❌Поддерживает цветовые коды с &Пустая строка
subtitleПодзаголовок. Укажите хотя бы одно из title или subtitle.❌Поддерживает цветовые коды с &Пустая строка
durationЗадаёт длительность сообщения (тики)✅❌0
fadeInЗадаёт время появления (тики)❌❌1
fadeOutЗадаёт время исчезновения (тики)❌❌1
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: TITLE_MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
title: "&2Hello World!"
subtitle: "&2I am a subtitle!"
duration: 120
fadeIn: 20
fadeOut: 20

elitescript_actions_titlescreen.jpg

Установит сообщение-заголовок, показывающее заголовок "&2Hello World!" с подзаголовком "&2I am a subtitle!" всем игрокам, находящимся в пределах 10 блоков от босса.

Сообщение останется на экране на 8 секунд (120 + 20 + 20 = 160 тиков), включая анимацию появления и исчезновения.


UNTAG​

Удаляет теги у выбранных элитных мобов или игроков. О работе тегов см. TAG.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
tagsЗадаёт теги✅
durationЗадаёт длительность удаления тегов (тики)❌
Пример
eliteScript:
Example:
Events:
- EliteMobSpawnEvent
Actions:
- action: TAG
Target:
targetType: SELF
tags:
- fireworks
- action: SPAWN_FIREWORKS
Target:
targetType: SELF
offset: 0,3,0
wait: 20
vValue: 0,.1,0
flicker: true
withTrail: true
power: 1
fireworkEffects:
- [ORANGE, RED]
repeatEvery: 20
Conditions:
hasTags:
- fireworks
Example2:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: UNTAG
Target:
targetType: SELF
tags:
- fireworks

Удаляет тег "fireworks" у босса, который позже можно проверить через условия скрипта.


VISUAL_FREEZE​

Добавляет тики заморозки каждой цели. Визуальный эффект, оттаивание и урон от заморозки обрабатывает Minecraft; действие не наносит урон напрямую и не гарантирует фиксированную длительность изображения. Повторные применения могут противодействовать оттаиванию.

ЗначенияПодробностиОбязательно
TargetПодробнее здесь✅
amountКоличество тиков заморозки, добавляемых цели✅
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: VISUAL_FREEZE
Target:
targetType: NEARBY_PLAYERS
range: 10
amount: 20
repeatEvery: 20
times: 3

Трижды с интервалом 20 тиков добавляет игрокам в ближайшей области поиска по 20 тиков заморозки. Между применениями игроки могут оттаивать, поэтому это не гарантирует три секунды видимой заморозки.


Несколько действий

Перечислите несколько действий в одном скрипте события. Действия без ожидания выполняются в порядке списка; wait каждого действия независим и не задерживает последующие записи. Этот пример отправляет два сообщения в чат:

Пример
eliteScript:
MessagePlayers:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MESSAGE
Target:
targetType: ALL_PLAYERS
sValue: I am messaging all online players!
- action: MESSAGE
Target:
targetType: DIRECT_TARGET
sValue: I am messaging the player that hit the boss!