CommandBlock Tirage au sort

LuluGaming387

Bucheron
18 Octobre 2015
23
0
14
24
Bonjour à tous, n'étant pas très fort en command block, j'ai besoin d'avoir quelque conseil
Je réalise un event chasse à l'homme. Pour cela, au début du jeu, chaque joueur a une cible qu'elle devra tuer. Pour cela, il faut effectuer un tirage au sort parmi tous les joueurs pour savoir qui sera la cible de qui.
Donc je voulais savoir comment vous feriez vous pour faire ce tirage au sort, sachant que, j'ai déjà eu quelque idée pour ce tirage comme faire par exemple un placement de block de redstone sur une zone ou il y a plusieurs command block avec chacun le nom de chaque joueur qui joue a l'event mais je me dis que je me complique peut être la vie ?
Donc merci de m'aider, si vous avez une solution
PS : Il faudra aussi que je fasse un scoreboard avec un système de point car lorsque un joueur mourra par exemple, il perdra 2 point
Merci,
Cordialement
 
Bonjour :)
Je pense que tu peut utiliser directement le sélecteur @r qui va choisir un joueur au hasard (sauf si il y a des joueurs en spectateur ou en crea en même temps, dans ce cas précise m=0 ou m=2 dans le sélecteur).
Ensuite est-ce que chaque joueur a sa propre cible ou la cible est-elle générale ?

Si elle est générale, il suffit de faire après avoir créer le score "Cible" :
Code:
/scoreboard players set @r[m=0/2] Cible 1
La cible est ainsi déterminée par le score de 1
et à la fin du jeu évidemment tu remets le score de 0 à tout le monde.

Maintenant si la cible est propre à chaque joueur (ce que je pense), là c'est plus compliqué :D.
Le plus simple à mon avis est en deux étapes :

1) Différencier les joueurs (pour savoir qui est le chasseur de qui)
créer un nouveau score (appelons le "Chasseur").
Ensuite tu vas donc faire en sorte de donner à chaque joueur un score Chasseur différent, afin de différencier chaque joueur par ce score plutôt que par son pseudo (qui peut changer).
Au début de ton jeu tu vas attribuer à tout les joueurs le score de 0. Puis maintenant pour différencier les joueurs, on peut faire autant de command blocks qu'il y a de joueurs (je ne sais pas pour combien de personnes est ta map) qui vont attribuer à un joueur au hasard qui n'a pas déjà un score* le score 1 pour le 1er command block, puis 2 pour le 2ème, etc.
* ça correspond à "qui a un score de 0 au maximum" :
Code:
@r[score_Chasseur=0]

2) Bon chaque joueur à son score. Maintenant chaque joueur va "choisir" sa cible, avec un /execute.
L'astuce va consister à donner à chaque joueur en score "Cible" le score "Chasseur" de son chasseur (je sais c'est pas clair :dsl:).
Si le chasseur à un score "Chasseur" de 1, sa cible aura un score "Cible" de 1.
Pour faire ça, "y'a qu'à" faire un /scoreboard players operation pour chaque joueur :
Code:
/scoreboard players operation @r Cible = @p Chasseur
Le @p désigne donc le joueur qui fait la commande. Bon mais donc il doit la faire cette commande :
Code:
/execute @a ~ ~ ~ /scoreboard players operation @r Cible = @p Chasseur
Mais pour être sûr qu'un pauvre jean kévin sans défense :D ne soir pas la cible de deux joueurs, on refait le même délire que précédemment avec le chasseur : tu attribues au début à tout le monde le score de cible de 0, puis tu rajoutes "@r[score_Cible=0]" (je rappelle que score_Cible=0 veut dire "0 au maximum")


FINALEMENT (ouf)
ça te donne :

Début du jeu
Code:
/scoreboard players set @a Chasseur 0
/scoreboard players set @a Cible 0

Choix du chasseur et de sa cible
Avec pour "Chasseur" autant de command blocks qu'il y a de joueurs :
Code:
/scoreboard players set @r[score_Chasseur=0] Chasseur [Numéro du command Block]
/execute @a ~ ~ ~ /scoreboard players operation @r[score_Cible=0] Cible = @p Chasseur

Fin du jeu
Code:
/scoreboard players set @a Chasseur 0
/scoreboard players set @a Cible 0

Et maintenant pour savoir si le chasseur a tué sa cible, il suffit de tester pour chaque score (pareil, autant de command blocks que de joueurs...) si c'est le même que le tué.

Voilà voilà :):mobpig:
 
  • J'aime
Reactions: Oromis
Bonjour merci de ta réponse mais j'aimerais avoir quelque complément :
1) Pour la commande :/scoreboard players set @r[score_Chasseur=0] Chasseur [Numéro du command Block]
Tu dis le numéro du command_block, mais je comprend pas très bien, c'est par exemple numéro 1, numéro 2 ou le pseudo du joueur

2) Les commandes que tu me donne sont à rentrer dans les commands block et les gens appuieront sur un bouton pour savoir leur cible chacun leur tour ou tous d'un coup ? Et il le seront de quel manière car cela doit rester secret, donc j'avais pensé emmener chaque personne chacun leur tour dans un petite salle ou il appuieront sur un bouton pour savoir leur cible et seront tp dans le jeu après sans pouvoir bouger le temps que tous soit tp ?

3) je comprend pas très bien ta dernière phrase qui dit : "Et maintenant pour savoir si le chasseur a tué sa cible, il suffit de tester pour chaque score (pareil, autant de command blocks que de joueurs...) si c'est le même que le tué", je comprend pas très bien comment je fais sa ?

Merci de me répondre
Cordialement
 
Pour le 1)
En fait le numéro du CB c'est parce que tu dois faire autant de command blocks que de joueurs, avec un premier command block /scoreboard players set @r[score_Chasseur=0] Chasseur 1, puis un deuxième /scoreboard players set @r[score_Chasseur=0] Chasseur 2, un troisième /scoreboard players set @r[score_Chasseur=0] Chasseur 3, etc. jusqu'à ton nombre de joueurs. Je te conseille donc de le fixer (nombre pair évidemment)

2) Les commandes ce sont des commandes à mettre dans des command blocks reliés à un bouton "début du jeu" en gros.
Pour que chaque personne sache qui est sa cible il suffit de faire un /tellraw à chaque joueur (en utilisant le score Chasseur)
En gros tu fais un /tellraw au joueur qui a un score Chasseur de 1 avec dedans "Votre cible est [joueur avec un score Cible de 1]" puis un /tellraw au joueur qui a 2 en chasseur "Votre cible est [joueur avec un score Cible de 2]" etc. Des exemples de tellraw comme ça faits avec Minecraft Tools (C'est pas une pub :mobpig:)

3) La phrase c'était juste pour te dire qu'après tu pouvais ainsi caractériser chaque chasseur et chaque cible avec ces scores c'est tout.
 
ok merci, donc si j'ai bien compris, pour le debut de la game : Je met ces première commande :
/scoreboard players set @a Chasseur 0
/scoreboard players set @a Cible 0
(dans un command chacun)
puis à la suite :
/scoreboard players set @r[score_Chasseur=0] Chasseur [Numéro du command Block]
/execute @a ~ ~ ~ /scoreboard players operation @r[score_Cible=0] Cible = @p Chasseur
(dans un command block chacun)
et je répète selon le nombre de joueur
puis :
/tellraw @p[score_Chasseur=1,score_Chsseur_min=1] ["",{"text":"[Chasse à l'homme]","color":"red"},{"text":" Votre cible est "},{"selector":"@p[score_Cible=1,score_Cible_min=1]"},{"text":"."}]

En gros pour une ligne de commande = 1 joueur ?

Et quand le joueur est tué, il suffie juste de le re tp dans une salle et mettre une ligne de command block
Et se sera bien du random le tirage ?
 
puis à la suite :
/scoreboard players set @r[score_Chasseur=0] Chasseur [Numéro du command Block]
/execute @a ~ ~ ~ /scoreboard players operation @r[score_Cible=0] Cible = @p Chasseur
(dans un command block chacun)
et je répète selon le nombre de joueur
La deuxième commande tu la mets qu'une fois hein

Et quand le joueur est tué, il suffie juste de le re tp dans une salle et mettre une ligne de command block
Et se sera bien du random le tirage ?
Aah ouais j'avais pas pensé à cette partie de la game. Là tu as deux solutions :
1) tu attends que tout le monde meurt, les gens qui meurent sont tp dans une salle et attendent
2) les gens qui meurent sont tp dans une salle et attendent mais au bout d'un moment (que tu définis avec une clock) tu refais comme sic était le début d'une nouvelle game (avec toutes les commandes précédemment vues).
Enfin je vois pas d'autres solutions...:)
 
Oui j'avais compris mais après je pense que je vais faire une ligne de command block pour chaque joueur et puis quand je les relies, je met ceytte commande

Et je pense que je vais prendre la solution qui me parait pas mal

Je te remercie, je vasi tester sa et je te contacte si j'ai un problème. De toute façon j’aurai je pense besoin d'aide pour faire un scoreboard
 
Oula vaste sujet que les scoreboard...je te conseille d'aller voir des tutos si tu as des questions par rapport à ça, même si je peux t'aider. En tout cas si les command blocks t'intéressent, les scoreboard c'est la vie :fou:

Content d'avoir pu t'aider
 
Bonjour, j'ai essayer de faire la technique mais comme je suis super nul, je n'ai pas réussi à ce que je voulais faire.
Est-t-il possible de me montrer comment faire via une map ou dans un atre moyen (en vocal,...) ?
 
Bonjour, possible de me recontacter car je suis pas très fort comme je l'est dis et besoin d'aide parce j'arrive pas a employés la technique ?