Je laisse la solution que j'ai envoyé hier par MP ici (en sachant qu'il y a toujours un problème de longueur de chaîne, il faut penser à répartir le texte sur les 4 lignes):
Code (cpp):
give @p minecraft:sign 1 0 {display:{Name:"SignShop"},BlockEntityTag:{Text4:"{\"clickEvent\":{\"action\":\"run_command\",\"value\":\"clear @p[r\u003d4,score_GN_min\u003d50] minecraft:gold_nugget -1 50\"},\"text\":\"--\"}",CommandStats:{AffectedItemsObjective:"GN",AffectedItemsName:"#shop"},Text3:"{\"clickEvent\":{\"action\":\"run_command\",\"value\":\"give @p[r\u003d4,score_GN_min\u003d50] minecraft:diamond_chestplate 1 0\"},\"extra\":[{\"translate\":\"item.goldNugget.name\"}],\"text\":\"VS 50 \"}",Text2:"{\"clickEvent\":{\"action\":\"run_command\",\"value\":\"scoreboard players operation @p[r\u003d4] GN \u003d #shop GN\"},\"translate\":\"item.chestplateDiamond.name\"}",id:"Sign",Text1:"{\"clickEvent\":{\"action\":\"run_command\",\"value\":\"clear @p[r\u003d4] minecraft:gold_nugget -1 0\"},\"text\":\"--\"}"}}
Il faut au préalable utiliser les deux commandes suivantes:
Code (cpp):
/scoreboard objectives add GN dummy Gold Nuggets
/scoreboard players set #shop GN 0
En cas de shops multiples, par sécurité, il faut soit mettre une horloge (de préférence une horloge "lente", mais une rapide devrait fonctionner aussi) avec cette commande:
Code (cpp):
/scoreboard players set @a GN 0
Ou alors
Créer un objectif différent par pancarte (GN1, GN2.. pour que la monnaie utilisée par un panneau soit différenciée de celle utilisée par le panneau voisin)
Si les différents panneaux sont légèrement éloignés les uns des autres, ça ne devrait pas trop poser de problème même sans ces sécurités.