1. Si vous venez d'arriver sur le forum et que vous êtes un peu perdus, cliquez ici !
    Rejeter la notice

Aide pour une commande avec /execute

Discussion dans 'Commands blocks & Redstone' créé par Stom-3, 13 Fev 2019.

  1. Stom-3

    Stom-3 Nouveau

    Inscrit:
    13 Fev 2019
    Messages:
    3
    Points:
    0
    Sexe:
    Homme
    Bonjour, je voudrais exécuter une commande en fonction d'où se situe un joueur dans le monde. Par exemple il entre dans une salle et la commande se déclenche.
    J'arrivais avant avec le /testfor mais là je comprends plus rien du tout.

    Et aussi si vous pouvez m'expliquer comment on fait pour détecter le joueur dans une zone (du genre avec un rayon autour de la position centrale qui est détecté), par exemple la salle à son centre en coordonnées x=3 y=3 et z=3 et le joueur si il se trouve à moins de 3 blocs de cette position la commande se déclenche aussi.
    J'espère que vous comprendrez et que vous pourrez m'aider.
    Merci.
     
  2. Lighar

    Lighar Explorateur

    Inscrit:
    15 Nov 2014
    Messages:
    75
    Points:
    68
    Sexe:
    Homme
    Bonjour, je suppose que la version que tu veux utiliser est la 1.13,
    le /execute de la 1.13 est assez différent et assez long à expliqué, je te conseille le tutoriel de Minecraft-France pour tout revoir : https://www.minecraft-france.fr/commande-execute/ .

    Sinon si tu veux seulement la commande du testfor "converti" en 1.13, il y a deux solutions :

    1- Utiliser un execute sur le joueur qui se trouve à ces coordonnées précises :

    Code (cpp):
    execute as @a[x=.....,y=....,z=.....,distance=[rayonminimum]..[lerayonmaximum]] at @s run [tacommande]
    Explication :

    Code (cpp):
    execute as
    "execute" en tant que l'entité

    Code (cpp):
    @a[x=.....,y=....,z=.....,distance=[rayonminimum]..[lerayonmaximum]]
    x, y et z sont pareils que lors de la dernière version , distance remplace le r et rmax, sous la forme ditance=[rayonminimum]..[lerayonmaximum]

    Exemple : Joueur qui se trouve à 0 0 0 dans un rayon de 2 autour minimum et 5 maximum :
    Code (cpp):
    @a[x=0,y=0,z=0,distance=2..5]


    Code (cpp):
    at
    C'est un execute en fonction de la position du prochain sélecteur

    Code (cpp):
    @s
    Ce sélecteur désigne le dernier sélecteur du execute, soit ici "@a[x=.....,y=....,z=.....,distance=[rayonminimum]..[lerayonmaximum]]"

    Code (cpp):
    run
    "run" indique de l'on veut exécuter une commande

    Donc en phrase, la commande donne :
    Exécuter en tant que ..... , au position du dernier joueur sélectionné, la commande ....

    2-Utiliser la nouvelle fonction "if" :

    Code (cpp):
    execute if entity @a[x=.....,y=....,z=.....,distance=[rayonminimum]..[lerayonmaximum]] run [tacommande]
    if : si telle condition est validée, continuer

    entity : la condition sera sur une entité

    Code (cpp):
    @a[x=.....,y=....,z=.....,distance=[rayonminimum]..[lerayonmaximum]]
    La condition est que un joueur doit être à ces coordonnées

    Pour résumer, un exemple pour placer un bloc de redstone au cordonnées 1 1 1 lorsqu'un joueur est au coordonnées 0 0 0, avec un rayon maximum de 4 :

    execute as @a[x=0,y=0,z=0,distance=..4] at @s run setblock 1 1 1 redstone_block

    execute if entity @a[x=0,y=0,z=0,distance=..4] run setblock 1 1 1 redstone_block


    Voilà, en espérant avoir résolu ton problème, si tu as d'autres questions n'hésite pas ! :smile:
     
    • J'aime J'aime x 1
    • Utile Utile x 1
  3. Stom-3

    Stom-3 Nouveau

    Inscrit:
    13 Fev 2019
    Messages:
    3
    Points:
    0
    Sexe:
    Homme
    Merci, ça m'aide beaucoup, par contre je n'arrive pas bien à comprendre la différence entre le "as" et le "if entity". Dans les deux cas la commande ne s'activera que si le joueur est dans la zone ?
     
  4. Urgle

    Urgle Mineur de Redstone

    Inscrit:
    9 Déc 2017
    Messages:
    1 455
    Points:
    85
    Sexe:
    Homme
    "As" c'est comme si tu te fais passer pour quelqu'un tandis que "At" c'est à l'emplacement du joueur (ou de l'entité).

    "If entity [Nom de l'entité] run [Commande]" c'est quand une commande qui s'exécutera si l'entité [Nom de l'entité, qui est un sélecteur] existe. Si l'on remplace "If" par "Unless", alors c'est une commande qui s'execute SAUF si l'entité [Nom de l'entité] existe.

    Les deux commandes qu'a dit Lighar sont pareilles et font la même chose. Dans les deux cas la commande marche.
     
    • J'aime J'aime x 2
    #4 Urgle, 14 Fev 2019
    Dernière édition: 14 Fev 2019
  5. NathanEPM

    NathanEPM Nouveau

    Inscrit:
    11 Fev 2020
    Messages:
    1
    Points:
    0
    Sexe:
    Homme
    Bonjour j'aimerais savoir comment utiliser le "dy". Car j'aimerais sélectionner un armor stand dans une zone. Merciii
     

Partager cette page