Saltar al contenido principal

Zonas de Elite Script

Las zonas son ubicaciones definidas por una forma que pueden ser usadas como objetivos por los creadores de scripts para ejecutar cualquier tipo de acción.

Solo se puede establecer una zona por script.

Para apuntar a las zonas se pueden usar los tipos de objetivo ZONE_FULL o ZONE_BORDER.

Las zonas en sí también usan Objetivos de Script para definir dónde aparecerá la zona.

shape

Establece la forma de la zona. Formas válidas:

Tipo de formaDetallesAnimableBorde
CYLINDERForma cilíndrica
SPHEREForma esférica
DOMEForma de cúpula (media esfera)
CUBOIDForma de cuboide (tipo cubo)
STATIC_RAYUna línea fija entre dos puntos
ROTATING_RAYUna línea giratoria entre dos puntos
TRANSLATING_RAYUna línea que se mueve desde dos puntos iniciales hasta dos puntos finales
CONEForma de cono

Animable

Las zonas con animaciones inician la animación de la zona cuando el script se llama por primera vez.

Esto significa que si una acción tiene un tiempo de espera, cuando la acción comience la zona ya se habrá estado moviendo mientras la acción esperaba.

Las zonas siempre se animan en cada tick. Esto significa que si usas la acción SPAWN_PARTICLES, puedes configurarla para que se ejecute cada tick, ya que la zona se moverá cada tick. Si la ejecutas cada segundo, verás las partículas saltando de un lado a otro, porque la zona siguió moviéndose incluso en los ticks en los que no se generaron partículas.

Si quieres crear una acción de zona giratoria pero quieres esperar una cantidad determinada de ticks antes de iniciar la acción, hazla en un script distinto y llama a ese script mediante RUN_SCRIPT. Asegúrate de que el RUN_SCRIPT tenga el tiempo de espera que quieres.

Las zonas permanecerán en la ubicación final una vez que terminen de animarse.

Todas las zonas animables están configuradas para no hacer seguimiento en los objetivos del script, ya que el movimiento adicional haría las cosas demasiado difíciles de entender para los creadores de scripts y para los jugadores. Esto significa que estas zonas no seguirán a los jefes ni a los jugadores y siempre se moverán en relación con su punto de aparición inicial.


Borde

Ciertas zonas pueden tener bordes. Que una zona tenga borde significa que se puede usar ZONE_BORDER como objetivo de la zona. Los bordes se definen creando una segunda forma más pequeña dentro de la primera forma, la más grande. El área entre la zona pequeña y la zona grande es el borde.

Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_LARGE
Target:
targetType: ZONE_BORDER
repeatEvery: 5
times: 20

elitescript_zones_border.jpg

Este script crea partículas de humo que aparecen solo en el borde de la zona durante 5 segundos (repetir cada 5 x 20 veces = 100 ticks).

Si no usaras la opción ZONE_BORDER sino la opción ZONE_FULL, entonces toda la zona se cubriría de partículas de humo así:

elitescript_zones_borderfull.jpg


SPHERE

ClaveDetallesObligatorio
shapeEstablece la forma de la zona. Debe ser SPHERE
targetEstablece la ubicación del centro de la esfera
filterEstablece qué tipos de entidades son seleccionadas
radiusRadio de la esfera
borderRadiusRadio de la esfera interior
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: SPHERE
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_sphere.jpg

Este script demuestra la forma de una esfera usando partículas de nube.


DOME

ClaveDetallesObligatorio
shapeEstablece la forma de la zona. Debe ser DOME
targetEstablece la ubicación del centro de la cúpula
filterEstablece qué tipos de entidades son seleccionadas
radiusRadio de la cúpula
borderRadiusRadio de la cúpula interior
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: DOME
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_dome.jpg

Este script demuestra la forma de una cúpula usando partículas de nube.


CONE

ClaveDetallesObligatorio
shapeEstablece la forma de la zona. Debe ser CONE
targetEstablece la ubicación del vértice (la punta) del cono
target2Establece la ubicación del centro de la base del cono
filterEstablece qué tipos de entidades son seleccionadas
radiusRadio de la base del cono
borderRadiusRadio del cono interior
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CONE
radius: 10
Target:
targetType: SELF
offset: 0,0,0
Target2:
targetType: SELF
offset: 0,10,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 0.8
repeatEvery: 5
times: 20

Este script demuestra la forma de un cono usando partículas de nube. Ten en cuenta que esta zona es una forma CONE, es decir, un volumen 3D, algo importante a considerar si buscas crear efectos de barrido.


CYLINDER

ClaveDetallesObligatorio
shapeEstablece la forma de la zona. Debe ser CYLINDER
targetEstablece la ubicación del centro del cilindro
filterEstablece qué tipos de entidades son seleccionadas
radiusRadio del cilindro
borderRadiusRadio del cilindro interior
heightAltura del cilindro
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_cylinder.jpg

Este script demuestra la forma de un cilindro usando partículas de nube.


CUBOID

ClaveDetallesObligatorio
shapeEstablece la forma de la zona. Debe ser CUBOID
targetEstablece la ubicación del centro del cuboide
filterEstablece qué tipos de entidades son seleccionadas
xEstablece la longitud del cuboide
yEstablece la altura del cuboide
zEstablece la anchura del cuboide; por defecto es igual a x
xBorderEstablece la longitud del cuboide interior
yBorderEstablece la altura del cuboide interior
zBorderEstablece la anchura del cuboide interior; por defecto es igual a x
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CUBOID
x: 4
y: 4
z: 4
xBorder: 3
yBorder: 3
zBorder: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_cuboid.jpg

Este script demuestra la forma de un cuboide usando partículas de nube.


STATIC_RAY

ClaveDetallesObligatorio
shapeEstablece la forma de la zona. Debe ser STATIC_RAY
targetEstablece la ubicación del primer punto de la línea
target2Establece la ubicación del último punto de la línea
filterEstablece qué tipos de entidades son seleccionadas
ignoresSolidBlocksEstablece si el rayo atravesará bloques sólidos. Por defecto true
pointRadiusEstablece el grosor del rayo. Por defecto es 0.5 bloques.
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: STATIC_RAY
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Target:
targetType: SELF
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

elitescript_zones_staticray.jpg

Este script demuestra la forma de un rayo estático usando partículas de nube.

Hemos ajustado la altura de la zona usando la opción offset en ambos extremos de la zona para que el rayo salga desde la mitad del jugador y del jefe; de lo contrario, el rayo aparecería a sus pies.


ROTATING_RAY

ClaveDetallesObligatorio
shapeEstablece la forma de la zona. Debe ser ROTATING_RAY
filterEstablece qué tipos de entidades son seleccionadas
targetEstablece la ubicación del primer punto de la línea
target2Establece la ubicación del último punto de la línea
animationDurationEstablece, en ticks, la duración de la rotación
pitchPreRotationAplica una rotación inicial al pitch antes de la animación
yawPreRotationAplica una rotación inicial al yaw antes de la animación
pitchRotationEstablece la rotación de pitch para la animación
yawRotationEstablece la rotación de yaw para la animación
ignoresSolidBlocksEstablece si el rayo atravesará bloques sólidos. Por defecto true
pointRadiusEstablece el grosor del rayo. Por defecto es 0.5 bloques.
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: ROTATING_RAY
animationDuration: 100
pitchPrerotation: 0
yawPrerotation: 0
pitchRotation: 0
yawRotation: 360
ignoresSolidBlocks: true
Target:
targetType: SELF
offset: 0,1,0
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

elitescript_zones_rotatingray.gif

Este script muestra cómo se ve un rayo giratorio usando partículas de nube.

Primero, crea un rayo desde el jefe hasta el jugador que lo dañó, usando partículas de nube. Luego, ajusta las posiciones ligeramente hacia arriba un bloque usando offset.

A continuación, hace girar el rayo en un círculo completo alrededor del jugador seleccionado. Esta rotación tarda 5 segundos (100 ticks) en completarse, con el jugador seleccionado como centro.


TRANSLATING_RAY

ClaveDetallesObligatorio
shapeEstablece la forma de la zona. Debe ser TRANSLATING_RAY
filterEstablece qué tipos de entidades son seleccionadas
animationDurationEstablece, en ticks, la duración del desplazamiento
targetEstablece la ubicación del primer punto de la línea
finalTargetEstablece la ubicación de destino del primer punto de la línea
target2Establece la ubicación del segundo punto de la línea
finalTarget2Establece la ubicación de destino del segundo punto de la línea
ignoresSolidBlocksEstablece si el rayo atravesará bloques sólidos. Por defecto true
pointRadiusEstablece el grosor del rayo. Por defecto es 0.5 bloques.
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: TRANSLATING_RAY
Target:
targetType: SELF
FinalTarget:
targetType: SELF
offset: 0,10,0
Target2:
targetType: DIRECT_TARGET
FinalTarget2:
targetType: DIRECT_TARGET
offset: 0,10,0
animationDuration: 100
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

elitescript_zones_translatingray.gif

Este script muestra cómo se ve un rayo en movimiento usando partículas de nube.

Primero, crea un rayo desde el jefe hasta el jugador que lo dañó, usando partículas de nube.

Luego, anima el rayo para que suba 10 bloques desde ambos objetivos usando el offset en FinalTarget1 y FinalTarget2.

La animación tarda 5 segundos (100 ticks) en completarse.

Podemos hacer que el rayo se mueva lateralmente con facilidad ajustando el offset de Z a algo como offset: 0,0,10:

elitescript_zones_translatingray2.gif

Este comportamiento puede cambiar según hacia dónde estés mirando en el juego.
Si modificamos el offset de X en el script que se muestra en la imagen GIF, el rayo parecería alejarse de nosotros en línea recta desde nuestra perspectiva.


filter

La propiedad filter se puede usar para seleccionar únicamente entidades específicas dentro de la zona. Estas entidades pueden ser:

ValorDetalles
PLAYERSolo apunta a jugadores en la zona (predeterminado)
ELITESolo apunta a elites en la zona
LIVINGApunta a todas las entidades vivas en la zona
Ejemplo
eliteScript:
FilterExample:
Events:
- PlayerDamagedByEliteMobEvent
Zone:
shape: SPHERE
radius: 12
borderRadius: 11
filter: ELITE
Target:
targetType: SELF
track: false

Este script de ejemplo muestra cómo usar el filtro para que la zona solo apunte a elites.