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

Résolu panneaux qui donne une commande

Discussion dans 'Mapping' créé par stelexy, 4 Avr 2015.

  1. stelexy

    stelexy Explorateur

    Inscrit:
    17 Mar 2015
    Messages:
    65
    Points:
    54
    Sexe:
    Homme
    bonjour ou bonsoir j'ai vu sur une vidéo anglaise que l’on peut mettre une commande relier a une pancarte ex:tp 0 0 0

    mais je ne sais pas vraiment comment faire car il explique pas ,mais bref moi je voudrais pouvoir changer une gamerule :- une pancarte pour le mobgrefing
    - une pancarte pour si on meut on ne perd pas le steff
    - une pancarte pour désactivé la régénération naturel

    et aussi avoir sous le panneaux en vert true ou false en rouge pour savoir si la commande est active ou non

    j'espère ne pas vous avoir perdu
     
  2. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Il est totalement possible de rentrer des commandes dans des panneaux.
    Pour cela tu dois rentrer un texte en JSON (comme pour les /tellraw) dans le panneau et placer un run_command dessus.
    Au cas où je t'ai perdu (c'est assez compliqué pour un néophyte) voici un exemple de commande :
    Code (cpp):
    setblock <x> <y> <z> minecraft:standing_sign <Data_Value> replace {Text1:"",Text2:"{text:\"MobGriefing :\",underlined:true}",Text3:"{text:\"True\",color:green,bold:true,underlined:false,clickEvent:{action:\"run_command\",value:\"Ta commande\"}}",Text4:""}
    Je vais un peu expliquer quand même :
    Tu créés donc un panneau aux coordonnées x/y/z rentrée avec une direction (posé au sol, orientation) dépendant de la Data_Value (en partant de 0 fait varier jusqu'à trouver ce qui te convient).
    Dans le NBT tag d'un panneau les Tag Text1, Text2.... définissent le texte à chaque ligne.

    Ce qui nous intéresse surtout est le Text3 (tu peux mettre dans n'importe quelle ligne, j'ai celle là au pif).
    Tu as donc un text "True" en vert (défini par color, tu peux bien sur changer la couleur).
    Lorsque tu cliqueras sur le panneau cela va lancer la commande rentrée dans "Value" (ou j'ai mis "Ta commande").
    Tu peux donc mettre ce que tu veux.

    Cependant attention la commande ne doit pas excéder la taille d'un message en chat (taille d'écriture pour un seul message par un joueur).
    Le plus simple est donc d'y mettre un /setblock faisant apparaître un block de redstone quelque part lui même activant un système pour activer/désactiver le mod griefing.

    Pour changer la valeur du true tu peux soit faire un setblock entier soit (préférenciellement) utiliser un /blockdata :
    Code (cpp):
    /blockdata <x> <y> <z> {Text3:"{text:\"False\",color:dark_red,bold:true,underlined:false,clickEvent:{action:\"run_command\",value:\"Ta seconde commande\"}}"}
    (Avec x/y/z les coordonnées de ton panneau)
    Ici tu changes donc la troisième ligne de ton panneau en un "False" rouge.
    Lorsque tu recliquera sur le panneau ce la exécutera une seconde commande (que j'ai marqué "Ta seconde commande") que elle-même place un bloc de redstone ramenant à l'état initial etc....

    Sache aussi qu'il est possible de mettre plusieurs commandes sur un seul panneau (une seule par ligne) donc qu'il est possible de compacter mais ça complique grandement la commande et à nouveau on est limité en possiblité par la taille du chat.
    Si tu as des problèmes avec le JSON je te recommande fortement le tutoriel de Mlakuss : http://forum.minecraft-france.fr/threads/la-commande-tellraw-du-texte-à-la-programmation-complexe.21287/
     
    • J'aime J'aime x 1
    #2 Calambiel, 4 Avr 2015
    Dernière édition: 4 Avr 2015
  3. stelexy

    stelexy Explorateur

    Inscrit:
    17 Mar 2015
    Messages:
    65
    Points:
    54
    Sexe:
    Homme
    petit probleme de commande je crois il me met : invalid tag encountered,expected '{' as first char

    c est un peu dure a comprendre tout cela :)
     
  4. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Evidement dans minecraft le sign posé s'appelle standing_sign et plus sign tout court....
    Du coup j'ai édité ça devrais marcher (en tout cas ça marche chez moi en 1.8.3 non moddé).

    Par contre j'avais pas ton message d'erreur tu es bien en 1.8 ?

    PS : une alternative en give si tu veux pas t'embêter à trouver l'orientation :
    Code (cpp):
    give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"",Text2:"{text:\"MobGriefing :\",underlined:true}",Text3:"{text:\"True\",color:green,bold:true,underlined:false,clickEvent:{action:\"run_command\",value:\"Ta commande\"}}",Text4:""}}
     
    • J'aime J'aime x 1
    #4 Calambiel, 4 Avr 2015
    Dernière édition: 4 Avr 2015
  5. stelexy

    stelexy Explorateur

    Inscrit:
    17 Mar 2015
    Messages:
    65
    Points:
    54
    Sexe:
    Homme
    je ne comprend pas mon erreur

    give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"Mobgriefing",color:white},Text2:{text:""},Text3:"{text:"True",color:green,clickEvent:{action:\"run_command\",value:\"setblock ~ ~-5 ~ minecraft:redstone_block\"}}",Text4:""}}
     
  6. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Sur ta première ligne (Text1) tu as oublié le type de texte et l'échappement.
    Il faudrait plutôt mettre :
    Code (cpp):
    give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{text:\"Mobgriefing\",color:white}",Text2:{text:""},Text3:"{text:\"True\",color:green,clickEvent:{action:\"run_command\",value:\"setblock ~ ~-5 ~ minecraft:redstone_block\"}}",Text4:""}}
     
    • J'aime J'aime x 1
  7. stelexy

    stelexy Explorateur

    Inscrit:
    17 Mar 2015
    Messages:
    65
    Points:
    54
    Sexe:
    Homme
    ok mais comment on le met contre un mur car quand je fait un setblock ~ ~1 ~ pour test il ne veut pas (je parle de la pancarte et non du block de redstone)
     
  8. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Ta commande précédente est un give donc tu peux le placer directement.
    Si tu passe par un setblock la data value (le chiffre après le nom du block standing_sign) défini l'orientation.
     
    • J'aime J'aime x 1
  9. stelexy

    stelexy Explorateur

    Inscrit:
    17 Mar 2015
    Messages:
    65
    Points:
    54
    Sexe:
    Homme
    peut tu m expliqué quel est mon erreur (je suis vraiment une quiche) le difficulty ne veut pas apparaitre

    give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{text:""}",Text2:{text:"Difficulty",color:white},Text3:"{text:\"easy\",color:white,clickEvent:{action:\"run_command\",value:\"setblock ~ ~-5 ~ minecraft:redstone_block\"}}",Text4:""}}
     
  10. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Il te faut des guillemets pour contenir chacune des lignes.
    Ici tu n'a pas mis les guillemets de part et d'autre de ton "Text2" (donc devant et derrière les accolades).
    De plus quand tu places "des guillemets dans des guillements" il faut remplacer les seconds guillemets par \" ou '. Cela s'appelle l'échappement et existe pour tout texte en JSON.
    Ici tu dois donc mettre :
    Code (cpp):
    give @p minecraft:sign 1 0 {BlockEntityTag:{Text1:"{text:""}",Text2:"{text:\"Difficulty\",color:white}",Text3:"{text:\"easy\",color:white,clickEvent:{action:\"run_command\",value:\"setblock ~ ~-5 ~ minecraft:redstone_block\"}}",Text4:""}}
     
    • J'aime J'aime x 1
  11. stelexy

    stelexy Explorateur

    Inscrit:
    17 Mar 2015
    Messages:
    65
    Points:
    54
    Sexe:
    Homme
    merci pour toute ton aide mais la je viens de faire tout ce que tu a dit et sa ne veut pas se collé au bloc et rien n apparais sur la pancarte

    /setblock ~4 ~6 ~1 minecraft:standing_sign 4 replace {BlockEntityTag:{Text1:"{text:\"Mobgriefing\",color:white}",Text2:{text:""},Text3:"{text:\"True\",color:green,clickEvent:{action:\"run_command\",value:\"setblock ~-6 ~ ~ minecraft:redstone_block\"}}",Text4:""}}
     
  12. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Le "BlockEntityTag" ne doit être utilisé que sur un give comme les commandes précédentes, là tu es passé à un setblock il faut donc l'enlever ce qui donne :
    Code (cpp):
    /setblock ~4 ~6 ~1 minecraft:standing_sign 4 replace {Text1:"{text:\"Mobgriefing\",color:white}",Text2:{text:""},Text3:"{text:\"True\",color:green,clickEvent:{action:\"run_command\",value:\"setblock ~-6 ~ ~ minecraft:redstone_block\"}}",Text4:""}
     
    • J'aime J'aime x 1
  13. stelexy

    stelexy Explorateur

    Inscrit:
    17 Mar 2015
    Messages:
    65
    Points:
    54
    Sexe:
    Homme
    merci pour ta grande aide et d être bien patient avec moi :)
     
    • J'aime J'aime x 1

Partager cette page