Introduction
Sur cette page, vous découvrirez divers exemples de pouvoirs de boss personnalisés créés avec EliteScript et la WebApp. Ces exemples simples illustrent comment utiliser plusieurs actions et d'autres fonctionnalités pour concevoir des pouvoirs de boss uniques.
De plus, des démonstrations visuelles accompagnent chaque exemple, afin de mieux comprendre le fonctionnement du script dans le jeu.
N'hésitez pas à copier n'importe lequel de ces exemples et à l'utiliser dans vos propres donjons ou mondes.
EliteScript (.yml) est toujours entièrement pris en charge et c'est ce qu'utilise chaque exemple de cette page. Ce n'est toutefois plus la seule option : les pouvoirs peuvent aussi être écrits en Lua, ce qu'utilise désormais presque tous les pouvoirs fournis avec EliteMobs. Consultez Créer des pouvoirs pour comparer les deux formats.
Les valeurs de potionEffectType utilisent les noms modernes à espace de noms de Minecraft — SLOWNESS, INSTANT_HEALTH, NAUSEA — et non les anciennes orthographes Bukkit (SLOW, HEAL, CONFUSION). Les anciens noms sont toujours résolus via un mécanisme de repli déprécié, mais c'est le nom moderne qu'utilisent les pouvoirs fournis et c'est celui dont le fonctionnement est garanti à l'avenir.
Exemples de pouvoirs
Slam Down
Ce script fait en sorte que le boss se téléporte 8 blocs au-dessus du joueur qui lui a infligé des dégâts, puis s'écrase au sol. Ensuite, il applique l'effet de potion de lenteur à tous les joueurs se trouvant dans un rayon de 3 blocs autour du boss, et affiche le message « Stunned » à l'écran pendant 3 secondes.
Développer l'exemple
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
Ce script génère un dôme de 4 blocs autour du boss. Il déclenche ensuite un effet de particules à la bordure de la zone, pendant une seconde, puis une autre action repousse tous les joueurs présents dans la zone. En raison du réglage d'offset de la poussée, les joueurs seront légèrement propulsés vers le haut. Enfin, le script envoie un message à tous les joueurs se trouvant dans la zone.
Développer l'exemple
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
Crée un script qui dessine un cercle au sol autour du joueur ayant blessé le mob, et affiche également un message à l'écran demandant au joueur de sortir du cercle. Puis, 2 secondes plus tard, il tire des flèches vers le bas au même endroit, mais depuis 10 blocs plus haut.
Développer l'exemple
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
Cela crée un script qui génère des particules autour du boss à l'aide de la zone cylindrique, pendant 6 secondes. Le boss reçoit également le tag FireOn pendant 6 secondes.
Si les joueurs attaquent le boss pendant que le tag est actif, ils prennent feu pendant 1 seconde. Cela se fait au moyen de conditions : le script SetOnFire ne peut s'exécuter que si le boss possède le tag correspondant FireOn.
Développer l'exemple
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
Ce script crée deux zones cuboïdes centrées sur le boss. L'IA du boss est désactivée pendant 2 secondes. Les zones cuboïdes sont configurées de manière à former un symbole plus au sol.
Le script génère ensuite des particules de nuage pendant 2 secondes dans les zones, puis produit des particules de fumée et applique l'effet de potion de poison aux zones pendant 3 secondes.
Développer l'exemple
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
Ce script crée une zone cylindrique de 10 blocs centrée sur le boss, puis applique des effets de particules et une poussée à la zone pendant 10 secondes.
L'action de poussée propulse légèrement les joueurs vers le haut à chaque tick, créant l'illusion qu'ils rebondissent tant qu'ils se trouvent dans la zone.
Développer l'exemple
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
Ce script crée une zone cylindrique (positionnée 6 blocs au-dessus du joueur en raison de l'offset appliqué) centrée sur le joueur ayant blessé le boss. Il affiche également un message à l'écran pour ce joueur.
Après un délai de 2 secondes, des renforts apparaissent dans la zone désignée. Toutefois, seule une partie de la zone sera occupée par les renforts puisque nous avons utilisé coverage. Si le joueur ne parvient pas à éliminer tous les renforts, ceux-ci disparaissent automatiquement au bout de 20 secondes (400 ticks).
Développer l'exemple
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
Ce script s'active lorsqu'un joueur blesse le boss. Il exécute alors soit le script PotionZoneBad, soit le script PotionZoneGood.
Dans le script PotionZoneBad, une zone cylindrique est générée autour des joueurs proches se trouvant à moins de 20 blocs du boss. Elle produit des effets de particules de nuage et de grande fumée avec une couverture définie, inflige l'effet de potion de flétrissement et envoie un message aux joueurs proches.
Dans le script PotionZoneGood, une zone cylindrique est générée autour des joueurs se trouvant à moins de 20 blocs du boss. Les effets de particules de ce script sont inversés. Ce script applique un effet de potion de soin au lieu du flétrissement et envoie un message aux joueurs proches.
Développer l'exemple
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
Ce script déclenche deux vagues de rayons au sol projetées dans les directions X positive et négative depuis le boss.
Nous utilisons le paramètre offset pour déterminer la longueur et la taille des rayons, en particulier en définissant la valeur Z. Nous précisons également la direction de propagation des vagues en réglant les valeurs X. (Ceci n'est qu'une explication de la façon dont ce script précis utilise ces valeurs, vous n'êtes pas obligé de faire exactement pareil.)
Bien qu'il soit possible d'ajuster les valeurs Y pour augmenter la hauteur des vagues de rayons, nous la laissons à 0 afin de laisser aux joueurs la possibilité de sauter par-dessus les rayons.
Le paramètre animationDuration détermine le temps que mettent les vagues de rayons à aller des cibles aux cibles finales. Réduire cette valeur rendrait les rayons plus rapides et plus difficiles à esquiver.
Ensuite, des effets de particules et de potion sont appliqués. Les joueurs qui ne parviennent pas à éviter les vagues de rayons ou à sauter par-dessus seront aveuglés pendant 5 secondes (100 ticks).
Développer l'exemple
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
Ce script crée 3 rayons rotatifs centrés sur le boss. Nous avons besoin de 3 rayons rotatifs différents car il est impossible de définir la hauteur d'un rayon ; nous utilisons donc plusieurs scripts et l'offset pour empiler les rayons en hauteur afin qu'ils apparaissent comme un unique mur rotatif.
Les 3 scripts ont des zones identiques, à l'exception de l'offset qui diffère. Ils sont réglés sur une longueur de 6 blocs à partir du boss et effectuent une rotation du yaw de 360 degrés en 10 secondes (200 ticks).
Tous les scripts comportent des effets de particules et appliquent l'action VISUAL_FREEZE pendant 5 secondes (100 ticks) à tous les joueurs touchés par les murs de rayons.
Développer l'exemple
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