"> Foro - Tirar pociones cuando se tenga un objeto en la mano. en Bloques de comandos - Page 1 of 1
Noviembre 22, 2024, 10:56:18 am
Visitante

Autor Tema:  Tirar pociones cuando se tenga un objeto en la mano.  (Leído 5804 veces)

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

Julio 03, 2014, 03:20:39 pm

GabixGamer




  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

Mi duda es la siguiente y no se si se puede llegar a hacer posible o por lo menos parecido.
Intento hacer que al tener una espada con un nombre respectivo en la mano empiecen a spawnear pociones de daño instantaneo alrededor de la persona que lo lleva.
Gracias de antemano, y si no es posible hacerlo decirme si hay algo parecido.

Linkback: https://minecraftmin.net/index.php?topic=3354.0
¡Gameplays , reviews , mods y mucho mas! ¿A que esperas? ¡Suscribete!
https://www.youtube.com/user/GabixGamer


Respuesta #1 Julio 03, 2014, 06:39:53 pm

KaliNuska




  • Desconectado

  • *

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

  • 0%
  • Logros

Más información

Es posible hacerlo en las snapshots de la 1.8, aunque puede tener algún fallo (si estás en multijugador tendría que buscar otro diseño).

Necesitarás un /testfor, un /scoreboard y un /execute.

Siguiendo la posición de todos los elementos de las dos siguientes imágenes, construye tu mecanismo:





Lo primero que deberás crear será el objetivo del scoreboard (ejecútalo desde la consola):
Código: [Seleccionar]
/scoreboard objectives add Espada dummy
Para detectar que lleve una espada con un nombre determinado en un slot activo determinado, necesitarás 9 bloques de comandos (uno por cada slot de la hotbar) conectados a un reloj bastante rápido:
Código: (Slot 0) [Seleccionar]
/testfor @p {SelectedItemSlot:0,Inventory:[{Slot:0b,tag:{display:{Name:"Espada"}}},{Slot:0b,id:minecraft:diamond_sword}]}
Código: (Slot 1) [Seleccionar]
/testfor @p {SelectedItemSlot:1,Inventory:[{Slot:1b,tag:{display:{Name:"Espada"}}},{Slot:1b,id:minecraft:diamond_sword}]}
Código: (Slot 2) [Seleccionar]
/testfor @p {SelectedItemSlot:2,Inventory:[{Slot:2b,tag:{display:{Name:"Espada"}}},{Slot:2b,id:minecraft:diamond_sword}]}
Código: (Slot 3) [Seleccionar]
/testfor @p {SelectedItemSlot:3,Inventory:[{Slot:3b,tag:{display:{Name:"Espada"}}},{Slot:3b,id:minecraft:diamond_sword}]}
Código: (Slot 4) [Seleccionar]
/testfor @p {SelectedItemSlot:4,Inventory:[{Slot:4b,tag:{display:{Name:"Espada"}}},{Slot:4b,id:minecraft:diamond_sword}]}
Código: (Slot 5) [Seleccionar]
/testfor @p {SelectedItemSlot:5,Inventory:[{Slot:5b,tag:{display:{Name:"Espada"}}},{Slot:5b,id:minecraft:diamond_sword}]}
Código: (Slot 6) [Seleccionar]
/testfor @p {SelectedItemSlot:6,Inventory:[{Slot:6b,tag:{display:{Name:"Espada"}}},{Slot:6b,id:minecraft:diamond_sword}]}
Código: (Slot 7) [Seleccionar]
/testfor @p {SelectedItemSlot:7,Inventory:[{Slot:7b,tag:{display:{Name:"Espada"}}},{Slot:7b,id:minecraft:diamond_sword}]}
Código: (Slot 8) [Seleccionar]
/testfor @p {SelectedItemSlot:8,Inventory:[{Slot:8b,tag:{display:{Name:"Espada"}}},{Slot:8b,id:minecraft:diamond_sword}]}
Cuando detecte el "éxito" del /testfor, con un comparador, lleva señal de redstone hasta este otro comando:
Código: [Seleccionar]
/scoreboard players set @p Espada 1
Cuando la respuesta del /testfor no sea "exitosa", con un invertidor, pon el siguiente comando:
Código: [Seleccionar]
/scoreboard players set @p Espada 0
Empleando el mismo reloj, sitúa el comando execute:
Código: [Seleccionar]
/execute @p[score_Espada=1,score_Espada_min=1] ~ ~ ~ /summon ThrownPotion ~ ~ ~ {Potion:{id:373,Damage:16396,Count:1,tag:{CustomPotionEffects:[{Id:7,Amplifier:1,Duration:1}]}}}
Ya estaría el diseño terminado.
Ahora, para probarlo, obtén las espadas nombradas con este último comando:
Código: [Seleccionar]
/give @p minecraft:diamon_sword 9 0 {display:{Name:Espada}}
Para facilitarte la construcción del mecanismo y para que sea más cómodo de probar, he creado un Schematic para que lo puedas pegar en tu mundo (mediante McEdit):
Descarga del Schematic: www.mediafire.com/KaliNuska/TestforSlots+SummonPotion.schematic



Respuesta #2 Julio 03, 2014, 07:33:11 pm

thecalin


  • *

  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

Existe una forma muchos más compacta para detectar si X jugador tiene un Item determinado en la mano.
Usando un Testfor con la NBT Tag "Attributes".


Antes que nada, tienes que agregarle a la espada un atributo que prácticamente ni se note que se tiene, por ejemplo, agregarle 0.1 al daño predeterminado.

Código: [Seleccionar]
/give @p minecraft:iron_sword 1 0 {AttributeModifiers:[{AttributeName:"generic.attackDamage",Name:"generic.attackDamage",Amount:6.1,Operation:0,UUIDLeast:1,UUIDMost:1}]}
Esta es una espada de hierro con +6.1 Attack Damage, en lugar de +6.

Ahora que tenemos lista la espada, ponemos este Testfor en un bloque de comandos conectado a un reloj.
Código: [Seleccionar]
testfor @p {Attributes:[{Base:1.0d,Name:"generic.attackDamage",Modifiers:[{Operation:0,UUIDLeast:1l,UUIDMost:1l,Amount:6.1d,Name:"generic.attackDamage"}]}]}
Listo, ahora, sin importar el slot donde se tenga la espada, al tenerla seleccionada este bloque de comandos dará señal.

Sólo te muestro como detectar cuando un jugador tiene un item determinado en la mano de forma mucho más compacta, lo demás KaliNuska ya te lo explicó.

Saludos. :D
« Última modificación: Julio 03, 2014, 08:04:08 pm por thecalin »


Respuesta #3 Julio 03, 2014, 08:11:58 pm

KaliNuska




  • Desconectado

  • *

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

  • 0%
  • Logros

Más información

Spoiler para Mensaje de thecalin:
Existe una forma muchos más compacta para detectar si X jugador tiene un Item determinado en la mano.
Usando un Testfor con la NBT Tag "Attributes".

Antes que nada, tienes que agregarle a la espada un atributo que prácticamente ni se note que se tiene, por ejemplo, agregarle 0.1 al daño predeterminado.

Código: [Seleccionar]
/give @p minecraft:iron_sword 1 0 {AttributeModifiers:[{AttributeName:"generic.attackDamage",Name:"generic.attackDamage",Amount:6.1,Operation:0,UUIDLeast:1,UUIDMost:1}]}
Esta es una espada de hierro con +6.1 Attack Damage, en lugar de +6.

Ahora que tenemos lista la espada, ponemos este Testfor en un bloque de comandos conectado a un reloj.
Código: [Seleccionar]
testfor @p {Attributes:[{Base:1.0d,Name:"generic.attackDamage",Modifiers:[{Operation:0,UUIDLeast:1l,UUIDMost:1l,Amount:6.1d,Name:"generic.attackDamage"}]}]}
Listo, ahora, sin importar el slot donde se tenga la espada, al tenerla seleccionada este bloque de comandos dará señal.




Sólo te muestro como detectar cuando un jugador tiene un item determinado en la mano de forma mucho más compacta, lo demás KaliNuska ya te lo explicó.


Saludos. :D
El problema que le veo a este mecanismo es que independientemente de si llevas o no la espada en la mano u otro ítem con el mismo Atributo dará señal.
De la otra forma, comprueba que el ítem sea una espada nombrada de forma específica.


Si estoy confundido, te invito a que lo pruebes con cualquier otro objeto:
Código: [Seleccionar]
/give @p minecraft:chest 1 0 {AttributeModifiers:[{AttributeName:"generic.attackDamage",Name:"generic.attackDamage",Amount:6.1,Operation:0,UUIDLeast:1,UUIDMost:1}]}



Respuesta #4 Julio 03, 2014, 08:18:52 pm

thecalin


  • *

  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

Tienes razón, pero dudo mucho que se le quiera poner exactamente el mismo atributo a diferentes items.

Saludos. :D


Respuesta #5 Julio 05, 2014, 11:51:18 am

GabixGamer




  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

Pero podeis decirme si esto sirve en la 1.7



Respuesta #6 Julio 05, 2014, 07:33:44 pm

thecalin


  • *

  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

Pero podeis decirme si esto sirve en la 1.7
No, los dos métodos solo sirven en las últimas snapshots. :(




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

question
efecto con objeto en la mano

Iniciado por Husion Punisher

1 Respuestas
2134 Vistas
Último mensaje Diciembre 24, 2014, 01:14:19 am
por MinerKing_26
question
Efecto con objeto en la mano

Iniciado por Husion Punisher

1 Respuestas
2384 Vistas
Último mensaje Diciembre 30, 2014, 11:28:42 am
por The_Mixy
xx
Comando regalar objeto cuando se mata un player.

Iniciado por Alex G

2 Respuestas
1767 Vistas
Último mensaje Mayo 11, 2014, 01:24:03 pm
por Alex G
xx
Spawner de Pociones - Con command_block

Iniciado por Rayzer_G

3 Respuestas
4457 Vistas
Último mensaje Junio 15, 2014, 08:30:07 pm
por ELmenda