Invité Posté(e) le 4 mai 2016 Posté(e) le 4 mai 2016 Bonjour, J'ai reproduis le plugin de Azenet : Switch The Patrick, en skript. Mais maintenant après avoir assigné aux joueurs leurs teams Exemple: set {team.%player%} to "red" Il y a 7 teams différents et j'aimerais que l'on m'explique comment prendre une personne random de la team rouge par exemple, étant donné qu'il y aurait 3-4 personnes qui aurait le team.%player% assigné au "red". Donc comment prendre une personne random dans cette team ?
Soufreur78 Posté(e) le 4 mai 2016 Posté(e) le 4 mai 2016 Il faut mettre le nom des joueurs de la teams dans une variable list Pour la team rouge {teams::red::*} , tu dois ajouter le nom de la personne comme ceci : "add player's name to {teams::red::*}" Après pour prendre un joueur aléatoire tu fait "set {_random} to a random element out of {teams::red::*}"
Invité Posté(e) le 4 mai 2016 Posté(e) le 4 mai 2016 Merci beaucoup pour cette réponse, il me reste cependant un problème. Je définis les teams des joueurs grâce à des commandes avec le code ci-dessous. Comment retirer la personne de toutes les teams puis de la mettre dans la team assigné par la commande ? Et comment tester si une personne est dans la list rouge par exemple ? command /swt <player> <text>: usage: /swt <joueur> <team> description: Permet d'ajouter un joueur à une team définis trigger: if arg 2 is "red": set {team.%arg 1%} to "red" send "{@logo} &cTu as été mis dans l'equipe &c&lRouge" to arg 1 set arg 1 tab name to "&c%arg 1%" set arg 1's display name to "&c%arg 1%" make console execute command "/nte prefix %arg 1% &c" if arg 2 is "blue": set {team.%arg 1%} to "blue" send "{@logo} &9Tu as été mis dans l'equipe &9&lBleue" to arg 1 set arg 1 tab name to "&9%arg 1%" set arg 1's display name to "&9%arg 1%" make console execute command "/nte prefix %arg 1% &9" if arg 2 is "green": set {team.%arg 1%} to "green" send "{@logo} &aTu as été mis dans l'equipe &a&lVerte" to arg 1 set arg 1 tab name to "&a%arg 1%" set arg 1's display name to "&a%arg 1%" make console execute command "/nte prefix %arg 1% &a" if arg 2 is "purple": set {team.%arg 1%} to "purple" send "{@logo} &dTu as été mis dans l'equipe &d&lViolette" to arg 1 set arg 1 tab name to "&d%arg 1%" set arg 1's display name to "&d%arg 1%" make console execute command "/nte prefix %arg 1% &d" if arg 2 is "yellow": set {team.%arg 1%} to "yellow" send "{@logo} &eTu as été mis dans l'equipe &e&lJaune" to arg 1 set arg 1 tab name to "&e%arg 1%" set arg 1's display name to "&e%arg 1%" make console execute command "/nte prefix %arg 1% &e" if arg 2 is "gray": set {team.%arg 1%} to "gray" send "{@logo} &8Tu as été mis dans l'equipe &8&lGrise" to arg 1 set arg 1 tab name to "&8%arg 1%" set arg 1's display name to "&8%arg 1%" make console execute command "/nte prefix %arg 1% &8" if arg 2 is "cyan": set {team.%arg 1%} to "cyan" send "{@logo} &bTu as été mis dans l'equipe &b&lCyan" to arg 1 set arg 1 tab name to "&b%arg 1%" set arg 1's display name to "&b%arg 1%" make console execute command "/nte prefix %arg 1% &b"
Soufreur78 Posté(e) le 4 mai 2016 Posté(e) le 4 mai 2016 remove player's name from {teams::*} Il va être enlevé de toute les teams
_MinecraftHero_ Posté(e) le 4 mai 2016 Posté(e) le 4 mai 2016 Voilà ce que tu peux faire : if arg 2 is "red": if {team.red::*} contains "%arg 1%": send "{@logo} &cTu es déjà dans cette équipe" to arg 1 else: add name of player to {team.red::*} remove name of player from {team.blue::*} remove name of player from {team.green::*} # Etc # set {team.%arg 1%} to "red" send "{@logo} &cTu as été mis dans l'equipe &c&lRouge" to arg 1 set arg 1 tab name to "&c%arg 1%" set arg 1's display name to "&c%arg 1%" make console execute command "/nte prefix %arg 1% &c" Cependant, pour éviter de mettre 6 fois le "remove name of player from" tu pourrais ajoiter dans une variable la couleur de chaque équipe et faire ensuite : loop {team.couleurs::*}: remove name of player from {team.%loop-value%::*}
Soufreur78 Posté(e) le 4 mai 2016 Posté(e) le 4 mai 2016 Voilà ce que tu peux faire : if arg 2 is "red": if {team.red::*} contains "%arg 1%": send "{@logo} &cTu es déjà dans cette équipe" to arg 1 else: add name of player to {team.red::*} remove name of player from {team.blue::*} remove name of player from {team.green::*} # Etc # set {team.%arg 1%} to "red" send "{@logo} &cTu as été mis dans l'equipe &c&lRouge" to arg 1 set arg 1 tab name to "&c%arg 1%" set arg 1's display name to "&c%arg 1%" make console execute command "/nte prefix %arg 1% &c" Cependant, pour éviter de mettre 6 fois le "remove name of player from" tu pourrais ajoiter dans une variable la couleur de chaque équipe et faire ensuite : loop {team.couleurs::*}: remove name of player from {team.%loop-value%::*} Cc hero :p, Bah il a juste à faire un "remove player's name from {teams::*}" {teams::*} comprend {teams::red::*},{teams::blue::*},{teams::green::*},{teams::eek:range::*}
_MinecraftHero_ Posté(e) le 4 mai 2016 Posté(e) le 4 mai 2016 Salut, et oui effectivement, c'est aussi faisable comme ça ;)
Invité Posté(e) le 4 mai 2016 Posté(e) le 4 mai 2016 Donc après avoir fait plusieurs test je n'arrive toujours pas à faire fonctionner ceci. Je met la personne dans la liste grace à la commande swt puis switch mais quand je fais /switch étant donné que je suis seul sur le serveur donc seul dans la liste ca ne me fait pas exécuter la commande /help. J'ai bien différencier les variables team et teams ;) command /switch: trigger: set {_random} to a random element out of {teams::red::*} make {_random} execute command "/help" command /swt <player> <text>: usage: /swt <joueur> <team> description: Permet d'ajouter un joueur à une team définis trigger: if arg 2 is "red": set {team.%arg 1%} to "red" remove arg 1's name from {teams::*} add arg 1's name to {teams::red::*} send "{@logo} &cTu as été mis dans l'equipe &c&lRouge" to arg 1 set arg 1 tab name to "&c%arg 1%" set arg 1's display name to "&c%arg 1%" make console execute command "/nte prefix %arg 1% &c"
Soufreur78 Posté(e) le 5 mai 2016 Posté(e) le 5 mai 2016 Essai de mettr "{_random} parsed as player" pour bien indiquer que ta variable contient le nom d'un joueur
Invité Posté(e) le 5 mai 2016 Posté(e) le 5 mai 2016 Pourriez vous spécifier car j'ai essayer de le mettre comme ceci : set {_random} to a random element out of {teams::red::*} parsed as player Et au final ca me dit un Internal Error etc.. Et quand je l'ajoute ici add arg 1's name to {teams::red::*} parsed as player Ca me dit "parsed as player" can accept a single text
Soufreur78 Posté(e) le 6 mai 2016 Posté(e) le 6 mai 2016 Comme ceci : make {_random} parsed as player execute command "/help"
Invité Posté(e) le 6 mai 2016 Posté(e) le 6 mai 2016 Merci beaucoup ça marche je vais pouvoir finir mon switch je vous tien au courant si c'est bon
Messages recommandés