Зоны Elite Script
Зоны - это местоположения, определяемые формой, которые могут использоваться в качестве целей скриптерами для выполнения любых действий.
В одном скрипте может быть задана только одна зона.
Для нацеливания на зоны можно использовать типы целей ZONE_FULL или ZONE_BORDER.
Сами зоны также используют Цели скриптов для определения того, где появится зона.
shape
Устанавливает форму зоны. Допустимые формы:
| Тип формы | Подробности | Анимируемая | Граница |
|---|---|---|---|
CYLINDER | Цилиндрическая форма | ❌ | ✅ |
SPHERE | Сферическая форма | ❌ | ✅ |
DOME | Форма купола (полусфера) | ❌ | ✅ |
CUBOID | Кубоидная форма (форма куба) | ❌ | ✅ |
STATIC_RAY | Фиксированная линия между двумя точками | ❌ | ❌ |
ROTATING_RAY | Вращающаяся линия между двумя точками | ✅ | ❌ |
TRANSLATING_RAY | Линия, которая перемещается между двумя начальными точками к двум конечным точкам | ✅ | ❌ |
CONE | Коническая форма | ❌ | ❌ |
Анимируемая
Зоны с анимацией запускают анимацию зоны при первом вызове скрипта.
Это означает, что если у действия есть время ожидания, то когда действие начинается, зона уже перемещалась, пока действие ожидало.
Зоны всегда анимируются на каждом тике. Это означает, что если вы используете действие SPAWN_PARTICLES, вы можете настроить его на выполнение каждый тик, так как зона будет перемещаться каждый тик. Если вы запускаете каждую секунду, вы увидите, как частицы прыгают, так как зона продолжала двигаться даже на тиках, когда частицы не появлялись.
Если вы хотите создать действие вращающейся зоны, но хотите подождать определенное количество тиков перед запуском действия, сделайте это другим скриптом и вызовите этот скрипт через RUN_SCRIPT. Убедитесь, что у RUN_SCRIPT есть нужное вам время ожидания.
Зоны останутся в конечном положении после завершения анимации.
Все анимируемые зоны настроены на отсутствие отслеживания целей скрипта, так как дополнительное движение сделало бы вещи слишком сложными для понимания скриптерами и игроками. Это означает, что эти зоны не будут следовать за боссами или игроками и всегда будут двигаться относительно своих начальных точек появления.
Граница
Некоторые зоны могут иметь границы. Границы означают, что ZONE_BORDER может быть использован в качестве цели зоны. Границы определяются путем создания второй, меньшей формы внутри первой, большей формы. Область между меньшей зоной и большей зоной является границей.
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_LARGE
Target:
targetType: ZONE_BORDER
repeatEvery: 5
times: 20

Этот скрипт создает частицы дыма, которые появляются только на границе зоны в течение 5 секунд (повтор каждые 5 x раз 20 = 100 тиков).
Если бы вы не использовали опцию ZONE_BORDER, а вместо этого опцию ZONE_FULL, вся зона была бы покрыта частицами дыма следующим образом:

SPHERE
| Ключ | Подробности | Обязательный |
|---|---|---|
shape | Устанавливает форму зоны. Должно быть SPHERE | ✅ |
target | Устанавливает местоположение центра сферы | ✅ |
filter | Устанавливает, какие типы сущностей будут целевыми | ❌ |
radius | Радиус сферы | ✅ |
borderRadius | Радиус внутренней сферы | ❌ |
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: SPHERE
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

Этот скрипт демонстрирует форму сферы, используя частицы облака.
DOME
| Ключ | Подробности | Обязательный |
|---|---|---|
shape | Устанавливает форму зоны. Должно быть DOME | ✅ |
target | Устанавливает местоположение центра купола | ✅ |
filter | Устанавливает, какие типы сущностей будут целевыми | ❌ |
radius | Радиус купола | ✅ |
borderRadius | Радиус внутреннего купола | ❌ |
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: DOME
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

Этот скрипт демонстрирует форму купола, используя частицы облака.
CONE
| Ключ | Подробности | Обязательный |
|---|---|---|
shape | Устанавливает форму зоны. Должно быть CONE | ✅ |
target | Устанавливает местоположение первой точки конуса | ✅ |
target2 | Устанавливает местоположение последней точки центра конуса | ✅ |
filter | Устанавливает, какие типы сущностей будут целевыми | ❌ |
radius | Радиус второй цели конуса | ✅ |
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CONE
radius: 10
Target:
targetType: SELF
offset: 0,0,0
Target2:
targetType: SELF
offset: 0,10,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 0.8
repeatEvery: 5
times: 20
Этот скрипт демонстрирует форму цилиндра, используя частицы облака. Имейте в виду, что эта зона имеет форму КОНУСА, что означает, что это трехмерный объем, что важно учитывать, если вы стремитесь создать эффекты размаха.
CYLINDER
| Ключ | Подробности | Обязательный |
|---|---|---|
shape | Устанавливает форму зоны. Должно быть CYLINDER | ✅ |
target | Устанавливает местоположение центра цилиндра | ✅ |
filter | Устанавливает, какие типы сущностей будут целевыми | ❌ |
radius | Радиус цилиндра | ✅ |
borderRadius | Радиус внутреннего цилиндра | ❌ |
height | Высота цилиндра | ❌ |
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

Этот скрипт демонстрирует форму цилиндра, используя частицы облака.
CUBOID
| Ключ | Подробности | Обязательный |
|---|---|---|
shape | Устанавливает форму зоны. Должно быть CUBOID | ✅ |
target | Устанавливает местоположение центра кубоида | ✅ |
filter | Устанавливает, какие типы сущностей будут целевыми | ❌ |
x | Устанавливает длину кубоида | ✅ |
y | Устанавливает высоту кубоида | ✅ |
z | Устанавливает ширину кубоида, по умолчанию равна x | ❌ |
xBorder | Устанавливает длину внутреннего кубоида | ❌ |
yBorder | Устанавливает высоту внутреннего кубоида | ❌ |
zBorder | Устанавливает ширину внутреннего кубоида, по умолчанию равна x | ❌ |
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CUBOID
x: 4
y: 4
z: 4
xBorder: 3
yBorder: 3
zBorder: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

Этот скрипт демонстрирует форму кубоида, используя частицы облака.
STATIC_RAY
| Ключ | Подробности | Обязательный |
|---|---|---|
shape | Устанавливает форму зоны. Должно быть STATIC_RAY | ✅ |
target | Устанавливает местоположение первой точки линии | ✅ |
target2 | Устанавливает местоположение последней точки линии | ✅ |
filter | Устанавливает, какие типы сущностей будут целевыми | ❌ |
ignoresSolidBlocks | Устанавливает, будет ли луч проходить сквозь твердые блоки | ❌ |
pointRadius | Устанавливает толщину луча. По умолчанию 0.5 блока. | ❌ |
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: STATIC_RAY
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Target:
targetType: SELF
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

Этот скрипт демонстрирует форму статического луча, используя частицы облака.
Мы отрегулировали высоту зоны, используя опцию offset на обоих концах зоны, чтобы луч появлялся от середины игрока и босса, иначе луч появился бы у их ног.
ROTATING_RAY
| Ключ | Подробности | Обязательный |
|---|---|---|
shape | Устанавливает форму зоны. Должно быть ROTATING_RAY | ✅ |
filter | Устанавливает, какие типы сущностей будут целевыми | ❌ |
target | Устанавливает местоположение первой точки линии | ✅ |
target2 | Устанавливает местоположение последней точки линии | ✅ |
animationDuration | Устанавливает, в тиках, количество времени для вращения | ✅ |
pitchPreRotation | Применяет начальное вращение к тангажу перед анимацией | ❌ |
yawPreRotation | Применяет начальное вращение к рысканию перед анимацией | ❌ |
pitchRotation | Устанавливает вращение тангажа для анимации | ❌ |
yawRotation | Устанавливает вращение рыскания для анимации | ❌ |
ignoresSolidBlocks | Устанавливает, будет ли луч проходить сквозь твердые блоки | ❌ |
pointRadius | Устанавливает толщину луча. По умолчанию 0.5 блока. | ❌ |
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: ROTATING_RAY
animationDuration: 100
pitchPrerotation: 0
yawPrerotation: 0
pitchRotation: 0
yawRotation: 360
ignoresSolidBlocks: true
Target:
targetType: SELF
offset: 0,1,0
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

Этот скрипт показывает, как выглядит вращающийся луч, используя частицы облака.
Сначала он создает луч от босса к игроку, который нанес ему урон, используя частицы облака. Затем он немного поднимает позиции вверх на один блок, используя offset.
Затем он вращает луч по полному кругу вокруг игрока, который был целевым. Это вращение длится 5 секунд (100 тиков) до завершения, при этом целевой игрок находится в центре.
TRANSLATING_RAY
| Ключ | Подробности | Обязательный |
|---|---|---|
shape | Устанавливает форму зоны. Должно быть TRANSLATING_RAY | ✅ |
filter | Устанавливает, какие типы сущностей будут целевыми | ❌ |
animationDuration | Устанавливает, в тиках, количество времени для перемещения | ✅ |
target | Устанавливает местоположение первой точки линии | ✅ |
finalTarget | Устанавливает местоположение назначения для первой точки линии | ✅ |
target2 | Устанавливает местоположение второй точки линии | ✅ |
finalTarget2 | Устанавливает местоположение назначения для второй точки линии | ✅ |
ignoresSolidBlocks | Устанавливает, будет ли луч проходить сквозь твердые блоки | ❌ |
pointRadius | Устанавливает толщину луча. По умолчанию 0.5 блока. | ❌ |
Пример
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: TRANSLATING_RAY
Target:
targetType: SELF
FinalTarget:
targetType: SELF
offset: 0,10,0
Target2:
targetType: DIRECT_TARGET
FinalTarget2:
targetType: DIRECT_TARGET
offset: 0,10,0
animationDuration: 100
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

Этот скрипт показывает, как выглядит перемещающийся луч, используя частицы облака.
Сначала он создает луч от босса к игроку, который нанес ему урон, используя частицы облака.
Затем он анимирует луч, чтобы он поднялся на 10 блоков вверх от обеих целей, используя offset на FinalTarget1 и FinalTarget2.
Анимация занимает 5 секунд (100 тиков) до завершения.
Мы можем легко заставить луч двигаться в сторону, отрегулировав Z offset на что-то вроде offset: 0,0,10:

Это поведение может меняться в зависимости от того, куда вы смотрите в игре.
Если мы изменим X offset в скрипте, показанном на изображении GIF, луч будет казаться движущимся от нас по прямой линии с нашей точки зрения.
filter
Свойство filter можно использовать для нацеливания только на конкретные сущности внутри зоны. Этими сущностями могут быть:
| Значение | Подробности |
|---|---|
PLAYER | Нацеливается только на игроков в зоне (по умолчанию) |
ELITE | Нацеливается только на элитов в зоне |
LIVING | Нацеливается на все живые сущности в зоне |
Пример
eliteScript:
FilterExample:
Events:
- PlayerDamagedByEliteMobEvent
Zone:
shape: SPHERE
radius: 12
borderRadius: 11
filter: ELITE
Target:
targetType: SELF
track: false
Этот пример скрипта показывает, как использовать фильтр, чтобы зона нацеливалась только на элитов.