JugonesTop

¿Cómo puedo numerar jugadores devueltos por un selector de objetivos? minecraft-java-edition minecraft-commands

Me gustaría probar jugadores en una determinada área y el número de ellos.

Un objetivo selector siempre devuelve una lista de las entidades seleccionadas en el orden de la sort parámetro.

Por ejemplo, el siguiente destino selector devolverá una lista de los jugadores dentro de 100 cuadras de la ejecución de bloque de comando, en orden aleatorio:

@a[distance=..100,sort=random]

Me gustaría ser capaz de número de los jugadores devuelto por el destino selector de dos maneras: a través del cuadro de indicadores de los objetivos, y a través de marcador de etiquetas. Por ejemplo, si el objetivo selector devuelve a los jugadores Alice, Joe, Bob, quisiera Alice para obtener marcador valor 1, Joe para obtener 2, y Bob para obtener 3. Si devuelve los jugadores Joe, Alice, Bob, Joe obtendría 1, Alice llega a 2, y Bob obtendría 3.

El uso de marcador de etiquetas, una etiqueta de nombre Player1 sería añadido al primer jugador, Player2 para el 2º, y así sucesivamente.

¿Cuál es la mejor manera de construir un funcionamiento comando mecanismo para este propósito? Nota, me gustaría una respuesta para todos 3 no arbitraria clasificación de los métodos, lo que significa nearest, furthesty random.

Uso [distance=..100] como su objetivo selector de plantilla de argumento, de modo que todo el mundo la respuesta es coherente en lo que es parte de su objetivo de selección.

Respuesta

He encontrado una forma de hacerlo, que desafortunadamente es un poco detallado (requiere un bloque de comandos para cada jugador que necesita ser identificado), pero funciona:

Usando los objetivos del marcador:

 /scoreboard players set @a[distance=..100] Id -1
/scoreboard players set @a[scores={Id=-1},sort=...,limit=1] Id 1
/scoreboard players set @a[scores={Id=-1},sort=...,limit=1] Id 2
/scoreboard players set @a[scores={Id=-1},sort=...,limit=1] Id 3
...
 

Usando etiquetas:

 /tag @a[distance=..100,sort=...,limit=1,tag=!Player1,tag=!Player2,tag=!Player3,...] add Player1
/tag @a[distance=..100,sort=...,limit=1,tag=!Player1,tag=!Player2,tag=!Player3,...] add Player2
/tag @a[distance=..100,sort=...,limit=1,tag=!Player1,tag=!Player2,tag=!Player3,...] add Player3
...
 
X