Aller au contenu
  • 0

Variable de liste


Question

Posté(e)

Bonjour / Bonsoir,

 

J'ai un problème de variable liste. En gros je voudrais que sa envoi un récapitulatif de la partie au joueur qui à gagner qui est dans une liste. Mais quand je veux utiliser la liste pour vérifier le nombre de kills ect...

 

Code :

add 30 to {coins.%{sky.joueurs::*}%}
send "&6+30 coins" to {sky.joueurs::*}
if {sky1.kills.%{sky.joueurs::*}%} is equal to "0":
send "&e===========&bRécapitulatif&e===========" to {sky.joueurs::*}
send "&eKill : &b0" to {sky.joueurs::*}
send "&eParticipation : &b+1" to {sky.joueurs::*}
send "&eVictoire : &b+30" to {sky.joueurs::*}
send "&eTotal gagner : &b31 coins" to {sky.joueurs::*}
send "&e===========&bRécapitulatif&e===========" to {sky.joueurs::*}

 

Erreur :

  A variable's name must not contain any asterisks except at the end after '::' to denote a list variable, e.g. {variable::*} (error in variable {sky.kills.%{sky.joueurs::*}%}) (Sky.sk, line 154: if {sky.kills.%{sky.joueurs::*}%} is equal to "0":')

18 réponses à cette question

Messages recommandés

  • 0
Posté(e)

loop {sky.joueurs::*}
   set {_temp} to loop-value
   add 30 to {coins.%{_temp}%}
send "&6+30 coins" to {sky.joueurs::*}
if {sky1.kills.%{sky.joueurs::*}%} is equal to "0":
   send "&e===========&bRécapitulatif&e===========" to {sky.joueurs::*}
   send "&eKill : &b0" to {sky.joueurs::*}
   send "&eParticipation : &b+1" to {sky.joueurs::*}
   send "&eVictoire : &b+30" to {sky.joueurs::*}
   send "&eTotal gagner : &b31 coins" to {sky.joueurs::*}
   send "&e===========&bRécapitulatif&e===========" to {sky.joueurs::*}

Ça ça marche non? C'est moins opti mais je ne pense que que ce que tu veux soit possible :/ peut etre avec des guillemets...

  • J'aime 1
  • 0
Posté(e)

Le problème c'est qu'une liste prend plusieurs valeurs : par exemple {liste::1} qui vaut 57, {liste::JDM} qui vaut 36, {liste::pSEUDO} qui vaut "Chaîne" etc. Or là tu l'utilises pour nommer une autre variable : du type {variables.%{liste::*}%}. Or comme {liste::*} contient plusieurs choses, Skript ne sait pas quel élément choisir pour nommer ta variable (car il peut choisir donc entre {variables.57}, {variables.36} et {variables.Chaîne} ici). Tu as donc besoin de remplacer le * pour désigner l'élément précis que tu veux utiliser.

 

PS : Quand tu utilises *, c'est quand tu veux utiliser la liste dans son intégralité, comme avec "loop {liste::*}:" ou "if {liste::*} contains 'blabla':"

  • J'aime 1
  • 0
Posté(e)

J'aimerais juste récupérer le joueur de cette variable pour afficher c'est coins en faite en gros je vérifie sur les kills du joueur dans la liste.

  • 0
Posté(e)

En gros quand une partie je vérifie les kills dans la variable {sky.kills.%player%} mais au lieu du %player% je veus reprendre le joueur qui est dans la liste {sky.joueurs::*} pour lui envoyer un message.

  • 0
Posté(e)
Désolé du double poste mais non le if {sky.kills.%loop-value%} is equal to "0": ne marche pas

Je n'ai pas compris; tu veux tester si la variable contien 0 ou si la variable ne contient rien?

  • J'aime 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.