Aller au contenu
  • 0

Set un cooldown avec une commande


Question

Posté(e)

Bonjour aujourd'hui j'ai un souci j'aimerai créer une commande qui permet de mettre un cooldown entre chaque annonce qu'un joueur fait. Seulement je n'y arrive pas, il n'y pas d'erreur, mais après avoir fait la commande le cooldow n'existe pas fin n'est pas mis voici le code

 

Options:
   logo : &8[&c&lD&4&lC&8]
   annonce: &7[*] &1[&9Annonce&1]&7 [*]

command /annonce [<text>] [<number>]:
   permission: annonce.ps
   aliases: /dornacraft:annonce
   permission message: {@logo} &cDésolé, mais tu n'as pas la permission de faire cette commande !
   trigger:

#--Redirection commande d'aide--#
       if arg 1 is not set:
           make player execute command "/annonce help"

#--Commande d'aide--#
       if arg 1 is "help":
           send "                 &b----{@annonce}&b----"
           send " "
           send " &7/annonce <message>&f: &bFait une annonce de votre PS avec un message."
           send " &7/annonce help&f: &bAffiche cette page d'aide."
           send " &7/annonce reset&f: &bRénitialise votre cooldown."
           send " &7/annonce setcd&f: &bDéfini le cooldown."
           send " "

#--Commande de reset de cooldown (ADMIN)--#
       if arg 1 is "reset":
           if player is op:
               delete {antispam.annonce.%player%}
               delete {_waited}
               message "{@logo} &cVotre cooldown vient d'être rénitialisé !"
           else:
               message "{@logo} &cDésolé, mais tu dois être &c&lOPERATEUR&c pour éxécuter cette commande !"

#--Commande pour changer le cooldown (ADMIN)--#
       if arg 1 is "setcd":
           if player is op:
               if arg 2 is set:
                   set {cd.annonce} to "%arg 2% minutes"
                   send "Cooldown défini à %arg 2% minutes"
           else:
               message "{@logo} &cDésolé, mais tu dois être &c&lOPERATEUR&c pour éxécuter cette commande !"

#--Commande pour mettre une annonce avec un message--#
       if arg 1 is not "reset":
           if arg 1 is not "help":
               if arg 1 is not "setcd":
                   set {_waited} to difference between {antispam.annonce.%player%} and now
                   if {_waited} is less than {cd.annonce}:
                       message "{@logo} &cVous devez attendre &e&l%difference between {cd.annonce} and {_waited}% &cavant de refaire une annonce !"
                   else:
                       broadcast " "
                       broadcast "                         {@annonce}"
                       broadcast " &b• Le joueur &7%player%&b vient de faire une annonce !"
                       broadcast " &bPour accéder à son magasin, faites &7&l/ps %player%"
                       broadcast " &b• Message du vendeur: &f%arg 1%"
                       broadcast " "
                       loop all players:
                           play "NOTE_PIANO" to loop-player at volume 100
                       set {antispam.annonce.%player%} to now

 

Je bataille dans:

#--Commande pour changer le cooldown (ADMIN)--#

 

Voilà j’espère pouvoir corriger ça, merci pour la futur aide

  • J'aime 1

8 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Essaye ça :

if arg 1 is "setcd":
   if player is op:
       if arg 2 is set:
           set {cd.annonce} to arg 2 minutes
           send "Cooldown défini à %arg 2% minutes"
   else:
       message "{@logo} &cDésolé, mais tu dois être &c&lOPERATEUR&c pour éxécuter cette commande !"

Si ça marche pas essaye ce code la :

if arg 1 is "setcd":
   if player is op:
       if arg 2 is set:
           set {cd.annonce} to "%arg 2% minutes"
           set {cd.annonce} to {cd.annonce} parsed as timespan
           send "Cooldown défini à %arg 2% minutes"
   else:
       message "{@logo} &cDésolé, mais tu dois être &c&lOPERATEUR&c pour éxécuter cette commande !"

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

Merci infiniment, le deuxième code que tu m'as passé fonctionne correctement. Cependant le message indiquant combien reste t-il de temps avant de pouvoir refaire une annonce (

{@logo} &cVous devez attendre &e&l%difference between {cd.annonce} and {_waited}% &cavant de refaire une annonce !")

s'affiche comme ça

[DC] Vous devez attendre <none> avant de refaire une annonce !

Est-ce possible de remedier à ça ?

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

Essaye ça :

if arg 1 is not "setcd":
   if difference between {antispam.annonce.%player%} and now is less than {cd.annonce}:
       set {_wait} to "%difference between {antispam.annonce.%player%} and now%"
       replace "second" with "seconde" in {_wait}
       replace "hour" with "heure" in {_wait}
       replace "day" with "jour" in {_wait}
       replace "and" with "et" in {_wait}
       message "{@logo} &cVous devez attendre &e&l%{_wait}% &cavant de refaire une annonce !"

J'ai fais la traduction fr en plus :p

  • 0
Posté(e)

Les minutes et secondes sont désormais marquées, seulement ça me fait à l'inverse au lieu d'afficher de 30 -> 0 ça me fait 0 -> 30

 

ex: [DC] Vous devez attendre 3 minutes avant de refaire une annonce !

3 minutes après je refait la commande

[DC] Vous devez attendre 6 minutes avant de refaire une annonce !

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

Essaye ça mais je suis pas sur :

if arg 1 is not "setcd":
   if difference between {antispam.annonce.%player%} and now is less than {cd.annonce}:
       set {_wait} to "%difference between now and {antispam.annonce.%player%}%"
       replace "second" with "seconde" in {_wait}
       replace "hour" with "heure" in {_wait}
       replace "day" with "jour" in {_wait}
       replace "and" with "et" in {_wait}
       message "{@logo} &cVous devez attendre &e&l%{_wait}% &cavant de refaire une annonce !"

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

Je l'avais déjà fais dans un code tien normalement ça ça marche :

if arg 1 is not "setcd":
   if difference between {antispam.annonce.%player%} and now is less than {cd.annonce}:
       set {_wait} to {cd.annonce}
       remove difference between {antispam.annonce.%player%} and now from {_wait}
       set {_wait} to "%{_wait}%"
       replace "second" with "seconde" in {_wait}
       replace "hour" with "heure" in {_wait}
       replace "day" with "jour" in {_wait}
       replace "and" with "et" in {_wait}
       message "{@logo} &cVous devez attendre &e&l%{_wait}% &cavant de refaire une annonce !"

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