commande /execute pour dectecté un joueur

ivorayni56

Aventurier
3 Mars 2024
4
0
1
21
bonjour, je suis novice alors j'ai encore quelque question. j'ai fait une commande qui dit salut à un joueur à un certain endroit mais il le dit à toute les secondes comment je peut faire pour que sa dise qu'une fois quand va sur le block? sinon il y à pas moyen de faire un rayon de 1 block sur 2 block
1709479381529.png
 

Nuts101

Architecte en herbe
4 Juin 2018
98
1
20
120
Salut, si c'est pour du solo :
Tu mets ton execute dans un repeating comand block avec en sortie un comparator puis un command block classique avec ton tellraw

Et pour les coordonnées :
/execute as @a[x=X,y=Y,z=Z,dx=2,dy=2,dz=0]
dx / dy / dz -> Te permettent d'étirer ta zone de sélection
 
  • J'aime
Reactions: ivorayni56

ivorayni56

Aventurier
3 Mars 2024
4
0
1
21
Salut, si c'est pour du solo :
Tu mets ton execute dans un repeating comand block avec en sortie un comparator puis un command block classique avec ton tellraw

Et pour les coordonnées :
/execute as @a[x=X,y=Y,z=Z,dx=2,dy=2,dz=0]
dx / dy / dz -> Te permettent d'étirer ta zone de sélection
sa marche pas je dois mettre distance= ou c'est parce que je suis en multi sur le serv d'un pote?
 

Nuts101

Architecte en herbe
4 Juin 2018
98
1
20
120
Pas besoin du distance= Tu as bien mis les bonnes coordonnées + le command block repeat en always active + le command block après le comparator en need redstone ?
 

Myuto

Une pomme
22 Juin 2016
399
174
155
Hoy !
Est-ce que je déterre avec un mois de retard... Je ne sais pas, mais en tout cas je préfère répondre pour rectifier une chose pour ceux qui pourraient avoir la même problématique.

La commande va se répéter en boucle dès que la personne va se trouver dans la zone, ce qui ne répond pas à la problématique principale : exécuter la commande qu'une seule fois.

Pour ça tu peux utiliser les tag. Voici ma proposition.

Premier commande block en Repeat, unconditionnel, Always active. Il va, au moment où il entre dans la même zone, avoir le message
/execute as @a[x=0,y=0,z=0,dx=2,dy=2,dz=0,tag=!Salut] run (ta commande de message)

Puis un Chain, unconditionnel, Always active. Il va retirer la tag à tout le monde. C'est pour retirer le tag si il sort de la zone, ce qui permettra au message de s'afficher de nouveau au joueur si il revient.
tag @a remove Salut

Puis un Chain, unconditionnel, Always active. Si il est dans la zone, on lui ajoute le tag "Salut". Ce qui évitera qu'il reçoive une seconde fois le message tant qu'il est dans la zone.
tag @a[x=0,y=0,z=0,dx=2,dy=2,dz=0] add Salut

Pour expliquer ce que tu demandais au dessus. Le "distance=" fera un cercle autour des coordonnées et donc ne sera pas précis. dx,dy,dz permettent de faire une zone rectangulaire. Ils sont, respectivement, le prolongement de leur axe.

Avec cette méthode, le joueur aura un message aussi lorsqu'il repassera dans l'autre sens. Si tu veux que ce soit que dans un sens. Tu peux mettre la deuxième commande qui retire le tag avec une zone de détection devant la zone de la porte. Toute personne entrant se verront retirer le tag avant d'être ajouté de nouveau au moment du message. Mais ils garderont le tag, si il ressorte, il n'auront donc pas de message, mais ils peuvent l'avoir de nouveau si ils entrent par cette porte.

J'espère avoir été clair dans mon explication et que cela va permettre d'aider certaine personne.

EDIT : Sorry, je viens de voir la logique derrière le comparateur qui fait l'effet désirer. Donc le problème était bien résolu avec. Mais de toute manière je ne suis pas fan de la redstone dans les commandes blocs >.>
J'étais à deux doigts de proposer de le mettre en MCfunction.
 
Dernière édition: