Aller au contenu
  • 0

Problême skript de Coins


Question

Posté(e)

J'ai fais des recherche sur le forum mais les autre skript coins font le même problème

 

Mon probleme es que les joueur peuvent avoir des coins dans le négatif et c'est pas le but comment faire ?

https://image.noelshack.com/fichiers/2018/01/5/1515169309-2018-01-05-17-20-26.png

 

command /coins <text> <number> <player>:
   aliases: c
   trigger:
       if player have permission "give.coins":
           if arg 1 is "give":
               add arg-2 to {coins.%UUID of arg-3%}
               message "&e[DeadCoins] &aVous avez donné &2%arg-2% &aCoins à &2&o%arg-3%" to player
               message "&e[DeadCoins] &aVous avez reçu &2%arg-2% &aCoins" to arg 3
           else if arg 1 is "remove":
               remove arg-2 from {coins.%UUID of arg-3%}
               message "&e[DeadCoins] &4Vous avez retiré %arg-2% Coins à %arg-3%" to player
               message "&e[DeadCoins] &cVous avez été débité de &4%arg-2% &cCoins" to arg 3
       if player doesn't have permission "give.coins":
           message "&e[DeadCoins] &4Vous n'avez pas la permission d'utiliser cette commande"
           stop trigger

command /deadcoin:
   trigger:
       message "&e[DeadCoins] Vous avez &6%{coins.%UUID of player%}%&e Coins" to player

command /deadcoinview <player>:
   trigger:
       if player have permission "view.coins":
           message "&e[DeadCoins] %arg 1% a %{coins.%UUID of arg-1%}% Coins"

 

Au passage minecraft est en 1.8

 

 

Merci d'avance pour votre aide.

7 réponses à cette question

Messages recommandés

  • 0
Posté(e)
command /coins <text> <number> <player>:
   aliases: c
   trigger:
       if player have permission "give.coins":
           if arg 1 is "give":
               add arg-2 to {coins.%UUID of arg-3%}
               message "&e[DeadCoins] &aVous avez donné &2%arg-2% &aCoins à &2&o%arg-3%" to player
               message "&e[DeadCoins] &aVous avez reçu &2%arg-2% &aCoins" to arg 3
           else if arg 1 is "remove":
               remove arg-2 from {coins.%UUID of arg-3%}
               message "&e[DeadCoins] &4Vous avez retiré %arg-2% Coins à %arg-3%" to player
               message "&e[DeadCoins] &cVous avez été débité de &4%arg-2% &cCoins" to arg 3
               if {coins.%UUID of arg-3%} < 0:
                   set {coins.%UUID of arg-3%} to 0
       if player doesn't have permission "give.coins":
           message "&e[DeadCoins] &4Vous n'avez pas la permission d'utiliser cette commande"
           stop trigger

command /deadcoin:
   trigger:
       message "&e[DeadCoins] Vous avez &6%{coins.%UUID of player%}%&e Coins" to player

command /deadcoinview <player>:
   trigger:
       if player have permission "view.coins":
           message "&e[DeadCoins] %arg 1% a %{coins.%UUID of arg-1%}% Coins"

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

Rien à ajouter, le skript de @noftaly est bien.

Ah si, peut-être le fait que ce code:

if {coins.%UUID of arg-3%} < 0:
   set {coins.%UUID of arg-3%} to 0

 

peut être modifié pour être valable sous toutes les possibilités. (Quand un joueur envoie de l'argent, quand il s'en fait prendre, quand il achète etc...)

 

Ainsi, on peut vérifier si le budget d'un joueur dépasse devient négatif lors de la transaction voulue, grâce au code suivant:

if {coins.%UUID of arg-3%} - {_transaction.en.cours} < 0:
    send "Erreur ! La transaction n'est pas possible, vous n'avez pas assez d'argent."

Sachant que la variable locale {_transaction.en.cours} (ou autre) peut désigner n'importe quel montant (donc un integer)

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

Sinon, tu vérifies que la somme à remove est inférieure ou égale à l'argent possédé par le joueur :

 

command /coins <text> <number> <player>:
   aliases: c
   trigger:
       player has permission "give.coins":
           arg 1 is "give":
               add arg-2 to {coins.%UUID of arg-3%}
               send "&e[DeadCoins] &aVous avez donné &2%arg-2% &aCoins à &2&o%arg-3%"
               send "&e[DeadCoins] &aVous avez reçu &2%arg-2% &aCoins" to arg 3
           else if arg 1 is "remove":
               arg 2 is bigger than {coins.%UUID of arg-3%}:
                   send "&cLe joueur %arg 3% n'a que %{coins.%UUID of arg-3%}% Coins."
               else:
                   remove arg-2 from {coins.%UUID of arg-3%}
                   send "&e[DeadCoins] &4Vous avez retiré %arg-2% Coins à %arg-3%"
                   send "&e[DeadCoins] &cVous avez été débité de &4%arg-2% &cCoins" to arg 3
       else:
           send "&e[DeadCoins] &4Vous n'avez pas la permission d'utiliser cette commande"

command /deadcoin:
   trigger:
       message "&e[DeadCoins] Vous avez &6%{coins.%UUID of player%}%&e Coins"

command /deadcoinview <player>:
   trigger:
       if player have permission "view.coins":
           message "&e[DeadCoins] %arg 1% a %{coins.%UUID of arg-1%}% Coins"

 

Le code de @noftaly est juste aussi ^^

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

Merci @Wafoux et @Random sa fonctionne mais après j'ai un problème avec chestcommande qui fait que mais même si la personne a pas de coins le grade se mais vous me proposer quoi de faire le Gui avec Chestcommand mais de réglé le bug ou de le faire avec skript ?

 

Problème:

1515367300-capture-bug-skript2.png

 

Ligne de code ChestCommande:

Grade Dieu:
 COMMAND: 'op: coins remove 1000 {player}; op: manuadd {player} Dieu'
 KEEP-OPEN: true
 NAME: '&4&lGrade Dieu'
 LORE:
 - 'Prix: 1000DC'
 - 'DC = DeadCoins'
 ID: 310
 POSITION-X: 8
 POSITION-Y: 2

  • 0
Posté(e)

Enfaite pour faire court, visiblement quand tu achètes ton grade, et bien la commande semble s'effectuée dans tous les cas.

4 solutions possibles:

  • Passer par ce que gères Chestcommand, c'est à dire Vault (car du coup il n'y aura pas de soucis d'argent), et donc modifier le code de façon à ce qu'on n'ait pas une variable {coins.%player%} mais qu'on passe directement avec Vault (voir ce qu'on peut faire ici: https://skript-mc.fr/doc/skript/Expressions#money) Ceci viendrait donc à changer le code et à enlever la variable {coins.%player%}
  • Garder ChestCommand et la variable {coins.%player%}, mais on modifie le code du YML de chestcommand pour arriver à modifier la variable {coins.%player%}, mais j'ai aucune idée de comment il faudrait faire
  • On enlève Chestcommand, qu'on remplace par les GUI de Tuske (https://skript-mc.fr/forum/threads/les-gui-avec-tuske-avec-la-v2.11800/)
  • Ajout d'une commande spécifique à un ajout de grade (par exemple /grades) qui aurait la syntaxe suivante:

command /grades <player> <text>:
   trigger:
       if arg 1 and arg 2 are set:
           if {coins.%player%} - 1000 < 0:
               send "Impossible ! Le joueur n'a pas assez d'argent."
           else:
               make console execute command "/manuadd arg-1 arg-2"
               remove 1000 from {coins.%arg-1%}

 

Le code est bien évidemment à changer, mais pour faire court il permettrait juste de rankup un joueur après vérification de son argent

 

PS: Penses à mettre un petit j'aime à ceux qui t'aident, ça fait super plaisir :)

  • J'aime 1
×
×
  • 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.