4 votos

Minecraft 1.14 - cómo detectar bloques a cierta distancia del jugador

Este va a ser mi primera pregunta aquí sobre algunos de los trabajo que iba a hacer por un mundo que estoy creando. Vamos a saltar a la pregunta.

EL MODO FÁCIL

Me gustaría ser capaz de detectar si el jugador está en "rango" de un bloque especificado (también conocido como micelio). Si el jugador tiene una distancia máxima de 1, necesito para desovar algunas partículas alrededor del jugador. Por ahora, he encontrado un tedioso hacer esto, pero no cubre todos los casos. Al final, he puesto algunas imágenes que explican el área de micelio cubra y casos cuando la detección debe trabajar. ATENCIÓN: no existe un único bloque de micelio. Casi todo el mundo va a ser cubiertos en el micelio!

Cómo puedo lograr que ahora?

Para cada dirección, tengo un commandblock de cheques para el jugador, en un reloj. Por ejemplo, para detectar a un jugador en la parte superior de micelio he utilizado:

execute as @a at @s if block ~ ~-1 ~ minecraft:mycelium run particle minecraft:happy_villager ~ ~ ~ 1 1 1 1 10 force

Esto se repite para cada variación. Así que si me quiere detectar un paso hacia adelante o hacia atrás, voy a hacer ~1 ~-1 ~ o ~-1 ~-1 ~, moviendo la X o la coordenada Z.

Haciendo el micelio, que lleva por ahora 5 commandblocks en el reloj, y no cubre, por ejemplo, el bloque de arriba, las esquinas y el bloque de cerca, ya que se sumará 6 más commandblocks.

Así que empecé a experimentar

Sé que no es una propiedad de los objetos, se llama distancia. Traté de poner @a[distance=..3] o @s[distance=..3], pero el comando simplemente deja de funcionar.

Y ahora estoy aquí

Desde que perdió a muchos de mi tiempo en la búsqueda, y ya que es todo muy confuso, porque de la 1.13/1.12/1.8 versiones, he decidido publicar un oficial de la pregunta.

OBJETIVO FINAL (poner todas las cosas que yo quería hacer simultaneamente)

Quiero detectar si un micelio bloque 1 cuadra del jugador, en cada dirección. Si sí, me gustaría ser capaz de:

  1. Reproducir una secuencia de sonido, hecho con otros commandblocks, para que el jugador (sólo para ese jugador, o en esa posición)
  2. Aplicar efecto de partículas en esa posición
  3. Veneno y lastimar al jugador

El micelio cubra casi todo el mundo, así que no puedo probar por solo "específicos" posiciones o hacer marcadores. CADA uno de micelio bloque debe ser detectado, y si se detecta, debe hacer que la secuencia de acciones al menos una vez.

Detection area of mycelium Where detection must work

1voto

Wim Ombelets Puntos 73

No hay forma más fácil de lo que intentaste. @e y otros selectores solo funcionan para entidades, no para bloques.
He creado un sistema complicado en el pasado que le permitiría hacer algo similar, pero (no está actualizado a 1.13 y) necesitaría bastante configuración y crearía mucho más retraso que simplemente escribir los 27 comandos para su sistema.

JugonesTop.com

Jugonestop es una comunidad para amantes del gaming. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X