Résolu TP relative à une entité

Venatorem

Architecte en herbe
12 Juillet 2016
74
9
48
28
Bonjour,

Je souhaiterais faire une tp ~ ~1 ~ relative à chaque entité, qui ne se produit que dans un rayon précis (distance=..3) autour d'une autre entité ArmorStand (qui elle aussi doit se tp ~ ~1 ~). ps: j'utilise une entité et non une coordonnée fixe car l'entité doit bouger.
/execute as @e[type=minecraft:armor_stand] run execute as @e[distance=..3] at @s run tp @s ~ ~1 ~

Ça ne marche pas et je commence à galérer... quelqu'un peut m'aider ?
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Hey !
Tu es un habitué des commandes pré-1.13, je me trompe ? ^^'
Il faut savoir que, contrairement au execute de la 1.12, celui de la 1.13 fait une différence entre l'entité exécutrice, et le point d'exécution. C'est à dire que l'on peut exécuter la commande d'un squelette (entité exécutrice), mais depuis la position de tous les slimes (point d'exécution) !
Pour cela, lorsque c'est relatif à une entité, on passe par deux paramètres : le as et le at.
Les deux sont assez explicites à la traduction :
  • as [quelque chose] : en tant que [quelque chose]
  • at [quelque chose] : à (sous-entendu "à la position de") [quelque chose]
De plus, en 1.13+, ça ne sert plus à rien de chaîner les executes, tu peux directement chaîner les paramètres !
Donc pour ta commande, tu n'as pas besoin de ton armor_stand en tant qu'entité exécutrice, mais en tant que position d'exécution et cible.
Pour cela, tu peux faire cette commande :
Code:
execute at @e[type=armor_stand] as @e[distance=..3] at @s run tp @s ~ ~1 ~
Donc pour expliquer un peu la commande :
On exécute sur toute entité (as) étant dans un rayon de 3 blocs (distance=..3) autour d'un armor_stand (at @e[type=armor_stand] à leur position courante (at @e[distance=..3]) un TP d'eux-même (@s) d'un bloc vers le haut.

Et voici ;)
 
  • J'aime
Reactions: FlyingDustman

Venatorem

Architecte en herbe
12 Juillet 2016
74
9
48
28
Merci pour ta réactivité !

En effet, ça fait un baille que j'ai pas touché aux commandes bloc, je suis bien rouillé.
Ta réponse est parfaite ! Je cherche à faire une machine volante avec la commande clone (replace move) et je cherchais à faire en sorte que les entités sur la machine restent à leurs places selon ses déplacements.
Encore merci !
 
  • J'aime
Reactions: Oromis

Venatorem

Architecte en herbe
12 Juillet 2016
74
9
48
28
D'ailleurs, j'essaye de faire
/execute at @e[type=armor_stand] as @e[x=-2,y=-2,z=-2,dx=4,dy=4,dz=4] at @s run tp @s ~ ~1 ~
pour avoir non pas un rayon (distance=..2) mais un volume cubique de 5x5x5 depuis l'armorstand situé au centre, mais là aussi je galère...
 
Dernière édition:

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Ce n'est pas possible de mettre des nombres négatifs dans x y et z. Par contre, tu peux passer par le paramètre "positioned" du execute et donc faire un truc du genre :
Code:
execute positioned ~-2 ~-2 ~-2
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Code:
execute at @e[type=armor_stand] positioned ~-2 ~-2 ~-2 as @e[dx=4,dy=4,dz=4] at @s run tp @s ~ ~1 ~
;)
 
  • J'aime
Reactions: Venatorem