Introducción
Estos ejemplos combinan acciones de EliteScript para crear poderes de jefes personalizados. Puedes editar su YAML directamente o usar la WebApp.
Los vídeos son demostraciones antiguas de los efectos previstos. No verifican la implementación actual; lee el comportamiento y las limitaciones de cada ejemplo antes de usarlo.
Pega el bloque eliteScript en un archivo de jefe personalizado. Sustituye las referencias como fc_boss.yml por una definición de jefe instalada. El ejemplo Arrow Rain tiene una limitación documentada en el origen de los proyectiles y actualmente no produce la lluvia desde arriba que anuncia.
EliteScript (.yml) sigue siendo compatible y todos los ejemplos de esta página lo usan. También puedes escribir poderes en Lua, el formato que usa la gran mayoría de los poderes distribuidos con EliteMobs. Consulta Crear poderes para comparar los formatos.
Usa nombres actuales de pociones como SLOWNESS, INSTANT_HEALTH y NAUSEA. El resolvedor también acepta identificadores con espacio de nombres como minecraft:slowness; las grafías antiguas de Bukkit usan una ruta de compatibilidad.
Todos los tiempos siguientes usan ticks del juego: 20 ticks equivalen a un segundo a velocidad normal. Las acciones se programan de forma independiente; wait se cuenta desde el inicio de esa acción, no desde el final de la anterior. Una acción repetida comienza sin esperar un intervalo adicional y se ejecuta times veces. track: false en el objetivo de una acción captura su zona antes de la espera; ponerlo solo en Zone.Target no fija todas las acciones. Consulta los objetivos y las zonas para conocer la geometría y la caché.
coverage selecciona probabilísticamente ubicaciones de la zona para efectos e invocaciones, no un porcentaje de jugadores. Las zonas filtran jugadores por defecto, mientras que NEARBY_PLAYERS busca en una caja alineada con los ejes, no en una esfera. Cooldowns.local y global se miden en ticks; basta con que uno de los dos sea positivo para activar la comprobación automática de enfriamiento de eventos. Los scripts auxiliares llamados mediante scripts comienzan al ejecutarse la acción que los llama. Consulta los enfriamientos.
Ejemplos de poderes
Slam Down
Cuando un jugador daña al jefe, este se teletransporta 8 bloques por encima de la posición del jugador. Tras 15 ticks, PUSH programa una velocidad descendente para el tick siguiente. En el tick 20, dos acciones independientes aplican Lentitud IV durante 60 ticks y muestran «Stunned!» a los jugadores seleccionados por la caja de jugadores cercanos del jefe, con rango 3. El subtítulo permanece 40 ticks, más 10 ticks de aparición y 10 de desaparición.
Es un efecto temporizado, no un detector de aterrizaje. Los obstáculos, la gravedad y el resultado del teletransporte pueden cambiar la posición del jefe en el tick 20. La lentitud no impide atacar ni constituye un aturdimiento completo; el ejemplo tampoco contiene una acción de daño independiente.
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 dibuja una cúpula de radio 4 alrededor del jefe e inicia a la vez las partículas, los empujes repetidos y los mensajes. El ejemplo corregido se activa al recibir daño de un jugador y calcula una dirección desde el jefe hacia ese atacante, con un desplazamiento ascendente. Todos los jugadores seleccionados reciben el mismo vector: es un empuje direccional, no un empuje radial calculado para cada jugador.
PUSH reemplaza la velocidad un tick después de cada ejecución y calcula el vector relativo una vez por ejecución. Su ubicación ACTION_TARGET sería la del jefe, así que combinarla con SourceTarget: SELF genera una dirección de longitud cero en lugar del empuje deseado. Este ejemplo usa DIRECT_TARGET. Si las posiciones del jefe y del atacante coinciden, la dirección es cero y solo queda el desplazamiento 0,0.2,0. La comprobación completa de entidades de la cúpula usa una esfera, por lo que también puede seleccionar jugadores bajo el hemisferio visible.
Expandir ejemplo
eliteScript:
PushAway:
Events:
- EliteMobDamagedByPlayerEvent
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: DIRECT_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
Este ejemplo antiguo dibuja el borde de un cilindro de radio 5 y altura 1 en la posición inicial del atacante y muestra una advertencia. La acción de flechas captura otro cilindro 10 bloques más arriba, espera 40 ticks y después intenta lanzar cuatro salvas separadas por 10 ticks.
Con un jefe vivo, SUMMON_ENTITY con ARROW llama al lanzador de proyectiles del jefe. Por tanto, las flechas salen del jefe, una por cada ubicación seleccionada de la zona, en vez de salir de los puntos elevados. La velocidad descendente sigue aplicándose, pero salir del círculo dibujado no es una forma fiable de evitar esta implementación. El vídeo antiguo muestra la lluvia prevista; este YAML se conserva para explicar la limitación, no como una receta funcional de lluvia desde arriba.
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
Cuando el jefe daña a un jugador, este script inicia partículas en un cilindro de radio 2 y altura 3 que sigue al jefe, y le asigna la etiqueta temporal FireOn durante 120 ticks. Las partículas se ejecutan 24 veces a intervalos de 5 ticks; la última ejecución ocurre en el tick 115.
Si un jugador daña al jefe mientras tiene esa etiqueta, SetOnFire establece el tiempo de fuego del atacante directo en 20 ticks. Su condición de bloqueo comprueba la etiqueta del jefe, no si el atacante está dentro del cilindro. Este auxiliar no tiene valores de enfriamiento, así que omite la comprobación de enfriamiento y el enfriamiento global del script visual no lo bloquea.
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 captura dos cuboides perpendiculares en la posición inicial del jefe, formando una cruz. SET_MOB_AI desactiva la IA normal durante 40 ticks e inicia PoisonLine2 inmediatamente; no espera a restaurar la IA para llamar al auxiliar. Esta acción no desactiva otros scripts.
Cada franja emite nubes ocho veces a intervalos de 5 ticks. En el tick 40 empiezan el humo y Veneno V, ambos con 12 ejecuciones a intervalos de 5 ticks hasta el tick 95. Cada aplicación de veneno dura 50 ticks, así que puede persistir después del humo. track: false en cada acción mantiene las franjas fijas cuando el jefe vuelve a moverse. El y: 1 del cuboide genera una banda de colisión de entidades desde la Y del bloque de origen hasta medio bloque por encima; partículas y detección de entidades no usan volúmenes idénticos.
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
track: false
repeatEvery: 5
times: 8
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE
Target:
targetType: ZONE_FULL
coverage: 1
track: false
wait: 40
repeatEvery: 5
times: 12
- action: POTION_EFFECT
potionEffectType: POISON
amplifier: 4
duration: 50
Target:
targetType: ZONE_FULL
track: false
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
track: false
repeatEvery: 5
times: 8
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE
Target:
targetType: ZONE_FULL
coverage: 1
track: false
wait: 40
repeatEvery: 5
times: 12
- action: POTION_EFFECT
potionEffectType: POISON
amplifier: 4
duration: 50
Target:
targetType: ZONE_FULL
track: false
wait: 40
repeatEvery: 5
times: 12
Bounce
Este script captura un cilindro de radio 10 y altura 2 en la posición inicial del jefe. Emite partículas 20 veces a intervalos de 10 ticks y realiza 200 empujes ascendentes a intervalos de un tick, unos 10 segundos a velocidad normal.
Cada empuje establece la velocidad en 0,0.4,0 en el tick siguiente, reemplazando también la velocidad horizontal. Los jugadores pueden rebotar al entrar y salir de los límites verticales del cilindro: su caja de colisión completa debe caber dentro de la altura. Ambos objetivos de acción permanecen fijos, evitando que la zona de colisión siga al jefe mientras las partículas se quedan atrás.
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
repeatEvery: 10
times: 20
Target:
targetType: ZONE_FULL
track: false
coverage: 0.2
- action: PUSH
vValue: 0,0.4,0
Target:
targetType: ZONE_FULL
track: false
repeatEvery: 1
times: 200
Cooldowns:
local: 220
global: 80
Summon
Este script captura un cilindro de radio 3 y altura 1 situado 6 bloques por encima de la posición inicial del atacante, y le muestra un subtítulo inmediatamente. El track: false de la acción de invocación captura la zona antes de esperar 40 ticks, por lo que moverse durante la advertencia no desplaza el área de aparición.
Tras 40 ticks, coverage: 0.2 selecciona independientemente ubicaciones de la zona para los refuerzos; no garantiza una cantidad fija ni exactamente una quinta parte de los puntos. Sustituye fc_boss.yml por un archivo válido de jefe personalizado instalado. Cada invocación exitosa recibe un tiempo de escape de 400 ticks. Los puntos están en el aire, no se busca suelo seguro, y la retirada normal del jefe o del encuentro puede eliminar los refuerzos antes.
Expandir ejemplo
eliteScript:
Summon:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 3
height: 1
Target:
targetType: DIRECT_TARGET
offset: 0,6,0
track: false
Actions:
- action: SUMMON_REINFORCEMENT
sValue: "fc_boss.yml"
duration: 400
Target:
targetType: ZONE_FULL
coverage: 0.2
track: false
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
El daño de un jugador activa una elección aleatoria con igual probabilidad entre PotionZoneBad y PotionZoneGood mediante onlyRunOneScript: true.
Ambos auxiliares capturan un cilindro de radio 5 y altura 2 alrededor de cada jugador seleccionado por la caja de jugadores cercanos de rango 20 del jefe. Los cilindros permanecen en esas posiciones iniciales; reciben los efectos los jugadores que estén dentro en cada momento, incluidos quienes entren después. Los cilindros solapados forman una selección conjunta, por lo que una acción no aplica varias veces el mismo efecto a un jugador solo por estar en varios cilindros.
El auxiliar negativo emite nubes cuatro veces y después inicia humo grande y Descomposición IV en el tick 40. Estas últimas acciones se ejecutan seis veces a intervalos de 10 ticks hasta el tick 90; cada aplicación de Descomposición dura 80 ticks. El auxiliar positivo intercambia las partículas y aplica Salud instantánea II. Su duration: 80 no convierte un efecto instantáneo en regeneración continua. El coverage: 0.3 de las partículas no reduce el porcentaje de jugadores afectados. Ambos auxiliares envían el mensaje de chat inmediatamente, antes de los efectos retardados.
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: LARGE_SMOKE
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: LARGE_SMOKE
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 captura dos segmentos horizontales en la posición del jefe. Cada uno va de Z +5 a Z -5 y se traslada por el eje X del mundo hacia +10 o -10 durante 100 ticks. Son ejes del mundo, no direcciones relativas a la orientación del jefe.
Los extremos Z determinan la longitud de 10 bloques; cada pareja de coordenadas X finales determina la dirección de desplazamiento. Conserva tanto FinalTarget como FinalTarget2 al adaptar un rayo móvil.
Los desplazamientos Y de cero colocan los segmentos a la altura inicial de los pies del jefe. Cambiar la altura de ambos extremos mueve el rayo verticalmente, pero no le da una altura rectangular de muro. El pointRadius predeterminado es 0.5; se comprueba la colisión entre esferas muestreadas y las cajas de los jugadores. Poder saltar por encima depende del terreno y de toda la caja de colisión. ignoresSolidBlocks: true permite que las oleadas atraviesen bloques sólidos.
Reducir animationDuration acelera el movimiento. Ajusta también times si los efectos deben terminar con la animación más corta. El último fotograma de la animación llega exactamente a los objetivos finales, y esa geometría final permanece disponible hasta que termina la acción.
El humo se ejecuta cada 5 ticks durante 20 iteraciones, mientras que la ceguera se comprueba cada tick durante 100 iteraciones. Cada contacto aplica 100 ticks de ceguera, así que permanecer en contacto renueva el efecto, en lugar de iniciar una única ventana fija de cinco segundos. Las zonas animadas siguen moviéndose con track: false en la acción, y cada acción guarda en caché sus formas animadas al empezar, sea cual sea su ajuste track. Las acciones de partículas y pociones tienen cada una sus propias formas animadas capturadas.
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: RUN_SCRIPT
scripts:
- "Blind2"
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE
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
Cooldowns:
local: 200
global: 80
Blind2:
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
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 apila tres rayos giratorios a la altura inicial de los pies del jefe y a 1 y 2 bloques por encima. Un rayo tiene pointRadius, no una altura rectangular; varios segmentos se combinan para formar un efecto parecido a un muro.
Cada segmento mide 6 bloques y usa una rotación horizontal positiva de 360 grados durante 200 ticks. Su dirección inicial es +X del mundo, independientemente de la orientación del jefe. El pivote capturado no sigue al jefe. La línea completa existe desde el momento en que se crea la forma, antes del primer paso de rotación. Los bloques sólidos no detienen estos rayos.
Cada script emite partículas 20 veces a intervalos de 10 ticks y comprueba el contacto cada tick durante 200 iteraciones. Cada contacto suma 100 ticks de congelación. Tocar rayos solapados puede sumar varios incrementos en el mismo tick. Minecraft controla el deshielo y el daño por congelación: no es un efecto visual fijo de cinco segundos ni una inmovilización. Las acciones de poción y congelación también respetan la política de efectos de instancias de EliteMobs.
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
amount: 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
amount: 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
amount: 100
Target:
targetType: ZONE_FULL
track: false
repeatEvery: 1
times: 200