Aller au contenu
  • 0

Assignation auto à une équipe. (RUSH)


Question

Posté(e)

Bonsoir Mesdames et Messieurs,

 

Alors voilà, je vais essayer de vous expliciter mon problème le plus clairement possible pour ne pas y passer cent ans et pour que ce soit plus agréable pour vous.

 

Donc pour commencer, le skript en question, touche au jeux "RUSH".

 

En effet, nous sommes (KevTheCute et moi même) entrain d'en créer un mais le soucis sur le quelle nous sommes bloqué depuis plus de 3 jours est l'assignation automatique à une équipe.

 

Au début nous les laissions choisir leur équipe.

Sauf que l'on c'est vite rendu compte que si aucun d'eux ne choisissez d'équipe, et bien la partie ne débuterait jamais et ils bloqueraient donc un serveur.

 

Nous avons donc cherché sans relâche mais rien n'y fait.

Aucune idée de comment faire ceci...

 

Voici des bouts de code pour vous aider à comprendre.

 

Le on join :

on join:
   add 1 to {co}
   if {team.bleu} = 0:
       set {team.%player%} to "bleu"
       add 1 to {team.bleu}
       make player execute command "team join bleu"
   if {team.bleu} = 1:
       set {team.%player%} to "bleu"
       add 1 to {team.bleu}
       make player execute command "team join bleu"
   if {team.bleu} = 2:
       if {team.rouge} = 0:
           set {team.%player%} to "rouge"
           add 1 to {team.rouge}
           make player execute command "team join rouge"
       if {team.rouge} = 1:
           set {team.%player%} to "rouge"
           add 1 to {team.rouge}
           make player execute command "team join rouge"
   teleport player to {spawn}
   set join message to "&1[&eRUSH&1] &7%player% a rejoind la partie &8(&7%{co}%&8/&7{@MaxCo}&8)"
   send "&1[&eRUSH&1] &eTon chat est en mode team, ajoute un point d'exclamation dans ton message pour parler a tous le monde"
   set slot 0 of player to clock named "&b&lChoisis ton équipe"
   set slot 8 of player to bed named "&cRetour au hub"
   if {co} = 4:
       if {rush.timeon} is false:
           set {rush.info} to true
           set {rush.time} to 31
           set {rush.timeon} to true

 

Les commandes présente dans le on join :

command /team <text> <text>:
   trigger:
       if {rush.start} is false:
           if arg 1 is "join":
               if arg 2 is "bleu":
                   if {team.%player%} = "%arg 2%":
                       send "&1[&eRUSH&1] &eTu est deja dans la team &1%{team.%player%}%"
                       stop
                   if {team.%player%} = "rouge":
                       if {team.bleu} = 2:
                           send "&1[&eRUSH&1] &eéquipe pleine"
                           stop
                       else:
                           add 1 to {team.bleu}
                           subtract 1 from {team.rouge}
                           set {team.%player%} to "bleu"
                           send "&1[&eRUSH&1] &eTu as quitté l'équipe &4ROUGE&e pour rejoindre l'équipe &1BLEU"
                           make console execute command "rtv"
                           stop
                   if {team.%player%} = "none":
                       if {team.bleu} = 2:
                           send "&1[&eRUSH&1] &eéquipe pleine"
                           stop
                       else:
                           set {team.%player%} to "bleu"
                           subtract 1 from {team.none}
                           send "&1[&eRUSH&1] &eTu as rejoind l'équipe &1BLEU"
                           add 1 to {team.bleu}
                           make console execute command "rtv"
                           stop
               if arg 2 is "rouge":
                   if {team.%player%} = "%arg 2%":
                       send "&1[&eRUSH&1] &eTu est deja dans la team &4%{team.%player%}%"
                       stop
                   if {team.%player%} = "bleu":
                       if {team.rouge} = 2:
                           send "&1[&eRUSH&1] &eéquipe pleine"
                           stop
                       else:
                           set {team.%player%} to "rouge"
                           add 1 to {team.rouge}
                           subtract 1 from {team.bleu}
                           send "&1[&eRUSH&1] &eTu as quitté l'équipe &1BLEU&e pour rejoindre l'équipe &4ROUGE"
                           make console execute command "rtv"
                           stop
                   if {team.%player%} = "none":
                       if {team.rouge} = 2:
                           send "9[&6RUSH&9] &eéquipe pleine"
                           stop
                       else:
                           set {team.%player%} to "rouge"
                           add 1 to {team.rouge}
                           subtract 1 from {team.none}
                           send "&1[&eRUSH&1] &eTu as rejoind l'équipe &4ROUGE"
                           make console execute command "rtv"
                           stop
               stop
           if arg 1 is "quit":
               set {team.%player%} to "none"
               send "&1[&eRUSH&1] &eTu n'est plus dans une équipe"
               stop

 

Vous remarquerez qu'il y a aussi une team "none", la raison ? Nous avons essayé de les mettre direct dans l'équipe none et de les assigner par la suite. Mais toujours rien...

J'ai laisser volontairement la commande avec la team "none" pour que vous puissiez avoir des idées en plus si jamais vous savez faire.

 

 

En revanche, en passant par le menu de base :

on rightclick with a clock:
   if name of player's tool is "&b&lChoisis ton équipe":
       open chest with 1 rows named "&b&lChoisis ton équipe" to player
       wait 1 tick
       format slot 2 of player with 1 blue wool named "&1équipe bleu" to close then run [make player execute command "team join bleu"]
       format slot 6 of player with 1 red wool named "&4équipe rouge" to close then run [make player execute command "team join rouge"]
       stop

Et bien ça fonctionne....

 

Bref aucune idée de comment faire :s.

 

Si vous savez comment faire, mettez nous la puce à l'oreil ou bien codé le bout de code qu'il nous faut.

Sinon, donnez nous les indices et nous essayerons de notre côté.

 

Merci d'avance de votre réponse.

 

Amicalement,

Spido'

16 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Salut, pourquoi pas essayé avec un truc dans ce style :

set {_random} to a random number between 1 and 2

puis :

if {_random.%player%} is  1:
player execute command "/team join bleu

et

if {_random.%player%} is  2:
player execute command "/team join rouge

Je pense qu'avec un principe dans le genre ça devrait fonctionner.

Cordialement, chronoos89.

  • 0
Posté(e)
Salut, pourquoi pas essayé avec un truc dans ce style :

set {_random} to a random number between 1 and 2

puis :

if {_random.%player%} is  1:
player execute command "/team join bleu

et

if {_random.%player%} is  2:
player execute command "/team join rouge

Je pense qu'avec un principe dans le genre ça devrait fonctionner.

Cordialement, chronoos89.

 

Tout d'abord, merci.

 

Le soucis avec ce code, c'est que c'est aléatoire :( Donc ils peuvent se retrouver à 3 dans l'équipe rouge ou bleue et 1 dans l'autre équipe.

 

Il faudrait que ce soit équilibré :(

 

2 dans chaque équipe sachant que c'est 4 joueurs max par serveur ;)

 

Merci.

 

Amicalement,

Spido'

  • 0
Posté(e)

set {_random} to a random number between 1 and 2:
if {_random} is 1:
loop players:
  	 if {team.%loop-player%} is set:
 	 {team.%loop-player%} is "bleu"
  	 add 1 to {_count}
if {_count} is smaller than 2:
	player execute command "/team join bleu
else:	
loop players:
  	 if {team.%loop-player%} is set:
 	 {team.%loop-player%} is "rouge"
  	 add 1 to {_count1}
if {_count1} is smaller than 2:
	player execute command "/team join bleu
else:
	message "Il y a plus d'equipe libre"
	stop

if {_random} is 2:
loop players:
  	 if {team.%loop-player%} is set:
 	 {team.%loop-player%} is "rouge"
  	 add 1 to {_count1}
if {_count1} is smaller than 2:
	player execute command "/team join bleu
else:	
loop players:
  	 if {team.%loop-player%} is set:
 	 {team.%loop-player%} is "bleu"
  	 add 1 to {_count}
if {_count} is smaller than 2:
	player execute command "/team join bleu
else:
	message "Il y a plus d'equipe libre"
	stop


 

 

Je l'ai fait à la vite fait sur tel donc désolé c'est pas propre, mais je pense que tu as compris le systeme ^^

  • 0
Posté(e)

Pas tout compris mais je pense avoir compris la base de ton système @OnixT .

Je test ça demain avec toute l'équipe.

Merci à toi.

 

@Chronoos89 j'avais déjà essayé mais impossible de trouver comment faire xD. Je test la solution d' @OnixT et je reviens vers vous demain.

 

 

Merci à vous deux.

 

Amicalement,

Spido'.

  • 0
Posté(e)

Hum, tu créer une list qui est incrémenté en fonction des joueurs qui sont dans la partie et ensuite tu vérifie :

if size of {players.rush::*} = 1:
   player execute command "/team join rouge"
elseif size of {players.rush::*} = 2:
   player execute command "/team join bleu"
elseif size of {players.rush::*} = 3:
   player execute command "/team join rouge"
elseif size of {players.rush::*} = 4:
   player execute command "/team join bleu"

Pour la vérification de la taille de la list je suis pas trop sûr mais c'est un truc dans le genre.

  • 0
Posté(e)

Ah pas con !

J'ai deux astuces à tester désormais.

Merci gros.

 

Passe sur ts quand tu peux stp.

Je souhaiterais te parler (@Chronoos89 )

 

Amicalement,

Spido'

  • 0
Posté(e)
Hum, tu créer une list qui est incrémenté en fonction des joueurs qui sont dans la partie et ensuite tu vérifie :

if size of {players.rush::*} = 1:
   player execute command "/team join rouge"
elseif size of {players.rush::*} = 2:
   player execute command "/team join bleu"
elseif size of {players.rush::*} = 3:
   player execute command "/team join rouge"
elseif size of {players.rush::*} = 4:
   player execute command "/team join bleu"

Pour la vérification de la taille de la list je suis pas trop sûr mais c'est un truc dans le genre.

 

Prend cette astuce, j'y ai pas pensé sur le coup ! ^^ Bien joué, tu m'as devencé :(

  • 0
Posté(e)

pas le temps d'ecrire le code ce soir (je l'ecris si tu veux demain mais pas avant 20H) mais sinon l'idée est :

- quand je joueur arrive tu lui fait tirer un nombre random

- si nb de player dans la team tiré est < a ceux de l'autre team pas de soucis sinon il va dans l autre team

  • 0
Posté(e)

Salut Mat,

 

Je n'ai pas compris,

Je veux bien pour le code, peu importe l'heure demain.

 

Je te répondrai dans la minute qui suis.

 

Merci d'avance car nous avons vraiment du mal sur ça.

 

 

Amicalement,

Spidoka.

  • 0
Posté(e)

on join:
   set {_rand} to a random number between 1 and 2:
   if {_rand} is = 1:
       if {nb.player.rouge} < {nb.player.bleu}:
           /* player va dans la team rouge */
           nb.player.rouge + 1
       else
           /* player va dans la team bleu */
           nb.player.bleu + 1
   else {_rand} is = 2:   
       if {nb.player.bleu} < {nb.player.rouge}:
           /* player va dans la team bleu */
           nb.player.bleu + 1
       else
           /* player va dans la team rouge */
           nb.player.rouge + 1

 

c'est juste une idée a développer bien sur;)

  • 0
Posté(e)

Ah oui, ok j'ai compris ;).

 

Je test ça demain midi après ma conduite.

 

Merci encore Mat.

A la prochaine sur ts. Pk pas demain apprem ? ;)

 

Amicalement,

Spido'

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