Testfor qu'une seule équipe dans une zone

yodadu34

Rien, le Néant ...
17 Mars 2016
27
1
16
je ne peux pas faire de screen aujourd'hui dsl

mais c'est parce que je ne peux pas savoir quelle équipe seront dans l'arène à la fin donc je mets plusieurs testfort (par exemple si l'équipe rouge gagne, je mets une commande bloc avec : /title @a title {"text":"les bleus gagnent !"} mais ce n'est pas forcément les bleus, ça peut être les verts ou les violets donc il faut que je mette plusieurs testfort et donc ça fait ça
 
Dernière édition par un modérateur:

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Bon, je reprend le sujet !
mais c'est parce que je ne peux pas savoir quelle équipe seront dans l'arène à la fin donc je mets plusieurs testfort (par exemple si l'équipe rouge gagne, je mets une commande bloc avec : /title @a title {"text":"les bleus gagnent !"} mais ce n'est pas forcément les bleus, ça peut être les verts ou les violets donc il faut que je mette plusieurs testfort et donc ça fait ça
Si j'ai bien compris ton problème : Tu as une arène dans laquelle se battent plusieurs équipes, tu veux savoir, à la fin, quelle est l'équipe qui a gagné, soit la dernière en vie.

Je te propose donc ce système, relativement similaire à celui que proposait Gleanight :

tp24jtq.jpg


Prenons, dans ce cas là, une arène cubique où l'équipe rouge et verte se combattent, cette arène se trouve dans un espace en 3 dimensions, avec pour axe X, Y, Z.
Voici le détail du système :

Dans les deux command blocks violets (mis en mode "repeat" et "always active"), nous pouvons trouver cette commande :

Code:
/testfor @e[x=-453,y=55,z=465,dx=4,dy=3,dz=2,team=!Verte]
et
Code:
/testfor @e[x=-453,y=55,z=465,dx=4,dy=3,dz=2,team=!Rouge]

Pour comprendre cette commande, voici mon arène de fortune :

C2PddWM.jpg


Elle est délimitée par l'éponge et le bloc de laine gris. Pour savoir où placer les coordonnées x, y, z, regarde mon curseur : il est partagé en trois traits représentant les trois axes, dirigé vers le côté positif de chacun d'entre eux. Tu remarqueras que mon bloc d'éponge est l'angle se trouvant à l'intersection des trois axes, les coordonnées doivent donc correspondre à l'angle étant le plus en négatif sur les trois axes.
dy, dy, dz sont les prolongement en x, y et z de ma zone de détection : Ici, mon arène fait 5*4*3, je retire donc 1 à chacun des nombres (on ne compte pas le bloc d'où part la détection) ce qui me donne 4, 3 et 2.
Dans team, comme le disais Gleanight, tu mets un point d'exclamation devant le nom de ton équipe pour que, ton inverseur s'active lorsque l'équipe est seule dans l'arène.

Ensuite, un comparateur suivi d'un inverseur conduisant à deux autres command blocks :
Ils contiennent simplement l'annonce de l'équipe gagnante puis la téléportation dans la grande arène.

Voilà ! Rien de bien compliqué, tu as juste à reproduire ce petit système pour chacune de tes arènes en modifiant bien sûr ton testfor !
En espérant t'avoir aidé, n'hésite pas si tu as des questions ;)

@Gleanight
Le point d'interrogation "!" avant le "vert" fera en sorte que la commande détecte si il y a une team AUTRE que la team verte.
Oh ! Une petite erreur dans ce point, il est d'exclamation !! :p
 
Dernière édition:
  • J'aime
Reactions: Gleanight

yodadu34

Rien, le Néant ...
17 Mars 2016
27
1
16
Merci beaucoup mais finalement j'avais déjà trouvé comment faire

---

"l'annonce de l'équipe gagnante puis la téléportation dans la grande arène."

Donc maintenant j'ai une autre problème :
quand l'équipe gagnante de chaque arène (vert/violet et rouge/bleu) est téléportée, il doive faire tomber l'autre équipe de l'arène (c'est de spleef!) et quand une équipe gagne j'aimerai que ça leur mette un message ( /tellraw @a {"text":"l'équipe ** gagne !","color":"Green"} ) mais je ne sais pas c'est quelle équipe qui va gagner (qu'elle équipe qui a gagné dans les arènes d'avant (une arène pour les verts/violets et une pour les rouges bleus) et qui ont été téléporter dans la grande arène finale)
Voilà
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Passe par des scoreboard ! En sortie des command blocks précédents, tu attribues 1 au score des équipes gagnantes ! :p
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Créer un scoreboard dummy nommé win par exemple.
À la suite des command block qui téléporte, tu rajoutes une commande type :
Code:
/scoreboard players set Rouge win 1
En faisant varier la couleur en fonction de la ligne de victoire.
Comme ça, tu ne te retrouveras qu'avec deux couleurs ayant un score égale à 1, soit les deux équipes qui ont gagné les demi-finales !
 

yodadu34

Rien, le Néant ...
17 Mars 2016
27
1
16
mais comment le bloc de commande peut savoir l'équipe qui va gagner ?