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

Введение

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

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

Не стесняйтесь копировать любые примеры и использовать их в своих собственных подземельях или мирах.

Примеры способностей

Удар вниз

Этот скрипт заставит босса телепортироваться на 8 блоков выше игрока, нанесшего ему урон, а затем ударить по земле. После этого он применит эффект зелья замедления к любым игрокам в радиусе 3 блоков от босса и отобразит сообщение 'Оглушен' на экране в течение 3 секунд.

Развернуть пример
eliteScript:
SlamDown:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: TELEPORT
FinalTarget:
targetType: DIRECT_TARGET
offset: 0,8,0
Target:
targetType: SELF
- action: PUSH
vValue: 0,-5,0
Target:
targetType: SELF
wait: 15
- action: POTION_EFFECT
potionEffectType: SLOW
amplifier: 3
duration: 60
Target:
targetType: NEARBY_PLAYERS
range: 3
wait: 20
- action: TITLE_MESSAGE
subtitle: "Stunned!"
duration: 40
fadeIn: 10
fadeOut: 10
Target:
targetType: NEARBY_PLAYERS
range: 3
wait: 20
Cooldowns:
local: 180
global: 80

Отталкивание

Этот скрипт создаст купол радиусом 4 блока вокруг босса. Затем он инициирует эффект частиц на границе зоны, длящийся одну секунду, после чего другое действие оттолкнет всех игроков внутри зоны. Из-за настройки смещения для толчка игроки будут слегка подброшены вверх. Наконец, скрипт отправит сообщение всем игрокам внутри зоны.

Развернуть пример
eliteScript:
PushAway:
Events:
- EliteMobDamagedEvent
Zone:
shape: DOME
radius: 4
borderRadius: 3
Target:
targetType: SELF
track: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_BORDER
track: true
repeatEvery: 5
times: 4
- action: PUSH
Target:
targetType: ZONE_FULL
track: true
RelativeVector:
SourceTarget:
targetType: SELF
DestinationTarget:
targetType: ACTION_TARGET
normalize: true
multiplier: 1.0
offset: 0,0.2,0
repeatEvery: 1
times: 20
- action: MESSAGE
sValue: "&cCool boss!: &fBE GONE!"
Target:
targetType: ZONE_FULL
repeatEvery: 10
times: 2
Cooldowns:
local: 140
global: 80

Дождь из стрел

Создает скрипт, который нарисует круг на земле вокруг игрока, нанесшего урон мобу, а также показывает сообщение на экране, предупреждающее игрока выйти из круга. Затем, через 2 секунды, он выпустит стрелы вниз в том же месте, но с высоты 10 блоков.

Развернуть пример
eliteScript:
MakeCircle:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 5
borderRadius: 4
height: 1
Target:
targetType: DIRECT_TARGET
track: false
Actions:
- action: SPAWN_PARTICLE
Target:
targetType: ZONE_BORDER
track: false
coverage: 1.0
repeatEvery: 5
times: 8
particles:
- particle: FLAME
- action: TITLE_MESSAGE
Target:
targetType: DIRECT_TARGET
fadeOut: 10
duration: 20
fadeIn: 10
subtitle: Move out of the zone!
- action: RUN_SCRIPT
scripts:
- "ArrowRain"
Cooldowns:
local: 160
global: 80
ArrowRain:
Zone:
shape: CYLINDER
radius: 5
borderRadius: 4
height: 1
Target:
targetType: DIRECT_TARGET
track: false
offset: 0,10,0
Actions:
- action: SUMMON_ENTITY
wait: 40
sValue: ARROW
Target:
targetType: ZONE_FULL
track: false
vValue: 0,-1,0
repeatEvery: 10
times: 4

Огненная аура

Это создаст скрипт, который будет создавать частицы вокруг босса с использованием цилиндрической зоны, он будет длиться 6 секунд. Боссу также будет присвоен тег FireOn на 6 секунд.

Если игроки атакуют босса, пока тег активен, игроки будут подожжены на 1 секунду. Это делается с помощью условий, скрипт SetOnFire сможет выполниться только если у босса есть соответствующий тег FireOn.

Развернуть пример
eliteScript:
Visual:
Events:
- PlayerDamagedByEliteMobEvent
Zone:
shape: CYLINDER
radius: 2
height: 3
Target:
targetType: SELF
track: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: FLAME
Target:
targetType: ZONE_FULL
track: true
coverage: 1.0
repeatEvery: 5
times: 24
- action: TAG
tags:
- "FireOn"
duration: 120
Target:
targetType: SELF
Cooldowns:
local: 180
global: 80
SetOnFire:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_ON_FIRE
duration: 20
Target:
targetType: DIRECT_TARGET
Conditions:
Target:
targetType: SELF
conditionType: BLOCKING
hasTags:
- "FireOn"

Ядовитые линии

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

Затем скрипт создаст частицы облаков в течение 2 секунд в зонах, после чего создаст дымовые частицы и применит эффект зелья отравления к зонам в течение 3 секунд.

Развернуть пример
eliteScript:
PoisonLine1:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CUBOID
x: 20
y: 1
z: 2
Target:
targetType: SELF
track: false
Actions:
- action: SET_MOB_AI
bValue: false
duration: 40
Target:
targetType: SELF
scripts:
- "PoisonLine2"
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 1
repeatEvery: 5
times: 8
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_NORMAL
Target:
targetType: ZONE_FULL
coverage: 1
wait: 40
repeatEvery: 5
times: 12
- action: POTION_EFFECT
potionEffectType: POISON
amplifier: 4
duration: 50
Target:
targetType: ZONE_FULL
wait: 40
repeatEvery: 5
times: 12
Cooldowns:
local: 200
global: 80
PoisonLine2:
Zone:
shape: CUBOID
x: 2
y: 1
z: 20
Target:
targetType: SELF
track: false
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 1
repeatEvery: 5
times: 8
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_NORMAL
Target:
targetType: ZONE_FULL
coverage: 1
wait: 40
repeatEvery: 5
times: 12
- action: POTION_EFFECT
potionEffectType: POISON
amplifier: 4
duration: 50
Target:
targetType: ZONE_FULL
wait: 40
repeatEvery: 5
times: 12

Подпрыгивание

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

Действие толчка подталкивает игроков слегка вверх каждый тик, создавая иллюзию, что игроки подпрыгивают, находясь в зоне.

Развернуть пример
eliteScript:
Bounce:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 10
height: 2
Target:
targetType: SELF
track: false
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: EXPLOSION_NORMAL
repeatEvery: 10
times: 20
Target:
targetType: ZONE_FULL
track: false
coverage: 0.2
- action: PUSH
vValue: 0,0.4,0
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 200
Cooldowns:
local: 220
global: 80

Призыв

Этот скрипт создаст цилиндрическую зону (расположенную на 6 блоков выше игрока из-за примененного смещения) с центром на игроке, который нанес урон боссу. Дополнительно он отобразит сообщение на экране этому игроку.

После задержки в 2 секунды подкрепление появится в указанной зоне. Однако только часть зоны будет занята подкреплением, поскольку мы использовали coverage. Если игрок не сможет уничтожить все подкрепление, оно автоматически исчезнет через 20 секунд (400 тиков).

Развернуть пример
eliteScript:
Summon:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 3
height: 1
Target:
targetType: DIRECT_TARGET
offset: 0,6,0
Actions:
- action: SUMMON_REINFORCEMENT
sValue: "fc_boss.yml"
duration: 400
Target:
targetType: ZONE_FULL
coverage: 0.2
wait: 40
- action: TITLE_MESSAGE
subtitle: "Friends! Help!!!"
duration: 30
fadeIn: 10
fadeOut: 10
Target:
targetType: DIRECT_TARGET
Cooldowns:
local: 333
global: 80

Зоны зелий

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

В скрипте PotionZoneBad цилиндрическая зона создается вокруг ближайших игроков, находящихся в радиусе 20 блоков от босса. Он создает эффекты частиц облаков и большого дыма с указанным покрытием, наносит эффект зелья иссушения и отправляет сообщение ближайшим игрокам.

В скрипте PotionZoneGood цилиндрическая зона создается вокруг игроков, находящихся в радиусе 20 блоков от босса. Эффекты частиц для этого скрипта инвертированы. Этот скрипт применяет эффект зелья исцеления вместо иссушения и отправляет сообщение ближайшим игрокам.

Развернуть пример
eliteScript:
Trigger:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: RUN_SCRIPT
scripts:
- "PotionZoneBad"
- "PotionZoneGood"
onlyRunOneScript: true
Cooldowns:
local: 110
global: 80
PotionZoneBad:
Zone:
shape: CYLINDER
height: 2
radius: 5
Target:
targetType: NEARBY_PLAYERS
range: 20
track: false
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 0.3
track: false
repeatEvery: 10
times: 4
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_LARGE
Target:
targetType: ZONE_FULL
coverage: 0.3
track: false
wait: 40
repeatEvery: 10
times: 6
- action: POTION_EFFECT
potionEffectType: WITHER
amplifier: 3
duration: 80
Target:
targetType: ZONE_FULL
track: false
wait: 40
repeatEvery: 10
times: 6
- action: MESSAGE
sValue: "&cCool boss!: &fFeel the burn!"
Target:
targetType: NEARBY_PLAYERS
range: 20
PotionZoneGood:
Zone:
shape: CYLINDER
height: 2
radius: 5
Target:
targetType: NEARBY_PLAYERS
range: 20
track: false
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_LARGE
Target:
targetType: ZONE_FULL
coverage: 0.3
track: false
repeatEvery: 10
times: 4
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 0.3
track: false
wait: 40
repeatEvery: 10
times: 6
- action: POTION_EFFECT
potionEffectType: HEAL
amplifier: 1
duration: 80
Target:
targetType: ZONE_FULL
track: false
wait: 40
repeatEvery: 10
times: 6
- action: MESSAGE
sValue: "&cCool boss!: &fFeel the... Wait, this is the wrong one."
Target:
targetType: NEARBY_PLAYERS
range: 20

Слепящие волны

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

Мы используем параметр offset для определения длины и размера лучей, в частности, задавая значение Z. Кроме того, мы указываем направление распространения волны, устанавливая значения X. (Это просто объяснение того, как этот конкретный скрипт использует эти значения, вам не обязательно делать свой точно так же)

Хотя возможно отрегулировать значения Y для увеличения высоты лучевых волн, мы оставляем их равными 0, чтобы позволить игрокам возможность перепрыгнуть через лучи.

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

Затем применяются эффекты частиц и зелий. Игроки, которым не удастся уклониться или перепрыгнуть через лучевые волны, будут ослеплены на 5 секунд (100 тиков).

Развернуть пример
eliteScript:
Blind:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: TRANSLATING_RAY
Target:
targetType: SELF
offset: 0,0,5
track: false
FinalTarget:
targetType: SELF
offset: 10,0,5
track: false
Target2:
targetType: SELF
offset: 0,0,-5
track: false
FinalTarget2:
targetType: SELF
offset: 10,0,-5
track: false
animationDuration: 100
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_NORMAL
Target:
targetType: ZONE_FULL
track: false
coverage: 1.0
repeatEvery: 5
times: 20
- action: POTION_EFFECT
potionEffectType: BLINDNESS
amplifier: 5
duration: 100
Target:
targetType: ZONE_FULL
track: true
repeatEvery: 1
times: 100
scripts: "Blind2"
Cooldowns:
local: 200
global: 80
Blind2:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: TRANSLATING_RAY
Target:
targetType: SELF
offset: 0,0,5
track: false
FinalTarget:
targetType: SELF
offset: -10,0,5
track: false
Target2:
targetType: SELF
offset: 0,0,-5
track: false
FinalTarget2:
targetType: SELF
offset: -10,0,-5
track: false
animationDuration: 100
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_NORMAL
Target:
targetType: ZONE_FULL
track: false
coverage: 1.0
repeatEvery: 5
times: 20
- action: POTION_EFFECT
potionEffectType: BLINDNESS
amplifier: 5
duration: 100
Target:
targetType: ZONE_FULL
track: true
repeatEvery: 1
times: 100

Ледяная стена

Этот скрипт создает 3 вращающихся луча с центром на боссе. Нам нужны 3 разных вращающихся луча, так как мы не можем определить высоту луча, поэтому мы используем несколько скриптов и offset, чтобы лучи накладывались по высоте и выглядели как одна вращающаяся стена.

Все 3 скрипта имеют идентичные зоны, за исключением различного offset. Они установлены длиной 6 блоков, начиная от босса, и совершают полный оборот на 360 градусов за 10 секунд (200 тиков).

Во всех скриптах установлены эффекты частиц и применяется действие VISUAL_FREEZE на 5 секунд (100 тиков) ко всем игрокам, которые попадают под лучевые стены.

Развернуть пример
eliteScript:
Trigger:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: RUN_SCRIPT
scripts:
- "FreezeWall"
- "FreezeWall2"
- "FreezeWall3"
Cooldowns:
local: 300
global: 80
FreezeWall:
Zone:
shape: ROTATING_RAY
Target:
targetType: SELF
track: false
Target2:
targetType: SELF
offset: 6,0,0
track: false
yawRotation: 360
animationDuration: 200
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SNOWFLAKE
repeatEvery: 10
times: 20
Target:
targetType: ZONE_FULL
track: false
coverage: 1.0
- action: VISUAL_FREEZE
duration: 100
Target:
targetType: ZONE_FULL
track: false
repeatEvery: 1
times: 200
FreezeWall2:
Zone:
shape: ROTATING_RAY
Target:
targetType: SELF
track: false
offset: 0,1,0
Target2:
targetType: SELF
track: false
offset: 6,1,0
yawRotation: 360
animationDuration: 200
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SNOWFLAKE
repeatEvery: 10
times: 20
Target:
targetType: ZONE_FULL
track: false
coverage: 1.0
- action: VISUAL_FREEZE
duration: 100
Target:
targetType: ZONE_FULL
track: false
repeatEvery: 1
times: 200
FreezeWall3:
Zone:
shape: ROTATING_RAY
Target:
targetType: SELF
track: false
offset: 0,2,0
Target2:
targetType: SELF
track: false
offset: 6,2,0
yawRotation: 360
animationDuration: 200
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SNOWFLAKE
repeatEvery: 10
times: 20
Target:
targetType: ZONE_FULL
track: false
coverage: 1.0
- action: VISUAL_FREEZE
duration: 100
Target:
targetType: ZONE_FULL
track: false
repeatEvery: 1
times: 200