C'était un défi très intéressant à relever pour moi. Ce problème comporte de nombreuses parties, qui sont beaucoup plus difficiles à réaliser qu'on ne le pense. Il y a l'identification du joueur avec l'effet de statut, et l'identification d'un ensemble de joueurs aléatoires qui ne sont pas eux (puisque /tp Unionhawk Unionhawk
est un résultat valide de /tp @p @r
et ne fait rien).
Mais enfin, voici ma configuration, qui fonctionne pour un nombre limité de joueurs sur un serveur. Certains de ses défauts incluent le fait de ne permettre qu'un seul jeu sur un serveur donné, et d'utiliser le niveau d'expérience pour identifier les joueurs. En tant que tel, /gamerule doMobLoot false
doit être utilisé, et /gamerule commandBlockOutput false
est fortement conseillé.
Il y a donc beaucoup de choses qui se passent ici, comme vous pouvez le voir. Mais tout cela est accompli en utilisant 4 commandes et une horloge à trémie.
Les blocs de commande du groupe 1 sont là pour détecter si un joueur a l'effet de potion spécifié, le supprimer et passer au bloc de commande du groupe 2 correspondant. J'ai utilisé /effect @p[c=n] 4 0
pour celui-ci, ce qui supprime l'effet de fatigue minière du joueur n du serveur (en descendant dans la liste des joueurs du serveur). Lorsque cette commande est évaluée, les blocs de commande du groupe 2 donnent à ce joueur un niveau d'expérience en utilisant les éléments suivants /xp 1L @p[c=n]
.
À partir de là, lors de la prochaine impulsion de l'horloge de la trémie, le bloc de commande "Groupe" 3 (vous n'en avez besoin que d'un seul) téléporte un joueur ayant 1 niveau ou plus vers un joueur aléatoire n'ayant aucun niveau en utilisant /tp @p[lm=1] @r[l=0]
. Lorsque cette commande est évaluée, le bloc de commande "Groupe" 4 efface le niveau d'expérience de tous les joueurs utilisant la commande /xp -9999L @a
.