Aller au contenu
  • 0

Probléme Skript Mute/UnMute


Question

Posté(e)

J'ai un petit problème le voici :

PjhZ.png

 

Code :

options:
   mute: &f[&5Mute&f]&7
command /mute [<offline player>] [<text>] [<timespan>]:
  trigger:
     if arg 1 is set:
        if arg 2 is set:
           if arg 3 is set:
        set {mute::%arg 1%} to arg 3
        set {mute.now::%arg 1%} to now
        set {mute.why::%arg 1%} to arg 2
        message "&6============================================"
        message "&c Vous avez été mute par un modérateur !"
        message "&cRaison : &e%arg 2%"
        message "&cDurée : &e%arg 3%"
        message "&6============================================"
        message "{@mute} Vous avez mute &e%arg 1% pour &e%arg 2% &7pendant &e%arg 3%"
       # else:
   # else:
# else:
command /unmute [<offline player>]:
 trigger:
   if arg 1 is set:
     if {mute::%arg 1%} is set:
       delete {mute::%arg 1%}
       delete {mute.now::%arg 1%}
       delete {mute.why::%arg 1%}
       message "{@mute} Vous avez été &aunmute" to arg 1
       message "{@mute} Vous avez unmute &e%arg 1%"
    # else:
# else:

on chat:
   if {mute::%player%} is set:
       set {_mute} to difference between {mute.now::%player%} and now
       if {_mute} is less than {mute::%player%}:
       message "&6============================================"
       message "&c Vous avez été mute par un modérateur !"
       message "&cRaison : &e%{mute.why::%player%}%"
       message "&cDurée : &e%{_mute}%"
       message "&6============================================"
cancel event
       else:
           delete {mute::%player%}
           delete {mute.now::%player%}
           delete {mute.why::%player%}

 

Merci de votre aide.

15 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Un if et un else correspondants doivent être précédés du même nombre de tabulations (être sur la même colonne).

Et les lignes qui dépendant d'un if ou un else ont une tabulation de plus et sont juste en dessous.

 

if *condition*:
  faire un truc
else:
  faire autre chose

if *condition 1*:
  if *condition 2*:
     faire un truc
  else:
     faire un autre truc
else:
  faire encore autre chose

  • 0
Posté(e)

J'ai pas très bien compris le truc mais je pense pas savoir réglé cette erreur tout seul aurais tu pas une meilleur explication ?

  • 0
Posté(e)
J'ai pas très bien compris le truc mais je pense pas savoir réglé cette erreur tout seul aurais tu pas une meilleur explication ?

 

En gros, tu ne peux pas faire ça :

      if arg 1 is set:
        if arg 2 is set:
           if arg 3 is set:
        set {mute::%arg 1%} to arg 3

Les lignes qui dépendent d'un if doivent être une tabulation plus loin :

      if arg 1 is set:
        if arg 2 is set:
           if arg 3 is set:
              set {mute::%arg 1%} to arg 3

  • 0
Posté(e)

Malheuresement sa marche toujourq pas :

[ATTACH=full]7277[/ATTACH]

 

 

options:
   mute: &f[&5Mute&f]&7
command /mute [<offline player>] [<text>] [<timespan>]:
  trigger:
     if arg 1 is set:
        if arg 2 is set:
           if arg 3 is set:
              set {mute::%arg 1%} to arg 3
        set {mute.now::%arg 1%} to now
        set {mute.why::%arg 1%} to arg 2
        message "&6============================================"
        message "&c Vous avez été mute par un modérateur !"
        message "&cRaison : &e%arg 2%"
        message "&cDurée : &e%arg 3%"
        message "&6============================================"
        message "{@mute} Vous avez mute &e%arg 1% pour &e%arg 2% &7pendant &e%arg 3%"
       # else:
   # else:
# else:
command /unmute [<offline player>]:
 trigger:
   if arg 1 is set:
     if {mute::%arg 1%} is set:
       delete {mute::%arg 1%}
       delete {mute.now::%arg 1%}
       delete {mute.why::%arg 1%}
       message "{@mute} Vous avez été &aunmute" to arg 1
       message "{@mute} Vous avez unmute &e%arg 1%"
    # else:
# else:

on chat:
   if {mute::%player%} is set:
       set {_mute} to difference between {mute.now::%player%} and now
       if {_mute} is less than {mute::%player%}:
       message "&6============================================"
       message "&c Vous avez été mute par un modérateur !"
       message "&cRaison : &e%{mute.why::%player%}%"
       message "&cDurée : &e%{_mute}%"
       message "&6============================================"
       cancel event
       else:
           delete {mute::%player%}
           delete {mute.now::%player%}
           delete {mute.why::%player%}

  • 0
Posté(e)

Ha c'est le deuxième truc que j'essayais d'expliquer. Ceci ne marche pas :

   if {mute::%player%} is set:
       set {_mute} to difference between {mute.now::%player%} and now
       ...
       else:
           delete {mute::%player%}
           delete {mute.now::%player%}
           delete {mute.why::%player%}

Ton if et ton else doivent être sur la même colonne, c'est pour ça que le message d'erreur dit que y'a pas de if correspondant à ton else ligne 42.

   if {mute::%player%} is set:
       set {_mute} to difference between {mute.now::%player%} and now
       ...
  else:
      delete {mute::%player%}
      delete {mute.now::%player%}
      delete {mute.why::%player%}

 

Les tabulations, c'est fondamental en Skript, ça fait partie de la syntaxe.

  • 0
Posté(e)

options:
   mute: &f[&5Mute&f]&7
command /mute [<offline player>] [<text>] [<timespan>]:
  trigger:
     if arg 1 is set:
        if arg 2 is set:
           if arg 3 is set:
              set {mute::%arg 1%} to arg 3
        set {mute.now::%arg 1%} to now
        set {mute.why::%arg 1%} to arg 2
        message "&6============================================"
        message "&c Vous avez été mute par un modérateur !"
        message "&cRaison : &e%arg 2%"
        message "&cDurée : &e%arg 3%"
        message "&6============================================"
        message "{@mute} Vous avez mute &e%arg 1% pour &e%arg 2% &7pendant &e%arg 3%"
       # else:
   # else:
# else:
command /unmute [<offline player>]:
 trigger:
   if arg 1 is set:
     if {mute::%arg 1%} is set:
       delete {mute::%arg 1%}
       delete {mute.now::%arg 1%}
       delete {mute.why::%arg 1%}
       message "{@mute} Vous avez été &aunmute" to arg 1
       message "{@mute} Vous avez unmute &e%arg 1%"
    # else:
# else:

on chat:
if {mute::%player%} is set:
             set {_mute} to difference between {mute.now::%player%} and now
             if {_mute} is less than {mute::%player%}:
             message "&6============================================"
             message "&c Vous avez été mute par un modérateur !"
             message "&cRaison : &e%{mute.why::%player%}%"
             message "&cDurée : &e%{_mute}%"
message "&6============================================"
cancel event
else:         
 delete {mute::%player%}
 delete {mute.now::%player%}
 delete {mute.why::%player%}

 

Franchement merci beaucoup car depuis 14h00 je suis dessus a bosser mais rien :(

  • 0
Posté(e)

Mmh désolé mais je crois que t'as toujours pas compris grand chose au système de tabulations. xD

Voici ton code avec toutes les tabs refaites, regarde et vois comment ça fonctionne :

options:
   mute: &f[&5Mute&f]&7
command /mute [<offline player>] [<text>] [<timespan>]:
   trigger:
       if arg 1 is set:
           if arg 2 is set:
               if arg 3 is set:
                   set {mute::%arg 1%} to arg 3
                   set {mute.now::%arg 1%} to now
                   set {mute.why::%arg 1%} to arg 2
                   message "&6============================================"
                   message "&c Vous avez été mute par un modérateur !"
                   message "&cRaison : &e%arg 2%"
                   message "&cDurée : &e%arg 3%"
                   message "&6============================================"
                   message "{@mute} Vous avez mute &e%arg 1% pour &e%arg 2% &7pendant &e%arg 3%"
               #else:
           #else:
       #else:

command /unmute [<offline player>]:
   trigger:
       if arg 1 is set:
           if {mute::%arg 1%} is set:
               delete {mute::%arg 1%}
               delete {mute.now::%arg 1%}
               delete {mute.why::%arg 1%}
               message "{@mute} Vous avez été &aunmute" to arg 1
               message "{@mute} Vous avez unmute &e%arg 1%"
           #else:
       #else:

on chat:
   if {mute::%player%} is set:
       set {_mute} to difference between {mute.now::%player%} and now
       if {_mute} is less than {mute::%player%}:
           message "&6============================================"
           message "&c Vous avez été mute par un modérateur !"
           message "&cRaison : &e%{mute.why::%player%}%"
           message "&cDurée : &e%{_mute}%"
           message "&6============================================"
           cancel event
       else:         
           delete {mute::%player%}
           delete {mute.now::%player%}
           delete {mute.why::%player%}

  • 0
Posté(e)

Et encore merci je sais pas comment te remercier ! ( D'ailleur tu vois le /mute ( nom joueur (raison) (temps) ) que je viens de créer ya un petit probléme par exemple je mute quelqu'un 1 minute et ba sa va augmenter par ex : 20 sec , 30 sec pour aller jusqu'à 1 minute mais moi je veux que sa face l'inverse du genre il reste 50 sec , 30 sec . Après si tu sais pas ou que t'ai pas envie tempis ! Mais encore merci pour ton aide !

  • 0
Posté(e)
Et encore merci je sais pas comment te remercier ! ( D'ailleur tu vois le /mute ( nom joueur (raison) (temps) ) que je viens de créer ya un petit probléme par exemple je mute quelqu'un 1 minute et ba sa va augmenter par ex : 20 sec , 30 sec pour aller jusqu'à 1 minute mais moi je veux que sa face l'inverse du genre il reste 50 sec , 30 sec . Après si tu sais pas ou que t'ai pas envie tempis ! Mais encore merci pour ton aide !

Double post interdit sous une sanction. Le message doit avoir une différence de 24 heures.

  • 0
Posté(e)

Pour un tutoriel, j'ai pas désolé, et je pense que c'est trop basique pour exister.

C'est très simple : des lignes qui se suivent et ont le même nombre de tabs font partie d'un même bloc, c'est-à-dire que normalement, si t'exécutes la première, t'exécutes toutes les autres à la suite. Par exemple, juste en dessous, y'a pas moyen que t'exécutes la dernière ligne sans avoir exécuté la première, et inversement.

set {mute::%arg 1%} to arg 3
                   set {mute.now::%arg 1%} to now
                   set {mute.why::%arg 1%} to arg 2
                   message "&6============================================"
                   message "&c Vous avez été mute par un modérateur !"
                   message "&cRaison : &e%arg 2%"
                   message "&cDurée : &e%arg 3%"
                   message "&6============================================"
                   message "{@mute} Vous avez mute &e%arg 1% pour &e%arg 2% &7pendant &e%arg 3%"

 

Et dans tout langage de programmation, les blocs sont imbriqués les uns dans les autres.

 

1514676971-explication-blocs-skript.png

Chaque bloc est un peu comme un sous-programme que le bloc qui le contient appelle si besoin. Et l'appel se fait si une condition (n')est (pas) remplie (if et else), si on veut le mettre dans une boucle (loop), si un événement se déclenche (on chat, on click, ...), si on tape une commande, ou plein d'autres choses dont la ligne finit par deux points ":" et sont suivies par un autre bloc une tabulation plus loin que celui dans lequel on est actuellement.

 

Après, si c'est les bases qui te manquent, je te conseille d'aller lire les parties full texte de la documentation.

 

Pour ton problème de temps, c'est très simple :

1514679437-logique-mute.png

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