Kwizzy Posté(e) le 7 décembre 2015 Posté(e) le 7 décembre 2015 Bonjour, Qui n'a pas rêver de pouvoir faire comme sur les site et faire une pagination dans un gui ! ? Voici le code expliquer : #-- # Choisissons le nombre de pages, ici le gui fait 54 slots # 52 car 2 slots qui sont réservés à la pagination. #-- options: n_par_page : 52 #-- # Commande de gui avec un nombre pour choisir la page # command /gui [<number>]: trigger: #-- #-- # Ici comme je n’avais pas d'idée pour remplir les variables j'ai fait une boucle pour remplir a i+1 la variable de liste set {_i} to 0 loop 180 times: add {_i} to {_list::*} add 1 to {_i} # #-- #-- # Ici on fait la pagination, on fait en gros la taille de la liste dans mon cas 180/52 arrondi au supérieur. set {_NbPage} to round up size of {_List::*}/{@n_par_page} # #-- #-- # On vérifie si le nombre max de pages dans l'argument si c'est supérieur ou inférieur à 0 alors on a droit à un message if arg-1 is higher than {_NbPage}: message "&cErreur : il n'y a que &61 à &6%{_NbPage}% &cpages !" else if arg-1 <= 0: message "&cErreur : il n'y a que &61 à &6%{_NbPage}% &cpages !" # #-- #-- # Ici nous allons simplement faire du code dans le else->if on set i sur 0, car nous n'avons # pas renseigné de page. Pour le else->else on met arg sur 1, puis -1, car si l'on met /gui 1 # et qu'on fait la commande le chiffre de départ sera 1, or on veut que ce soit 0? Donc 1-1*52 = 0 # chiffre de départ =0. Si l'on met 2, 2-1*52 = 52, donc ça commencera de 53, car ça part de 1 l’index de la liste. # C'est compliqué je vous l'accorde, mais ce sont des algorithmes super importants qu'on utilise de partout. else: if arg-1 is not set: set {_i} to 0 set {_currentpage} to 0 else: set {_arg} to arg-1 set {_currentpage} to arg-1 remove 1 from {_arg} set {_i} to {_arg}*{@n_par_page} # #-- wait 1 ticks open chest with 6 row named "&e>>&6Essaie&e<<" to player set {_n} to 0 # Chiffre pour les slots. set {_max} to size of {_List::*} loop {@n_par_page} times: add 1 to {_i} if {_List::%{_i}%} is set: evaluate "format slot {_n} of player with paper named ""&b%{_List::%{_i}%}%"" to be unstealable" #-- # Partie de la pagination, on regarde la page actuelle on ajoute 1 ou -1 pour le suivant ou précédent. Sauf que si on est sur 0 et qu'on # fait -1 on obtient du caca, j'ai donc fait une vérification pour savoir si la page-1 <= 0. if {_n}+1 = 52: set {_newpage} to {_currentpage}-1 if {_newpage} <= 0: evaluate "format slot 52 of player with red stained glass pane named ""&c> Aucune page précédente"" to be unstealable" else: evaluate "format slot 52 of player with red stained glass pane named ""&b> Page précédente (%{_newpage}%)"" to close then run [make player execute command ""gui %{_newpage}%""]" # # Ici j'ai du regarder si la page est sur 0, sinon ça fais gui 0+1 (gui 1) et du coup ça reste sur la même page... if {_currentpage} = 0: set {_newpage} to {_currentpage}+2 else: set {_newpage} to {_currentpage}+1 evaluate "format slot 53 of player with green stained glass pane named ""&b> Page suivante (%{_newpage}%)"" to close then run [make player execute command ""gui %{_newpage}%""]" # #-- #-- # On regarde si i (correspond à l'index de la liste) est = à la valeur max, si c'est le cas on fais un exit loop. else if {_i} = {_max}: set {_newpage} to {_currentpage}-1 evaluate "format slot 53 of player with red stained glass pane named ""&b> Page précédente (%{_newpage}%)"" to close then run [make player execute command ""gui %{_newpage}%""]" exit loop add 1 to {_n} # #-- Hastebin : http://hastebin.com/epamivorop.vala Un merci à chouyoux pour son code à plat : ICI Si ce tutoriel vous a aidé s'il vous plaît faites un 'J'aime' :D 1
Anarchick Posté(e) le 8 juillet 2016 Posté(e) le 8 juillet 2016 Sert a quoi le "evaluate" ? Ceci répondra à ta question : http://dev.bukkit.org/bukkit-plugins/skript/forum/help/74330-parse-as-skript/ set {_text} to "kill player" Evaluate {_text} # sans le evaluate ton action ne peut pas s’exécuter
angelus76 Posté(e) le 9 juillet 2016 Posté(e) le 9 juillet 2016 Merci de citer la bonne persone par rapport au code que tu partage ^^ La base est de chouyoux oui, mais une partie du code que tu expliqué est de moi ;) Regarde bien le poste en entier ;)
Imperial_Crise Posté(e) le 9 juillet 2016 Posté(e) le 9 juillet 2016 Ah super ! Je l'ai utiliser pour mon skript de... Scoreboard! Vraiment utile
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant