Invité Posté : 27 avril 2016 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: 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 : É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
Yghore 379 Répondu : 30 avril 2016 H9ooooooooooo ! Tu peut loop 53 times. ... Pour les format slot de verre rouge. ...je te fait un exemple demain Partager ce message Lien à poster Partager sur d’autres sites
ShiRzoOa 41 Répondu : 1 mai 2016 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é Répondu : 1 mai 2016 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