Esa cosa se llama argumento del selector de destino .
A partir de Mineraft 1.8.9, hay 20 argumentos diferentes disponibles para su uso:
x, y, z coordinates
r, rm radius (max, min)
m game mode
c count
l, lm experience level (max, min)
score_name max score
score_name_min min score
team team name
name entity name
dx, dy, dz volume dimensions
rx, rxm vertical rotation (max, min)
ry, rym horizontal rotation (max, min)
type entity type
La instantánea 1.9 15w32b añadió otro argumento.
tag scoreboard tag
Como puede ver, no hay manera de comprobar los efectos activos utilizando los argumentos del selector de destino. La comprobación de los efectos activos de una entidad sólo puede hacerse mirando su etiqueta de datos, por ejemplo, comprobando si coincide con {ActiveEffects:[{Id:1b}]}
. El /effect
no es capaz de hacer eso por sí mismo, lo que significa que no podrás hacer lo que describes en un solo comando.
Mediante los marcadores, puede "traducir" la coincidencia de etiquetas de datos en una puntuación o una etiqueta (sólo en la versión 1.9), que luego puede utilizar con los argumentos del selector de destino.
Crea un objetivo ficticio para almacenar la puntuación:
/scoreboard objectives add hasSpeed dummy
Cree un reloj de 20Hz. (setblock/fill clock, en 1.9, utilice los bloques de comandos de repetición/cadena) y ejecute los siguientes comandos:
/scoreboard players set @a hasSpeed 0
/scoreboard players set @a hasSpeed 1 {ActiveEffects:[{Id:1b}]}
Después, puedes ejecutar
/effect @a[score_hasSpeed=0] 1 1
en el mismo reloj.
0 votos
En programación se llama "predicado" o "condición". Ni idea de cómo lo llama Minecraft.