Zones Elite Script
Les zones sont des emplacements définis par une forme qui peuvent être utilisés comme cibles par les scripteurs pour exécuter tout type d'action.
Une seule zone peut être définie par script.
Pour cibler les zones, le type de cible ZONE_FULL ou ZONE_BORDER peut être utilisé.
Les zones elles-mêmes utilisent également les Cibles de Script pour définir où la zone apparaîtra.
shape
Définit la forme de la zone. Formes valides :
| Type de Forme | Détails | Animable | Bordure |
|---|---|---|---|
CYLINDER | Forme cylindrique | ❌ | ✅ |
SPHERE | Forme sphérique | ❌ | ✅ |
DOME | Forme de dôme (demi-sphère) | ❌ | ✅ |
CUBOID | Forme cuboïde (type cube) | ❌ | ✅ |
STATIC_RAY | Une ligne fixe entre deux points | ❌ | ❌ |
ROTATING_RAY | Une ligne rotative entre deux points | ✅ | ❌ |
TRANSLATING_RAY | Une ligne qui se déplace entre deux points initiaux vers deux points finaux | ✅ | ❌ |
CONE | Forme de cône | ❌ | ❌ |
Animable
Les zones avec animations démarrent l'animation de la zone lorsque le script est appelé pour la première fois.
Cela signifie que si une action a un temps d'attente, lorsque l'action démarre, la zone s'est déjà déplacée pendant que l'action attendait.
Les zones sont toujours animées à chaque tick. Cela signifie que si vous utilisez l'action SPAWN_PARTICLES, vous pouvez la configurer pour s'exécuter à chaque tick car la zone se déplacera à chaque tick. Si vous l'exécutez chaque seconde, vous verrez les particules sauter car la zone a continué à se déplacer même lors des ticks où aucune particule n'a été générée.
Si vous souhaitez créer une action de zone rotative mais que vous voulez attendre un certain nombre de ticks avant de démarrer l'action, faites-en un script différent et appelez ce script via RUN_SCRIPT. Assurez-vous que le RUN_SCRIPT a le temps d'attente que vous souhaitez.
Les zones resteront à l'emplacement final une fois qu'elles auront terminé leur animation.
Toutes les zones animables sont configurées pour ne pas suivre les cibles du script car le mouvement supplémentaire rendrait les choses trop difficiles à comprendre pour les scripteurs et les joueurs. Cela signifie que ces zones ne suivront pas les boss ou les joueurs et se déplaceront toujours par rapport à leurs points d'apparition initiaux.
Bordure
Certaines zones peuvent avoir des bordures. Les bordures signifient que ZONE_BORDER peut être utilisé comme cible de la zone. Les bordures sont définies en créant une seconde forme plus petite à l'intérieur de la première forme plus grande. La zone entre la zone plus petite et la zone plus grande est la bordure.
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_LARGE
Target:
targetType: ZONE_BORDER
repeatEvery: 5
times: 20

Ce script crée des particules de fumée qui apparaissent uniquement dans la bordure de la zone pendant 5 secondes (repeat every 5 x times 20 = 100 ticks).
Si vous n'utilisiez pas l'option ZONE_BORDER mais plutôt l'option ZONE_FULL, alors toute la zone serait couverte de particules de fumée comme ceci :

SPHERE
| Clé | Détails | Obligatoire |
|---|---|---|
shape | Définit la forme de la zone. Doit être SPHERE | ✅ |
target | Définit l'emplacement du centre de la sphère | ✅ |
filter | Définit quels types d'entités sont ciblés | ❌ |
radius | Rayon de la sphère | ✅ |
borderRadius | Rayon de la sphère intérieure | ❌ |
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: SPHERE
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

Ce script démontre la forme d'une sphère en utilisant des particules de nuage.
DOME
| Clé | Détails | Obligatoire |
|---|---|---|
shape | Définit la forme de la zone. Doit être DOME | ✅ |
target | Définit l'emplacement du centre du dôme | ✅ |
filter | Définit quels types d'entités sont ciblés | ❌ |
radius | Rayon du dôme | ✅ |
borderRadius | Rayon du dôme intérieur | ❌ |
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: DOME
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

Ce script démontre la forme d'un dôme en utilisant des particules de nuage.
CONE
| Clé | Détails | Obligatoire |
|---|---|---|
shape | Définit la forme de la zone. Doit être CONE | ✅ |
target | Définit l'emplacement du premier point du cône | ✅ |
target2 | Définit l'emplacement du dernier point du centre du cône | ✅ |
filter | Définit quels types d'entités sont ciblés | ❌ |
radius | Rayon de la seconde cible du cône | ✅ |
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CONE
radius: 10
Target:
targetType: SELF
offset: 0,0,0
Target2:
targetType: SELF
offset: 0,10,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 0.8
repeatEvery: 5
times: 20
Ce script démontre la forme d'un cylindre en utilisant des particules de nuage. Gardez à l'esprit que cette zone est une forme de CÔNE, ce qui signifie qu'il s'agit d'un volume 3D, important à considérer si vous visez à créer des effets de balayage.
CYLINDER
| Clé | Détails | Obligatoire |
|---|---|---|
shape | Définit la forme de la zone. Doit être CYLINDER | ✅ |
target | Définit l'emplacement du centre du cylindre | ✅ |
filter | Définit quels types d'entités sont ciblés | ❌ |
radius | Rayon du cylindre | ✅ |
borderRadius | Rayon du cylindre intérieur | ❌ |
height | Hauteur du cylindre | ❌ |
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

Ce script démontre la forme d'un cylindre en utilisant des particules de nuage.
CUBOID
| Clé | Détails | Obligatoire |
|---|---|---|
shape | Définit la forme de la zone. Doit être CUBOID | ✅ |
target | Définit l'emplacement du centre du cuboïde | ✅ |
filter | Définit quels types d'entités sont ciblés | ❌ |
x | Définit la longueur du cuboïde | ✅ |
y | Définit la hauteur du cuboïde | ✅ |
z | Définit la largeur du cuboïde, par défaut x | ❌ |
xBorder | Définit la longueur du cuboïde intérieur | ❌ |
yBorder | Définit la hauteur du cuboïde intérieur | ❌ |
zBorder | Définit la largeur du cuboïde intérieur, par défaut x | ❌ |
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CUBOID
x: 4
y: 4
z: 4
xBorder: 3
yBorder: 3
zBorder: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

Ce script démontre la forme d'un cuboïde en utilisant des particules de nuage.
STATIC_RAY
| Clé | Détails | Obligatoire |
|---|---|---|
shape | Définit la forme de la zone. Doit être STATIC_RAY | ✅ |
target | Définit l'emplacement du premier point de la ligne | ✅ |
target2 | Définit l'emplacement du dernier point de la ligne | ✅ |
filter | Définit quels types d'entités sont ciblés | ❌ |
ignoresSolidBlocks | Définit si le rayon traversera les blocs solides | ❌ |
pointRadius | Définit l'épaisseur du rayon. Par défaut 0.5 bloc. | ❌ |
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: STATIC_RAY
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Target:
targetType: SELF
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

Ce script démontre la forme d'un rayon statique en utilisant des particules de nuage.
Nous avons ajusté la hauteur de la zone en utilisant l'option offset aux deux extrémités de la zone pour faire apparaître le rayon depuis le milieu du joueur et du boss, sinon le rayon apparaîtrait à leurs pieds.
ROTATING_RAY
| Clé | Détails | Obligatoire |
|---|---|---|
shape | Définit la forme de la zone. Doit être ROTATING_RAY | ✅ |
filter | Définit quels types d'entités sont ciblés | ❌ |
target | Définit l'emplacement du premier point de la ligne | ✅ |
target2 | Définit l'emplacement du dernier point de la ligne | ✅ |
animationDuration | Définit, en ticks, le temps pour la rotation | ✅ |
pitchPreRotation | Applique une rotation initiale au tangage avant l'animation | ❌ |
yawPreRotation | Applique une rotation initiale au lacet avant l'animation | ❌ |
pitchRotation | Définit la rotation de tangage pour l'animation | ❌ |
yawRotation | Définit la rotation de lacet pour l'animation | ❌ |
ignoresSolidBlocks | Définit si le rayon traversera les blocs solides | ❌ |
pointRadius | Définit l'épaisseur du rayon. Par défaut 0.5 bloc. | ❌ |
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: ROTATING_RAY
animationDuration: 100
pitchPrerotation: 0
yawPrerotation: 0
pitchRotation: 0
yawRotation: 360
ignoresSolidBlocks: true
Target:
targetType: SELF
offset: 0,1,0
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

Ce script montre à quoi ressemble un rayon rotatif en utilisant des particules de nuage.
Tout d'abord, il crée un rayon du boss vers le joueur qui l'a blessé, en utilisant des particules de nuage. Ensuite, il ajuste légèrement les positions vers le haut d'un bloc en utilisant offset.
Ensuite, il fait tourner le rayon en cercle complet autour du joueur qui a été ciblé. Cette rotation dure 5 secondes (100 ticks) pour se terminer, avec le joueur ciblé comme centre.
TRANSLATING_RAY
| Clé | Détails | Obligatoire |
|---|---|---|
shape | Définit la forme de la zone. Doit être TRANSLATING_RAY | ✅ |
filter | Définit quels types d'entités sont ciblés | ❌ |
animationDuration | Définit, en ticks, le temps pour la translation | ✅ |
target | Définit l'emplacement du premier point de la ligne | ✅ |
finalTarget | Définit l'emplacement de la destination pour le premier point de la ligne | ✅ |
target2 | Définit l'emplacement du second point de la ligne | ✅ |
finalTarget2 | Définit l'emplacement de la destination pour le second point de la ligne | ✅ |
ignoresSolidBlocks | Définit si le rayon traversera les blocs solides | ❌ |
pointRadius | Définit l'épaisseur du rayon. Par défaut 0.5 bloc. | ❌ |
Exemple
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: TRANSLATING_RAY
Target:
targetType: SELF
FinalTarget:
targetType: SELF
offset: 0,10,0
Target2:
targetType: DIRECT_TARGET
FinalTarget2:
targetType: DIRECT_TARGET
offset: 0,10,0
animationDuration: 100
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

Ce script montre à quoi ressemble un rayon en translation en utilisant des particules de nuage.
Tout d'abord, il crée un rayon du boss vers le joueur qui l'a blessé, en utilisant des particules de nuage.
Ensuite, il anime le rayon pour qu'il monte de 10 blocs depuis les deux cibles en utilisant le offset sur le FinalTarget1 et le FinalTarget2.
L'animation prend 5 secondes (100 ticks) pour se terminer.
Nous pouvons facilement faire bouger le rayon latéralement en ajustant le Z offset à quelque chose comme offset: 0,0,10:

Ce comportement peut changer en fonction de l'endroit où vous regardez dans le jeu.
Si nous modifions le X offset dans le script montré dans l'image GIF, le rayon semblerait s'éloigner de nous en ligne droite de notre perspective.
filter
La propriété filter peut être utilisée pour cibler uniquement des entités spécifiques à l'intérieur de la zone. Ces entités peuvent être :
| Valeur | Détails |
|---|---|
PLAYER | Cible uniquement les joueurs dans la zone (par défaut) |
ELITE | Cible uniquement les élites dans la zone |
LIVING | Cible toutes les entités vivantes dans la zone |
Exemple
eliteScript:
FilterExample:
Events:
- PlayerDamagedByEliteMobEvent
Zone:
shape: SPHERE
radius: 12
borderRadius: 11
filter: ELITE
Target:
targetType: SELF
track: false
Cet exemple de script montre comment utiliser le filtre pour faire en sorte que la zone cible uniquement les élites.