Le contexte :
Afin de déclencher un message de chat "de" NPCs - disons des villageois - en s'approchant d'eux, j'utilise un bloc de commande répétitif toujours actif (A), un bloc de commande d'impulsion sensible aux signaux de redstone (B) et un comparateur de redstone entre eux, pointant de A à B.
Comme je veux laisser les PNJs libres, je ne peux pas utiliser de coordonnées absolues, donc ce que je fais actuellement est :
A: execute at @e[name=Gary] if entity @p[distance=..2]
B: execute at @e[name=Gary] run tellraw @a[distance=..2] "Hey!"
Ainsi, le message de chat "Hey !" apparaît une fois pour chaque joueur se trouvant à une distance inférieure ou égale à 2 pâtés de maisons d'une entité nommée Gary, dès qu'un joueur est détecté dans cet espace.
Question :
Puisqu'il est étrange que Gary parle aux personnes qui se trouvent devant lui ainsi qu'à celles qui se trouvent derrière lui, est-il possible de modifier les commandes de manière à ce que le centre de la zone dans laquelle les joueurs sont détectés (et dans laquelle les joueurs doivent se trouver pour recevoir le message) ne soit pas exactement à la position de Gary, mais à un bloc devant lui ?
Délibérations :
-
Si Gary se tenait toujours au même endroit, il serait facile d'utiliser des coordonnées absolues comme ceci :
A: execute if entity @p[x=x_,y=y_,z=z_,distance=..2] B: tellraw @a[x=x_,y=y_,z=z_,distance=..2] "Hey!"
x_, y_ et z_ étant les coordonnées souhaitées à 1 bloc devant Gary.
-
Depuis la version 1.13, il est possible d'utiliser la notation en forme de caret pour les coordonnées dans certaines commandes, ce qui en fait des coordonnées relatives en tenant compte de la direction de visualisation de l'exécuteur de la commande, mais il semble que les arguments du sélecteur de cible ne prennent en charge que les coordonnées absolues dans l'édition Java.