Aller au contenu principal

Conditions Elite Script

Les conditions permettent aux scripteurs de faire en sorte que les scripts et/ou les actions ne s'exécutent pas en fonction de conditions spécifiques.

Exemple
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

Dans cet exemple, le script Example ne s'exécutera que si l'élite est toujours en vie, et ne placera un bloc de terre 3 blocs au-dessus de l'emplacement de l'élite que si ce bloc est un bloc d'air. Les actions individuelles peuvent avoir des conditions individuelles.

Target

Les conditions utilisent le système de Cibles pour cibler quelle entité ou emplacement est soumis aux conditions. Cela signifie que vous pouvez associer des conditions au boss ou aux joueurs ou à tout autre élément que vous pouvez cibler.


Type de condition

CléDétailsValeurs
conditionTypeDéfinit le type de conditionBLOCKING / FILTERING

Il existe deux types de conditions : BLOCKING et FILTERING. Les conditions BLOCKING font arrêter l'exécution des scripts ou des actions. Les conditions FILTERING font ignorer les cibles qui ne remplissent pas la condition par les actions. Cela signifie que si vous voulez cibler uniquement les blocs qui ne sont pas de l'air, vous voudrez une condition FILTERING, mais si vous voulez arrêter une action si un joueur est mort, vous voudrez une condition BLOCKING.

Les conditions en dehors des actions sont toujours BLOCKING. Les conditions à l'intérieur des actions peuvent être BLOCKING ou FILTERING.

Remarque : si la cible est SELF (le boss) et que la vérification de condition est isAlive, la vérification est toujours BLOCKING ! Cela peut être placé à l'intérieur d'une condition FILTERING et fera quand même en sorte que cette partie spécifique se comporte comme BLOCKING.

Les conditions à l'intérieur des actions sont définies sur FILTERING par défaut.


Placement des blocs de condition

Vous pouvez placer ou imbriquer des blocs de condition de deux manières :

  1. Sous des actions individuelles – La condition s'appliquera uniquement à une action spécifique. Si la condition est remplie, l'action s'exécute ; sinon, elle ne s'exécute pas.

  2. Sous l'ensemble du script – La condition s'applique à toutes les actions du script. Si la condition n'est pas remplie, aucune des actions ne s'exécutera.

Ci-dessous se trouvent des exemples démontrant comment imbriquer des blocs de condition pour les actions individuelles et l'ensemble du script.

Sous des actions individuelles :

Exemple
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"

Vérifie si l'emplacement 2 blocs au-dessus de l'endroit où se tient le boss est de l'air et si c'est le cas, exécute l'action SET_WEATHER lorsque le mob est touché. Sinon, bloque l'action SET_WEATHER. Mais le boss exécutera toujours l'action MESSAGE lorsqu'il est touché puisqu'aucune condition ne lui est appliquée.

Sous l'ensemble du script :

Exemple
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 le bloc situé deux espaces au-dessus de l'endroit où se tient le boss est de l'air, alors autorise tous les scripts à s'exécuter lorsque le mob est touché. Sinon, bloque l'exécution de l'ensemble du script, y compris les actions SET_WEATHER et MESSAGE.


runIfConditionIs

CléDétailsValeurs
runIfConditionIsDéfinit si la condition doit permettre à l'action de s'exécuter lorsque la condition est vraie ou fausse.true / false

Vous pouvez inverser une condition en utilisant le préfixe runIf et le suffixe Is autour du nom de la condition.

Par exemple, prenez la condition isAlive. Normalement, écrire : isAlive: true signifie que l'action ne s'exécutera que si le boss est en vie.

Mais si vous écrivez également : runIfIsAliveIs: false dans la même condition, alors la condition est inversée — l'action ne s'exécutera maintenant que si le boss est mort.

Cette structure vous permet de contrôler si la condition doit réussir ou échouer avant d'exécuter l'action.

Exemple :

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

Ce script ne définira maintenant la météo sur orage que si le boss est mort.


Conditions basées sur l'emplacement

locationIsAir

Définit la condition pour vérifier si l'emplacement de la cible est de l'air.

CléDétailsValeurs
locationIsAirDéfinit pour vérifier si l'emplacement est un bloc d'air (ou le contraire).Boolean
Exemple
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"

Vérifie si l'emplacement 2 blocs au-dessus de l'endroit où se tient le boss est de l'air et si c'est le cas, ne bloque pas l'exécution du script météo lorsque le mob est touché. Sinon, bloque l'action.


isOnFloor

Vérifie si l'emplacement est sur le sol. Cela signifie que le bloc à l'emplacement n'est pas solide, mais que le bloc en dessous est solide.

CléDétailsValeurs
isOnFloorDéfinit pour vérifier si l'emplacement est un emplacement de sol (ou le contraire).Boolean
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isOnFloor: true
Target:
targetType: SELF

Vérifie si le boss est sur un bloc solide, si c'est le cas, exécute le script, sinon bloque l'exécution du script.


isStandingOnMaterial

Vérifie si l'emplacement sous la cible est un type de matériau correspondant.

CléDétailsValeurs
isStandingOnMaterialDéfinit quel type de matériau doit être vérifié.Material
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isStandingOnMaterial: BIRCH_WOOD
Target:
targetType: SELF

Ne s'exécutera que si le boss se tient sur un bloc BIRCH_WOOD, sinon le script sera bloqué.

Conditions basées sur l'entité

isAlive

Définit la condition pour vérifier si l'entité cible de la condition est en vie.

CléDétailsValeurs
isAliveDéfinit pour vérifier si l'entité est en vie (ou morte).Boolean
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isAlive: true
Target:
targetType: SELF

Ne s'exécutera que si le boss est actuellement en vie, sinon le script sera bloqué.


hasTags

Vérifie si l'entité cible possède des tags spécifiques. Les scripteurs peuvent assigner et retirer n'importe quel tag via des actions et les utiliser comme conditions pour un comportement ultérieur. Les tags sont simplement des chaînes de caractères (mots) que vous pouvez assigner à un boss.

CléDétailsValeurs
hasTagsDéfinit pour vérifier si l'entité possède une liste de tags.String List
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
hasTags:
- isCool
- hasANiceBeard
Target:
targetType: SELF

Ne s'exécutera que si le boss possède les tags "isCool" et "hasANiceBeard", sinon le script sera bloqué.


doesNotHaveTags

Identique à hasTags, mais vérifie si le boss ne possède pas ces valeurs.

CléDétailsValeurs
doesNotHaveTagsDéfinit pour vérifier si l'entité ne possède pas une liste de tags.String List
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
doesNotHaveTags:
- isStinky
- isSus
Target:
targetType: SELF

Ne s'exécutera que si le boss ne possède pas les tags "isStinky" et "isSus", sinon le script sera bloqué.

Autres conditions

randomChance

Donne à la condition une chance aléatoire d'être valide.

CléDétailsValeurs
randomChanceChance que la condition soit valide.Nombre entre 0.0 et 1.0
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
randomChance: 0.1
Target: # Non requis
targetType: SELF # Non requis

Cela donnera au script une chance de 10% de s'exécuter, sinon le script sera bloqué.

Notez que cette condition est spéciale car elle ne nécessite pas de cible.

Filtrer NEARBY avec des tags

Pour filtrer NEARBY_MOBS ou NEARBY_PLAYERS en fonction de tags spécifiques, utilisez ACTION_TARGET comme cible de la condition (si la condition est appliquée à une action et non au script lui-même). Cela garantit que le script filtre avec précision uniquement les mobs/joueurs avec les tags spécifiés.

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

Ce script recherchera tous les mobs proches ayant le tag TurnOff et s'ils ont le tag, il désactivera leur IA.

targetCountLowerThan et targetCountGreaterThan

Crée une condition qui permet à l'action de s'exécuter uniquement si le nombre de cibles spécifié est inférieur ou supérieur à la valeur définie.

CléDétailsValeurs
targetCountLowerThanExécute l'action uniquement si le nombre de cibles est inférieur au nombre spécifié.Nombre entre 0 et 999
CléDétailsValeurs
targetCountGreaterThanExécute l'action uniquement si le nombre de cibles est supérieur au nombre spécifié.Nombre entre 0 et 999
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
targetCountGreaterThan: 2
Target: #requis
targetType: NEARBY_MOBS #requis
range: 15

Le script ne s'exécutera que s'il y a plus de 2 mobs dans un rayon de 15 blocs.

Notez que cette condition nécessite BIEN une cible.