[Tutoriel Complet] Les CommandBlocks

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


  • Total voters
    4

Gleanight

Architecte en herbe
23 Janvier 2016
95
24
139
[Tutoriel Complet] Les CommandBlocks

Salut à toutes et à tous! J'avais déjà fait un tutoriel sur les CommandBlocks (ou blocs de commande en français) auparavant sur le forum, mais avec le temps et l'expérience, je me rend compte que ce dernier était peu précis, ce pourquoi j'ai décidé de le refaire aujourd'hui.
Mon but est de faire un guide complet sur le MapMaking sur Minecraft, j'ai donc pris la décision de refaire intégralement mes tutoriels à ce sujet pour les remettre à jour (surtout depuis les gros changements qui ont eu lieu en 1.13).

I - Qu'est-ce qu'un bloc de commande ?
Un bloc de commande (aussi abrégé en CB dans la communauté MapMaking) est un bloc ayant la particularité d'exécuter diverses commandes (des événements comme une téléportation, un ajout d'item dans l'inventaire du joueur, une disparition de blocs…) inscrites dans celui-ci une fois activé.

Ce bloc n'est pas disponible directement dans l'inventaire et n'est obtenable uniquement via la commande /give @p command_block. Le "cheat" (la triche) sera donc nécessaire sur votre monde si vous voulez vous procurer ce bloc.
Pour l'utiliser en mode Multijoueur, vous devrez accéder au fichier "server.properties" de votre serveur. Vous pourrez apercevoir le champ "enable-command-block". Sa valeur par défaut sera "false", il vous suffira de la changer par "true" pour activer les blocs de commande.

Il est possible d'exécuter une commande sur un joueur / une entité précise grâce aux sélecteurs :
@a : Cible tous les joueurs
@p : Cible le joueur le plus proche de l'endroit où la commande est exécutée
@r : Cible un joueur aléatoire (parmi les connectés)
@e : Cible toutes les entités : joueurs, animaux, mobs…

Il est évidemment possible de donner beaucoup plus de précision aux sélecteurs afin de cibler certains éléments plus spécifiquement. Par exemple, le sélecteur "@e[type=cow]" permettra de ne cibler uniquement toutes les vaches de la map.

Le sélecteur @e[type=sheep] ciblera uniquement les moutons de la map.
Le sélecteur @a[distance=10] ciblera tous les joueurs dans un rayon de 10 blocs depuis l'endroit où la commande est exécutée.
Le sélecteur @e[type=pig,distance=15] ciblera tous les cochons dans un rayon de 15 blocs depuis l'endroit où la commande est exécutée.
Le sélecteur @e[type=[COLOR=#ff8000]![/COLOR]player] ciblera toutes les entités présentes sur la map sauf les joueurs.

Plus complexe :
Le sélecteur @e[type=item,nbt={Item:{id:"minecraft_diamond"}}] ciblera tous les diamants (items) sur la map (qui ne sont pas dans l'inventaire des joueurs).
Le sélecteur @a[scores={talked_to_villager=5}] ciblera tous les joueurs ayant parlé 5 fois à des villageois.


II - Les trois types de blocs de commande
A partir de la version 1.9 de Minecraft, les blocs de commande ont reçu diverses modifications, leur ajoutant de nouvelles fonctionnalités que je vais vous apprendre à maîtriser dans ce guide. Il existe trois types de blocs de commande :

- Le CommandBlock orange "Impulse" (Impulsion)

Celui-ci fonctionne exactement comme un bloc de commande de base, celui que nous connaissions déjà dans le jeu. Une fois alimenté, ce bloc de commande exécute sa commande une fois.

2019-06-10_03.09.50.png


- Le CommandBlock vert "Chain" (Chaîne)
Sa particularité est que, contrairement à son homologue précédent, il ne peut être activé uniquement à partir d'un autre bloc de commande "Impulse" ou "Repeat" et qu'il peut transmettre un courant dans un autre bloc de commande "Chain" grâce à sa flèche (qui déterminera le sens du courant). Ainsi, on peut maintenant créer des chaînes de blocs de commande. C'est très pratique, je reviendrai là-dessus après.

2019-06-10_03.09.57.png


- Le CommandBlock bleu "Repeat" (Répétition)
Une fois activé, ce bloc de commande exécute sa commande en boucle chaque tick* sans s'arrêter jusqu'à sa désactivation. Cependant, lorsqu'on le met en mode "Toujours actif", il se met en marche sans avoir besoin d'une quelconque source de redstone.

*Un tick : Le saviez-vous ?
Un tick est une unité de temps sur Minecraft. 1 tick correspond à 0,05 secondes, ce qui signifie que 20 ticks correspondent à 1 seconde complète. Autrement dit, lorsqu'on bloc de commande "Repeat" est activé, il exécute sa commande 20 fois par seconde !

2019-06-10_03.10.17.png



III - Explications sur les différentes fonctionnalités des CommandBlocks
Les blocs de commande disposent des fonctionnalités "Par la redstone / Toujours actif" et "Inconditionnel / Conditionnel".

2019-06-10_17.08.06.png


1. Par la redstone / Toujours actif :

Ce paramètre permet de définir par quel processus le bloc de commande devra exécuter sa commande :
S'il est mis en mode "Par la redstone", il devra obligatoirement être alimenté par une source de redstone pour exécuter sa commande.
S'il est mis en mode "Toujours actif", il exécutera sa commande sans avoir besoin d'une quelconque source de redstone. Il s'activera une seule fois dans le cas d'un bloc de commande Impulse et à chaque tick pour un bloc de commande Repeat.

2. Inconditionnel / Conditionnel :

Ce paramètre permet de définir par quel type de courant le bloc de commande devra être activé. Il est surtout utilisé dans les chaînes de blocs de commande (nous y reviendrons après).
S'il est mis sur "Inconditionnel", il s'activera naturellement à chaque alimentation.
S'il est mis sur "Conditionnel", il ne s'active que si le bloc de commande derrière lui a exécuté sa commande avec succès. On l'utilise donc uniquement avec les blocs de commande Chain dans les chaînes de blocs de commande.
On peut reconnaître un bloc de commande inconditionnel d'un bloc de commande conditionnel grâce à l'apparence de sa flèche :

sans_titre.png



IV - Les chaînes de CommandBlocks

Comme vous avez pu le voir, les blocs de commande disposent de flèches qui indiquent leur direction. Ce paramètre est important à prendre en compte car c'est grâce à ces flèches que nous allons pouvoir réaliser des chaînes de blocs de commandes.
Plusieurs blocs de commande dont la rotation se suit s'activent l'un après l'autre en suivant le sens des flèches.
Voici un exemple :

2019-06-10_03.11.47.png


Attention : cette méthode d'activation de chaîne de blocs de commande ne fonctionne uniquement avec les blocs de commande Chain ! Il est également important de noter que :
- Les blocs de commande Chain doivent obligatoirement être mis en mode "Toujours actif".
- Comme dit précédemment, un bloc de commande Impulse ou Repeat doit être placé au début de la chaîne, puisqu'un bloc de commande Chain ne peut être activé qu'à partir de l'un de ces deux blocs de commande.
- Le bloc de commande de départ, qu'il soit Impulse ou Repeat, doit être mis sur "Inconditionnel".


Si le bloc de commande de départ est de type Impulse, la chaîne de blocs de commande ne s'activera qu'une fois une fois ce dernier activé. Si les blocs de commande Chain sont mis sur "Inconditionnel", ils s'activeront quand même une fois, même si la commande du bloc de commande précédent n'a pas été effectuée avec succès.

2019-06-10_03.51.08.png


Si les blocs de commande Chain sont mis sur "Conditionnel", ils ne s'activeront qu'une fois uniquement si la commande du bloc de commande précédent a été effectuée avec succès. Exemple :

2019-06-10_03.51.47.png


Si le bloc de commande de départ est de type Repeat, la chaîne de blocs de commande s'activera en boucle (chaque tick) jusqu'à désactivation de ce dernier. Si les blocs de commande Chain sont mis sur "Inconditionnel", ils s'activeront en boucle même si la commande du bloc de commande précédent n'a pas été effectuée avec succès.

2019-06-10_03.12.12.png


Si les blocs de commande Chain sont mis sur "Conditionnel", ils s'activeront en boucle uniquement si la commande du bloc de commande précédent a été effectuée avec succès.

2019-06-10_03.11.47.png



Voici un dernier exemple pour être plus clair :

2019-06-10_04.07.38.png


Ici, le bloc de commande B est mis sur "Conditionnel", ce qui signifie qu'il ne s'activera que si la commande du bloc de commande précédent A a été effectuée avec succès. Le bloc de commande A est mis en mode "Toujours actif", ce qui signifie qu'il n'a pas besoin d'une source de redstone quelconque et est constamment en marche.
Dans le bloc de commande A, il y a une commande complexe (que vous pourrez comprendre si vous êtes expérimenté dans ce domaine) :
Code:
/tellraw @a[scores={talked_to_villager=1}] {"text":"J'ai une offre qui devrait vous plaire aujourd'hui !"}
Cette commande enverra le message "J'ai une offre qui devrait vous plaire aujourd'hui !" à tous les joueurs ayant parlé à un villageois 1 fois.
Dans le bloc de commande B, il y a la commande :
Code:
/execute at @a[scores={talked_to_villager=1}] run setblock ~ ~-1 ~ stone
Cette commande placera un bloc de roche sous les joueurs ayant parlé à un villageois 1 fois uniquement si la commande précédente a été effectuée avec succès.
Lorsqu'un joueur parlera à un villageois et recevra le message, le bloc de commande A enverra un courant au bloc de commande B qui donc s'activera et placera alors un bloc de roche sous le joueur concerné.
 
Dernière édition:
  • J'aime
Reactions: Deamris