Bonjour à vous, internautes ! La 1.7 nous apporte une multitude de nouveautés. Certains apprécient les nouveaux biomes, les nouveaux blocs, les nouvelles fleurs ou le nouveau système de pêche… Mais les vrais préféreront les nouveautés liées aux commandes !

Tutoriel expert : les commandes en 1.7 !

 

Eh oui, la 1.7 rajoute quelques commandes mais aussi la possibilité de modifier les dataTags des Objets. Mais durant ce tutoriel, je ne reprends pas les bases ou les éléments écrits dans mes anciens tutoriels sur les commands blocks et les scoreboards. Si vous n’avez pas le niveau requis ou, encore, des questions, veuillez d’abord les lire.
Et puisque nous allons parler de beaucoup de choses, je vous propose un sommaire :

  • Summon
  • Setblock
  • Testforblock
  • Les nouveaux objectifs
  • Tellraw
  • dataTag

Sachez que je mets les dataTags à la fin car c’est pour moi la chose la plus complexe de la 1.7, même si elle vous servira pour toutes les commandes que nous verrons. Je vous conseille donc d’y jeter un petit coup d’œil car elles permettent beaucoup de choses.

 

/summon

La commande « /summon » ( =convoquer/invoquer ) permet de faire apparaître n’importe quelle entité, c’est-à-dire un monstre, une flèche, une boule de feu, une potion de splash, un item à ramasser… En gros, tout ce qui peut être dynamique.

Pour faire votre commande, vous devez avoir :

/summon <EntityName> [x] [y] [z] [dataTag]

EntytiName = Le nom ou numéro de l’entité à invoquer
x y z = position où vous souhaitez invoquer
dataTag = voir plus bas

Donc, si je prends l’exemple d’invoquer un creeper au-dessus de mon command block, je devrais faire :

/summon Creeper ~ ~1 ~

Deux choses concernant mon exemple :
La première est que l’on doit toujours mettre une majuscule à la première lettre de l’entité invoquée.
La seconde : pour ceux qui ne connaissent pas l’élément « ~ »( =Alt Gr + é), cela signifie que les coordonnées sélectionnées sont l’addition de l’élément qui suit votre « ~ » et la location de la personne (ou du command block) qui exécute la commande. Et si l’élément qui suit est vide, alors c’est considéré comme un zéro. Donc, dans mon cas, « ~ ~1 ~ » fait apparaître le creeper à
x= « ~  » donc à 0 + la location x de mon command block;
y= « ~1 » à 1 + la location y de mon command block, donc un bloc au-dessus de lui;
Et pour la fin c’est identique au début mais pour la location z.

Cette commande peut donc vous être très utile pour des events sur serveur ou pour la création de maps aventure.

 

/setblock

Le « /setblock » compense le /summon. Tout ce que le /summon ne peut pas invoquer, le setblock le fait, c’est-à-dire tous les blocs du jeu.

Pour faire votre commande, vous devez avoir :

/setblock <x> <y> <z> <TileName> [dataValue] [oldBlockHandling] [dataTag]

x y z = coordonnées du bloc à mettre
TileName = le nom ou numéro du bloc
dataValue = son type ou son orientation, par exemple sa couleur pour une laine, son orientation pour un repeater ou même les deux pour du bois brut.
oldBlockHandling = à remplacer par keep, replace ou destroy. Keep permet de poser le bloc si seulement la coordonné sélectionnée est vide. Sinon, avec replace, vous remplacerez le bloc à la coordonnée cible même si ce n’est pas un bloc d’air. Et destroy fait comme replace, sauf qu’il « casse » et drop le bloc avant de le remplacer.
dataTag = voir plus bas.

À noter que contrairement au /summon, il faut placer les coordonnés, qui sont ici en plus obligatoires, avant le nom du bloc à mettre.

Donc si je prend l’exemple de mettre un bloc de laine noir (s’il n’y a pas d’autre bloc au-dessus de mon command block), je devrais faire :

/setblock ~ ~1 ~ 35 15 keep

À savoir que le numéro de la laine est 35 mais j’aurais pu aussi l’écrire « minecraft:wool » ou « wool ».

 

/testforblock

Vous connaissez /testfor ? Eh bien là c’est pareil, mais pour les blocs.
Est-ce que c’est de la pierre ? Oui ? Alors j’envoie un courant de redstone dans un comparateur adjacent. Et sinon, je n’en envoie pas.
Grosso-modo, c’est ça. Pour faire votre commande, vous devez avoir :

/testforblock <x> <y> <z> <TileName> [dataValue] [dataTag]

x y z = coordonnées du bloc à tester;
TileName = le nom ou numéro du bloc à tester;
dataValue = ce que doit être sa couleur/orientation;
dataTag = ce que doivent être ses attributs NBT (voir plus bas).

Donc, si nous essayons maintenant de tester si mon bloc de laine noire est au-dessus de mon command block :

/testforblock ~ ~1 ~ 35 15

Miracle, les comparateurs liés au command block s’allument lorsqu’un bloc de laine noir est placé au-dessus de mon command block, où j’ai préalablement appliqué du courant pour l’actualiser !

 

Des nouveaux objectifs pour les scoreboards.

À travers toutes ces commandes, nous retrouvons aussi plein plein plein de nouveaux objectifs. Si vous ne savez pas ce que c’est, lisez mon article sur les scoreboards, un lien est disponible au début de l’article.

Avant, on pouvait savoir quand quelqu’un en tue un autre, son nombre de point de vie et quelques autres choses, mais maintenant … Eh bien, un peu tout, en fait.
Le nombre de terre creusée avec une pelle en or, le nombre de zombies (et seulement de zombies !) tués et même les achievements débloqués. Un beau bordel, mais très utile !

Sur ce point, je ne vous ferai pas d’exemple, rien de nouveau au niveau de la syntaxe. Voici juste un tableau pour vous expliquer chaque nouvel objectif un par un :

stat.craftItem.x x = n’importe quel item ou bloc craftable. Compte le nombre d’item x craftés pour chaque joueur.
stat.useItem.x x = n’importe quel item utilisable. Compte le nombre de fois que l’item x est utilisé pour chaque joueur.
stat.breakItem.x x = n’importe quel item utilisable. Compte le nombre d’item x cassés pour chaque joueur.
stat.mineBlock.x x = n’importe quel bloc. Compte le nombre de bloc x récoltés pour chaque joueur.
stat.killEntity.x x = n’importe quel monstre. Compte le nombre de monstre x tués pour chaque joueur.
stat.entityKilledBy.x x = n’importe quel monstre. Compte le nombre de fois pour chaque joueur que le monstre x l’a tué.
stat.leaveGame Compte le temps de la durée de la déconnexion pour chaque joueur en secondes.
stat.playOneMinute Compte le temps de jeu de chaque joueur en secondes.
stat.walkOneCm Compte le nombre de blocs parcourus en marchant par joueur en décimètres.
stat.fallOneCm Compte le nombre de blocs parcourus en tombant par joueur en décimètres.
stat.swimOneCm Compte le nombre de blocs parcourus en nageant par joueur en décimètres.
stat.flyOneCm Compte le nombre de blocs parcourus en volant par joueur en décimètres.
stat.climbOneCm Compte le nombre de blocs parcourus en grimpant par joueur en décimètres.
stat.diveOneCm Compte le nombre de blocs parcourus en plongeant par joueur en décimètres.
stat.minecartOneCm Compte le nombre de blocs parcourus en minecart par joueur en décimètres.
stat.boatOneCm Compte le nombre de blocs parcourus en bateau par joueur en décimètres.
stat.pigOneCm Compte le nombre de blocs parcourus à dos de cochon par joueur en décimètres.
stat.horseOneCm Compte le nombre de blocs parcourus à cheval par joueur en décimètres.
stat.jump Compte le nombre de sauts par joueur.
stat.drop Compte le nombre d’items lâchés par joueur.
stat.damageDealt Compte le nombre de coups donnés pour chaques joueurs. (merci yoo26)
stat.damageTaken Compte le nombre de fois qu’un joueur prend des dommages pour chaque joueur.
stat.deaths Compte le nombre de morts par joueur.
stat.mobKills Compte le nombre de monstres tués par joueur.
stat.playerKills Compte le nombre de joueurs tués par joueur.
stat.fishCaught Compte le nombre d’items pêchés par joueur.
achievement.x x = nom de l’achievement (en anglais) Compte le nombre de fois que l’achievement x à été réalisé.

Je vous avais prévenu qu’il y avait des nouveautés ! Mais si votre cerveau n’est pas encore totalement saturé, passons à la suite.

 

/tellraw

Le /tellraw est une commande qui affiche des messages dans le chat comme le ferait un « /say » mais, contrairement à cette commande, le tellraw ne s’applique qu’aux joueurs sélectionnés et permet aussi de styliser sont texte (mettre de la couleur, le souligner, le mettre en gras…) ainsi que de réaliser des actions à partir d’événements. Pour faire votre commande, vous devez avoir :

/tellraw <player> <raw json message>

player = le ou les joueurs qui recevront le message.
raw json message = votre code qui contiendra vos messages, événements, actions.

La syntaxe du code pour le /tellraw est identique à celle utilisée pour les dataTags. Commençons avec le plus simple des messages.

/tellraw @a {text:'Première étape !'}

L’ensemble de votre code « raw json message » devra être entre accolades. Alors, qu’avons nous là ?
Nous remarquons que nous avons une « balise » (ce n’est pas le terme officiel, il n’y en a sans doute pas d’ailleurs) qui se nomme « text ». Les balises doivent toutes être séparées par des virgules et être reliées par leurs arguments avec des deux points juste après ladite balise. Donc, que fait cette balise text… Eh bien, elle affiche les arguments associés, ici: « Première étape ! ».
Dernier point important, puisque votre texte est une valeur indéfinie par l’ordinateur il faut le mettre entre apostrophes.

Bien, maintenant, on va continuer doucement avec de la stylisation de notre texte. Les balises de style :

color:x x = Nom de couleur(en anglais). Permet de modifier la couleur du texte.
bold:x x = true(activé) ou false(désactivé). Permet de mettre votre texte en gras.
italic:x x = true(activé) ou false(désactivé). Permet de mettre votre texte en italique.
underline:x x = true(activé) ou false(désactivé). Permet de souligner votre texte.
strikethrough:x x = true(activé) ou false(désactivé). Permet de barrer votre texte.
obfuscated:x x = true(activé) ou false(désactivé). Permet d’obscurcir votre texte.

Pour permettre d’hériter des propriétés d’un texte mais d’en modifier certaines, il y a la balise « extra ». Prenons un exemple :

/tellraw @a {text:'Seconde',color:yellow,bold:true,italic:true,underline:true,extra:[{text:' étape !',color:red}]}

Pour vous montrer à quoi cela sert, voici le même code :

/tellraw @a [{text:'Séconde',color:yellow,bold:true,italic:true,underline:true},{text:' étape !',color:red,bold:true,italic:true,underline:true}]

Un peu plus gros, n’est-ce pas ?
Pour ceux qui n’ont pas compris cette histoire d’héritage, il est temps de bien reprendre. Mon premier texte (« Seconde ») est de couleur jaune, en gras, en italique et souligné. Mon second texte ( » étape ! ») dans la balise extra est juste défini comme rouge. Pourtant, lui aussi est en gras, en italique et souligné. C’est parce qu’elle hérite des particularités de mon premier texte grâce à la balise extra, mais nous pouvons en redéfinir, comme ici la couleur en rouge.

Autre point au niveau de la syntaxe :

Les apostrophes ou guillemets (préférez les apostrophes) contiennent les textes.
Les accolades contiennent les balises.
Les crochets contiennent les accolades, non obligatoire si il n’y a qu’une accolade.

C’est pour cela que dans mon second exemple sur l’héritage, j’ai mis des crochets au début de mon « raw json message » et pas dans les précédents. Pourtant, même si vous ne mettez qu’une paire d’accolade dans votre extra, vous devrez mettre des crochets, parce que… Parce que Mojang le veut.

Bien, la particularité principale des tellraws est qu’ils peuvent faire des actions en fonction de certains événements que nous allons maintenant détailler.

Les événements, qu’est que c’est ?
Ce sont des conditions qui s’activent au moment où une certaine action se fait par un joueur. Le tellraw en possède deux, le hoverEvent et le clickEvent.
Le premier s’enclenche quand l’on passe sa souris sur le texte avec l’événement.
Le second s’active quand l’on clique sur le texte avec l’événement.

Ne nous attardons pas sur les événements car ils sont étroitement liés aux actions.

Donc, les actions sont simplement le type d’action des événements. Il existe six types d’actions, chaque événement en possède trois.

Le hoverEvent a « show_text » qui affiche un texte, « show_item » qui affiche le nom et la description de l’item et « show_achievement » qui affiche un objectif. Le clickEvent a le « run_command » qui effectue une commande, « suggest_command » qui affiche une commande ou un texte quelconque dans le chat du joueur et le « open_url » qui ouvre une page web. Voici un exemple de syntaxe :

/tellraw @a {text:'Troisième',hoverEvent:{action:show_text,value:'étape !'}}

Ici, nous affichons le texte « Troisième » et un autre texte « étape ! », par dessus quand l’on passe la souris sur le premier texte.
Chaque action a sa balise « value:’x' », où x est un texte pour l’action show_text, l’id d’un item pour show_item ( exemple « value:'{id:260}' » , qui affiche une pomme), le nom d’un objectif pour show_achievement, une adresse web pour le open_url et une commande pour les actions run_command et suggest_command, ça coule d’eau de source.
Faite attention tout de même, ce que contient le value doit être entre apostrophes !

Le tellraw peut aussi afficher une entité traduite par rapport à la langue du joueur.

/tellraw @a {translate:item.apple.name}

Ici, le tellraw affiche « pomme » si votre jeu est en français et « apple » s’il est en anglais.

Le « item » peut être remplacé par « entity » pour traduire les noms des monstres. Et bien sûr « item » est pour traduire les items.

Eh bien parfait, vous connaissez tout des tellraw et êtes prêts à en faire bon usage.

 

Les dataTags

La plus grosse nouveauté de cette mise à jour est bien sûr l’ajout des dataTags. Les dataTags permettent de modifier les données NBT d’un Objet. Les NBTs sont tout ce qui compose un Objet : son nom, son orientation, sa force de mouvement, et bien encore. Bref, de quoi faire à nouveau crépiter nos cerveaux de génies.

Une minorité d’Objets sont différents de la masse, mais c’est sur eux que les dataTags sont les plus intéressants (comme pour les feux d’artifices). Pour connaitre toutes les particularités de chaque item, allez voir sur ce site, tout est inscrit : http://minecraft.gamepedia.com/Chunk_format.
L’article en question est en anglais, car mieux réalisé, mais si vraiment vous avez des difficultés vous pouvez récupérer l’article traduit en français.

La syntaxe des dataTags est identique à celle des « raw json message ». Je pourrais vous faire un tutoriel complet sur la chose, mais c’est si vaste ! Pour ce tutoriel j’ai quasiment tout appris (car trop gros pour tout connaitre) sur le sujet mais je vais plutôt vous renvoyer vers d’autres tutoriels qui vous parleront de certains points complexes. Mais je vous conseille de prendre un peu de temps et de faire vos tests vous même si vous êtes réellement intéressés par ces dataTags !

 

 

Autres tutoriels :

 

Passe partout :

Spoiler :

En anglais.
Ce tutoriel est bien quand on débute. Il pourra vous apprendre la base et beaucoup de subtilités des dataTags.
http://www.minecraftforum.net/topic/1969520-17-using-summon-give-datatags-in-map-making-tutorialswip/
À voir absolument :
– Item-Drops spawned readily on the ground
– Modified and Extended Potion Effects
– Custom Thrown Potions
Celui-ci aussi très bien pour commencer.
http://www.reddit.com/r/Minecraft/comments/1lu48r/13w36a_data_tags_summon_and_give/

 

 

Crâne personnalisé :

Spoiler :

En français.
Une particularité intéressante des têtes avec les dataTags, on peux y afficher le skin de nimporte quel compte minecraft ainsi que de certain blocs. Vraiment utile et très joli ! Attention, le dataValue de la tête ( id:397) doit être égal à 3 !
http://minecraft-fr.gamepedia.com/T%C3%AAte_de_cr%C3%A9ature
Code dataTag :

{SkullOwner:"<nomDuJoueur>"}
{SkullOwner:"MHF_<nomDuMonstre||nomDuBloc||autre>"}
**BONUS**
Comment faire une caméra :
{SkullOwner:"FHG_Cam"}

 

 

FallingSand :

Spoiler :

En anglais.
Le FallingSand est une entité que l’on peut invoquer qui est tout simplement du sable qui tombe, mais avec les dataTags, on peut faire des merveilles !
Le tutoriel que je vais vous passer ne montre pas vraiment l’intérêt du FallingSand, qui est le motion, mais vraiment comment bien l’utiliser.
http://www.youtube.com/watch?v=dSKjlP1k9XM (La vidéo sort du contexte à partir de 10 minutes, 4 minutes avant la fin.)
Si vous reprenez mon premier lien dans le spoiler du Passe partout, vous pourrez aussi voir un autre tutoriel sur le FallingSand plus complet.
Petite pensée nostalgique pour les plus vieux. Cela me rappelle le mod piston avant la 1.7 de la version alpha justement. Ceux qui auraient connu me comprendront.

__________________________________________________________________________________________________________________
Voilà, c’est la fin de ce grand tutoriel sur les commandes de la 1.7 !
Sachez qu’il y a encore beaucoup à découvrir et que, malheureusement, seule la communauté anglaise est vraiment active. Si vous cherchez à en avoir encore plus, il faudra se tourner vers eux. Pour ma part, j’ai découvert de vraies merveilles, mais je n’ai pas pu les rajouter dans l’article.
Enfin bref : maintenant c’est à vous de jouer !
 

 

Wikiful