"> Foro - [Petición] Detectar Items en el inventario / Mano en Bloques de comandos - Page 1 of 1
Junio 08, 2025, 11:21:06 am
Visitante

Autor Tema: [Petición] Detectar Items en el inventario / Mano  (Leído 20404 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Julio 27, 2015, 07:57:47 pm

GiorgioMC




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    ¡~MapMaker / Puzzle Maps~!
  • Actividad

  • 0%
  • Logros

Más información

-Necesito ayuda para encontrar los siguientes comandos (echos con sintaxis);


*Detectar un item en el inventario de un personaje


*Detectar un item en la mano de un personaje (seleccionado en la hotbar).


*Detectar un item tirado en algun lugar


-Gracias por colaborar.

Linkback: https://minecraftmin.net/index.php?topic=10865.0


Respuesta #1 Julio 27, 2015, 08:13:46 pm

MrDeathWither




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Los CTM's nos invaden D:
  • Actividad

  • 0%
  • Logros

Más información

Espero que esto te ayude

*Detectar un item en el inventario de un personaje
Código: [Seleccionar]
/testfor @p {Inventory:[{Slot:X,id:"minecraft:­grass"}]}

*Detectar un item en la mano de un personaje (seleccionado en la hotbar).
Código: [Seleccionar]
/testfor @p {SelectedItemSlot:X,Inventory:[{Slot:X,­id:"minecraft:grass"}]­}

*Detectar un item tirado en algun lugar
Código: [Seleccionar]
testfor @e[type=Item,x=,y=,z=,r=] {Item:{id:minecraft:grass}}
Saludos.MrDeathWither
♪♪ Persona normal ♪♪



Respuesta #2 Julio 27, 2015, 08:21:00 pm

KaliNuska




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    KaliNuska = comandos y redstone de calidad :D
  • Actividad

  • 0%
  • Logros

Más información

Las tres cosas que pides puedes hacerlas mediante un simple /testfor o con /scoreboard:

En primer lugar, para detectar un ítem en el inventario del personaje tienes varias opciones:
Comprobar todos los slots de una vez:
Código: (testfor) [Seleccionar]
/testfor @p {Inventory:[{id:"minecraft:<id del ítem>",Count:<cantidad>b,Damage:<Data Value>s,tag:{}}]}
Código: (scoreboard) [Seleccionar]
/scoreboard players set @a <scoreboard> 1 {Inventory:[{id:"minecraft:<id del ítem>",Count:<cantidad>b,Damage:<Data Value>s,tag:{}}]}También puedes utilizar el /clear si no quieres que lo siga teniendo una vez detectado:
Código: (clear) [Seleccionar]
/clear @a <id del ítem> <DataValue> <Cantidad máxima> [Tags del item]
Spoiler para Ejemplos:
Código: (testfor) [Seleccionar]
/testfor @p {Inventory:[{id:"minecraft:diamond_sword",Count:1b,tag:{ench:[{id:16,lvl:5}]}}]}
Código: (scoreboard) [Seleccionar]
/scoreboard players set @a item_en_inventario 1 {Inventory:[{id:"minecraft:diamond_sword",Count:1b,tag:{ench:[{id:16,lvl:5}]}}]}
Código: (clear) [Seleccionar]
/clear @a minecraft:diamond_sword -1 1 {ench:[{id:16,lvl:5}]}

En segundo lugar, con un solo comando podrás comprobar si un jugador tiene un ítem concreto en la mano:
Código: [Seleccionar]
/testfor @p {SelectedItem:{id:"<id del ítem>",Count:<Cantidad>b,Damage:<DataValue>s,tag:{}}}
Código: [Seleccionar]
/scoreboard players set @a <scoreboard> 1 {SelectedItem:{id:"<id del ítem>",Count:<Cantidad>b,Damage:<DataValue>s,tag:{}}}
Spoiler para Ejemplos:
Código: (testfor) [Seleccionar]
/testfor @p {SelectedItem:{id:"minecraft:skull",Count:1b,Damage:3s,tag:{SkullOwner:"Notch"}}}
Código: (scoreboard) [Seleccionar]
/scoreboard players set @a item_en_mano 1 {SelectedItem:{id:"minecraft:skull",Count:1b,Damage:3s,tag:{SkullOwner:"Notch"}}}

Por último, detectar un ítem en el suelo se hace de forma parecida:
Código: [Seleccionar]
/testfor @e[<x>,<y>,<z>,<r>,type=Item] {Item:{id:"<id del ítem>",Count:<Cantidad>b,Damage:<DataValue>s,tag:{}}}
Código: [Seleccionar]
/scoreboard players set @e[<x>,<y>,<z>,<r>,type=Item] <scoreboard> 1 {Item:{id:"<id del ítem>",Count:<Cantidad>b,Damage:<DataValue>s,tag:{}}}
Spoiler para Ejemplos:
Código: (testfor) [Seleccionar]
/testfor @e[100,64,-100,5,type=Item] {Item:{id:"minecraft:stone",Count:1b,Damage:4s}}
Código: (scoreboard) [Seleccionar]
/scoreboard players set @e[100,64,-100,50,type=Item] item_en_suelo 1 {Item:{id:"minecraft:stone",Count:1b,Damage:4s}}


Por si acaso mencionaré que la respuesta de cada uno de los comandos testfor y clear se obtiene mediante un comparador en forma de señal de redstone. En cambio, la del scoreboard, se obtiene con el propio número que se le añade al jugador/entidad.

Si tienes alguna duda o pregunta, te la resolveré sin reparo alguno.


Respuesta #3 Agosto 15, 2016, 01:15:16 am

Sparta99_Oficial




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Sparta99 - MapMaker - Youtuber con TGN
  • Actividad

  • 0%
  • Logros

Más información

Las tres cosas que pides puedes hacerlas mediante un simple /testfor o con /scoreboard:

En primer lugar, para detectar un ítem en el inventario del personaje tienes varias opciones:
Comprobar todos los slots de una vez:
Código: (testfor) [Seleccionar]
/testfor @p {Inventory:[{id:"minecraft:<id del ítem>",Count:<cantidad>b,Damage:<Data Value>s,tag:{}}]}
Código: (scoreboard) [Seleccionar]
/scoreboard players set @a <scoreboard> 1 {Inventory:[{id:"minecraft:<id del ítem>",Count:<cantidad>b,Damage:<Data Value>s,tag:{}}]}También puedes utilizar el /clear si no quieres que lo siga teniendo una vez detectado:
Código: (clear) [Seleccionar]
/clear @a <id del ítem> <DataValue> <Cantidad máxima> [Tags del item]
Spoiler para Ejemplos:
Código: (testfor) [Seleccionar]
/testfor @p {Inventory:[{id:"minecraft:diamond_sword",Count:1b,tag:{ench:[{id:16,lvl:5}]}}]}
Código: (scoreboard) [Seleccionar]
/scoreboard players set @a item_en_inventario 1 {Inventory:[{id:"minecraft:diamond_sword",Count:1b,tag:{ench:[{id:16,lvl:5}]}}]}
Código: (clear) [Seleccionar]
/clear @a minecraft:diamond_sword -1 1 {ench:[{id:16,lvl:5}]}

En segundo lugar, con un solo comando podrás comprobar si un jugador tiene un ítem concreto en la mano:
Código: [Seleccionar]
/testfor @p {SelectedItem:{id:"<id del ítem>",Count:<Cantidad>b,Damage:<DataValue>s,tag:{}}}
Código: [Seleccionar]
/scoreboard players set @a <scoreboard> 1 {SelectedItem:{id:"<id del ítem>",Count:<Cantidad>b,Damage:<DataValue>s,tag:{}}}
Spoiler para Ejemplos:
Código: (testfor) [Seleccionar]
/testfor @p {SelectedItem:{id:"minecraft:skull",Count:1b,Damage:3s,tag:{SkullOwner:"Notch"}}}
Código: (scoreboard) [Seleccionar]
/scoreboard players set @a item_en_mano 1 {SelectedItem:{id:"minecraft:skull",Count:1b,Damage:3s,tag:{SkullOwner:"Notch"}}}

Por último, detectar un ítem en el suelo se hace de forma parecida:
Código: [Seleccionar]
/testfor @e[<x>,<y>,<z>,<r>,type=Item] {Item:{id:"<id del ítem>",Count:<Cantidad>b,Damage:<DataValue>s,tag:{}}}
Código: [Seleccionar]
/scoreboard players set @e[<x>,<y>,<z>,<r>,type=Item] <scoreboard> 1 {Item:{id:"<id del ítem>",Count:<Cantidad>b,Damage:<DataValue>s,tag:{}}}
Spoiler para Ejemplos:
Código: (testfor) [Seleccionar]
/testfor @e[100,64,-100,5,type=Item] {Item:{id:"minecraft:stone",Count:1b,Damage:4s}}
Código: (scoreboard) [Seleccionar]
/scoreboard players set @e[100,64,-100,50,type=Item] item_en_suelo 1 {Item:{id:"minecraft:stone",Count:1b,Damage:4s}}


Por si acaso mencionaré que la respuesta de cada uno de los comandos testfor y clear se obtiene mediante un comparador en forma de señal de redstone. En cambio, la del scoreboard, se obtiene con el propio número que se le añade al jugador/entidad.

Si tienes alguna duda o pregunta, te la resolveré sin reparo alguno.

El comando para detectar items con encantamientos no funciona en la 1.10, sabes alguna forma de hacer que funcione?
-=Sparta99=-



Respuesta #4 Agosto 16, 2016, 12:18:54 am

KaliNuska




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    KaliNuska = comandos y redstone de calidad :D
  • Actividad

  • 0%
  • Logros

Más información

El comando para detectar items con encantamientos no funciona en la 1.10, sabes alguna forma de hacer que funcione?
Hay un pequeño problema cuya resolución es fundamental para que funcionen comandos como este que comprueban las NBT Tags estrictamente: todos los valores de las tags deben quedar acompañados por el tipo de tag del que se trate. Es decir, cada tag necesita que su tipo sea indicado para poder leerla mediante estos comandos.
En el caso del comando desde el que se comprueba un item y sus encantamientos, las tags son:
  • id, que es de tipo String [ "" ]
  • Count, que es de tipo Byte [ b ]
  • tag, que es de tipo Compound [ {} ]
  • ench, que es de tipo List [ [] ]
  • cada uno de los encantamientos, que son de tipo Compound [ {} ]
  • id de los encantamientos, que es de tipo Short [ s ]
  • lvl de los encantamientos, que es de tipo Short [ s ]
Una vez hayas creado el comando, asegúrate de que todas las tags están indicadas correctamente. De esta forma la estructura NBT del comando quedaría así:
Código: [Seleccionar]
{Inventory:[{id:"minecraft:diamond_sword",Count:1b,tag:{ench:[{id:16s,lvl:5s}]}}]}
Como cabe la posibilidad de que esto no resuelva tu problema, te aconsejo que muestres el comando que estás utilizando e información relevante en cuanto a cómo lo ejecutas para poder darte un diagnóstico más completo.




Share via delicious Share via digg Share via facebook Share via furl Share via linkedin Share via myspace Share via reddit Share via stumble Share via technorati Share via twitter

exclamation
Detectar Items en la Mano/Inventario

Iniciado por Claus3000

1 Respuestas
2336 Vistas
Último mensaje Mayo 11, 2016, 11:25:15 pm
por Xavii74
xx
Detectar ítem en la mano con nombre en color.

Iniciado por ingenierus

1 Respuestas
3425 Vistas
Último mensaje Noviembre 15, 2015, 03:41:42 pm
por MrDeathWither
xx
detectar items en la mano

Iniciado por alejogamer

6 Respuestas
4382 Vistas
Último mensaje Septiembre 16, 2015, 02:14:45 am
por MinatoKuun
xx
detectar una cantidad minima de items en el inventario

Iniciado por nicolas

3 Respuestas
3524 Vistas
Último mensaje Abril 29, 2018, 12:14:17 am
por NickSplat