Aller au contenu

Système de Switch | Random


Messages recommandés

Posté(e)

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 ?

Posté(e)

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::*}"

Posté(e)

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"

Posté(e)

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%::*}

Posté(e)
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::*}

Posté(e)

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"

Posté(e)

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

Posté(e)

Merci beaucoup ça marche je vais pouvoir finir mon switch je vous tien au courant si c'est bon

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