Octubre 17, 2017, 08:41:42 pm
Visitante



Autor Tema:  [Aportación] Todo sobre el comando /testfor  (Leído 810 veces)

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

Febrero 14, 2017, 06:55:53 pm

sircripers




  • Conectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    ñeñeñe? ⎝(。◁゚)⎠
  • Actividad

  • 2%
  • Logros

Más información

Siempre veo gente preguntando cosas sobre el testfor o como detectar items...  :-\

Así que he decidido crear esta aportación en la que aclararé todo sobre este comando (Al menos todo lo que sé) Dividiré el post en: Entidades, Jugadores y Varios. Todos ellos con pequeños apartados que trataran cosas concretas.
(Me limitaré solo a dar ejemplos del /testfor y no a hablar sobre el /testforblocks)

Antes que nada una pequeña explicación de que es el comando /testfor y cuales son sus utilidades.
Código: [Seleccionar]
/testfor @pSiendo esta su sintaxis más básica sirve para detectar, en este caso al jugador más cercano a quien ejecute el comando, es decir, si un jugador utiliza este comando este se detectara a si mismo al ser el jugador más cercano, si el comando se ejecuta en un command block, entonces detectará al jugador que este más cerca de él.

Este comando tal cual podría servir para saber cual es el jugador más cercano por ejemplo a un lugar concreto.

Por si andaís un poco perdidos con los selectores de objetivos en la gamepedia se explican perfectamente: http://minecraft.gamepedia.com/Commands#Target_selectors

Entidades
Spoiler para ocultar:
Cómo detectar entidades con un nombre específico o items.

¿Quieres probar estos comandos? Puedes utilizar esta página para generar comandos, después de varios años de intentonas de hacer mapas puedo decir que es sin duda la mejor para generar mobs.
   


-------------------- Detectar un Mob -------------------


-Comando básico:
Código: [Seleccionar]
/testfor @eDetectar una entidad puede ser útil para saber si hay un mob en el mundo, si esta en un lugar en específico, si esta a x distancia del jugador etc...
La manera más simple de saber si un jugador ha eliminado todos los zombies de una zona por ejemplo, sería colocando el siguiente comando debajo de esa zona:
Código: [Seleccionar]
/testfor @e[type=Zombie,r=20]o también detectar a un mob en un radio de unas coordenadas específicas.
Código: [Seleccionar]
/testfor @e[type=Zombie,x=333,y=50,z=474,r=5]
Con un comparador dando señal a un bloque con una antorcha de redstone si el bloque de comandos deja de detectar que hay zombies en la zona apagara la señal del comparador encendiendo así la antorcha y a los comandos que tenga a su lado.

-Detectar a un mob con nombre específico:
Código: [Seleccionar]
/testfor @e[type=Zombie,name=Guardian]
-Detectar cuando un mob esta a x distancia de un jugador:
Código: [Seleccionar]
/execute @a ~ ~ ~ /testfor @e[type=Zombie,name=Guardian,r=5]
-Detectar un mob con un item en la mano:
Código: [Seleccionar]
/testfor @e[type=Zombie,name=guardian] {HandItems:[0:{id:"minecraft:stone_sword"}]}

-------------------- Detectar un item --------------------


Detectar items en el suelo utilizando /testfor no siempre tiene utilidades, ya que la mayoría de sistemas que usan la detección de items en el suelo lo hacen con el comando execute (recordemos que el comando testfor es limitado y solo nos sirve como mecanismo para detectar algo y en base a eso mediante otro bloque de comandos realizar una acción) Pero si es cierto que el execute no permite el uso de nbt tags.

-Detectar item en el suelo:
Código: [Seleccionar]
/testfor @e[type=Item]
-Detectar un item en concreto:
Código: [Seleccionar]
/testfor @e[type=Item] {Item:{id:"minecraft:torch"}}
-Detectar item renombrado:
Código: [Seleccionar]
testfor @e[type=Item] {Item:{id:"minecraft:torch",tag:{display:{Name:"antorcha cálida"}}}}

------------------ Detectar items en item frame ------------------


-Detectar un item en un item frame:
Código: [Seleccionar]
/testfor @e[type=item_frame] {Item:{id:"minecraft:torch",Damage:0s,Count:1b},ItemRotation:0b}
Jugadores
Spoiler para ocultar:
Detectar a un jugador con items, en coordenadas o cerca de otras entidades
Las utilidades del testfor en jugadores son básicamente saber cuando un jugador sostiene un item, lo tiene en el inventario, si esta en un lugar en específico etc...
Aunque solo detectar a un jugador o un mob no sirve mucho mas que para saber algo sobre estos. Para abrir una puerta o hacer tp a un jugador por ejemplo, cuando estos tienen un item en la mano hay que utilizar un bloque de comandos en modo cadena o utilizar un comparador que active el siguiente comando.


------------------ Detectar items en el inventario ------------------


Detectar items en el inventario del jugador es una de las cosas más útiles para el mapmaking, desde abrir una puerta al tener una llave en el inventario o detectar que el jugador ha recogido un item específico y muchísimas más cosas.

Si queréis probar estos comandos aquí tenéis uno para conseguir la antorcha:
Código: [Seleccionar]
/give @p minecraft:torch 1 0 {display:{Name:"antorcha cálida",Lore:["Emite una cálida luz que que protege de las más bajas temperaturas."]}}También os recomiendo este give generator, es bastante útil y ahorra mucho tiempo: https://ezekielelin.com/give/


-Detectar item en el inventario:
Código: [Seleccionar]
/testfor @a {Inventory:[{id:"minecraft:torch"}]}
-Detectar item seleccionado en cualquier slot:
Código: [Seleccionar]
/testfor @a {SelectedItem:{id:"minecraft:torch"}}
-Detectar un item seleccionado en el primer slot de la hotbar:
Código: [Seleccionar]
/testfor @a {SelectedItemSlot:0,Inventory:[{Slot:0b,id:"minecraft:torch"}]}
-Detectar item renombrado seleccionado en primer slot:
Código: [Seleccionar]
/testfor @a {SelectedItemSlot:0,Inventory:[{Slot:0b,id:"minecraft:torch"},{tag:{display:{Name:"antorcha cálida"}}}]}
-Detectar item renombrado y con lore seleccionado
Código: [Seleccionar]
/testfor @a {SelectedItem:{id:"minecraft:torch",tag:{display:{Name:"antorcha cálida",Lore:["Emite una cálida luz que que protege de las más bajas temperaturas."]}}}}

---- Detectar jugadores (coordenadas, cercanía, etc...) ----


Detectar jugador en un radio respecto a un bloque de comandos
Código: [Seleccionar]
/testfor @a[r=5]
-Detectar jugador en un radio respecto a otra entidad
Código: [Seleccionar]
/execute @e[type=Zombie] ~ ~ ~ /testfor @p[r=5]
-Detectar a un jugador en un radio respecto a unas coordenadas
Código: [Seleccionar]
/testfor @a[x=0,y=50,z=0,r=3]

-------- Detectar jugadores con efectos de poción --------


Detectar efectos de poción de jugadores puede ser muy útil, tanto como detectar items en el inventario, siempre que la situación requiera usarlo claro.


Aquí tienéis una lista con todas las id de los efectos de poción:
http://minecraft.gamepedia.com/Status_effect#Summary_of_effects

-Detectar efecto de poción (Comando básico)
Código: [Seleccionar]
/testfor @a {ActiveEffects:[{Id:1b}]}
-Detectar efecto de poción (nivel)
Código: [Seleccionar]
/testfor @a {ActiveEffects:[{Id:1b,Amplifier:0b}]}
 
Varios
Spoiler para ocultar:

---- Detectar jugadores en un team o con un scoreboard. ----


Aunque útil para saber por ejemplo si hay un jugador con cierto score o si esta en un team, debo decir que en este caso el testfor sería un comando transitorio, que serviría para dar señal al siguiente comando. La mayoría de veces en mapas o minijuegos se utiliza el /execute aplicando los mismos selectores de objetivo que utilizare en los siguientes comandos:

-Detectar jugador en un team:
Código: [Seleccionar]
/testfor @p[team=Red]Tanto en este comando como en los demás utilizaré como ejemplo el team "Red"
y el scoreboard: "Muertes"

-Detectar jugador de un team en ciertas coordenadas:
Código: [Seleccionar]
/testfor @a[team=Red,x=0,y=50,z=0,r=3]
-Detectar un jugador de un team con score mínimo:
Código: [Seleccionar]
/testfor @a[team=Red,score_Muertes_min=3]
-Detectar un jugador de un team con puntuación exacta:
Código: [Seleccionar]
/testfor @a[team=Red,score_Muertes=3,score_Muertes_min=3]

-Si dais ideas de ejemplos con /testfor que no encajen en ningún otro apartado los añadiré aquí  ;)


Si tenéis alguna duda, sobre un comando en concreto relacionado con el /testfor, podéis preguntarlo en este mismo post :)
En cambio si tenéis algún consejo, para mejorarlo o añadir algo, prefiero que me lo digáis directamente por mensaje privado, para dejar los comentarios exclusivamente para dudas u otras cosas.

Espero sinceramente que os haya servido de ayuda este post si teníais alguna duda y que os haya gustado  :D :D ya que ha sido bastante tedioso de hacer <3


Linkback: http://minecraftmin.net/index.php?topic=14382.0
« Última modificación: Febrero 20, 2017, 05:25:35 pm por sircripers »
(∩ ͡° ͜ʖ ͡°)⊃━☆゚.*・。゚copy pastus magicae






Respuesta #1 Febrero 14, 2017, 07:02:49 pm

PabloAN




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    2045-2017
  • Actividad

  • 0%
  • Logros

Más información

Gran aportación sir, la verdad ayudaras a mucha gente (incluyéndome :v) que no tenga tanta experiencia con estos comandos
Dejo Mi Wendingo!


Respuesta #2 Febrero 25, 2017, 05:24:07 pm

Monster89




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Me Cago En Chavez
  • Actividad

  • 0%
  • Logros

Más información

Soy nuevo en los comandos, me sirvió  mucho gracias por la ayuda por ahora el mapa necesita estos comando...


Respuesta #3 Mayo 26, 2017, 06:53:24 pm

Kevin190




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MinecraftMin, soy el mejor toro Español!
  • Actividad

  • 0%
  • Logros

Más información

¡Wow, muy currado!
Me encantaría que pusieras para qué versión son estos comandos.  :D





Respuesta #4 Mayo 27, 2017, 04:10:03 pm

sircripers




  • Conectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    ñeñeñe? ⎝(。◁゚)⎠
  • Actividad

  • 2%
  • Logros

Más información

¡Wow, muy currado!
Me encantaría que pusieras para qué versión son estos comandos.  :D
Menos uno o dos todos deberían poder usarse a partir de la 1.8, por ejemplo:

Detectar coordenadas en la 1.11
Código: [Seleccionar]
/testfor @a[x=0,y=50,z=0,r=3]en la 1.8 - 1.10 era así:
Código: [Seleccionar]
/testfor @a[0,50,0,r=3]
« Última modificación: Mayo 27, 2017, 04:15:58 pm por sircripers »


Respuesta #5 Septiembre 18, 2017, 10:37:14 pm

na_na_na_banana




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    ola k ase
  • Actividad

  • 7%
  • Logros

Más información

esto sirve en la version 1.12.2  ??
ola k ase


Respuesta #6 Septiembre 18, 2017, 11:25:41 pm

sircripers




  • Conectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    ñeñeñe? ⎝(。◁゚)⎠
  • Actividad

  • 2%
  • Logros

Más información




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

xx
Todo sobre el comando /replaceitem

Iniciado por KaliNuska

5 Respuestas
4134 Vistas
Último mensaje Septiembre 25, 2014, 03:43:42 pm
por Grovyle
smiley
[Tutorial] Todo sobre el comando /tellraw

Iniciado por CreepyPandi

0 Respuestas
700 Vistas
Último mensaje Junio 26, 2016, 02:28:19 pm
por CreepyPandi
question
AYUDA SOBRE TESTFOR U OTROS COMANDOS

Iniciado por Lexiont12

2 Respuestas
883 Vistas
Último mensaje Junio 28, 2014, 06:34:26 am
por thecalin
xx
Error con el comando testfor

Iniciado por Chrimollo

8 Respuestas
2338 Vistas
Último mensaje Junio 28, 2015, 02:03:01 pm
por Anonimous_D