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 [Command Block] /tellraw, /give item custom

Discussion dans 'Mapping' créé par Hazurl, 11 Juin 2016.

Tags:
  1. Hazurl

    Hazurl Nouveau

    Inscrit:
    11 Juin 2016
    Messages:
    3
    Points:
    0
    Sexe:
    Homme
    Bonjour à tous,
    Je vous expose mon problème : Je veux créer un système d'achat via le chat, pour cela j'utilise un /tellraw.
    Lors que je clique sur un mot, je veux donner un joueur un item. tout ceci j ai réussi a le faire.
    Sauf que je veux donner un item custom et la commande est trop longue pour être écrite dans le chat, et donc le /give ne marche pas.
    Je voudrais donc savoir si il y a moyens de donner un item custom sans un /give exécuter par le personnage.
    J'avais penser a mettre l'item en question dans un coffre mais je ne sais pas comment "copier" l'item.
    Sinon au tout début je téléportais le personnage sur une dalle de pression relié au /give @p de l'item mais je ne sais pas comment le retéléporter au même position que précédemment...

    En gros, je veux savoir comment contourner la limite de caractère d'un "runcommand" d'un tellraw pour donner un item custom (sans modifier un .class).

    Voilà la commande que j'utilise pour le tellraw : (un peu indigeste :lol:)
    Code (cpp):
    /tellraw @p [{"text": "AWP","color": "blue","clickEvent": {"action": "run_command","value": "/give @p bow 1 0 {\"display\": \"{\\\"Name\\\": \\\"AWP\\\",\\\"Lore\\\": \\\"[\\\\\"Sniper Semi-Automatique\\\\\"]\\\"}\",\"AttributeModifiers\": \"[\\\"{\\\\\"AttributeName\\\\\": \\\\\"generic.movementSpeed\\\\\",\\\\\"Name\\\\\": \\\\\"Vitesse\\\\\",\\\\\"Amount\\\\\": -0.40,\\\\\"Operation\\\\\": 2,\\\\\"UUIDMost\\\\\":49000,\\\\\"UUIDLeast\\\\\":252173}\\\"]\",\"Unbreakable\": 1,\"HideFlags\":7,\"ench\":\"[\\\"{\\\\\"id\\\\\":48,\\\\\"lvl\\\\\":10}\\\"]\"}"},"hoverEvent": {"action": "show_text","value": {"text": "","extra": [{"text": "Price"}]}}}]
    L'item custom :
    Code (cpp):
    /give @p bow 1 0 {display: {Name: "AWP",Lore: ["Sniper Semi-Automatique"]},AttributeModifiers: [{AttributeName: "generic.movementSpeed",Name: "Vitesse",Amount: -0.40,Operation: 2,UUIDMost:49000,UUIDLeast:252173}],Unbreakable: 1,HideFlags:7,ench:[{id:48,lvl:10}]}
    Merci de la contribution que vous pourrez m'apporter !

    PS : J'espère avoir été claire et je peux rajouter des Screenshots si besoins.
    Je suis en 1.9.4
     
    #1 Hazurl, 11 Juin 2016
    Dernière édition: 12 Juin 2016
  2. Hazurl

    Hazurl Nouveau

    Inscrit:
    11 Juin 2016
    Messages:
    3
    Points:
    0
    Sexe:
    Homme
    La moindre réponse peux m'aider, même une piste...
     
  3. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    Je déplace dans Support>Mapping.

    En fait je ne comprends pas vraiment ce qui te pose problème, il suffit tout simplement de faire une étape entre le clic et le give, que ce soit un score/un setblock ou n'importe quoi d'autre qui tienne dans le chat. D'ailleurs même si ton give rentrait, il s'agit d'un run_command dans un tellraw, donc un joueur n'ayant pas accès aux commandes ne pourrait pas l'utiliser (à la différence d'un panneau où il ne faut pas de droits).

    La solution la plus simple reste de créer un objectif de type "trigger" :
    Code (cpp):
    /scoreboard objectives add give trigger
    Ce type d'objectif va être utile, car un joueur n'ayant pas de droits pourra modifier son propre score grâce à une commande comme suit :
    Code (cpp):
    /trigger give set X
    Tu utiliseras donc un tellraw de cette forme :
    Code (cpp):
    /tellraw @p [{"text":"AWP","color":"blue","clickEvent":{"action":"run_command","value":"/trigger give set 1"},"hoverEvent":{"action":"show_text","value":"Price"}}]
    Puis, via une clock, tu donneras ton item et resetera le score :
    Code (cpp):
    /give @p[score_give_min=1,score_give=1] bow 1 0 {display: {Name:"AWP",Lore: ["Sniper Semi-Automatique"]},AttributeModifiers: [{AttributeName:"generic.movementSpeed",Name:"Vitesse",Amount:-0.40,Operation: 2,UUIDMost:49000,UUIDLeast:252173}],Unbreakable:1,HideFlags:7,ench:[{id:48,lvl:10}]}
    /scoreboard players set @p[score_give_min=1,score_give=1] give 0
    Il faut juste au préalable donner l'autorisation au joueur d'utiliser le trigger, mais tu peux très bien le mettre dans une clock pour l'autoriser en permanence :
    Code (cpp):
    /scoreboard players enable @a give
     
    • J'aime J'aime x 1
  4. Hazurl

    Hazurl Nouveau

    Inscrit:
    11 Juin 2016
    Messages:
    3
    Points:
    0
    Sexe:
    Homme
    Merci beaucoup a toi je ne connaissais pas cette fonction "trigger" qui ma l'air indispensable avec le tellraw.
     

Partager cette page