1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

Command Block La commande /execute

Discussion dans 'Tutoriels' créé par Gleanight, 22 Avr 2016.

?

Ce tutoriel vous a-t-il été utile ?

  1. Oui

    100.0%
  2. Non

    0 vote(s)
    0.0%
  1. Gleanight

    Gleanight Explorateur

    Inscrit:
    11 Fev 2016
    Messages:
    72
    Points:
    58
    La commande /execute (1.8 et +)
    I) Qu'est-ce que le /execute ?
    Le /execute est une commande permettant d'exécuter une commande directement aux coordonnées relatives d'un joueur ou d'une entité sans que celui-ci/celle-ci l'exécute elle-même.

    II) Les bases du /execute
    1 - "Forme constructive" de la commande
    Le /execute est une commande dans laquelle vous devrez employer un /execute suivi d'une autre commande au choix (Que vous choisirez biensûr).

    La "forme constructive" de la commande est simple :
    /execute suivi d'un sélecteur (@p @a @r @e) suivi des coordonnés relatives que vous voulez attribuer au sélecteur ~ ~ ~ suivi d'une commande au choix (qui sera exécute aux coordonnées relatives que vous avez attribué au sélecteur).

    - Par exemple, la commande :
    /execute @a ~ ~ ~ summon ArmorStand ~ ~ ~
    fera apparaître un ArmorStand SUR tous les joueurs connectés (@a).

    - Par exemple, la commande :
    /execute @r ~1 ~ ~ setblock ~ ~ ~ stone
    fera apparaître un bloc de stone 1 bloc à l'Est d'un joueur aléatoire (@r).

    Et cela marche avec toutes les autres commandes.

    2 - Ciblage de joueurs/entités ayant des critères particuliers
    Il est possible avec le /execute de ne cibler uniquement des joueurs/entités ayant des critères particuliers.
    Comme par exemple un score de scoreboard.

    Imaginons que nous voulons que nous voulons poser un bloc de redstone sur les joueurs ayant le score deathCount à 1 :
    /execute @a[score_deathCount_min=1,score_deathCount=1] ~ ~ ~ setblock ~ ~ ~ redstone_block
    Cette commande posera un bloc de redstone SUR tous les joueurs ayant le score deathCount à 1.

    Jusqu'à là, rien de bien compliqué, on peut utiliser n'importe quel sélecteur avancé avec le /execute. En revanche ! Si l'on veut cibler les joueurs ayant le score deathCount à 1 ET le score dummy à 2, il y a un petit problème ! Dans ce cas, on peut tout simplement créer une chaîne de /execute afin que tous les sélecteurs se combinent.

    - Par exemple, la commande :
    /execute @a[score_deathCount_min=1,score_deathCount=1] ~ ~ ~ execute @a[score_dummy_min=2,score_dummy=2] ~ ~ ~ setblock ~ ~ ~ redstone_block

    posera un bloc de redstone sur TOUS les joueurs ayant le score deathCount à 1 ET le score dummy à 2.
    Comme vous pouvez le voir dans le dernier exemple de commande, on a combiné 2 /execute.
    Il est possible d'en combiner à l'infini.

    III) Coordonnées Numériques combinées aux Coordonnées Relatives
    Une super fonctionnalité du /execute est qu'il est possible sur cette commande de combiner les Coordonnées Numériques (Exemple de coordonnées numériques : -45 62 536) avec des Cordonnées Relatives (Exemple de coordonnées relatives : ~1 ~ ~ ).

    - Par exemple, la commande :
    /execute @p ~ 56 ~ setblock ~ ~ ~ stone

    Imaginons que le joueur (Le plus proche de l'endroit où la commande est exécutée) soit au coordonnées 45 62 35.
    Alors la commande citée dans le dernier exemple fera apparaître un bloc de stone aux coordonnées 45 56 35.


    - Par exemple, la commande :
    /execute @p ~ 75 ~ setblock ~ ~ ~ stone
    Imaginons que le joueur (Le plus proche de l'endroit où la commande est exécutée) soit au coordonnées 123 62 -754.
    Alors la commande citée dans le dernier exemple fera apparaître un bloc de stone aux coordonnées 123 75 -754.

    Et cela marche également pour les coordonnées X et Z. (12 53 65 -> X=12, Y=53, Z=65)

    IV) Ciblage de joueurs/entités différents ayant des critères particuliers
    1 - Ciblage de joueurs & entités différent(e)s
    Il est possible avec le /execute de cibler des joueurs/entités ayant des critères particuliers comme vous avez pu le constater dans le II)-2).
    Voici maintenant une partie "secondaire" de ce paragraphe, mais dans des conditions plus avancées.


    Nous avons vu dans la première partie qu'il était possible de cibler des joueurs & entités ayant un voir plusieurs critère(s) particulier(s). Dans cette partie, nous allons apprendre à cibler des joueurs & entités ayant des critères particuliers différents.

    Pour cela, nous allons devoir de nouveau passer par des combinaisons de /execute.

    - Par exemple, la commande :
    /execute @e[name=Exemple] ~ ~ ~ execute @e[name=Tutoriel] ~ ~ ~ setblock ~ ~ ~ stone
    fera apparaître un bloc de stone sur tous les joueurs s'appelant "Exemple" ainsi que tous les joueurs s'appelant "Tutoriel".

    Comme vous pouvez le voir, nous avons ciblé deux types d'entités différentes.
    Dans la première partie, on ciblait les joueurs ayant deux scores à tel ou tel nombre précisément.
    Dans cette partie là, on cible deux groupes d'entités différentes -> Dans le dernier exemple, on cible le groupe d'entités se nommant "Exemple" et un autre se nommant "Tutoriel" (Car il est impossible d'avoir deux noms à la fois dans le jeu. En revanche, il est possible d'avoir deux scores à la fois (même plus), comme on a pu le voir dans la première partie).


    - Par exemple, la commande :
    /execute @e[type=Zombie] ~ ~ ~ execute @e[type=Skeleton] ~ ~ ~ execute @e[type=Spider] ~ ~ ~ setblock ~ ~ ~ stone
    fera apparaître un bloc de stone uniquement sur tous les zombies / squelettes / araignées de la map.

    Encore une fois, on cible différents groupes d'entités. (Car il est impossible d'être à la fois un zombie, à la fois un squelette et à la fois une araignée dans le jeu).
     
    • J'aime J'aime x 3
    • Je désapprouve Je désapprouve x 1
    #1 Gleanight, 22 Avr 2016
    Dernière édition: 16 Mai 2016
  2. Yodi

    Yodi Mineur de Fer

    Inscrit:
    19 Jan 2016
    Messages:
    543
    Points:
    126
    Sexe:
    Homme
    Sympa, pour l'instant je savais déjà tout :p
     
    • J'aime J'aime x 1
    • Informatif Informatif x 1
  3. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    J'ai pas fait gaffe mais ton tutoriel est archi-faux.
    Je te laisse tester les commandes d'abord, elles n'ont pas du tout l'effet que tu penses.
     
  4. Gleanight

    Gleanight Explorateur

    Inscrit:
    11 Fev 2016
    Messages:
    72
    Points:
    58
    Bonjour, déjà je tiens à m'excuser de mon absence de plusieurs jours.
    Ensuite, j'ai testé la commande, et elle marche parfaitement bien.
    Es-tu sûr d'avoir mit ton score deathCount à 1 et dummy à 2 ? Que tu n'as pas inversé ? Que tu n'as pas mit totalKillCount au lieu de deathCount ? (Ce genre d'erreur bête m'ait déjà arrivée...)
     
  5. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    Je n'ai même pas testé.
    Je vais te donner un exemple et ensuite t'expliquer pourquoi ta commande est inutile.
    - Joueur A a un score deathCount de 1 et un score dummy de 0
    - Joueur B a un score dummy de 2 et un score deathCount de 0

    Code (cpp):
    /execute @a[score_deathCount_min=1,score_deathCount=1] ~ ~ ~ execute @a[score_dummy_min=2,score_dummy=2] ~ ~ ~ setblock ~ ~ ~ redstone_block
    Je demande à tous les joueurs ayant un score deathCout de 1 (donc à Joueur A), de demander à tous les joueurs ayant un score dummy de 2 (donc à joueur B) de placer un bloc à leur pied.

    Un seul bloc apparaîtra, sous les pieds de B.

    Les arguments de types "score_xxx" sont cumulables, il peut y en avoir plusieurs dans un sélecteur.

    Et le pire, c'est que ton second exemple contredit le premier. Un coup, tu le faire agir comme un "ET" et un coup comme un "OU". Pas de bol, c'est ni l'un, ni l'autre, ce sont plutôt des "SI".

    Code (cpp):
    /execute @e[type=Zombie] ~ ~ ~ execute @e[type=Skeleton] ~ ~ ~ execute @e[type=Spider] ~ ~ ~ setblock ~ ~ ~ stone
    Je demande à un zombie de demander à un squelette de demander à une araignée de poser un bloc.
    Les blocs arriveront sous les araignées sauf si il n'y a pas de squelette ou de zombie.
     
  6. DemonForce

    DemonForce Enter the World

    Inscrit:
    6 Fev 2017
    Messages:
    20
    Points:
    36
    Salut, j'ai un probleme, enfin je voudrais juste savoir comment on fait pour que le "execute" detecte qu'il n'y ai AUCUN zombie et le block de redstone se met.
    Envoyez moi une commande et je le testerai
    Merci beaucoup :D
     
  7. Nolan-XX

    Nolan-XX Modérateur
    Staff

    Inscrit:
    29 Déc 2012
    Messages:
    10 234
    Points:
    304
    Sexe:
    Homme
    Merci de ne pas remonter les topics vieux de plus de 2 mois.
     
  8. DemonForce

    DemonForce Enter the World

    Inscrit:
    6 Fev 2017
    Messages:
    20
    Points:
    36
    Sinon je dois créer un sujet ?
     

Partager cette page