CommandBlock Top classement Scoreboard [1.11.1]

Jym

Architecte en herbe
19 Avril 2014
72
3
98
38
Salut, j'ouvre encore un topic :p

Je n'ai rien trouver avec des command block mais c'est possible de faire un classement des 3 premier de la liste avec les command bock?
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Les scoreboards classent par défaut du plus gros score au plus petit ;)
 
Dernière édition:

Jym

Architecte en herbe
19 Avril 2014
72
3
98
38
oui c'est vrais, c'est de ma faute je n'ai pas étais précis .
J'aimerais attribuer un effet au premier du classement et deuxième, troisième aussi. Mais après quelque recherche il me semble que cela ne soit possible
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Peux-tu détailler un peu plus ? :)
Supposons que l'on est un classement de 5 joueurs :
Scoreboard a dit:
Joueurs1 5
Joueurs2 4
Joueurs3 3
Joueurs4 2
Joueurs5 1
Tu voudrais appliquer un effet au 3 premiers joueurs de ce classement automatiquement, à savoir que le joueur tout en haut peut être n'importe qui ?
 

Redsnow

Aventurier
22 Février 2017
37
1
9
22
Si c'est un effet de potions que tu veut attribuer au trois premiers du classement, je sais que c'est possible même si je ne connais pas la commande exacte c'est quelque chose du genre /effect @a[value=max<??] La commande est fausse, mais si ça peut t'aider... En tout cas tu peut attribuer un effet à ceux qui ont un score supérieur à un certain nombre de ton choix
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
On peut très bien détecter le plus haut score d'un objectif, mais je lui demande plus d'information de façon à pouvoir lui donner la bonne commande ;)
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Bon alors, l'idée :
Tu mets tout les joueurs dans une team commune (juste histoire de faciliter les filtres) puis tu fais cette commande là en repeat, need redstone :
Code:
/scoreboard players operation #score [tonObjectif] > @a[team=taTeam] [tonObjectif]
Ainsi, tu obtiendras dans ton #score (le # permet de faire en sorte que le score ne soit pas apparent sur le scoreboard) ta plus grosse valeur.
À la suite, en chain unconditional :
Code:
/scoreboard players tag @r[team=taTeam] add test
C'est le joueur sur lequel on va faire les tests, il changera à chaque boucle.
Code:
/scoreboard players operation #score [tonObectif] -= @a[tag=test,team=taTeam] [tonObjectif]
On soustrait le plus gros score au score du joueur tiré
Code:
/scoreboard players test #score [tonObjectif] 0 0
Cette commande permet de savoir si le résultat de ta soustraction est 0. Si c'est 0, alors le plus gros score #score est le score du joueur possédant le tag, donc par déduction, c'est celui qui a le plus gros score.
À la suite, en conditional :
Code:
/effect @a[team=taTeam,tag=test] haste [seconde] 1
Code:
/effect @a[team=taTeam,tag=test] speed [seconde] 1
Code:
/effect @a[team=taTeam,tag=test] jump_boost[seconde] 1
Code:
/setblock x y z redstone_block
(ça alimentera pour le second et le troisième joueur du top)
Code:
/scoreboard players tag @a[tag=test,team=taTeam] add reward
Afin que l'on ne le tire pas pour les 2 prochaines récompenses.
Code:
/setblock x y z air
pour retirer le bloc de redstone qui se trouve à côté de ton tout premier command block de ta chaine (en repeat), et éviter que ça se relance.
Puis, toujours en chain et en unconditional :
Code:
/scoreboard teams leave @a[team=taTeam,tag=test]
Pour retirer le joueur de la team et éviter qu'il soit de nouveau tirer si le premier joueur tirer n'était pas celui au plus haut score
Code:
/scoreboard players tag @a[tag=test] remove test
Ça, c'est pour la première récompense ^^
Les deux autres sont exactement les mêmes systèmes sauf que tu modifies tes effets et tu ajoute un filtre au début, lorsque tu les fait rejoindre la team (dans un impulse, alimenté par le setblock redstone_block au dessus) :
Code:
/scoreboard teams join [taTeam] @a[tag=!reward]
Puis tu peux de nouveau mettre un setblock qui ira alimenter ton second système ^^
Voilà, bon, j'ai fait tout ça de tête mais ça devrait fonctionner [plain]:p[/plain]
 
  • J'aime
Reactions: Jym

Jym

Architecte en herbe
19 Avril 2014
72
3
98
38
Intéressant tous ça, j'étudie toutes les commandes (c'est mieux quand tu comprend réellement)

cependant pour mon Objectif il ne le trouve pas je suis bloqué dès le début
Code:
/scoreboard players operation score [Emeraude] > @a[team=Top] [Emeraude]



Code:
/scoreboard objectives add Emeraude dummy
cette objectif est liée à mon system de trie pour monter le score
Code:
/scoreboard players add @p Emeraude 1

Puis-je utiliser ce même objectif? (logiquement oui si je ne me trompe pas .. ou je fait mal une truc..)

Ps: j'ai mon petit server perso si ça peux aider pour aller plus vite ^^