Bonjour à tous, voici mon 2ème tutoriel, certes court, mais qui permettra de raccourcir le code de certains utilisateurs de GUI.
I. Ce qui est requis
- Une bonne connaissance du Skript, pour la compréhension du code.
- Un skript incluant un GUI.
- L'addon skQuery 3 en plus de Skript, et d'autres selon votre code.
II. Les modèles et cas d'application
Dans ce tutoriel, nous verrons 1 méthode d'applications de ces loop-number (proposez d'autres cas d'applications en commentaire!)
Il faut savoir que, personnellement, les loop-number sont juste un moyen de raccourcir un peu le code, et d'avoir aussi un code plus "clair" et plus "simple"
III. Commençons!
Voici une image du résultat voulu:
Et ici son code:
command /gadgets:
trigger:
wait 0.5 ticks
open chest with 3 rows named "<gold><bold>Gadgets" to player
wait 1 tick
format slot 0 of player with light green stained glass pane named "." to close
format slot 1 of player with light green stained glass pane named "." to close
format slot 2 of player with light green stained glass pane named "." to close
format slot 3 of player with light green stained glass pane named "." to close
format slot 4 of player with light green stained glass pane named "." to close
format slot 5 of player with light green stained glass pane named "." to close
format slot 6 of player with light green stained glass pane named "." to close
format slot 7 of player with light green stained glass pane named "." to close
format slot 8 of player with light green stained glass pane named "." to close
format slot 9 of player with light green stained glass pane named "." to close
format slot 17 of player with light green stained glass pane named "." to close
format slot 18 of player with light green stained glass pane named "." to close
format slot 19 of player with light green stained glass pane named "." to close
format slot 20 of player with light green stained glass pane named "." to close
format slot 21 of player with light green stained glass pane named "." to close
format slot 22 of player with light green stained glass pane named "." to close
format slot 23 of player with light green stained glass pane named "." to close
format slot 24 of player with light green stained glass pane named "." to close
format slot 25 of player with light green stained glass pane named "." to close
format slot 26 of player with light green stained glass pane named "." to close
format slot 10 of player with feather named "&3Gadget : &bFlyer" with lore "&bTu peux voler plus haut que les oiseaux !" to close then run [make player execute command "/givegadgets plume"]
format slot 12 of player with firework rocket named "&3Gadget : &bFireworker" with lore "&bAccroché à un feu d'artifice, tu t'amuse !" to close then run [make player execute command "/givegadgets firework"]
format slot 14 of player with snowball named "&3Gadget : &bIceRunner" with lore "&bCréé tes ponts en glace grâce à une boule de neige !" to close then run [make player execute command "/givegadgets icerunner"]
format slot 16 of player with snow named "&3Gadget : &bSnowRoad" with lore "&bTu dépose de la neige en dessous de toi !" to close then run [make player execute command "/givegadgets snowtoggle"]
Voici le résultat en le compressant par la méthode du loop-number:
command /gadgets:
trigger:
wait 0.5 ticks
open chest with 3 rows named "<gold><bold>Gadgets" to player
wait 1 tick
format slot 0 of player with light green stained glass pane named "." to close
loop 26 times:
if loop-number <= 9:
format slot loop-number of player with light green stained glass pane named "." to close
if loop-number >= 17:
format slot loop-number of player with light green stained glass pane named "." to close
format slot 10 of player with feather named "&3Gadget : &bFlyer" with lore "&bTu peux voler plus haut que les oiseaux !" to close then run [make player execute command "/givegadgets plume"]
format slot 12 of player with firework rocket named "&3Gadget : &bFireworker" with lore "&bAccroché à un feu d'artifice, tu t'amuse !" to close then run [make player execute command "/givegadgets firework"]
format slot 14 of player with snowball named "&3Gadget : &bIceRunner" with lore "&bCréé tes ponts en glace grâce à une boule de neige !" to close then run [make player execute command "/givegadgets icerunner"]
format slot 16 of player with snow named "&3Gadget : &bSnowRoad" with lore "&bTu dépose de la neige en dessous de toi !" to close then run [make player execute command "/givegadgets snowtoggle"]
Vous n'avez pas compris? Normal, en fait, on commence par loop 26 fois soit le nombre de slots du GUI au total:
loop 26 times:
Donc, à ce moment là, skript va commencer par définir le loop-number à 1, exécuter le code, redéfinir le loop-number à 2 et ré-exécuter le code autant de fois que inscrit.
Nous, nous mettons un condition:
if loop-number <= 9:
En gros, si le loop-number est plus petit (<) ou égal à 9, on execute le code qui suit soit:
format slot loop-number of player with light green stained glass pane named "." to close
Ce code, une fois exécuté avec un loop-number inférieur ou égale à 9, va définir les slots de la 1er ligne et le 1er slot de la 2ème ligne en une vitre de couleur verte. Pourquoi cette condition? Tout simplement car dans le cas contraire on aurai un GUI remplit de vitre...
Puis nous re-faisons le même code, mais cette fois si pour la ligne du bas, donc on inverse le signe (<= en >=):
loop 26 times:
if loop-number >= 17:
format slot loop-number of player with light green stained glass pane named "." to close
Ici, si le loop-number est supérieur ou égal à 17 soit le dernier slot de la 2ème ligne du GUI, on mets une vitre verte.
Et voilà! Vous avez le même résultat mais avec un code beaucoup plus court!
C'est tout ce que j'ai comme idée à propos des loop-number, n'hésitez pas à donner vos idées dans les commentaires!