Aller au contenu
  • 0

Aide pour boutique


Question

Posté(e)

Bonjour,Bonsoir

 

J'ai crée un système de coins en skript et j'aimerai avoir un système de boutique avec le skript

coins.

 

Exemple :

 

J'ai un grade [Dieu] qui coute 2250 EL (EL = Marque de ma money)

Quand on clique dessus on l'achete en effectuant une commande : "/manuadd %player% Dieu"

 

Merci, de m'aider si il y a quelqu'un de gentil.

 

Cordialement,

Ectaals

19 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Dans un menu gui il y a un casque en diamant et si on clique dessus la console execute une commande : /manuadd %player% Dieu

 

Voici mon code de coins :

 

on join:
 if {coins.%player's UUID%} is not set:
 set {coins.%player's UUID%} to 0
command /coins [<text>] [<player>] [<number>]:
 aliases: /token
 trigger:
 if arg 1 is not set:
 if player has permission "tokens.admin":
 message "&8-----==&a&o Coins Aide &8 ==-----"
 message "&a/coins see <playername>&7-Regarde combien tu as de Coins (ou ceux d'un autre)"
 message "&a/coins send <playername> <quantity>&7-Envoie des coins"
 message "&a/coins give <playername> <quantity> &7-Give des coins a un joueur"
 message "&a/coins reset <playername> &7-Reset les coins d'un joueur."
 message "&a/coins remove <playername> <quantity> &7-Enlève les coins d'un joueur."
 stop
 else:
 message "&8-----==&a&o Coins Aide &8 ==-----"
 message "&a/coins see <playername>&7-Regarde combien tu as de Coins (ou ceux d'un autre)"
 message "&a/coins send <playername> <quantity>&7-Envoie des coins"
 else if arg 1 is "see":
 if player has permission "tokens.use":

 if player arg is not set:
 message "&6[&1ExoCoins&6] &7Tu as &a&o%{coins.%player's UUID%}% &7Coin(s)."
 if player arg is set:
 message "&6[&1ExoCoins&6] &a&o%arg-2% &7a &a&o%{coins.%arg-2's UUID%}% &7Coin(s)."
 stop
 else if arg 1 is "give":
 if player has permission "tokens.admin":
 add number arg to {coins.%arg 2's UUID%}
 message "&6[&1ExoCoins&6] &7Tu as donne &a&o%number arg% &7Coin(s) a &a&o%arg-2%"
 else if arg 1 is "send":
 if player has permission "tokens.use":
 if arg 2 is set:
 if number arg is set:
 if {coins.%player's UUID%} is less than number arg:
 message "&cErreur, tu n'as pas assez de coins !"
 stop
 else:
 remove number arg from {coins.%player's UUID%}
 add number arg to {coins.%arg-2's UUID%}
 message "&6[&1ExoCoins&6] Tu as bien envoyé %number arg% coins à %player arg%"
 else:
 message "&cErreur, tu dois mettre un nombre de coins à envoyer"
 else:
 message "&cErreur, tu dois mettre un pseudo et le nombre de coins à envoyer"
 else if arg 1 is "reset":
 if player has permission "tokens.admin":
 if player arg is set:
 set {coins.%arg-2's UUID%} to 0
 message "&6[&1ExoCoins&6] &7Tu as reset les Coins de &a&o%arg-2%"
 else if arg 1 is "remove":
 if player has permission "tokens.admin":
 if arg 2 is set:
 if number arg is set:
 if {coins.%arg-2's UUID%} is less than number arg:
 message "&cErreur, &c%arg 2% n'as pas assez de coins !"
 stop
 else:
 remove number arg from {coins.%arg-2's UUID%}
 message "&6[&1ExoCoins&6] &7Tu as bien retiré %arg 3% coins à %arg 2%"
 else:
 message "&cErreur, tu dois mettre un nombre de coins à enlever"

  • 0
Posté(e)

Voilà voilà:

 

command /grades:
   trigger:
       wait 1 tick
       open chest with 1 row named "            &6Achat des grades" to player
       set {grade.%player%.buying} to true
       format slot 0 of player with 1 diamond helmet named "&3Grade Dieu" to close then run [make player execute command "buydieu %player%"]


command /buydieu [<player>]:
   trigger:
       {grade.%player%.buying} is true:
           clear {grade.%player%.buying}
           {alreadybought.dieu.%player%} is true:
               send "&cVous avez déjà acheté ce grade."
           else:
               {coins.%player's UUID%} is bigger than or equal to 2250:
                   execute console command "manuadd %player% Dieu"
                   remove 2250 from {coins.%player's UUID%}
                   send "&aVous avez acheté le grade Dieu à 2250 coins."
                   set {alreadybought.dieu.%player%} to true
               else:
                   send "&cVous n'avez pas assez de coins."
       else:
           send "&cImpossible."

on inventory close:
   {grade.%player%.buying} is true:
       wait 15 tick
       clear {grade.%player%.buying}

#command /coins <text> [<number>]:
#    trigger:
#        arg 1 is "add":
#            add arg 2 to {coins.%player's UUID%}
#        arg 1 is "show":
#            send "%{coins.%player's UUID%}%"
#        arg 1 is "remove":
#            remove arg 2 from {coins.%player's UUID%}

 

Si tu as un problème n'hésite pas à m'en faire part

  • J'aime 1
  • 0
Posté(e)

le système marche mais j'aimerai que quand on achète le grade Dieu on ne peux pas acheter les autres.

Il y a aussi un autre problème:

 

Quand j'achete le grade Dieu ensuite je me manuadd en Roi et je veux racheter le grade Dieu je ne peux pas :/

  • 0
Posté(e)

"Quand j'achete le grade Dieu ensuite je me manuadd en Roi et je veux racheter le grade Dieu je ne peux pas :/"

 

En fait j'ai mis ça pour éviter qu'un joueur ayant acheté le dieu puisse le repayer depuis le GUI, donc reperdre 2250 coins inutilement.

 

Après si tu veux une commande pour pouvoir réacheter le dieu, rajoute ce bout de code au précédent:

 

command /resetvar:
   trigger:
       player has permission "reset.var":
           clear {alreadybought.dieu.%player%}
           clear {grade.%player%.buying}
           send "&aVous pouvez désormais acheter à nouveau le grade Dieu."
       else:
           send "&cImpossible."

  • 0
Posté(e)

Si on veux acheter le grade Prince on doit acheter le grade Chevalier ainsi de suite

 

1er - Grade Chevalier

2eme - Grade Prince

3eme - Garde Roi

4eme - Grade Dieu

  • 0
Posté(e)

Voilà, je t'ai rajouté un fichier de logs des achats/resets de grades à l'emplacement plugins/Skript/logs/Grades.yml

J'ai aussi mis la commande /gradereset <pseudo> pour remettre quelqu'un guerrier en lui permettant d'acheter à nouveau les grades dans l'ordre.

 

command /grades:
   trigger:
       wait 1 tick
       open chest with 1 row named "            &6Achat des grades" to player
       set {grade.%player%.buying} to true
       format slot 0 of player with 1 leather helmet named "&3Grade Chevalier - &6400 EL" to close then run [make player execute command "buychevalier %player%"]
       format slot 1 of player with 1 iron helmet named "&3Grade Prince - &61500 EL" to close then run [make player execute command "buyprince %player%"]
       format slot 2 of player with 1 gold helmet named "&3Grade Roi - &62250 EL" to close then run [make player execute command "buyroi %player%"]
       format slot 3 of player with 1 diamond helmet named "&3Grade Dieu - &64000 EL" to close then run [make player execute command "buydieu %player%"]

on load:
   if file "plugins/Skript/logs/Grades.yml" doesn't exists:
       create file "plugins/Skript/logs/Grades.yml"

on join:
   {rankpower.%player%} isn't set:
       set {rankpower.%player%} to 0

command /buychevalier [<player>]:           #Rankpower 1
   trigger:
       {grade.%player%.buying} is true:
           clear {grade.%player%.buying}
           {rankpower.%player%} = 0:
               {coins.%player's UUID%} is bigger than or equal to 400:
                   execute console command "manuadd %player% chevalier"
                   remove 400 from {coins.%player's UUID%}
                   send "&aVous avez acheté le grade Chevalier à 400 coins."
                   set {rankpower.%player%} to 1
                   wf "[%now%] : %player% a achete le grade Chevalier" to "plugins/Skript/logs/Grades.yml"
               else:
                   send "&cVous n'avez pas assez de coins."
           else:
               send "&cVous devez être Guerrier pour acheter ce grade."
       else:
           send "&cImpossible."


command /buyprince [<player>]:           #Rankpower 2
   trigger:
       {grade.%player%.buying} is true:
           clear {grade.%player%.buying}
           {rankpower.%player%} = 1:
               {coins.%player's UUID%} is bigger than or equal to 1500:
                   execute console command "manuadd %player% prince"
                   remove 1500 from {coins.%player's UUID%}
                   send "&aVous avez acheté le grade Prince à 1500 coins."
                   set {rankpower.%player%} to 2
                   wf "[%now%] : %player% a achete le grade Prince" to "plugins/Skript/logs/Grades.yml"
               else:
                   send "&cVous n'avez pas assez de coins."
           else:
               send "&cVous devez être Chevalier pour acheter ce grade."
       else:
           send "&cImpossible."


command /buyroi [<player>]:           #Rankpower 3
   trigger:
       {grade.%player%.buying} is true:
           clear {grade.%player%.buying}
           {rankpower.%player%} = 2:
               {coins.%player's UUID%} is bigger than or equal to 2250:
                   execute console command "manuadd %player% prince"
                   remove 2250 from {coins.%player's UUID%}
                   send "&aVous avez acheté le grade Prince à 2250 coins."
                   set {rankpower.%player%} to 3
                   wf "[%now%] : %player% a achete le grade Roi" to "plugins/Skript/logs/Grades.yml"
               else:
                   send "&cVous n'avez pas assez de coins."
           else:
               send "&cVous devez être Prince pour acheter ce grade."
       else:
           send "&cImpossible."


command /buydieu [<player>]:           #Rankpower 4
   trigger:
       {grade.%player%.buying} is true:
           clear {grade.%player%.buying}
           {rankpower.%player%} = 3:
               {coins.%player's UUID%} is bigger than or equal to 4000:
                   execute console command "manuadd %player% Dieu"
                   remove 2250 from {coins.%player's UUID%}
                   send "&aVous avez acheté le grade Dieu à 4000 coins."
                   set {rankpower.%player%} to 4
                   wf "[%now%] : %player% a achete le grade Dieu" to "plugins/Skript/logs/Grades.yml"
               else:
                   send "&cVous n'avez pas assez de coins."
           else:
               send "&cVous devez être Roi pour acheter ce grade."
       else:
           send "&cImpossible."

command /gradereset [<player>]:
   trigger:
       player has permission "grade.reset":
           arg 1 is set:
               set {rankpower.%arg 1%} to 0
               send "&aVous avez réinitialisé le grade de %arg 1%."
               execute console command "manuadd %arg 1% default"
               wf "[%now%] : %player% reinitialise le grade de %arg 1%" to "plugins/Skript/logs/Grades.yml"
           else:
               send "&6Utilisation: /gradereset <joueur>"
       else:
           send "&cImpossible."

on inventory close:
   {grade.%player%.buying} is true:
       wait 15 tick
       clear {grade.%player%.buying}

#command /coins <text> [<number>]:
#    trigger:
#        arg 1 is "add":
#            add arg 2 to {coins.%player's UUID%}
#        arg 1 is "show":
#            send "%{coins.%player's UUID%}%"
#        arg 1 is "remove":

×
×
  • 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.