Accueil / Astuces / [Astuce] Créer une boutique automatisée

[Astuce] Créer une boutique automatisée

[Astuce] Créer une boutique automatisée
5(100%) 5 votes

Lien Original

Tout serveur ayant une économie, peu importe son type, repose sur des boutiques qui assurent les échanges entre joueurs ou bien avec un système indépendant. Et c’est justement sur ce critère de l’interlocuteur qu’on peut établir une distinction entre deux types de boutiques : celles qui permettent à deux joueurs d’échanger entre eux, qui s’assimile à un hôtel de vente, et celles qui permettent d’acheter des items potentiellement à l’infini à une entité indépendante, par exemple un PNJ marchand. C’est ce second cas qui va nous intéresser aujourd’hui. Dans cet article, nous allons apprendre à créer une boutique simple, tant dans sa configuration que dans son interface, qui se résume à un simple panneau.

Paramétrer votre boutique

boutique

Voici un aperçu de la boutique que vous allez créer. Elle se compose d’un panneau sur lequel sont indiqués à gauche l’item et la quantité que vous en cédez, l’item et la quantité que vous en recevrez étant indiqués à droite.

Pour commencer, munissez-vous d’un command block et entrez-y la commande suivante :

/give @p sign 1 0 { BlockEntityTag: { Text1: “{\”text\”:\”You Pay You Get\”,\”italic\”:true,\”clickEvent\”:{\”action\”:\”run_command\”,\”value\”:\”scoreboard players set @p SHOP [numéro de votre boutique]\”}}”, Text2: “{\”text\”:\”[nombre d’items donnés]x [nombre d’items reçus]x\”,\”bold\”:true,\”color\”:\”white\”,\”clickEvent\”:{\”action\”:\”run_command\”,\”value\”:\”/playsound ui.button.click master @a[r=10] ~ ~ ~ .4 1.7\”}}” }, display: { Name: “Custom Sign” }}

Si vous faites plusieurs boutiques sur la même map, la partie “numéro de votre boutique” permettra aux commandes suivantes de les différencier.

Ensuite, alimentez le command block en redstone. Tant qu’il sera alimenté, tout panneau que vous poserez se transformera en boutique. Pour l’instant, les panneaux afficheront les quantités des items échangés, mais pas les items eux-mêmes. Pour remédier à cela, il vous faudra par deux commandes, une pour chaque item ou bloc du panneau. Selon si l’objet en question est un bloc ou un item, les commandes sont différentes.

Si l'objet donné est un bloc

/summon armor_stand ~.58 ~.5 ~.31 {CustomName:”ASITM”,NoGravity:1b,Small:1,Invisible:1,HandItems:[{id:[id du bloc],Count:1b},{}],Pose:{RightArm:[-15f,45f,0f]},DisabledSlots:2039583,Marker:1}

Si l'objet donné est un item

/summon armor_stand ~.45 ~.08 ~.1 {CustomName:”ASITM”,NoGravity:1b,Small:1,Invisible:1,HandItems:[{id:[id de l’item],Count:1b},{}],Pose:{RightArm:[-90f,0f,0f]},DisabledSlots:2039583,Marker:1}

Si l'objet reçu est un bloc

/summon armor_stand ~.08 ~.5 ~.31 {CustomName:”ASITM”,NoGravity:1b,Small:1,Invisible:1,HandItems:[{id:[id du bloc],Count:1b},{}],Pose:{RightArm:[-15f,45f,0f]},DisabledSlots:2039583,Marker:1}

Si l'objet reçu est un item

/summon armor_stand ~-.06 ~.08 ~.1 {CustomName:”ASITM”,NoGravity:1b,Small:1,Invisible:1,HandItems:[{id:[id de l’item],Count:1b},{}],Pose:{RightArm:[-90f,0f,0f]},DisabledSlots:2039583,Marker:1}

Placez ces commandes dans des command blocks juste en-dessous de votre boutique, et placez-le premier en regardant en direction du sud. Activez-le avec un bouton, puis détruisez-le et répétez l’opération avec le second (il n’y a pas d’ordre à respecter entre les deux).

Il ne reste plus qu’à configurer le système en lui-même. Pour cela, vous devrez vous munir de quatre command blocks que vous devrez placer en colonne comme ceci :

boutique

Sur ce screenshot, ils sont à droite, les autres command blocks contenant les commandes précédemment indiquées.

De bas en haut, voici la configuration de chaque command block

  • Repeat, Unconditional, Always active ;
  • Chain, Unconditional, Always active ;
  • Chain, Conditional, Always Active ;
  • Chain, Unconditional, Always active.

De bas en haut, voici les commandes à mettre dans chaque command block :

/scoreboard objectives add SHOP dummy

​/clear @a[score_SHOP_min=[numéro de votre boutique],score_SHOP=[numéro de votre boutique]] [id de l’objet donné] 0 [quantité donnée]

​/give @a[score_SHOP_min=[numéro de votre boutique],score_SHOP=[numéro de votre boutique]] [id de l’objet reçu] [quantité reçue]

​/scoreboard players reset @a[score_SHOP_min=1] SHOP

Si vous avez plusieurs boutiques en même temps, laissez les trois premiers command blocks tels quels, et ajoutez par-dessus deux nouveaux command blocks selon le modèle des deuxième et troisième command block. Enfin, placez par dessus le dernier dernier command block.

En raison d’un problème relatif à l’accomplissement des conditions des command blocks, un joueur peut obtenir le(s) objet(s) de la boutique en ne donnant qu’un seul objet, même si plusieurs sont requis. Il est donc recommandé de créer des échanges ne coûtant qu’un objet.

Vidéo explicative (anglais)

A propos de SpookyPowa

Knowledge is Power !

Ceci vous intéresse peut être

[Guide] Le Nether

Le Nether est une dimension hostile regorgeant de dangers, mais aussi de trésors pour qui sait les obtenir. Dans ce guide, nous allons voir comment éviter les uns pour mieux cueillir les autres.

Rédiger une réponse

4 Commentaires sur "[Astuce] Créer une boutique automatisée"

Prévenez moi :
avatar
 
Trier par:   Commentaires récents | Commentaires ancients | Les mieux notés
Membre

Super des tuto command blocks, merci Spooky :)

AsiliS
Membre

Quelle joie de revoir des tutoriels command block ! Surtout d’aussi bonne qualité, SpookyPowa. Je commence à croire que tu es meilleur que moi ;) SpookyPowa

mathaym25
Membre

Très bonne astuce !
On pourrait juste inclure un s au lieu d’un p dans la commande « scoreboard players set p SHOP [numéro de votre boutique] » afin d’éviter qq soucis ;)

Et on attends avec impatience le clear si la personne a au moins X items, allez Mojang ! :p

wpDiscuz