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

Mapping Cacher des objets de manière originale avec des commandes

Discussion dans 'Tutoriels' créé par Calambiel, 8 Nov 2014.

  1. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 600
    Points:
    219
    Bonjour à tous.

    On se retrouve pour mon tout premier tutoriel sur Minecrat-France.

    Il y a déjà sur notre forum ou sur des forums anglais de nombreux guides très détaillés et très complets sur énormément de fonctionnalités de Minecraft, il n’est pas nécessaire de revenir dessus. J’essayerai plutôt dans mes tutoriels de vous parler de quelques fonctionnalités un peu moins connues ou qui peuvent être assez funs à utiliser.

    Nous essayerons ici de cacher des objets de manière assez inattendue et/ou amusante, presque essentiellement dans des maps aventures donc. Je m’adresse à la fois aux néophytes et aux initiés, à qui j’espère apprendre quelques fonctionnalités oubliées. Il ne sera pas ici question de système de redstone complexes, nous utiliserons des commandes pour créer des blocs ou objets mais il n’y aura aucun système à faire fonctionner à l’état final.

    Ce tutoriel sera en trois parties dans lesquelles je montrerai trois manières différentes de cacher un objet, vous pouvez donc ignorer celles que vous connaissez déjà :
    • Le NBT tag "Lock"
    • Cacher un objet dans un pot de fleur
    • Cacher un objet dans un jukebox


    Le NBT tag "Lock" :

    Je suis content de pouvoir vous présenter ce NBT tag qui fut ajouté en 1.8. Il s’agissait d’un des premiers ajouts (rappelons que cette mise à jour s’est fait attendre quasiment un an) qui a donc été oublié, il est peu utilisé actuellement. Les initiés connaissent probablement déjà son fonctionnement, mais beaucoup de personne ignorent encore comment l’utiliser et c’est à ces personnes que cette partie s’adresse.

    Ce NBT tag affecte la plupart des blocks pouvait contenir des objets comme les coffres, les fours, les dispensers, les droppers, les alambics ou même les balises du nether (aussi appelés beacons pour les anglophiles). Il permet tout simplement de « verrouiller » ces blocs en empêchant l’accès des joueurs à leur contenu (ou à la modification de leur effets pour les balises).

    Il est principalement utilisé pour empêcher les joueurs d’utiliser les fours dans des maps où il n’est pas souhaitable qu’ils fassent cuire leurs objets, où pour bloquer les coffres et empêcher le dépôt d’objets nécessaires pour la suite de la partie. Cependant il est un peu moins connu qu’il est possible de les ouvrir en possédant un objet approprié qui fait office de clé.

    En effet le tag "Lock" est actif uniquement s’il n’est pas vide, il faut donc lui définir une valeur qui peut tout autant être un nombre qu’une phrase. Le bloc en question ne sera alors utilisable que si le joueur possède un objet ayant exactement le même nom que la valeur défini dans le tag "Lock". Il pourrait donc être amusant de l’utiliser en cachant des clés qui permettent d’accéder à un peu d’équipement bonus, pour ma part je m’en servirai surtout pour ouvrir un coffre verrouillé vers le début du jeu et dont on n’obtiendrait la clé que plus tard.


    Les commandes à utiliser :

    Code (Commande):

    /blockdata <x> <y> <z> {Lock:"Nom de la clé"}
     


    Code (Commande):

    /setblock <x> <y> <z> minecraft:chest 0 replace {BlockEntityTag:{Lock:"Nom de la clé"}}
     


    Code (Commande):

    /give @p minecraft:chest 1 0 {BlockEntityTag:{Lock:"Nom de la clé"}}
     



    Cacher des objets dans un pot de fleur :

    Vous vous souvenez de ces jeux vidéo où il fallait fouiller absolument partout pour trouver la clé du donjon (ou du coffre plus haut), les objets cachés, les easters eggs ? Il est désormais possible de faire cela dans minecraft en cachant vos objets….. dans un pot ! C’est une fonctionnalité très peu connue qui peut donc être amusante à utiliser et surprenante pour le joueur.

    Les pots existent dans minecraft depuis un bon moment déjà, cependant il n’est possible que depuis peu de modifier leur NBT tag dans le jeu (cependant c’était déjà possible grâce à des éditeurs externes). Dans ce dernier on peut notamment trouver la valeur « Item » qui correspond à l’ID du bloc qu’il contient, ainsi que la valeur « Data » qui définit la data value de l’item en question.

    En temps normal cela sert à définir la texture du pot selon la plante que l’on a choisi d’y mettre, on peut cependant mettre n’importe quel objet bien qu’il n’y ait aucun rendu visuel particulier les concernant, on verra juste le pot sans rien dedans. Mais s’il l’on casse ce pot l’objet en question sera bel et bien lâché en même temps que le pot ! C’est donc une manière amusante de cacher un petit bonus, j’avais personnellement pensé pour certaines maps de survie (pas survie habituelle mais survie face à des vagues par exemple) à cacher des flèches/ munitions.


    Les commandes à utiliser :

    Code (Commande):

    /blockdata <x> <y> <z> {Item:"identifiant de l'objet",Data:"Data value de l'objet"}
     


    Code (Commande):

    /setblock <x> <y> <z> minecraft:flower_pot 0 replace {BlockEntityTag:{Item:"identifiant de l'objet",Data:"Data value de l'objet"}}
     


    Code (Commande):

    /give @p minecraft:flower_pot 1 0 {BlockEntityTag:{Item:"identifiant de l'objet",Data:"Data value de l'objet"}}
     


    Cependant cette fonctionnalité a quelques limites. Tout d’abord pour obtenir l’objet il faut casser le pot, or dans une map aventure on empêche la destruction des blocs sauf avec des outils particuliers fonctionnant seulement sur un nombre de blocs limité. Il faudrait donc un objet capable de casser le pot, mais pour que cela reste surprenant il faut cacher le NBT tag de l'objet, et vous avouerez qu’il n’est pas intuitif de casser un pot avec une pioche ou une hache. La deuxième limite est qu’il n’est pas possible de définir une quantité de l’objet ou un NBT tag, uniquement l’identifiant et la data value. C’est pourquoi la troisième partie est là pour corriger ces problèmes.



    Cacher des objets dans un jukebox :


    C’est à partir d’ici que les choses deviennent intéressantes pour les initiés.

    Tout comme le pot de fleur, le jukebox possède un NBT tag qui permet de définir l’objet qu’il contient, en temps normal un disque. Cela n’est utilisé que pour savoir l’item à dropper lors de la destruction du jukebox ou lors d’un simple clic droit (si vous quittez une partie alors qu’une musique est jouée par un jukebox, il n’en jouera plus à votre reconnexion donc un son est joué uniquement à l’insertion du disque).

    Ce tag porte le nom de « RecordItem ». Dans des versions plus anciennes du jeu on utilisait le tag « Record » qui peut toujours être défini, cependant il ne permet de définir que l’ID de l’objet et est supprimé s’il existe un tag « RecordItem ». Ce tag « RecordItem » utilise la même syntaxe que lorsqu’on définit un objet dans un autre bloc (coffre, distributeurs….).

    Le gros avantage de cette technique est que n’importe quel joueur peut faire un clic droit sur le jukebox pour éjecter l’item en question même en mode aventure, il n’est donc pas nécessaire de posséder un outil approprié. Le deuxième avantage est qu’il est possible de définir une quantité d’objet, mais aussi de donner un NBT tag !

    Il y a quelques remarques à faire sur cette technique. Tout d’abord nous avons vu plus haut que le tag « Lock » affectait les conteneurs, il n’a cependant aucun effet sur les jukebox. Ensuite, vous savez probablement qu’il est possible depuis quelques temps de placer un comparateur à côté d’un jukebox, et qu’il fournira un courant dépendant du disque inséré. Avec cette technique votre comparateur sera allumé mais aucun courant n’en sortira (du moins ce fut le cas pour tous les objets que j’ai testé). De plus, assez étonnant, le retrait de l’objet entraine l’extinction de votre comparateur, pour autant cela n’effectue pas d’update de bloc car la valeur du courant sortant n’est pas modifiée, seul le rendu visuel change.


    ATTENTION : l’utilisation de cette technique est un peu plus compliquée que les deux cas précédants. En effet, pour une raison qui m’échappe (et qui pour l’instant échappe aussi à McEdit ou NBTexplorer), vous ne pourrez pas vous giver ou créer un tel bloc car il ne sera alors pas possible de faire un clic droit dessus pour éjecter l’objet ! Vous devez impérativement poser un jukebox, insérer un disque, puis utiliser une commande blockdata pour modifier le NBT tag. L’insertion de disque semble donner la possibilité de retirer un objet, cependant aucun tag n’en témoigne, je n’ai donc pas d’explications mais si vous en avez une je suis preneur.

    Problème résolu par @The_Murmex : il faut donner une data-value de 1 au jukebox donc seul le give ne fonctionnera pas.


    La commande à utiliser :

    Code (Commande):

    /blockdata <x> <y> <z> {RecordItem:{id:"Identifiant de l'objet",Count:"Quantité",Damage:"Data value",tag:{NBT tag}}}
     


    Code (Commande):

    /setblock <x> <y> <z> minecraft:jukebox 1 replace {RecordItem:{id:"Identifiant de l'objet",Count:"Quantité",Damage:"Data value",tag:{NBT tag}}}
     




    Voilà ce sera tout pour aujourd’hui. J’espère que ce tutoriel vous plaira ou qu’il vous sera utile. J’ai voulu le faire pour changer un petit peu des systèmes complexes, parce que comme beaucoup le savent, la redstone moins en fume mieux on se porte.
    Si vous avez des remarques, des recommandations ou des idées pour mes prochains tutoriels n’hésitez pas à les partager.
    Il ne me reste qu’à vous dire bonne chance pour vos maps, et bonne journée.
     
    • J'aime J'aime x 8
    #1 Calambiel, 8 Nov 2014
    Dernière édition: 15 Avr 2015
  2. matyce11

    matyce11 Bûcheron

    Inscrit:
    2 Sept 2013
    Messages:
    109
    Points:
    74
    Sexe:
    Homme
    Merci pour le NBT tag "Lock"! Je connaissait son existence, mais croyait qu'on ne pouvait pas l'ouvrir!
     
  3. Entorn

    Entorn Explorateur

    Inscrit:
    24 Mai 2014
    Messages:
    65
    Points:
    26
    Sexe:
    Homme
    Tutoriel excellent!
    Mais petite question que faut il mettre a la place de "data value" ? ( je sais je suis un kikoo)
     
  4. Ka-Pandora

    Ka-Pandora Bûcheron

    Inscrit:
    21 Oct 2013
    Messages:
    122
    Points:
    56
    Sexe:
    Homme
    Merci, ça va être pratique !
     
  5. Ka-Pandora

    Ka-Pandora Bûcheron

    Inscrit:
    21 Oct 2013
    Messages:
    122
    Points:
    56
    Sexe:
    Homme
    Merci, ça va être utile !
     
  6. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 600
    Points:
    219
    La data value (aussi appelée "damage value" pour une raison qui se trouve plus bas) est une valeur qui permet de différencier des items ayant un même identifiant et donc souvent des utilités similaires.
    Par exemple pour les colorants qui ont un identifiant unique (identifiant : "minecraft:dye") cela permet de différencier le type de colorant, pour une valeur de 1 tu auras un colorant rouge.
    L'utilité de la data value est réduite avec l'arrivée des identifiants en lettres et non plus en chiffre, cependant elle a toujours un grande utilité sur les outils, en effet elle permet d'indiquer les "dommages" (d'où le "damage") reçu par l'outil afin de calculer sa durabilité.
    Un épée en bois a 32 utilisations (si je ne me trompe pas), avec une damage value de 1 elle n'en aura plus que 31 et pour une valeur de 32 ou plus elle n'aura plus qu'un seule utilisation.

    @Ka-Pandora attention au double post tu pourrais te prendre un avertissement, supprime l'un de tes deux messages
     
    #6 Calambiel, 9 Nov 2014
    Dernière édition: 10 Déc 2014
  7. Entorn

    Entorn Explorateur

    Inscrit:
    24 Mai 2014
    Messages:
    65
    Points:
    26
    Sexe:
    Homme
    OK merci beaucoups
     
  8. The_Murmex

    The_Murmex Mineur de Fer

    Inscrit:
    4 Jan 2015
    Messages:
    656
    Points:
    71
    Sexe:
    Homme
    J'ai fait des tests et il se trouve que j'ai quelques précisions à apporter sur le jukebox:

    Bah en fait je ne sais pas quelle version de minecraft tu avais quand tu as écrit ce tuto mais moi ça marche:
    Code (cpp):
    /blockdata ~ ~1 ~ {RecordItem:{id:"cookie",Count:3b,Damage:0s,tag:{display:{Name:"Hiden cookie"}}}}
    Cette commande met bien dans le jukebox 3 cookies renommés "Hiden cookie".

    Ce n'est pas dans le data tag qu'il fallait chercher mais dans la data value ! :p
    Ainsi le jukebox avec un item peut être "setblocké" (mais toujours pas givé) à condition que ça data value soit de 1 ce qui correspond à la data value d'un jukebox plein. En reprenant l'exemple de tout à l'heure :
    Code (cpp):
    /setblock ~ ~1 ~ jukebox 1 replace {RecordItem:{id:"cookie",Count:3b,Damage:0s,tag:{display:{Name:"Hiden cookie"}}}}
    C'est tout !
    J'en profite pour te dire que c'est un tuto très pratique. C'est 'ailleurs pour cela que je me permet d'y répondre alors qu'il est à la 3éme page.
     
  9. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 600
    Points:
    219
    @The_Murmex merci pour tout j'édite d'ici peu :D
    Je pense que le tag ça a été rajouté ou alors j'avais un problème dans ma version (vu que j'ai quelques .class modifiées pour me faciliter la vie)

    Enorme merci pour la data value ^^
     
  10. The_Murmex

    The_Murmex Mineur de Fer

    Inscrit:
    4 Jan 2015
    Messages:
    656
    Points:
    71
    Sexe:
    Homme
    Mais ya pas de quoi !
    Merci plutôt à toi : tu m'as donné plein excellentes idées pour ma map!
    A propos de .class je cherche comment les installer et je trouve pas. :(
     
  11. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 600
    Points:
    219
    Faut les mettre directement dans le .jar de ton jeu avec un winrar ou 7zip (comme pour les anciens mods ou l'ancienne installation de forge :D)
    Donc comme avant, faut aussi supprimer le META-INF, attention cependant de ne pas remplacer deux fois une même .class sinon forcément tu perds une des deux fonctions.
     
  12. LSDids

    LSDids Enter the World

    Inscrit:
    20 Fev 2015
    Messages:
    33
    Points:
    54
    Sexe:
    Homme
    Très bon tuto :)
     
  13. The_Murmex

    The_Murmex Mineur de Fer

    Inscrit:
    4 Jan 2015
    Messages:
    656
    Points:
    71
    Sexe:
    Homme
    Merci encore @Calambiel mais j'ai déjà essayé cette méthode et j'ai jamais réussi. En vrai j'en ai pas besoin mais ça m'irrite un peu quand même : tant pis ;)
     
  14. Aerosmite

    Aerosmite Mineur de Fer

    Inscrit:
    18 Nov 2014
    Messages:
    613
    Points:
    86
    Sexe:
    Homme
    Super tuto je connaissais déjà mais tu m'as quand même appris plein de truc ! ;)
    Gné ?
     
  15. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    140
    Sexe:
    Homme
    Des modifications du client pour ajouter des trucs (par exemple tout les codes couleurs "§" sur le côté de l'écran quand on est en mode édition de texte ou le fameux mod permettant d'utiliser le §).
     
    • J'aime J'aime x 1

Partager cette page