Hay que utilizar un comando para aplicar una etiqueta al jugador en función de sus datos en lugar de utilizar /testfor
. Por ejemplo, /scoreboard
puede asignar una etiqueta:
/scoreboard players tag @a[tag=HasItem] remove HasItem
/scoreboard players tag @a[tag=!HasItem] add HasItem {SelectedItemSlot:0,Inventory:[{Slot:0b,tag:{display:{Name:"Fire Wand"}}}]}
Y entonces se dirigiría a los jugadores en función de su etiqueta. La etiqueta correcta para el daño de la bola de fuego es ExplosionPower
:
/execute @a[tag=HasItem] ~ ~ ~ /summon Fireball ~2 ~1 ~ {ExplosionPower:10,direction:[0.0,0.0,0.0]}
Si utiliza 1.8, tendrá que utilizar una puntuación en su lugar. Objetivo a crear:
/scoreboard objectives add HasItem dummy
Comandos a ejecutar para el etiquetado:
/scoreboard players set @a HasItem 0
/scoreboard players set @a HasItem 1 {SelectedItem:{tag:{display:{Name:"Fire Wand"}}}}
Y para la focalización, se utilizaría el score
parámetro:
/execute @a[score_HasItem_min=1] ~ ~ ~ /summon Fireball ~2 ~1 ~ {ExplosionPower:10,direction:[0.0,0.0,0.0]}
Puede que le interese el SelectedItem
que contiene una copia del objeto que tiene el jugador en ese momento. De este modo, no es necesario probar específicamente cada ranura de la barra de acceso directo:
/scoreboard players tag @a[tag=!HasItem] add HasItem {SelectedItem:{tag:{display:{Name:"Fire Wand"}}}}