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étails | Valeurs |
|---|---|---|
conditionType | Définit le type de condition | BLOCKING / 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 :
-
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.
-
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étails | Valeurs |
|---|---|---|
runIfConditionIs | Dé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étails | Valeurs |
|---|---|---|
locationIsAir | Dé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étails | Valeurs |
|---|---|---|
isOnFloor | Dé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étails | Valeurs |
|---|---|---|
isStandingOnMaterial | Dé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étails | Valeurs |
|---|---|---|
isAlive | Dé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étails | Valeurs |
|---|---|---|
hasTags | Dé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étails | Valeurs |
|---|---|---|
doesNotHaveTags | Dé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étails | Valeurs |
|---|---|---|
randomChance | Chance 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étails | Valeurs |
|---|---|---|
targetCountLowerThan | Exécute l'action uniquement si le nombre de cibles est inférieur au nombre spécifié. | Nombre entre 0 et 999 |
| Clé | Détails | Valeurs |
|---|---|---|
targetCountGreaterThan | Exé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.