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

Введение

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

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

Смело копируйте любой из примеров и используйте его в своих подземельях или мирах.

Это примеры EliteScript

EliteScript (.yml) по-прежнему полностью поддерживается, и именно его использует каждый пример на этой странице. Это больше не единственный вариант: способности можно писать и на Lua, и именно так теперь написана почти каждая способность, поставляемая с EliteMobs. О том, как соотносятся два формата, см. Создание способностей.

Значения potionEffectType используют современные имена Minecraft с пространством имён — SLOWNESS, INSTANT_HEALTH, NAUSEA, — а не устаревшие написания Bukkit (SLOW, HEAL, CONFUSION). Устаревшие имена по-прежнему разрешаются через устаревший запасной путь, но поставляемые способности используют современное имя, и именно оно гарантированно продолжит работать.

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

Slam Down

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

Развернуть пример
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: SLOWNESS
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

Push Away

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

Развернуть пример
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

Arrow Rain

Создаёт скрипт, который рисует на земле круг вокруг игрока, нанёсшего урон мобу, а также выводит на экран сообщение с призывом выйти из круга. Затем, спустя 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

Fire Aura

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

Poison Lines

Этот скрипт создаёт две зоны-параллелепипеда с центром на боссе. ИИ босса отключается на 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

Bounce

Этот скрипт создаёт цилиндрическую зону радиусом 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

Summon

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

Через 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

Potion Zones

Этот скрипт срабатывает, когда игрок наносит урон боссу. Затем он выполняет либо скрипт 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: INSTANT_HEALTH
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

Blind Waves

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

Freeze Wall

Этот скрипт создаёт 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