1 votos

Comando para que un Jefe de Soporte de Armadura te siga

Estoy tratando de construir una mesa con personas (puestos de armadura) que tienen cabezas que te siguen. Básicamente, entras en la habitación y luego todos te siguen con sus cabezas.

Si es posible me encantaría que los soportes de las armaduras sólo puedan girar la cabeza 90 grados, pero eso no es tan importante.

Esperemos que no se necesiten tantos bloques de mando.

Gracias de antemano.

1voto

Wim Ombelets Puntos 73

Estos comandos permiten que cada armadura situada en un área de 200x200 alrededor de un jugador rote su cabeza hacia el jugador con una precisión de 90° (condición: que esté mirando a z positivo):

Inicialización:

scoreboard objectives add rotation dummy

Bucle: scoreboard players set @e[type=armor_stand,tag=!rotation] rotation 0 scoreboard players tag @e[type=armor_stand,tag=!rotation] add rotation execute @p ~1 ~ ~-1 entitydata @e[type=armor_stand,y=0,dx=100,dy=256,dz=-100,score_rotation_min=1] {Pose:{Head:[0f,45f,0f]}} execute @p ~1 ~ ~1 entitydata @e[type=armor_stand,y=0,dx=100,dy=256,dz=100,score_rotation=0] {Pose:{Head:[0f,135f,0f]}} execute @p ~1 ~ ~1 entitydata @e[type=armor_stand,y=0,dx=100,dy=256,dz=100,score_rotation_min=2] {Pose:{Head:[0f,135f,0f]}} execute @p ~-1 ~ ~1 entitydata @e[type=armor_stand,y=0,dx=-100,dy=256,dz=100,score_rotation=1] {Pose:{Head:[0f,225f,0f]}} execute @p ~-1 ~ ~1 entitydata @e[type=armor_stand,y=0,dx=-100,dy=256,dz=100,score_rotation_min=3] {Pose:{Head:[0f,225f,0f]}} execute @p ~-1 ~ ~-1 entitydata @e[type=armor_stand,y=0,dx=-100,dy=256,dz=-100,score_rotation=2] {Pose:{Head:[0f,315f,0f]}} execute @p ~1 ~ ~-1 scoreboard players set @e[type=armor_stand,y=0,dx=100,dy=256,dz=-100,score_rotation_min=1] rotation 0 execute @p ~1 ~ ~1 scoreboard players set @e[type=armor_stand,y=0,dx=100,dy=256,dz=100,score_rotation=0] rotation 1 execute @p ~1 ~ ~1 scoreboard players set @e[type=armor_stand,y=0,dx=100,dy=256,dz=100,score_rotation_min=2] rotation 1 execute @p ~-1 ~ ~1 scoreboard players set @e[type=armor_stand,y=0,dx=-100,dy=256,dz=100,score_rotation=1] rotation 2 execute @p ~-1 ~ ~1 scoreboard players set @e[type=armor_stand,y=0,dx=-100,dy=256,dz=100,score_rotation_min=3] rotation 2 execute @p ~-1 ~ ~-1 scoreboard players set @e[type=armor_stand,y=0,dx=-100,dy=256,dz=-100,score_rotation=2] rotation 3

Esto rota los puestos de armadura hacia tu cuadrante y luego les asigna un valor de marcador para que no sigan rotando hacia ti cada tick (crearía más lag). En lugar de ejecutar todo desde el puesto de armadura me he dado cuenta de que es mucho más fácil ejecutar todo desde el jugador. Normalmente intento que mis cosas de comando sean compatibles con el multijugador, pero aquí uso @p, porque la única solución buena si un puesto de armadura se supone que mira a dos personas en diferentes direcciones sería seleccionar la más cercana. Eso requeriría ejecutar todo desde el puesto de armadura de nuevo, lo que complica las cosas y requiere más etiquetas/tablas de puntuación. Si necesitas eso, dímelo, pero este sistema aquí funciona muy bien para un jugador. Seleccionar rangos más pequeños que 90° sería mucho más complicado. Aquí me beneficio de los selectores dx dy dz que seleccionan un rectángulo, así que simplemente compruebo un rectángulo lejos en la dirección x y z positiva, uno lejos en la dirección x+z negativa y así sucesivamente y encuentro un puesto de armadura allí. Para evitar el buggy, he tenido que hacer que el puesto de armadura te ignore si estás exactamente en el mismo valor x o z que él. Pero en ese caso no habrá una buena dirección hacia la que rotar, así que no importa. Podría añadir casos especiales para eso, pero no lo hace mucho mejor y complica los comandos que ya están ahí.

...y justo antes de enviar me di cuenta de que todo esto se rompe si no se añade un valor a la puntuación de rotación al principio, así que añadí los dos primeros comandos. Sólo se ejecutarán una vez por cada puesto de armadura.

Si tienes más dudas de cómo funciona esto, pregunta en los comentarios y te lo puedo explicar. ¡Ha sido un reto divertido!

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