Aller au contenu
  • 0

Problème tempmute.


Question

Posté(e)

Bonjour j'ai un problème avec mon skript qui est celui ci:

 

#MUTE
command /tempmute [<offlineplayer>] [<text>]:
   usage: {@prefix} &7&l/tempmute <Joueur> <Raison>
   trigger:
       if player has permission "tempmute.use":
           if arg 1 is not set:
               message "{@prefix} &7&lVeuillez indiquer le nom du joueur !"
               stop trigger
           if arg 2 is not set:
               message "{@prefix} &7&lVeuillez indiquer la raison pour sanctionner le joueur !"
               stop trigger
           if arg 2 is "spam":
               if {Mute::%player%} is not set:
                   broadcast "{@prefix} &a%arg 1% &6à été mute par &e%player% &6pour &4Spam"
                   add "%arg 1%" to {essentialsskript.mutelist::*}
                   set {Mute::%player%} to true
                   send "{@prefix} &7Tu a était réduit au silence par &6%player%&7." to arg 1
                   message "{@prefix} &6%player% &7a était réduit au silencepar %player%."
                   wait 3600 seconds
                   remove "%arg 1%" from {essentialsskript.mutelist::*}
                   set {Mute::%player%} to false
                   stop
               If {Mute::%player%} is true:
                   delete {Mute::%player%}
                   send "{@prefix} &7Tu a était réduit au silence par &6%player%&7." to arg 1
                   message "{@prefix} &6%player% &7à était plus réduit au silence."

on chat:
   If {Mute::%player%} is true:
       cancel event
       message "{@prefix} &7Tu a était réduit au silence."

 

Le problème est que quand je reload mon skript il n'y a aucune erreur, mais si je veux tempmute quelqu'un sa ne fait rien :/ si quelqu'un sait comment résoudre sa sa serait cool ;)

Bonne journée !

15 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Voilà :

 

#MUTE

options:
prefix: &8&l[&9&lModération&8&l]

command /tempmute [<player>] [<text>]:
   usage: {@prefix} &7&l/tempmute <Joueur> <Raison>
   trigger:
       if player has permission "tempmute.use":
           if arg 1 is not set:
               message "{@prefix} &7&lVeuillez indiquer le nom du joueur !"
           if arg 2 is not set:
               message "{@prefix} &7&lVeuillez indiquer la raison pour sanctionner le joueur !"
           if arg 2 is "spam":
               if {Mute::%player%} is not set:
                   broadcast "{@prefix} &a%arg 1% &6à été mute par &e%player% &6pour &4Spam"
                   add "%arg 1%" to {essentialsskript.mutelist::*}
                   set {Mute::%player%} to true
                   send "{@prefix} &7Tu a été réduit au silence par &6%player%&7." to arg 1
                   message "{@prefix} &6%player% &7a été réduit au silence par %player%."  
                   wait 3600 seconds
                   remove "%arg 1%" from {essentialsskript.mutelist::*}
                   set {Mute::%player%} to false
                   stop
               If {Mute::%player%} is true:
                   delete {Mute::%player%}
                   send "{@prefix} &7Tu a été réduit au silence par &6%player%&7." to arg 1
                   message "{@prefix} &6%player% &7n'est plus réduit au silence."

on chat:
   If {Mute::%player%} is true:
       cancel event
       message "{@prefix} &7Tu a été réduit au silence." to player

  • 0
Posté(e)

Je suis pas trop fort mais une possibilité est un problème avec essential, sur essential, tu peux mute des gens via la meme commande donc si tu là remplace ton /tempmute de ton skript car quelque chose d'autre.

 

Si tu n'a pas Essential, installe le voir si sa vien pas de là

  • 0
Posté(e)

Note : ajout d'un "else" que j'avais oublié.

Voici mon code des fois que ça aide :

# ======================================================================================================
#                                                 EVENTS
# ======================================================================================================       


on chat:
   if {muted.%player%} is set:
       cancel event
       send "&cVous êtes muté temporairement. &e/muteinfo" to player

every 1 second:
   loop players:
       if {muted.%loop-player%} is set:
           set {_data::*} to {muted.%loop-player%} split by "|"
           set {_duration} to {_data::1} parsed as integer
           set {_duration} to {_duration} - 1
           if {_duration} is greater than 0:
               set {muted.%loop-player%} to "%{_duration}%|%{_data::2}%"
           else:
               clear {muted.%loop-player%}

# ======================================================================================================
#                                                COMMANDS
# ======================================================================================================   

command /tempmute <player> <integer> [<text>]:
   usage: /tempmute <pseudo du joueur> <durée en seconde> <raison>
   trigger:

       # Récupération des arguments
       # --------------------------

       set {_mutedPlayer} to player argument

       set {_duration} to integer argument

       if text argument isn't set:
           set {_reason} to "Aucune raison spécifié."
       else:
           set {_reason} to text argument
       #  _____________________________________________________________________________________
       # |                                                                                     |
       # |               Si un mute est déjà en cours, on additionne les durées...             |
       # |_____________________________________________________________________________________|

       if {muted.%{_mutedPlayer}%} is set:
           set {_data::*} to {muted.%{_mutedPlayer}%} split by "|"
           set {_lastDuration} to {_data::1} parsed as integer
           set {_duration} to {_lastDuration} + {_duration}

       # On redéfinit la variable avec la nouvelle durée et raison
       # -------------------------------------------------------------------------------
       set {muted.%{_mutedPlayer}%} to "%{_duration}%|%{_reason}%"

       #  _____________________________________________________________________________________
       # |                                                                                     |
       # |                         ...Sinon on crée un nouveau mute                            |
       # |_____________________________________________________________________________________|
       else:
           set {muted.%{_mutedPlayer}%} to "%{_duration}%|%{_reason}%"

       #  _____________________________________________________________________________________
       # |                                                                                     |
       # |                   Envoi du message aux jouers et au responsable (admin)             |
       # |_____________________________________________________________________________________|

       # Message envoyé au joueur
       # ------------------------
       send "&cVous avez été muté temporairement." to {_mutedPlayer}
       send "&c------------------------------" to {_mutedPlayer}
       send "&cDurée : &e%{_duration}% &cseconde(s)" to {_mutedPlayer}
       send "&cRaison : &e%{_reason}%" to {_mutedPlayer}

       wait 1 second

       # Message envoyé au responsable (celui qui a tapé la commande)
       # ------------------------------------------------------------
       send "&e%{_mutedPlayer}% &3a été muté temporairement." to player
       send "&3------------------------------" to player
       send "&3Durée : &e%{_duration}% &3seconde(s)" to player
       send "&3Raison : &e%{_reason}%" to player

command /muteinfo [<player>]:
   trigger:
       if player argument is set:
           set {_mutedPlayer} to player argument
       else:
           set {_mutedPlayer} to player

       if {muted.%{_mutedPlayer}%} is set:
           set {_data::*} to {muted.%{_mutedPlayer}%} split by "|"
           set {_duration} to {_data::1}
           set {_reason} to {_data::2}

           if player argument is set:
               send "&3Mute temporaire de &e%player argument%" to {_mutedPlayer}
               send "&3--------------------------------" to {_mutedPlayer}
               send "&3Durée : &e%{_duration}% &3seconde(s) restantes" to {_mutedPlayer}
               send "&3Raison : &e%{_reason}%" to {_mutedPlayer}
           else:
               send "&cEtat de votre mute temporaire" to {_mutedPlayer}
               send "&c--------------------------------" to {_mutedPlayer}
               send "&cDurée : &e%{_duration}% &cseconde(s) restantes" to {_mutedPlayer}
               send "&cRaison : &e%{_reason}%" to {_mutedPlayer}
       else:
           send "&3Aucun mute temporaire en cours."

  • 0
Posté(e)

J'ai amélioré le script.

Vu que certains n'aiment pas les "every...", j'utilise à la place une comparaison de temps.

On peut augmenter au réduire le temps de mute temporaire (ex : -10).

A vous de me dire ce que vous en pensez.

# ======================================================================================================
#                                                 EVENTS
# ======================================================================================================

on chat:
   if {muted.%player%.date} is set:

       cancel event

       set {_elapsedTime} to difference between {muted.%player%.date} and now
       set {_duration} to "%{muted.%player%.duration}% second" parsed as timespan
       if {_elapsedTime} is less than {_duration} :
           send "&cVous êtes muté. &e%{_elapsedTime}% / %{_duration}%"

       else:
       #  ________________________________________________________________________________________
       # |                                                                                        |
       # |         Suppression des variables de mute et envoi d'un message de fin de mute         |
       # |________________________________________________________________________________________|

           broadcast "&3Mute temporaire écoulé. Réactivation du chat."
           clear {muted.%player%.date}
           clear {muted.%player%.duration}
           clear {muted.%player%.reason}

# ======================================================================================================
#                                                COMMANDS
# ======================================================================================================       

# Pour baisser le temps de ban du joueur, vous devez rentrer un nombre négatif (ex : -10)
# ---------------------------------------------------------------------------------------
command /tempmute <player> <integer> [<text>]:
   usage: /tempmute <pseudo du joueur> <durée en seconde> <raison>
   trigger:

       # Récupération des arguments
       # --------------------------

       set {_mutedPlayer} to player argument
       set {_duration} to integer argument
       set {_reason} to text argument

       #  _____________________________________________________________________________________
       # |                                                                                     |
       # | Si un mute est déjà en cours, on additionne les durées et on reféfinit la raison    |
       # | si elle est renseignée de nouveau...                                                |
       # |_____________________________________________________________________________________|

       if {muted.%{_mutedPlayer}%.date} is set:
           set {_duration} to {_duration} + {muted.%{_mutedPlayer}%.duration}
           set {muted.%{_mutedPlayer}%.duration} to {_duration}
           if {muted.%{_mutedPlayer}%.reason} isn't set:
               if {_reason} is set:
                   set {muted.%{_mutedPlayer}%.reason} to {_reason}

       #  _____________________________________________________________________________________
       # |                                                                                     |
       # |                         ...Sinon on crée un nouveau mute                            |
       # |_____________________________________________________________________________________|

       else:
           set {muted.%{_mutedPlayer}%.date} to now
           set {muted.%{_mutedPlayer}%.duration} to {_duration}
           if {_reason} is set:
               set {muted.%{_mutedPlayer}%.reason} to {_reason}

       #  _____________________________________________________________________________________
       # |                                                                                     |
       # |                   Envoi du message aux jouers et au responsable (admin)             |
       # |_____________________________________________________________________________________|

       # Message envoyé au joueur
       # ------------------------
       send "&cVous avez été muté temporairement." to {_mutedPlayer}
       send "&c------------------------------" to {_mutedPlayer}
       send "&cDurée : &e%{_duration}% &cseconde(s)" to {_mutedPlayer}
       if {_reason} is set:
           send "&cRaison : &e%{_reason}%" to {_mutedPlayer}

       # Message envoyé au responsable (celui qui a tapé la commande)
       # ------------------------------------------------------------
       send "&e%{_mutedPlayer}% &3a été muté temporairement." to player
       send "&3------------------------------" to player
       send "&3Durée : &e%{_duration}% &3seconde(s)" to player
       if {_reason} is set:
           send "&3Raison : &e%{_reason}%" to player



# Cette commande n'est pas vital au script.
# Vous pouvez tout à fait afficher les informations uniquement lors de l'événement "on chat"
# -----------------------------------------------------------------------------------------------
command /muteinfo [<player>]:
   trigger:

       if player argument is set:
           set {_mutedPlayer} to player argument
       else:
           set {_mutedPlayer} to player

       #  _____________________________________________________________________________________
       # |                                                                                     |
       # | Si la différence de temps entre la date début de mute et maintenant est inférieur   |
       # | à la durée maximal fixée (duration), on affiche le temps écoulées sinon on supprime |
       # | les variables de mute pour permettre au joueur de parler à nouveau.                 |
       # |_____________________________________________________________________________________|

       if {muted.%{_mutedPlayer}%.date} is set:

           set {_elapsedTime} to difference between {muted.%{_mutedPlayer}%.date} and now
           set {_duration} to "%{muted.%{_mutedPlayer}%.duration}% second" parsed as timespan
           if {_elapsedTime} is less than {_duration} :

               if player argument is set:
                   send "&3Mute temporaire de &e%player argument%" to {_mutedPlayer}
                   send "&3--------------------------------" to {_mutedPlayer}
                   send "&3Durée : &e%{_elapsedTime}% &3/ &e%{_duration}%" to {_mutedPlayer}
                   if {muted.%{_mutedPlayer}%.reason} is set:
                       send "&3Raison : &e%{muted.%{_mutedPlayer}%.reason}%" to {_mutedPlayer}
               else:
                   send "&cEtat de votre mute temporaire" to {_mutedPlayer}
                   send "&c--------------------------------" to {_mutedPlayer}
                   send "&cDurée : &e%{_elapsedTime}% &c/ &e%{_duration}%" to {_mutedPlayer}
                   if {muted.%{_mutedPlayer}%.reason} is set:
                       send "&cRaison : &e%{muted.%{_mutedPlayer}%.reason}%" to {_mutedPlayer}
           else:
               broadcast "&3Mute temporaire écoulé."
               clear {muted.%{_mutedPlayer}%.date}
               clear {muted.%{_mutedPlayer}%.duration}
               clear {muted.%{_mutedPlayer}%.reason}
       else:
           send "&3Aucun mute temporaire en cours."

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