Saltar al contenido principal

Condiciones de Elite Script

Las condiciones permiten a los creadores de scripts hacer que los scripts y/o las acciones no se ejecuten en función de 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 la elite sigue viva, y solo colocará un bloque de tierra 3 bloques por encima de la ubicación de la 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 definir qué entidad o ubicación está sujeta a las condiciones. Esto significa que puedes asociar condiciones al jefe, a los jugadores o a cualquier otra cosa que puedas seleccionar como objetivo.


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 omitan los objetivos que no cumplen la condición. Esto significa que si solo quieres seleccionar bloques que no sean aire, querrás una condición FILTERING, pero si quieres detener una acción cuando 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 la condición es isAlive, ¡la verificación siempre es BLOCKING! Esto se puede colocar dentro de una condición FILTERING y aun así hará que esta parte específica se comporte como BLOCKING.

Las condiciones dentro de las acciones están establecidas como FILTERING de forma predeterminada.


Colocació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 se ejecuta.

  2. Bajo todo el script – 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 todo el script.

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"

Comprueba si la ubicación 2 bloques por encima de donde está parado el jefe es aire y, si lo es, 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 aplica ninguna condición.

Bajo todo el script:

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 es golpeado. De lo contrario, bloquea todo el script para que no se ejecute, 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: runIfAliveIs: false en la misma condición, entonces la condición se invierte — la acción ahora se ejecutará solo 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
runIfAliveIs: false
Target:
targetType: SELF

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


Condiciones basadas en la ubicación

locationIsAir

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

ClaveDetallesValores
locationIsAirEstablece la comprobación de 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"

Comprueba si la ubicación 2 bloques por encima de donde está parado el jefe es aire y, si lo es, no bloquea la ejecución del script del clima cuando el mob es golpeado. De lo contrario, bloquea la acción.


isOnFloor

Comprueba 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 sí lo es.

ClaveDetallesValores
isOnFloorEstablece la comprobación de si la ubicación es una ubicación en el 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

Comprueba si el jefe está sobre un bloque sólido; si lo está, ejecuta el script, de lo contrario bloquea la ejecución del script.


isStandingOnMaterial

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

ClaveDetallesValores
isStandingOnMaterialEstablece qué tipo de material debe comprobarse.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 sobre un bloque de BIRCH_WOOD, de lo contrario se bloqueará la ejecución del script.

Condiciones basadas en entidades

isAlive

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

ClaveDetallesValores
isAliveEstablece la comprobación de 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 se bloqueará el script.


hasTags

Comprueba si la entidad objetivo tiene etiquetas específicas. Los creadores de scripts pueden asignar y quitar cualquier etiqueta a través de acciones y usarlas como condiciones para comportamientos posteriores. Las etiquetas son simplemente cadenas (palabras) que puedes asignar a un jefe.

ClaveDetallesValores
hasTagsEstablece la comprobación de 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 se bloqueará el script.


doesNotHaveTags

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

ClaveDetallesValores
doesNotHaveTagsEstablece la comprobación de 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 se bloqueará el script.

Otras condiciones

randomChance

Da a la condición una probabilidad 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 dará al script un 10% de probabilidad de ejecutarse, de lo contrario se bloqueará el script.

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 en función de etiquetas específicas, usa ACTION_TARGET como objetivo de la condición (si la condición se aplica a una acción y no al script en sí). Esto garantiza 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 la tiene, desactivará su IA.

targetCountLowerThan y targetCountGreaterThan

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

ClaveDetallesValores
targetCountLowerThanSolo ejecuta la acción si el conteo de objetivos es menor que el número especificado.Número entre 0 y 999
ClaveDetallesValores
targetCountGreaterThanSolo ejecuta la acción si el conteo de objetivos 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.