Guides / Commands & Data

/execute : pourquoi l'ordre de as/at est important et comment store fonctionne réellement

La plupart des chaînes execute défectueuses proviennent d'une confusion entre qui exécute la commande et où elle est exécutée. Voici ce que chaque sous-commande modifie, et l'ordre qui corrige le problème.

/execute est une commande qui se fait passer pour un langage de script. Presque toutes les erreurs proviennent de deux sous-commandes qui semblent faire la même chose, mais ce n'est pas le cas.

as change QUI. at change OÙ.

  • as <target> — échange l'exécuteur. @s désigne maintenant cette entité. **La position

ne bouge pas.**

  • at <target> — échange la position, la rotation et la dimension. **L'exécuteur ne

change pas.**

Donc, ceci ne sert à rien :

execute as @e[type=zombie] run setblock ~ ~ ~ stone

Elle s'exécute une fois par zombie, mais toujours à vos pieds, donc elle place un bloc encore et encore. La solution est les deux :

execute as @e[type=zombie] at @s run setblock ~ ~ ~ stone

at @s se ré-ancre au zombie que as vient de sélectionner. as … at @s est la combinaison la plus courante dans toute la commande, et oublier at @s est le bug le plus courant.

L'ordre est de gauche à droite, et il est cumulatif

Les sous-commandes s'exécutent en séquence, chacune modifiant le contexte que la suivante voit :

execute as @a at @s positioned ^ ^ ^3 run particle flame
  1. as @a — un passage par Joueur
  2. at @s — se déplacer vers ce Joueur
  3. positioned ^ ^ ^3 — 3 blocs devant l'endroit où ils regardent

Échangez les étapes 2 et 3 et le décalage du curseur est mesuré à partir de votre rotation au lieu de la leur.

Curseur versus tilde

  • ~ ~ ~ — relatif à la position, aligné sur les axes du monde
  • ^ ^ ^ — relatif à la direction : gauche, haut, avant

Les coordonnées du curseur expliquent pourquoi positioned ^ ^ ^3 signifie "devant" et ~ ~ ~3 signifie "3 blocs au sud". Mélanger les deux notations dans un seul triplet de coordonnées est une erreur de syntaxe.

store est une valeur de retour, pas une variable

store capture ce que la commande retourne — généralement un nombre de succès ou une valeur de résultat :

execute store result score @s Count run data get entity @s Inventory

Deux choses que les gens se trompent :

  • result versus success. result est le nombre produit par la commande ; success

est 1 ou 0 selon qu'elle a été exécutée ou non. Le comptage des entités nécessite result.

  • store précède run, et il s'applique à la commande après run, et non à la

chaîne de sous-commandes.

if versus unless court-circuite

if et unless filtrent — la chaîne s'arrête là si le test échoue. Plusieurs clauses if sont un ET. Il n'y a pas de OU ; cela nécessite deux commandes séparées ou un prédicat.

execute as @a if entity @s[gamemode=survival] if score @s Lives matches 1.. run ...

Construisez la chaîne une sous-commande à la fois, avec le contexte affiché à chaque étape, dans le Advanced Command Builder — il couvre également les données, les objets, le butin, les horaires, les particules et les sons à partir du même formulaire.

Commandes avancées — Execute et Data →

More guides

Browse all →

Vous cherchez d'autres outils Minecraft ?

Une collection de générateurs, visionneuses et convertisseurs qui tournent dans le navigateur — tous gratuits.