Aller au contenu
Invité

Faire une boutique automatisée (GUI entre autres) [PART 1/2]

Messages recommandés

Invité

Hey ! Aujourd'hui je vais vous apprendre à faire votre propre boutique personnalisée. Nous aborderons plusieurs points que j'essaierai de détailler au maximum afin que vous puissiez customiser au max votre Skript !

Commençons !

Ce tutoriel sera séparé en 2 parties en vue de sa longueur, désolé ^^

Sommaire:

I]Organisations et fonctionnalités du skript

II] Commande /pb <add/remove/set> pour modifier le montant des points du joueurs

et commande /pb view <player> pour voir le compte du joueur

III]Création du GUI avec la commande /menu.

 

/!\ VOUS POUVEZ OBTENIR DES BUGS D'INDENTATION SI VOUS COPIEZ COLLEZ CE QUE J'AI ECRIS, C'EST POURQUOI IL EST CONSEILLE DE LE REFAIRE MOT PAR MOT EN RESPECTANT LES TABULATIONS ! /!\

 

I]

Ce skript permettra au joueur d'ouvrir un menu lui permettant d'acheter des grades, des items et autres selon vos besoins. Nous ferons également des catégories. Un compte de points pour chaque joueur sera crée et celui ci sera modifiable (ajouter, retirer et éditer).

Ces commandes seront disponibles depuis la console pour ceux qui utilisent une boutique en ligne.

 

II]

Commençons par définir le compte du joueur sur une variable. Lors de sa connexion, s'il n'a pas de compte, un compte sera crée, s'il en a déja un, bah rien :D.

on join:

   if {%player%.pointsBoutiques.compte} is not set: #Si le joueur qui se connecte n'a pas de compte boutique
	set {%player%.pointsBoutiques.compte} to 0 #On lui crée un compte de 0 points

Voila ! Maintenant, dès qu'un joueur se connectera, il aura obligatoirement un compte boutique !

 

Ensuite, nous allons créer les commande pour ajouter, retirer, voir ou éditer son compte. Toutes ces fonctionnalités seront les arguments de la commande /pb. Nous allons commencer par faire une fonctionnalité d'aide (si aucun argument n'est specifié, des infos sont diffusées au joueur).

command /pb [<text>] [<text>] [<player>]:
   executable by: console, players #Cette commande peut être lancée par les joueurs mais aussi depuis la console !
   permission: VOTREPERMISSION
   trigger:
       if arg 1 is not set: #Si aucun argument n'est spécifié, diffuser un message d'aide (modifiez le à votre sauce)
           message "&c---- &4Aide&c ----"
           message "&8/pb add <montant> <joueur> &7 ajouter des points à un joueur"
           message "&8/pb set <montant> <joueur> &7 éditer les points d'un joueur"
           message "&8/pb remove <montant> <joueur> &7 retirer des points à un joueur"
           message "&8/pb view <montant> <joueur> &7 voir les points à un joueur"
       else if arg 1 is "add": #Si l'argument est add, on ajoute la valeur 2 au compte de la valeur 3:
           add %arg 2% to {%arg-3%.pointsBoutiques.compte}
 message "&b%arg 2% Points Boutiques &8ont été ajoutés au compte de &9%arg-3% &8!"
       else if arg 1 is "remove": #Si l'argument est add, on retire la valeur 2 au compte de la valeur 3:
           add -%arg 2% to {%arg-3%.pointsBoutiques.compte}
 message "&b%arg 2% Points Boutiques &8ont été retirés du compte de &9%arg-3% &8!"
       else if arg 1 is "set": #Si l'argument est set, on met le compte de la valeur 3 a la valeur 2:
           set {%arg-3%.pointsBoutiques.compte} to %arg-2%
message "&8Le compte de %arg-3% est maintenant de %arg-2% !"
       else if arg 1 is "view": #Si l'argument est view, on affiche le compte de la valeur 3:
           message "Compte de %arg-3% : {%arg-3%.pointsBoutiques.compte}"

 

Ok ! Maintenant vous pouvez manipuler totalement les comptes de chaque joueur ! Génial, n'est-ce pas ? Maintenant, occupons-nous de la boutique en elle-même !

 

III]

Bon, alors maintenant on va s'attaquer à la commande /menu.

Pour une organisation optimale, voici ce qu'elle va faire:

Dans un premier temps, ouvrir un inventaire nommé X de 6 rangées qu'on l'on va rendre beau en mettant des glass panels sur les cotés. Ensuite, nous ferons 2 catégorie (vous pourrez en faire autant que vous voulez plus tard) qui seront la catégorie Objets et la catégorie grades. Celles-ci ouvriront d'autres menus avec les objets souhaités. Nous ferons également une icône information donnant des infos sur le joueur.

 

Pour faire des menus, il faut que vous sachiez comment vous y prendre. Lorsqu'on créé un menu, pour éditer les positions des items dans ce menu, on utilise les numeros des slots de l'inventaire minecraft. Voici un exemple:

Cy9jyBJ.png

Commençons le code.

command /menu [<text>]:
   trigger: #Tous les joueurs sont censé pouvoir ouvrir ce menu pour ma part, si pour vous ce n'est pas le cas, n'hésitez pas à ajouter une permission !

[indent]if arg 1 is not set: #Voir plus tard
       wait 1 ticks #TRES IMPORTANT LORS DE LA GENERATION DE L'INVENTAIRE, NE SURTOUT PAS NEGLIGER !
       open chest with 6 rows named "&8Menu &9&lBoutique" to player #On ouvre l'inventaire et on commence a y rajouter les objets
       wait 2 ticks #NE PAS NEGLIGER NON PLUS
       format slot 0 of player with white glass named " " to be unstealable #On rajoute les glass panes 1 par 1, on les définit comme "to be unstealable" qui signifie que le joueur ne pourra pas les prendre"
       format slot 1 of player with white glass named " " to be unstealable
       format slot 2 of player with white glass named " " to be unstealable
       format slot 3 of player with white glass named " " to be unstealable
       format slot 4 of player with white glass named " " to be unstealable
       format slot 5 of player with white glass named " " to be unstealable
       format slot 6 of player with white glass named " " to be unstealable
       format slot 7 of player with white glass named " " to be unstealable
       format slot 8 of player with white glass named " " to be unstealable
       format slot 9 of player with white glass named " " to be unstealable
       format slot 17 of player with white glass named " " to be unstealable
       format slot 18 of player with white glass named " " to be unstealable
       format slot 26 of player with white glass named " " to be unstealable
       format slot 27 of player with white glass named " " to be unstealable
       format slot 35 of player with white glass named " " to be unstealable
       format slot 36 of player with white glass named " " to be unstealable
       format slot 44 of player with white glass named " " to be unstealable
       format slot 45 of player with white glass named " " to be unstealable
       format slot 46 of player with white glass named " " to be unstealable
       format slot 47 of player with white glass named " " to be unstealable
       format slot 48 of player with white glass named " " to be unstealable
       format slot 49 of player with white glass named " " to be unstealable
       format slot 50 of player with white glass named " " to be unstealable
       format slot 51 of player with white glass named " " to be unstealable
       format slot 52 of player with white glass named " " to be unstealable
       format slot 53 of player with white glass named " " to be unstealable
format slot 20 of player with iron ingot named "&8Objets" with lore "&7Ouvrir le menu des objets" to close then run "sudo %player% menu objets" #Vous aurez besoin du plugin essentials pour que ceci fonctionne, plus d'infos en bas
format slot 24 of player with chest named "&8Grades" with lore "&7Ouvrir le menu des grades" to close then run "sudo %player% menu objets"[/indent]

 

Note : Vous pourrez ajouter vos catégories voire meme directement vos objets si vous le souhaitez en modifiant simplement le slot de l'objet en vous réferant à l'image plus haut.

Bon, maintenant, explications !

Voici un schéma pour simplifier les choses :

u6xjqFu.png

Étudions la partie "action". "to close" signifie que lorsqu'on va cliquer sur l'objet, l'inventaire va se fermer tout seul. (On en a besoin puisque juste après on en ouvre un autre)

 

Note : L'utilisation de "to be unstealable" lors d'un action peut provoquer des bugs, préférez "to close".

 

"then run" permet l'exécution d'une commande depuis la console, et cette commande ("sudo", qui provient du plugin Essentials, indispensable pour tout serveur minecraft relativement standard) va obliger le joueur à effectuer la commande /menu objets ou /menu grade, dont nous allons nous occuper de suite !

a) Le menu objets

SUITE PARTIE 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut :)

Pas obligé de mettre essentials pour le sudo %player%,

tu peux aussi faire

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Sinon très bon tuto je trouve

même si il n'est pas encore fini :p

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Salut :)

Pas obligé de mettre essentials pour le sudo %player%,

tu peux aussi faire

format slot 0 of player with 1 wool named "Exemple" with lore "Ceci est un exemple" to close then run [make player execute command "/tacommande"]

Sinon très bon tuto je trouve

même si il n'est pas encore fini :p

Je notre meme si je ne pourrais pas le corriger vu que j'ai utilisé un schéma et tout mais merci de l'info :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.