Aller au contenu

[SKRIPT-MC] Menu gui de modération


Messages recommandés

Posté(e)

Bonjour,

Comme dit dans le titre mon but est de créer un menu de modération, j'ai déja fait un skript qui marche très bien (qui m'affiche la liste des joueurs connecté et déconnecté de mon serveur) et je voudrais donc que lorceque l'on click sur l'une des tête des joueurs cela m'affiche un nouveau menu avec la possibilité de le ban, kick ...

Mais que sa garde bien en tête que c'est le joueur sur lequel nous avons clicker.

 

Voici mon skirpt:

command /list [<int>]:
   trigger:   
       wait 3 ticks
       set {_listpage} to size of {listplayer::*}
       set {_needpage} to 1
       while {_listpage} >= 45:
           remove 44 from {_listpage}
           add 1 to {_needpage}
       if arg <= {_needpage}:
           arg-1 is not 0
           open chest with 6 rows named "&6 Page %arg-1%/%{_needpage}%" to player
           wait 3 ticks   
           if arg-1 >= 2:
               format slot 46 of player with paper named "&e&lPage Précédente" to run [make player execute command "/list %arg - 1%"]
           if arg-1 < {_needpage}:
               format slot 52 of player with empty map named "&e&lPage Suivante" with lore " " to run [make player execute command "/list %arg + 1%"]               
           set {_vartemp::*} to {listplayer::*}
           loop {_needpage} times: #On va loop toutes les pages
               loop {_vartemp::*}:  #On loop les joueurs
                   if size of {_page.%loop-number-1%::*} < 45:
                       add loop-value-2 to {_page.%loop-number-1%::*}
                       remove loop-value-2 from {_vartemp::*}
           set {_slot} to 0
           loop {_page.%arg-1%::*}:
               format slot {_slot} of player with skull of "%loop-value%" parsed as offline player named "&6%loop-value%" with lore "&bSur le serveur depuis &7: &3%{temps.day.%loop-value%}% Jours &3%{temps.hour.%loop-value%}% Heures &3%{temps.min.%loop-value%}% Min %{temps.sec.%loop-value%}% Sec" to run [make player execute command "/b %loop-value%/%player%"]
               add 1 to {_slot}
       else:
           send "&cCette Page n'existe pas."

PS: Merci d'avance poour vos réponse.

Posté(e)

Salut, tu peux rajouter à la fin de

format slot {_slot}...
:

 

to run [make player execute command "/verif %loom-value%

 

Sa va faire que quand tu clique sur la tête du joueur sa fait la commande /verif (le joueur clické)

Posté(e)

Merci pour cette réponse rapide

tout d'abordj'ai 2 question

1ère question:

Ducoup il faut que je créer la command /vérif avec un nouveau menu gui ?

2ème question:

c'est pas plutôt %loop-value% au lieu de %loom-value% :p ?

Posté(e)

Derien, et pour répondre à tes questions :

 

- Oui il fait que tu fasse un autre menu GUI avec la commande que tu veux (change le /verif en se que tu veux) car je ne sais pas comment faire autrement. Par contre n'oublie pas de faire un "wait 2 tick" avant le "open chest with..." dans le menu de modération si tu fais "to close then run..." quand on clique sur la tête d'un joueur.

 

- Et oui je me suis mal relu c'est %loop-value% !

 

+1 like si je t'ai aidé :)

Posté(e)

Désoler je n'est pas compris :

Par contre n'oublie pas de faire un "wait 2 tick" avant le "open chest with..." dans le menu de modération si tu fais "to close then run..." quand on clique sur la tête d'un joueur.

De plus lorce que je créer la command / verif (Je vais changer le nom plus tard) sa m'ouvre bien un nouveau gui mais quand je click sur ban sa me mais vous ne pouvez pas ban ce joueur.

J'ai pourtant pris un joueur non op et moi je suis op (je pense que sa veut me ban moi donc j'ai du mal faire mon script):

command /list [<int>]:
   trigger:   
       wait 3 ticks
       set {_listpage} to size of {listplayer::*}
       set {_needpage} to 1
       while {_listpage} >= 45:
           remove 44 from {_listpage}
           add 1 to {_needpage}
       if arg <= {_needpage}:
           arg-1 is not 0
           open chest with 6 rows named "&6 Page %arg-1%/%{_needpage}%" to player
           wait 3 ticks   
           if arg-1 >= 2:
               format slot 46 of player with paper named "&e&lPage Précédente" to run [make player execute command "/list %arg - 1%"]
           if arg-1 < {_needpage}:
               format slot 52 of player with empty map named "&e&lPage Suivante" with lore " " to run [make player execute command "/list %arg + 1%"]               
           set {_vartemp::*} to {listplayer::*}
           loop {_needpage} times: #On va loop toutes les pages
               loop {_vartemp::*}:  #On loop les joueurs
                   if size of {_page.%loop-number-1%::*} < 45:
                       add loop-value-2 to {_page.%loop-number-1%::*}
                       remove loop-value-2 from {_vartemp::*}
           set {_slot} to 0
           loop {_page.%arg-1%::*}:
               format slot {_slot} of player with skull of "%loop-value%" parsed as offline player named "&6%loop-value%" with lore "&bSur le serveur depuis &7: &3%{temps.day.%loop-value%}% Jours &3%{temps.hour.%loop-value%}% Heures &3%{temps.min.%loop-value%}% Min %{temps.sec.%loop-value%}% Sec" to run [make player execute command "/verif %loop-value%"]
               add 1 to {_slot}
       else:
           send "&cCette Page n'existe pas."

command /verif:
   trigger:
       wait 3 ticks
       open chest with 1 rows named "&4Action" to player
       wait 3 ticks
       format slot 0 of player with dirt named "&eBan" to run [make player execute command "/ban %player%"]

Posté(e)

Voilà le code normalement sa marche

 

command /verif [<player>]
   trigger:
       if arg 1 isn't set:
           send "Spécifie un joueur"
       else:
           wait 2 tick
           open chest with 1 row named "Verif de %arg 1%
           wait 2 tick
           format slot 0 of player with dirt named "Bannir %arg 1% ?" to close then run [execute player command "/ban %arg 1%"]

 

Ducoup change les noms des Menus et des items comme tu veux avec de la couleur et tout, et dis-moi si y'a des erreurs

Posté(e)

Pour ce qui est des erreurs tu a oublier les ":" a la première ligne (command /verif [<player>]:)

et tu a également oublier de mettre ceci (") après "Verif de %arg 1%.

Et pour ce qui es du jeu sa ne marche pas car il me dise de préciser le nom d'un joueur. or cela devrait ce préciser automatiquement lorsque l'on Click sur la tête d'un joueur.

PS: Merci de m'aider.

Posté(e)

ba il n'y a plus d’erreur puisque je te les ai corriger...

Seul problème c'est que sa ne sélectionne pas le joueur sur lequel je Click dans le menu mais sa c'est parce que le code fournis ne doit pas être le bon ...

 

Et je viens de découvrir que peut importe la tête sur la quelle je clic et bien sa me dit voulez vous ban (pseudo nom pas de la personne sélectionner mais le pseudo de la dernière personne qui c'est connecté sur le serveur).

Posté(e)

function Verif(executor: player, p: player):
   wait 2 ticks
   open chest with 1 rows named "&bActions sur ce joueur" to {_executor}
   wait 2 ticks
   format slot 0 of {_executor} with dirt named "&cBan trop méchant" to close then run [make {_executor} execute "/ban %{_p}%"]
   format slot 4 of {_executor} with skull of {_p} named "&c%{_p}%" to be unstealable


command /list [<int>]:
   trigger:   
       wait 3 ticks
       set {_listpage} to size of {listplayer::*}
       set {_needpage} to 1
       while {_listpage} >= 45:
           remove 44 from {_listpage}
           add 1 to {_needpage}
       if arg <= {_needpage}:
           arg-1 is not 0
           open chest with 6 rows named "&6 Page %arg-1%/%{_needpage}%" to player
           wait 3 ticks   
           if arg-1 >= 2:
               format slot 46 of player with paper named "&e&lPage Précédente" to run [make player execute command "/list %arg - 1%"]
           if arg-1 < {_needpage}:
               format slot 52 of player with empty map named "&e&lPage Suivante" with lore " " to run [make player execute command "/list %arg + 1%"]               
           set {_vartemp::*} to {listplayer::*}
           loop {_needpage} times: #On va loop toutes les pages
               loop {_vartemp::*}:  #On loop les joueurs
                   if size of {_page.%loop-number-1%::*} < 45:
                       add loop-value-2 to {_page.%loop-number-1%::*}
                       remove loop-value-2 from {_vartemp::*}
           set {_slot} to 0
           loop {_page.%arg-1%::*}:
               format slot {_slot} of player with skull of "%loop-value%" parsed as offline player named "&6%loop-value%" with lore "&bSur le serveur depuis &7: &3%{temps.day.%loop-value%}% Jours &3%{temps.hour.%loop-value%}% Heures &3%{temps.min.%loop-value%}% Min %{temps.sec.%loop-value%}% Sec" to close then run [Verif(player, loop-value)]
               add 1 to {_slot}
       else:
           send "&cCette Page n'existe pas."

 

En gros dans la fonction en haut tu fais ton menu qu'il y aura quand tu cliques sur une tête mais tu remplaces celui qui fait la commande (player) par {_executor} et la tête cliquée par {_p}

ça devrait marcher ^^

Posté(e)

Merci de ton skript il n'y a aucune erreur seulement voilà lorsque je click sur un joueur (dans la liste de tout les joueurs du serveur) cela m’affiche toujours la possibilité de ban le joueur comme prévue, mais sa m'affiche enfaîte le pseudo du joueur qui c'est connecté en dernier sur le serveur POUR LA PREMIÈRE FOIS.

 

A tu une idée pourquoi ?

PS : Merci du temps que tu a mis a faire ce skript.

Posté(e)

Justement si, tu renomes les tête avec les noms des joueurs puis:

 

On inventory click:
   Verif (name of event-item, player)

 

Il faut juste mettre la condition pour verifier les nom du gui et je ne l ai pas en tete

Posté(e)

Merci a toi mais si la condition dont tu me parle c'est ça :

On inventory click:
   if player is holding ender chest named "&6Page {_listpage}":
       Verif (name of event-item, player)

et bien sa me mais une erreur :

 

Can't understand this condition/effect: verif (name of event-item, player) (Adtest.sk, line 16: Verif (name of event-item, player)')

Posté(e)

J'ai fait sa et j'ai testé, quand tu fais "/list 1" sa ouvre un gui avec la tête de tous les joueurs connectés, et quand tu clique sur un joueur sa ouvre un gui avec une dirt pour le ban quand tu clique dessus :

 

command /list [<int>]:
   trigger:   
       wait 2 tick
       set {_listpage} to size of {listplayer::*}
       set {_needpage} to 1
       while {_listpage} >= 45:
           remove 44 from {_listpage}
           add 1 to {_needpage}
       if arg <= {_needpage}:
           arg-1 is not 0
           open chest with 6 rows named "&6 Page %arg-1%/%{_needpage}%" to player
           wait 3 ticks   
           if arg-1 >= 2:
               format slot 46 of player with paper named "&e&lPage Précédente" to run [make player execute command "/list %arg - 1%"]
           if arg-1 < {_needpage}:
               format slot 52 of player with empty map named "&e&lPage Suivante" with lore " " to run [make player execute command "/list %arg + 1%"]               
           set {_vartemp::*} to {listplayer::*}
           loop {_needpage} times: #On va loop toutes les pages
               loop {_vartemp::*}:  #On loop les joueurs
                   if size of {_page.%loop-number-1%::*} < 45:
                       add loop-value-2 to {_page.%loop-number-1%::*}
                       remove loop-value-2 from {_vartemp::*}
           set {_slot} to 0
           loop all players:
               format slot {_slot} of player with skull of loop-player named "&6%loop-player%" with lore "&bSur le serveur depuis &7: &3%{temps.day.%loop-player%}% Jours &3%{temps.hour.%loop-player%}% Heures &3%{temps.min.%loop-player%}% Min %{temps.sec.%loop-player%}% Sec" to close then run [make player execute command "/verif %loop-player%"]
               add 1 to {_slot}
       else:
           send "&cCette Page n'existe pas."

command /verif [<player>]:
   trigger:
       if arg 1 isn't set:
           send "&cSpécifie un joueur"
       else:
           wait 2 tick
           open chest with 1 row named "&eVerif de %arg 1%" to player
           wait 2 tick
           format slot 0 of player with dirt named "&6Bannir %arg 1% ?" to close then run [execute player command "/ban %arg 1%"]

  • J'aime 1
Posté(e)

Merci a tous pour vos réponses et pour le temp que vous avez mis pour m'aider.

Et gros merci a toi Tominous pour ton skript très construit et surtout qui MARCHE !

 

Je mais ce sujet en résolu ;)

 

PS : Pour ce qui vont lire ce skript plus tard sacher que au final ce skript ne marchais pas j'ai donc relancer cette discution.

  • J'aime 1
Posté(e)

Mauvaise nouvelle tout ce passait bien avec le skript, et la un autre pote c'est connecté pour test le truc et mtn seul mon pseudo a moi s'affiche sur tout les pseudos (Dans le gui nommer "list page 1 chaque pseudo est bien marquer mais c'est quand je Click ensuite sur n'importe quelle pseudo sa m’en mène dans le nouveau gui pour bannir et c'est la que sa affiche que mon pseudo"). (Personne n'a toucher au skript) alors désoler pour ce faut espoir mais si vous pouvez trouver la solution sa serrait cool svp ?

 

Je re met le skript que j'ai utiliser :

 

command /list [<int>]:
   trigger:  
       wait 2 tick
       set {_listpage} to size of {listplayer::*}
       set {_needpage} to 1
       while {_listpage} >= 45:
           remove 44 from {_listpage}
           add 1 to {_needpage}
       if arg <= {_needpage}:
           arg-1 is not 0
           open chest with 6 rows named "&6 Page %arg-1%/%{_needpage}%" to player
           wait 3 ticks  
           if arg-1 >= 2:
               format slot 46 of player with paper named "&e&lPage Précédente" to run [make player execute command "/list %arg - 1%"]
           if arg-1 < {_needpage}:
               format slot 52 of player with empty map named "&e&lPage Suivante" with lore " " to run [make player execute command "/list %arg + 1%"]              
           set {_vartemp::*} to {listplayer::*}
           loop {_needpage} times: #On va loop toutes les pages
               loop {_vartemp::*}:  #On loop les joueurs
                   if size of {_page.%loop-number-1%::*} < 45:
                       add loop-value-2 to {_page.%loop-number-1%::*}
                       remove loop-value-2 from {_vartemp::*}
           set {_slot} to 0
           loop all players:
               format slot {_slot} of player with skull of loop-value named "&6%loop-value%" with lore "&bSur le serveur depuis &7: &3%{temps.day.%loop-value%}% Jours &3%{temps.hour.%loop-value%}% Heures &3%{temps.min.%loop-value%}% Min %{temps.sec.%loop-value%}% Sec" to close then run [make player execute command "/verif %loop-value%"]
               add 1 to {_slot}
       else:
           send "&cCette Page n'existe pas."

command /verif [<player>]:
   trigger:
       if arg 1 isn't set:
           send "&cSpécifie un joueur"
       else:
           wait 2 tick
           open chest with 1 row named "&eVerif de %arg 1%" to player
           wait 2 tick
           format slot 0 of player with dirt named "&6Bannir %arg 1% ?" to close then run [execute player command "/ban %arg 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.