TwinXeon by Renaudet
/Accueil/Tous les articles
Utilisations avancées des command-blocks dans Minecraft
Cet article n'est pas un tutoriel complet mais plutôt une illustration des possibilités impressionnantes offertes par les command-blocks dans Minecraft.

Les exemples présentés ici ont tous été réalisés avec la version 1.8.4 et peuvent ne pas fonctionner avec une autre version.

Exemple 1 : une apparition inquiétante !




Voici un mécanisme assez simple, à l'exception de la commande summon ici un brin complexe, pour faire apparaître un fantôme inquiétant au cours d'une partie en mode aventure. L'événement déclencheur est ici un simple bouton. Si l'on souhaite une apparition unique, il faut utiliser une bascule mono-stable ou un scoreboard.

Les commandes :

particle explode 1104 4 980 2 5 2 0.1 400 force
playsound mob.enderdragon.growl @a
summon ArmorStand 1104 4 980 {NoBasePlate:1,ShowArms:1,Equipment:[{id:minecraft:diamond_sword},{id:minecraft:leather_boots},{id:minecraft:leather_leggings},{id:minecraft:leather_chestplate},{id:minecraft:skull}]}
kill @e[x=1104,y=4,z=980,c=1]
particle crit 1104 4 980 2 2 2 0.1 600 force


Exemple 2 : sur l'autel de la pomme...




Petit mécanisme sympa à implémenter dans une partie multi-joueurs en mode aventure. La détection d'items posés à un endroit précis est un thème assez peu abordé dans la littérature minecraftienne. Ici, l'autel ne réagit exclusivement qu'à une pomme simple (minecraft:apple) et la transforme automatiquement en pomme enchantée.

Encore une preuve qu'il ne faut pas manger trop de pommes

Les commandes :

testfor @e[type=Item,x=1143,y=5,z=1005,r=0] {Item:{id:"minecraft:apple"}}

playsound mob.blaze.breathe @a


particle explode 1143 5 1005 1 1 1 0.1 500


kill @e[type=Item,x=1143,y=5,z=1005,r=0]


summon Item 1143 5 1005 {Item:{id:minecraft:golden_apple,Count:1}}


L'implémentation du mécanisme : (note: le deuxième command-block à partir de l'horloge ne sert à rien)



Exemple 3 : la table de craft ultime




Il s'agit d'une implémentation complète d'une Table de craft au moyen de Cadres. Habituellement, les concepteurs de Map offrent ce genre de possibilité avec un Dropper et un Coffre, en effectuant une comparaison entre le schéma des items disposés au préalable dans le Coffre avec celui des items entreposés par le joueur dans le Dropper. Ces implémentations sont beaucoup plus compactes, et, plus intéressant sans doute, elles sont plus flexibles pour une reconfiguration dynamique.

Je me suis intéressé à l'utilisation de Cadres pour faire la même chose, car l'aspect visuel d'une grande Table de craft sur un mur est séduisant, surtout dans une partie multi-joueurs. J'y vois surtout un intérêt en mode aventure. Les joueurs collectent des items durant leur quête dans un grand donjon, et finalement arrivent devant ce mur et s'amusent à placer les items jusqu'à obtenir le schéma 'magique' qui fait s'ouvrir un passage secret, surgir un boss (dommage !) ou apparaître des items enchantés (!).

Je ne vais pas expliciter le mécanisme qui est trop grand, mais simplement expliquer la logique mise en oeuvre :

- deux objectifs de scoreboard ont été créés : empty et craft. Le premier permet de valider qu'une case donnée est bien vide. Le second permet de valider qu'une case contient bien l'item attendu. Si l'on souhaite permettre la reconnaissance de plusieurs schémas, il faudra alors créer un objectif spécifique par schéma : craft1, craft2 etc.

- chaque case se voit attribuer un nom de joueur fictif spécifique : #craft11, #craft12, #craft13..., #craft33

- l'horloge lente commence par initialiser tous les scores empty à 1, puis tous les scores craft à 0 (c'est très important pour la suite)

scoreboard players set #craft13 empty 1

scoreboard players set #craft13 craft 0


- après la phase d'initialisation, l'horloge lente teste à chaque tick :
- si un item quelconque se trouve dans un cadre donné, ce qui conduit éventuellement à positionner le score empty à 0 pour le joueur fictif correspondant

testfor @e[type=ItemFrame] {TileX:1143,TileY:4,TileZ:1018,Item:{}}


scoreboard players set #craft13 empty 0


- si un item spécifique se trouve dans un cadre donné, ce qui conduit alors à positionner le score craft à 1 pour le joueur fictif correspondant

testfor @e[type=ItemFrame] {TileX:1143,TileY:4,TileZ:1018,Item:{id:minecraft:redstone}}

scoreboard players set #craft13 craft 1


- l'horloge rapide, quant à elle, va tester à chaque tick que le schéma est valide. Pour cela, elle valide chaque colonne en parallèle au moyen de validation en série puis réalise un ET logique entre les trois colonnes. Pour valider si une case doit être vide, on teste le score empty du joueur fictif correspondant, et pour valider si une case est correctement remplie on teste le score craft du joeur fictif correspondant.
scoreboard players test #craft13 craft 1 1
ou
scoreboard players test #craft13 empty 1 1
- une fois le schéma validé, les cases sont vidées de leur item éventuel, et enfin le résultat du craft est délivré dans la case ad-hoc, avec une animation de fumée. (Pour une table de craft, on pourrait jouer le son de l'enclume, ce qui serait plus réaliste)
kill @e[type=ItemFrame,x=1143,y=4,z=1018,r=0]

summon ItemFrame 1143 4 1018 {TileX:1143,TileY:4,TileZ:1018,Direction:1}


entitydata @e[type=ItemFrame,x=1143,y=5,z=1021,r=0] {Item:{id:minecraft:diamond_sword,Count:1,Damage:0}}



Ajoutez votre commentaire :
  Votre pseudo :
  Votre adresse mail (obligatoire):
  Votre commentaire :
 
Site optimisé pour un affichage en 800x600 sous Firefox 8.x - ©Copyright 2011-2012 by Nicolas Renaudet