Introducción
En esta página encontrarás varios ejemplos de poderes de jefes personalizados creados con EliteScript y la WebApp. Estos ejemplos sencillos muestran cómo combinar varias acciones y otras funciones para crear poderes de jefe únicos.
Además, cada ejemplo va acompañado de una demostración visual, para que resulte más fácil entender cómo funciona el script dentro del juego.
Puedes copiar cualquiera de los ejemplos y usarlo en tus propias mazmorras o mundos.
EliteScript (.yml) sigue siendo totalmente compatible y es lo que usan todos los ejemplos de esta página. Ya no es la única opción: los poderes también pueden escribirse en Lua, que es lo que usa casi todos los poderes que se distribuyen con EliteMobs. Consulta Crear Poderes para ver cómo se comparan ambos formatos.
Los valores de potionEffectType usan los nombres modernos con espacio de nombres de Minecraft — SLOWNESS, INSTANT_HEALTH, NAUSEA — no las grafías antiguas de Bukkit (SLOW, HEAL, CONFUSION). Los nombres antiguos siguen resolviéndose mediante una alternativa obsoleta, pero el nombre moderno es el que usan los poderes distribuidos y el que está garantizado que seguirá funcionando.
Ejemplos de poderes
Slam Down
Este script hace que el jefe se teletransporte 8 bloques por encima del jugador que le causó daño y luego se estrelle contra el suelo. Después, aplica el efecto de poción de lentitud a todos los jugadores que estén a menos de 3 bloques del jefe y muestra el mensaje «Stunned» en pantalla durante 3 segundos.
Expandir ejemplo
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
Este script genera una cúpula de 4 bloques alrededor del jefe. A continuación lanza un efecto de partículas en el borde de la zona durante un segundo y después otra acción empuja hacia fuera a los jugadores que estén dentro de la zona. Debido al desplazamiento configurado en el empuje, los jugadores salen despedidos ligeramente hacia arriba. Por último, el script envía un mensaje a los jugadores que se encuentren dentro de la zona.
Expandir ejemplo
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
Crea un script que dibuja un círculo en el suelo alrededor del jugador que dañó al mob y además muestra un mensaje en pantalla indicándole que salga del círculo. Dos segundos después, dispara flechas hacia abajo sobre esa misma ubicación desde 10 bloques de altura.
Expandir ejemplo
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
Esto crea un script que genera partículas alrededor del jefe usando la zona cilíndrica, y dura 6 segundos. Al jefe también se le asigna la etiqueta FireOn durante 6 segundos.
Si los jugadores atacan al jefe mientras la etiqueta está activa, se prenderán fuego durante 1 segundo. Esto se consigue mediante condiciones: el script SetOnFire solo puede ejecutarse si el jefe tiene la etiqueta correspondiente FireOn.
Expandir ejemplo
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
Este script crea dos zonas cuboides centradas en el jefe. La IA del jefe se desactiva durante 2 segundos. Las zonas cuboides están configuradas de forma que dibujan un símbolo de suma en el suelo.
Después, el script genera partículas de nube durante 2 segundos en las zonas y a continuación genera partículas de humo y aplica el efecto de poción de veneno a las zonas durante 3 segundos.
Expandir ejemplo
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
Este script crea una zona cilíndrica de 10 bloques centrada en el jefe y después aplica efectos de partículas y empuje a la zona durante 10 segundos.
La acción de empuje impulsa a los jugadores ligeramente hacia arriba en cada tick, creando la ilusión de que rebotan mientras están dentro de la zona.
Expandir ejemplo
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
Este script crea una zona cilíndrica (situada 6 bloques por encima del jugador debido al desplazamiento aplicado) centrada en el jugador que dañó al jefe. Además, muestra un mensaje en pantalla a ese jugador.
Tras un retardo de 2 segundos, aparecen refuerzos dentro de la zona designada. Sin embargo, solo una parte de la zona quedará ocupada por refuerzos, ya que hemos usado coverage. Si el jugador no consigue eliminar a todos los refuerzos, estos desaparecen automáticamente al cabo de 20 segundos (400 ticks).
Expandir ejemplo
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
Este script se activa cuando un jugador daña al jefe. Entonces ejecuta el script PotionZoneBad o bien el PotionZoneGood.
En el script PotionZoneBad se genera una zona cilíndrica alrededor de los jugadores cercanos que estén a menos de 20 bloques del jefe. Produce efectos de partículas de nube y de humo grande con una cobertura determinada, inflige el efecto de poción de descomposición y envía un mensaje a los jugadores cercanos.
En el script PotionZoneGood se genera una zona cilíndrica alrededor de los jugadores que estén a menos de 20 bloques del jefe. Los efectos de partículas de este script están invertidos. Este script aplica un efecto de poción de curación en lugar de descomposición y envía un mensaje a los jugadores cercanos.
Expandir ejemplo
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
Este script lanza dos oleadas de rayos a ras de suelo proyectadas en las direcciones X positiva y negativa desde el jefe.
Usamos el parámetro offset para determinar la longitud y el tamaño de los rayos, concretamente definiendo el valor Z. Además, indicamos la dirección de propagación de la oleada mediante los valores X. (Esto es solo una explicación de cómo este script concreto usa estos valores; no tienes que hacer el tuyo exactamente así)
Aunque es posible ajustar los valores Y para aumentar la altura de las oleadas de rayos, los dejamos en 0 para que los jugadores puedan saltar por encima de ellos.
El parámetro animationDuration determina el tiempo que tardan las oleadas de rayos en recorrer el trayecto desde los objetivos hasta los objetivos finales. Reducir este valor hace que los rayos sean más rápidos y más difíciles de esquivar.
A continuación se aplican los efectos de partículas y de poción. Los jugadores que no eviten ni salten las oleadas de rayos quedarán cegados durante 5 segundos (100 ticks).
Expandir ejemplo
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
Este script crea 3 rayos giratorios centrados en el jefe. Necesitamos 3 rayos giratorios distintos porque no se puede definir la altura de un rayo, así que usamos varios scripts y offset para apilarlos en altura y que parezcan un único muro giratorio.
Los 3 scripts tienen zonas idénticas salvo por el offset, que es diferente en cada uno. Están configurados con una longitud de 6 bloques a partir del jefe y para completar una rotación de guiñada de 360 grados en 10 segundos (200 ticks).
Todos los scripts tienen efectos de partículas configurados y aplican la acción VISUAL_FREEZE durante 5 segundos (100 ticks) a cualquier jugador alcanzado por los muros de rayos.
Expandir ejemplo
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