Configurar entidades con NoAI [1.9]
Buenas a todos, aquí Zekdax trayendo una de las cosas que nos han fastidiado bastante en cuanto a los comandos de la 1.9, ya que no sólo ha cambiado comandos en general, sino como funciona las entidades y los nuevos bug que ha traído en general estos.
Hoy específicamente les hablare de uno de ellos, el NoAI:1b el que usamos para bastante trucos y animaciones. A los que han trabajado en la 1.9 se darán cuenta que no es lo mismo que la 1.8, entonces tenemos que conocer como hacerlos lo más parecido a la versión anterior, por comodidad en general.
También les presentaré un formato que por lo general usaré en los nuevos aportes o temas, que ayudará mucho en cuanto el desarrollo general y también para conocer que conocimientos se necesita para poder comprender con facilidad los comandos siguientes que se van a presentar.
Ní mas que hablar sigamos con esto que es que a lo que venimos a ver.
- Conocimiento de comandos necesarios
- Scoreboard
- Entitydata
- Detectar entidades (y sus NTB tags)
- Summon
- NTB Tag: NoAI
- Execute
1. Detener el movimiento de una entidad en NoAI (que estaba en movimiento)Este es una nueva mecánica (o bug) que nos ha dado bastante fuerte, ya que, en la versión anterior cuando aplicábamos el /entitydata NoAI:1b aunque la entidad estaba en movimiento esta automáticamente se detenía. Pero en cambio, en la 1.9 cuando aplicamos este comando, la entidad sigue moviéndose hasta quedarse quieto unos bloques más adelantes.
En los comandos que se van a presentar son sólo el concepto, ya queda parte del usuario configurar toda la serie de comandos para llegar a hacerlo completamente funcional.
Para empezar con todo comenzamos añadiendo un scoreboard tipo dummy que lo voy a llamar "NoM"
/scoreboard objetives add NoM dummy
Ya con esto necesitamos detectar a una entidad con scoreboard que se le haya aplicado un /entitydata NoAI:1b y a su vez añadir un puntos para que un score específico se haga ejecuciones de comandos. El comando sería el siguiente
/scoreboard players add @e[type=Zombie] NoM 1 {NoAI:1b}
En este caso yo use un Zombie de prueba ya queda de tu parte cambiar a que entidad vas a usar y todas las especificaciones de la misma, y también el nombre del scoreboard
En este caso, el Zombie que muevo (en mi ejemplo) lo estoy haciendo en una sola dirección y sentido, y para este comando siguiente luego de haber detectado la entidad con el NoAI se le coloca enfrente de donde se esta moviendo un barrier block para que se detenga, el comando sería el siguiente:
/execute @e[type=Zombie,score_NoM_min=1,score_NoM=1] ~ ~ ~ /setblock ~-1 ~ ~ minecraft:barrier
Como dije este Zombie tiene una dirección específica entonces se lo coloco enfrente de él, pero se puede poner varios execute para que sea a todas direcciones.
Sabiendo que el scoreboard NoM esta añadiendo puntos, cuando llegue a 160 (curiosamente este es el tick que se detiene completamente) se aplica un comando que elimina el barrier block
/execute @e[score_NoM_min=160] ~ ~ ~ /setblock ~-1 ~ ~ minecraft:air
También depende de los execute anteriores.
Esto ha sido todo, como he dicho ya depende del usuario configurar el comando para hacerlo funcionar, esto es concepto (experimentando) que encontrado para detener el movimiento de las entidades cuando se le aplica el comando /entitydata NoAI:1b
2. Quitar la colisión de una entidadEsta es una nueva mecánica que se aplico en las snapshot de la 1.9 (no se exactamente cuál), para unos cuantos trucos esto causa ciertas molestias.
Como esto se usa tanto como para entidades con o sin NoAI, pero por lo general la mayoría lo usará para evitar la colisión de las entidades que sí poseen el NoAI:1b
Para comenzar se necesita añadir un team (/scoreboard teams) para poder activar esta opción del mismo:
/scoreboard teams add NoC
Ahora en el scoreboard teams option se añadió una opción que configura la colisión (collisionRule), para quitarla se coloca el siguiente comando:
/scoreboard teams option NoC collisionRule never
Esta última opción del comando se configura como se quiera, ya que esto tiene varías opciones para ser aplicado (por ejemplo, en vez de never es pushOtherTeams)
Ya esta configurado el team que necesitamos para quitarle la colisión a entidad, ahora sólo queda hacer que la entidad este dentro del team, con la nueva NTB tag Team:Nombre hacer que directamente al summonearlo pueda estar dentro del team y quitarle la colisión.
Un ejemplo sería:
/summon Villager ~ ~1 ~ {Team:NoC}
O si esta la entidad con un entitydata se le coloca la tag para que entre al team. Un ejemplo sería:
/entitydata @e[type=Villager,r=10] {Team:NoC}
3. Quitarle la gravedad a una entidadMuchas gracias a
@lol_600 (que se me olvido darle el agradecimiento al principio en el tema) por darme el comando, yo sólo encontré el número que necesita el comando.
El post es el siguiente:
http://minecraftmin.net/index.php?topic=12426.msg62388#msg62388Eso ha sido todo, y gracias por leer el aporte (o parte de él), espero que les haya ayudado. Si tienen alguna duda, estoy a la orden ^^
PD: Si falta otra cosa que añadir al post respecto a las entidades con NoAI:1b, se les agradece avisar para ver si puedo hacer algo, o si ya esta hecho, para añadirlo al tema con su respecto agradecimiento.
Linkback: https://minecraftmin.net/index.php?topic=12693.0