2 votes

Dans quel ordre les paramètres de /execute sont-ils calculés ? L'ordre dans lequel on les tape a-t-il une importance ?

En /execute est une commande très polyvalente qui est utilisée pour exécuter des commandes dans une variété de situations et de conditions. Elle permet de choisir, en fonction de plusieurs paramètres, qui, quand et où exécuter la commande.

Les paramètres n'ont pas une syntaxe d'ordre stricte (sauf pour le paramètre run qui doit être à la fin). L'ordre des paramètres affecte-t-il le résultat final de la commande ? Y a-t-il des paramètres qui sont calculés en premier par rapport aux autres ?

1voto

Richie Frame Points 1800

Il s'agit d'une question à laquelle vous avez répondu vous-même. Si vous avez des détails supplémentaires, n'hésitez pas à commenter ou à poster une autre réponse.


Réponse courte : L'ordre est-il important ? Oui, l'ordre est important.


Tous vos paramètres sont calculés de gauche à droite. Voici quelques exemples (commande en haut, résultat en bas) :

/execute as @e[type=cow] if entity @s[type=cow] as @e[type=sheep] run say Hello, World!

[Sheep] Hello, World!

Fait passer l'entité d'exécution à la vache, puis si elle se détecte comme étant une vache, fait passer l'entité d'exécution au mouton et lui fait dire Hello, World!

Concernant le as paramètre :

En as est utilisé pour changer l'entité qui exécute la commande. Le passage à la nouvelle entité de contrôle se fait au moment même où le paramètre est traité, et non pas lorsque la commande run est atteinte.

Par conséquent, chaque as est relatif au précédent :

/execute as @e[type=cow,limit=1] as @s run say Hello World!

[Cow] Hello World!

Dans cette commande, la personne qui exécute le run La commande dira Hello, World dans le chat avec l'horodatage de leur nom. Mais qui cela sera-t-il, moi ou la vache ?
Dans ce cas, ce sera la vache qui exécutera la commande, car le 2e paramètre ( as @s ) est relative à la première. Parce que l'entité a été précédemment définie sur la vache, @s renverra à la vache, car le passage à la nouvelle entité se fait à ce moment précis, et non pas lorsqu'il arrive à la vache. run .

Aussi, nous savons que /execute as ne change pas de position, n'est-ce pas ? Et bien grâce à ce mécanisme que nous venons de voir, nous pouvons forcer as d'inclure la position en faisant ceci :

/execute as @e[type=cow,limit=1] at @s run ...

Parce que @s est relatif à l'entité actuellement en charge de la commande, ce qui signifie qu'il fera référence à la vache. Par conséquent, la position d'exécution sera déplacée vers la vache.
Rappelez-vous cependant que si vous voulez passer à une autre entité et inclure sa position à nouveau vous devrez saisir à nouveau les deux paramètres (pour que le premier sélecteur de cible fasse référence à la prochaine entité à contrôler).

Concernant le store paramètre :

store est un cas particulier. Avec store l'emplacement à sauver est "amorcé" lorsque le coureur de commandement arrive à cette position. Ensuite, une fois l'exécution de la commande terminée, le résultat est stocké dans la position amorcée, même si l'entité/la position d'exécution est modifiée.

/execute as @e[type=cow] store result score @s test as ExpertCoder14 if entity @a[name=ExpertCoder14]

Même si c'est moi qui vérifie la présence du joueur, c'est toujours la vache dont le score est mis à jour. Ceci est dû au fait que le score Le paramètre a été amorcé alors que la vache contrôlait la commande.

En savoir plus sur /execute sur le Wiki Minecraft : Commandes/exécution

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X