Saltar al contenido principal

Condiciones de Elite Script

Las condiciones permiten a los scripters hacer que los scripts y/o acciones no se ejecuten según condiciones específicas.

Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Conditions:
isAlive: true
conditionType: BLOCKING
Target:
targetType: SELF
Actions:
- action: PLACE_BLOCK
Target:
targetType: DIRECT_TARGET
duration: 20
material: DIRT
offset: 0,3,0
Conditions:
locationIsAir: true
conditionType: BLOCKING
Target:
targetType: ACTION_TARGET
Cooldowns:
local: 60
global: 20

En este ejemplo, el script Example solo se ejecutará si el elite todavía está vivo, y solo colocará un bloque de tierra 3 bloques por encima de la ubicación del elite si ese bloque es un bloque de aire. Las acciones individuales pueden tener condiciones individuales.

Target

Las condiciones utilizan el sistema de Targets para dirigirse a qué entidad o ubicación está sujeta a las condiciones. Esto significa que puedes asociar condiciones al jefe o a los jugadores o a cualquier otra cosa que puedas dirigir.


Tipo de Condición

ClaveDetallesValores
conditionTypeEstablece el tipo de condiciónBLOCKING / FILTERING

Hay dos tipos de condición: BLOCKING y FILTERING. Las condiciones BLOCKING hacen que los scripts o acciones dejen de ejecutarse. Las condiciones FILTERING hacen que las acciones se salten los objetivos que no cumplen la condición. Esto significa que si quieres dirigirte solo a bloques que no sean aire, querrás una condición FILTERING, pero si quieres detener una acción si un jugador está muerto, querrás una condición BLOCKING.

Las condiciones fuera de las acciones siempre son BLOCKING. Las condiciones dentro de las acciones pueden ser BLOCKING o FILTERING.

Nota: si el objetivo es SELF (el jefe) y la verificación de condición es isAlive, la verificación siempre es BLOCKING! Esto se puede poner dentro de una condición FILTERING y aún así hará que esta parte específica se comporte como BLOCKING.

Las condiciones dentro de las acciones están configuradas como FILTERING por defecto.


Ubicación de Bloques de Condición

Puedes colocar o anidar bloques de condición de dos maneras:

  1. Bajo acciones individuales – La condición se aplicará solo a una acción específica. Si se cumple la condición, la acción se ejecuta; de lo contrario, no lo hace.

  2. Bajo el script completo – La condición se aplica a todas las acciones dentro del script. Si no se cumple la condición, ninguna de las acciones se ejecutará.

A continuación se muestran ejemplos que demuestran cómo anidar bloques de condición tanto para acciones individuales como para el script completo.

Bajo acciones individuales:

Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: "&2Hello World!"
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
locationIsAir: true
Target:
targetType: SELF
offset: "0,3,0"

Verifica si la ubicación 2 bloques por encima de donde está parado el jefe es aire y si lo es, entonces ejecuta la acción SET_WEATHER cuando el mob es golpeado. De lo contrario, bloquea la acción SET_WEATHER. Pero el jefe siempre ejecutará la acción MESSAGE cuando sea golpeado ya que no se le están aplicando condiciones.

Bajo el script completo:

Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: "&2Hello World!"
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
locationIsAir: true
Target:
targetType: SELF
offset: "0,3,0"

Si el bloque ubicado dos espacios por encima de donde está parado el jefe es aire, entonces permite que todos los scripts se ejecuten cuando el mob sea golpeado. De lo contrario, bloquea la ejecución del script completo, incluyendo las acciones SET_WEATHER y MESSAGE.


runIfConditionIs

ClaveDetallesValores
runIfConditionIsEstablece si la condición debe permitir que la acción se ejecute cuando la condición es verdadera o falsa.true / false

Puedes invertir una condición usando el prefijo runIf y el sufijo Is alrededor del nombre de la condición.

Por ejemplo, toma la condición isAlive. Normalmente, escribir: isAlive: true significa que la acción solo se ejecutará si el jefe está vivo.

Pero si también escribes: runIfIsAliveIs: false en la misma condición, entonces la condición se invierte — la acción ahora solo se ejecutará si el jefe está muerto.

Esta estructura te permite controlar si la condición debe pasar o fallar antes de ejecutar la acción.

Ejemplo:

eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isAlive: true
runIfIsAliveIs: false
Target:
targetType: SELF

Este script ahora solo establecerá el clima a tormenta si el jefe está muerto.


Condiciones basadas en ubicación

locationIsAir

Establece la condición de si la ubicación del objetivo es aire.

ClaveDetallesValores
locationIsAirEstablece verificar si la ubicación es un bloque de aire (o lo contrario).Boolean
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
locationIsAir: true
Target:
targetType: SELF
offset: "0,3,0"

Verifica si la ubicación 2 bloques por encima de donde está parado el jefe es aire y si lo es, entonces no bloquea el script de clima para que se ejecute cuando el mob sea golpeado. De lo contrario, bloquea la acción.


isOnFloor

Verifica si la ubicación está en el suelo. Esto significa que el bloque en la ubicación no es sólido, pero el bloque debajo de él es sólido.

ClaveDetallesValores
isOnFloorEstablece verificar si la ubicación es una ubicación de suelo (o lo contrario).Boolean
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isOnFloor: true
Target:
targetType: SELF

Verifica si el jefe está en un bloque sólido, si lo está, entonces ejecuta el script de lo contrario bloquea el script para que no se ejecute.


isStandingOnMaterial

Verifica si la ubicación debajo del objetivo es un tipo de material coincidente.

ClaveDetallesValores
isStandingOnMaterialEstablece qué tipo de material debe verificarse.Material
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isStandingOnMaterial: BIRCH_WOOD
Target:
targetType: SELF

Solo se ejecutará si el jefe está parado en un bloque BIRCH_WOOD de lo contrario el script será bloqueado para que no se ejecute.

Condiciones basadas en entidades

isAlive

Establece la condición de si la entidad objetivo de la condición está viva.

ClaveDetallesValores
isAliveEstablece verificar si la entidad está viva (o muerta).Boolean
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isAlive: true
Target:
targetType: SELF

Solo se ejecutará si el jefe está actualmente vivo de lo contrario el script será bloqueado.


hasTags

Verifica si la entidad objetivo tiene etiquetas específicas. Los scripters pueden asignar y desasignar cualquier etiqueta a través de acciones y usarlas como condiciones para el comportamiento posterior. Las etiquetas son simplemente cadenas (palabras) que puedes asignar a un jefe.

ClaveDetallesValores
hasTagsEstablece verificar si la entidad tiene una lista de etiquetas.String List
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
hasTags:
- isCool
- hasANiceBeard
Target:
targetType: SELF

Solo se ejecutará si el jefe tiene las etiquetas "isCool" y "hasANiceBeard" de lo contrario el script será bloqueado.


doesNotHaveTags

Igual que hasTags, pero verifica si el jefe no tiene estos valores.

ClaveDetallesValores
doesNotHaveTagsEstablece verificar si la entidad no tiene una lista de etiquetas.String List
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
doesNotHaveTags:
- isStinky
- isSus
Target:
targetType: SELF

Solo se ejecutará si el jefe no tiene las etiquetas "isStinky" e "isSus" de lo contrario el script será bloqueado.

Otras condiciones

randomChance

Da a la condición una oportunidad aleatoria de ser válida.

ClaveDetallesValores
randomChanceProbabilidad de que la condición sea válida.Número entre 0.0 y 1.0
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
randomChance: 0.1
Target: # No requerido
targetType: SELF # No requerido

Esto le dará al script un 10% de probabilidad de ejecutarse de lo contrario el script será bloqueado.

Ten en cuenta que esta condición es especial ya que no requiere un objetivo.

Filtrar NEARBY con etiquetas

Para filtrar NEARBY_MOBS o NEARBY_PLAYERS basándose en etiquetas específicas, usa ACTION_TARGET como el objetivo de la condición (si la condición se aplica a una acción y no al script en sí). Esto asegura que el script filtre con precisión solo los mobs/jugadores con las etiquetas especificadas.

Ejemplo
eliteScript:
Example:
Actions:
- action: SET_MOB_AI
Target:
targetType: NEARBY_MOBS
range: 40
bValue: false
Conditions:
conditionType: FILTERING
hasTags:
- TurnOff
Target:
targetType: ACTION_TARGET

Este script buscará cualquier mob cercano con la etiqueta TurnOff y si tienen la etiqueta entonces apagará su IA.

targetCountLowerThan y targetCountGreaterThan

Crea una condición que permite que la acción se ejecute solo si el número de objetivo especificado es menor o mayor que el valor definido.

ClaveDetallesValores
targetCountLowerThanSolo ejecuta la acción si el conteo de objetivo es menor que el número especificado.Número entre 0 y 999
ClaveDetallesValores
targetCountGreaterThanSolo ejecuta la acción si el conteo de objetivo es mayor que el número especificado.Número entre 0 y 999
Ejemplo
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
targetCountGreaterThan: 2
Target: #requerido
targetType: NEARBY_MOBS #requerido
range: 15

El script solo se ejecutará si hay más de 2 mobs dentro de un radio de 15 bloques.

Ten en cuenta que esta condición SÍ requiere un objetivo.