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

Зоны 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

elitescript_zones_border.jpg

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

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

elitescript_zones_borderfull.jpg


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

elitescript_zones_sphere.jpg

Этот скрипт демонстрирует форму сферы, используя частицы облака.


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

elitescript_zones_dome.jpg

Этот скрипт демонстрирует форму купола, используя частицы облака.


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

elitescript_zones_cylinder.jpg

Этот скрипт демонстрирует форму цилиндра, используя частицы облака.


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

elitescript_zones_cuboid.jpg

Этот скрипт демонстрирует форму кубоида, используя частицы облака.


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

elitescript_zones_staticray.jpg

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

Мы отрегулировали высоту зоны, используя опцию 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

elitescript_zones_rotatingray.gif

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

Сначала он создает луч от босса к игроку, который нанес ему урон, используя частицы облака. Затем он немного поднимает позиции вверх на один блок, используя 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

elitescript_zones_translatingray.gif

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

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

Затем он анимирует луч, чтобы он поднялся на 10 блоков вверх от обеих целей, используя offset на FinalTarget1 и FinalTarget2.

Анимация занимает 5 секунд (100 тиков) до завершения.

Мы можем легко заставить луч двигаться в сторону, отрегулировав Z offset на что-то вроде offset: 0,0,10:

elitescript_zones_translatingray2.gif

Это поведение может меняться в зависимости от того, куда вы смотрите в игре.
Если мы изменим 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

Этот пример скрипта показывает, как использовать фильтр, чтобы зона нацеливалась только на элитов.