Aller au contenu principal

Conditions des Elite Scripts

Les conditions permettent aux scripteurs d'empêcher l'exécution de scripts et / ou d'actions selon des conditions précises.

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 encore 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 leurs propres conditions.

Target

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


Type de condition

KeyDetailsValues
conditionTypeDéfinit le type de conditionBLOCKING / FILTERING

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

Les conditions situées en dehors des actions sont toujours BLOCKING. Les conditions situées à 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 ! Ceci peut être placé à l'intérieur d'une condition FILTERING et fera tout de même se comporter cette partie spécifique 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 les blocs de condition de deux façons :

  1. Sous des actions individuelles – La condition s'appliquera uniquement à une action précise. 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.

Vous trouverez ci-dessous des exemples illustrant comment imbriquer les blocs de condition pour les actions individuelles et pour 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 situé 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, l'action SET_WEATHER est bloquée. 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 blocs au-dessus de l'endroit où se tient le boss est de l'air, alors tous les scripts sont autorisés à s'exécuter lorsque le mob est touché. Sinon, l'ensemble du script est bloqué, y compris les actions SET_WEATHER et MESSAGE.


runIfConditionIs

KeyDetailsValues
runIfConditionIsDéfinit si la condition doit autoriser l'exécution de l'action 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.

Prenons par exemple 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 : runIfAliveIs: false dans la même condition, alors la condition est inversée — l'action ne s'exécutera désormais 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
runIfAliveIs: false
Target:
targetType: SELF

Ce script ne réglera désormais la météo sur orage que si le boss est mort.


Conditions basées sur l'emplacement

locationIsAir

Définit la condition selon que l'emplacement de la cible est de l'air ou non.

KeyDetailsValues
locationIsAirVérifie si l'emplacement est un bloc d'air (ou l'inverse).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 situé 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, l'action est bloquée.


isOnFloor

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

KeyDetailsValues
isOnFloorVérifie si l'emplacement est un emplacement au sol (ou l'inverse).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 se trouve sur un bloc solide ; si c'est le cas, le script s'exécute, sinon son exécution est bloquée.


isStandingOnMaterial

Vérifie si l'emplacement situé sous la cible correspond à un type de matériau précis.

KeyDetailsValues
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 l'exécution du script sera bloquée.

Conditions basées sur les entités

isAlive

Définit la condition selon que l'entité cible de la condition est en vie ou non.

KeyDetailsValues
isAliveVérifie 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 attribuer 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 attribuer à un boss.

KeyDetailsValues
hasTagsVérifie 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.

KeyDetailsValues
doesNotHaveTagsVérifie 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.

KeyDetailsValues
randomChanceProbabilité 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: # Not required
targetType: SELF # Not required

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

Notez que cette condition est particulière car elle ne nécessite pas de cible.

Filtrer NEARBY avec des tags

Pour filtrer NEARBY_MOBS ou NEARBY_PLAYERS selon des 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 précisément uniquement les mobs/joueurs portant 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 à proximité portant le tag TurnOff et, s'ils possèdent ce tag, désactivera alors leur IA.

targetCountLowerThan et targetCountGreaterThan

Crée une condition qui n'autorise l'exécution de l'action que si le nombre de cibles spécifié est inférieur ou supérieur à la valeur définie.

KeyDetailsValues
targetCountLowerThanN'exécute l'action que si le nombre de cibles est inférieur au nombre spécifié.Nombre entre 0 et 999
KeyDetailsValues
targetCountGreaterThanN'exécute l'action que 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: #required
targetType: NEARBY_MOBS #required
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 une cible.