Aller au contenu
  • 0

Aide : Variable(s) de liste de joueur


Question

Posté(e)

Bonjour à tous !

Je code maintenant sous skript depuis presque un an, et j'ai codé beaucoup de mini-jeux, mais un problème me glisse entre les main depuis le debut.

 

En effet, quand on créer un mini-jeux (CTF, skywars...) il faut pouvoir stocker et additionner les joueurs qui sont sur une map. Quand un joueur join une map, ce n'est pas difficile de l'ajouter à une variable, qu'elle soit seul ({variable.truc} ou bien pour un groupe {variable.truc::*}), mais le problème est présent lorsque le joueur meurt ! Pour ajouter je m'y prend de la facon suivante :

#Imaginons que l'on rentre par une commande et que arg 1 soit un nom d'arène.
command /join [<text>]:
   trigger:
       if arg 1 is set:
           add player to {variable.truc.%arg 1%::*}
           #ou bien
           add 1 to {variable.count.player.%arg 1%}

 

et jusque là ca va mais pour enlever le joueur a la variable ou au groupe de variable c'est plus compliqué vu que il faut que il y est le nom de l'arène en question dans le nom des variables. J'ai bien essayé de stocker la valeur de l'arg 1 dans une autre variable et de remplacer les "%arg 1%" par cette autre variable mais sans succès.

 

Parce que l'un des objectifs de ceci est de pouvoir afficher le nombre de joueurs dans une partie sur un panneau, ca je sais faire mais faut il encore que ce nombre puisse évoluer en augmentant et en diminuant sa valeur au join ou a la mort d'un joueur.

 

Savoir gerer et coder une liste de joueur comme celle-ci résoudrai beaucoup de problèmes et optimiserai de façon considérable les codes. Enfin bref vous avez ma problématique, si vous avez des questions ou si je n'ai pas été assez clair surtout dites le moi ^^

 

Merci à vous,

 

Cordialement,

 

AlexFatta

16 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Essaye ça :

command /join [<player>]:
   trigger:
       if player-arg is set:
           add player to {variable.truc::*}
           add 1 to {variable.count.player}

  • 0
Posté(e)

Merci ^^ mais pour faire les join dans des parties j'ai pas de problème mais en revanche quand le joueur meurt, je ne sais pas comment l'enlever de/des variables.

 

J'attends ta réponse,

 

Merci à toi,

 

AlexFatta

  • 0
Posté(e)

Parce que je veux en fait avoir 1 seul groupe de variable ou 1 seule variable simple PAR map a savoir que j'ai l projet d'en faire avec des noms différents bien sûr. En tout les cas ajouter le joueur à une variable en particulier c'est compliqué mais l'enlever avec le nom de l'arène dedans c'est plus dur. Voilà mon problème ^^

  • 0
Posté(e)

{arene.%arg-2%} = nom de l'arene que le joueur rejoint ou quitte ;

Pense à set la variable {arene.%ton arg%} to true quand tu créer ton arène

command /join [<player>] [<text>]:
   trigger:
       if argument 1 is set:
           if argument 2 is set:
               if {arene.%arg-2} is set:
                   add player to {variable.truc.%arg-2%::*}
                   add 1 to {variable.count.player.%arg-2%}
               else:
                   message "&cErreur : l'arène &8'&7%arg-2%&8' n'existe pas."
           else:
               message "&8>&7 Utilisation&8 : &c/join <joueur> <arène>"
       else:
           message "&8>&7 Utilisation&8 : &c/join <joueur> <arène>"

Je te fais le code pour enlever le joueur de la variable dans 20 minutes.

  • 0
Posté(e)

Oui jusque là ca va aussi mais comme il faut le l'arène dans la variable ou dans le group de variable, c'est un problème !! Ce qui aurait été bien, c'est que skript detecte dans quelle variable est le joueur et l'enlève de celle-ci mais ca ne marche pas.

if player is in {variable.truc.%arène%}:
   remove player from {variable.truc.%arène%}

#Ou bien

if player is in {variable.truc.%arène%::*}:
   remove player from {variable.truc.%arène%::*}

#Ou encore

if player is in {variable.truc::%arène%}:
   remove player from {variable.truc::%arène%}

 

Skript ne détecte aucun joueur dans aucune de ces situations, quand je lui demande l'affichage de la variable entre %%, il me met <none> alors que je suis censé être dedans.

 

Et pour le remove du joueur du coup il détecte pas le joueur dedans donc forcement il n’exécute pas le remove du joueur.

 

Donc le problème est de pouvoir remplacer le %arène% par le nom de l'arène dans laquelle est le joueur et de faire en sorte que skript puisse enlever 1 joueur en question (ici qui meurt) de la variable.

 

Cordialement,

 

AlexFatta

  • 0
Posté(e)

J'avais pas vu ton message CleMx. Alors pour mettre la variable sur true j'ai fais une commande "unlock" avec un arg 1 qui fait set {variable.truc.%arg 1%} to true + un message de confirmation. Je te remercie pour ton code j'attends celui pour remove le joueur, j'incorpore, je test et je te tient au jus ;)

 

Merci,

 

Cordialement,

 

AlexFatta

  • 0
Posté(e)

if {variable.truc.%arène%} contains %player%:
           remove player from {variable.truc.%arène%}

Je sais pas si c'est le code exact mais sa te donne une idée de comment faire.

  • 0
Posté(e)

Ok !! Ca marche @besuper donc je vais l'incorporer au code final et faire un test dans le code en lui même. Je ne passe pas en résolu si jamais cela ne marche pas au final. Auriez vous cependant une idée de comment mettre un mot ou un nom d'arène dans une variable c'est à dire par exemple mettre le mot "Arène1" dans la variable {arene.list.%player%} et de facon a pouvoir remplacer le %arène% dans {variable.truc.%arène%} par cette variable qui contiendrai le nom de l'arène. Je ne sais pas si c'est possible je ne pense pas mais je préfère demander ;)

 

Bien à vous,

 

Cordialement,

 

AlexFatta

  • 0
Posté(e)

Alors j'espère que sa a marché dans le code global et pour ajouter Arène1 dans la variable et la modifier je sais pas du tout créer plus tot la list {arene.list.%arene%::%player%}

  • 0
Posté(e)
Ok !! Ca marche @besuper donc je vais l'incorporer au code final et faire un test dans le code en lui même. Je ne passe pas en résolu si jamais cela ne marche pas au final. Auriez vous cependant une idée de comment mettre un mot ou un nom d'arène dans une variable c'est à dire par exemple mettre le mot "Arène1" dans la variable {arene.list.%player%} et de facon a pouvoir remplacer le %arène% dans {variable.truc.%arène%} par cette variable qui contiendrai le nom de l'arène. Je ne sais pas si c'est possible je ne pense pas mais je préfère demander ;)

 

Bien à vous,

 

Cordialement,

 

AlexFatta

La prochaine fois mets en résolu s'il te plaît.

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