Aller au contenu
MisterTommy

[Menu] Skript de menu avec des loop-value

Messages recommandés

Bonjour/bonsoir,

 

Je me permet de poster sur ce forum afin d'avoir une aide à un problème dont je ne trouve pas la solution. Mon problème est le suivant :

Je souhaite créer une menu avec SkQuery qui permet d'afficher la liste exhaustive des guildes qu'il y a sur mon serveur. Lorsque le joueur clique sur la guilde en question il a la possibilité de la rejoindre. Je m'y prends donc comme suit (en supposant ici que le nombre de guildes ne dépasse pas 54...)

 

  1. set {_count} to 0
  2. open chest with 6 rows named "&6Liste des guildes" to player
  3. loop {guilde.list::*}:

format slot {_count} of player with {banner.%loop-value%} named "&eGuilde : &6%loop-value%" with lore "blablabla" to close then run [run player command "/guilde join %loop-value%" as op]

add 1 to {_count}

Bon, le code semble bon à première vue. Sauf qu'arrivé à la fin de la loop, la valeur de %loop-value% prend pour valeur la dernière valeur de la variable-liste {guilde.list::*}, ce qui fait que si le joueur clique sur la première guilde au slot 0 du menu par exemple, il rejoint en fait la dernière guilde de la liste car %loop-value% a pris cette valeur à la toute fin de la loop !

C'est donc problématique ! Je me tourne vers vous dans le cas où vous auriez une solution où si vous auriez déjà eu ce problème !

 

Merci par avance !

 

MisterTommy

 

PS : Version de Skript : 2.2-dev31c | Version du serveur : 1.11

Partager ce message


Lien à poster
Partager sur d’autres sites

Théoriquement ce n'est pas un bug !

C'est le lambda qui n'est pas codé pour fonctionner de cette façon car quand on utilise un lambda dans un GUI skQuerry celui-ci s'execute que lors du clic sur l'item et n'est pas enregistré lors du formatage de l'item.

 

Donc remplacer close then run [run player command "/guilde join %loop-value%" as op]

par to close then run "guild join %loop-value%" devrait marcher (enfin ça marche pour moi en tout cas)

CEPENDANT , cette commande sera exécuté par la console et non par le joueur, ce qui n'est pas censé être un problème pour les commandes de type "/cmd <player>" où le joueur spécifié est un argmument de la commande.

Pour palier à ce problème j'utilise un système de "/sudo <player> /cmd ..." qui exécute la commande en tant que op

 

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Partager ce message


Lien à poster
Partager sur d’autres sites

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