Estoy creando un datapack que requiere el uso de soportes de armadura. Sin embargo, el problema principal aquí es que no sé cómo detectar cuándo un soporte de armadura recibe un golpe. La mayoría de las criaturas, incluido el soporte de armadura, tienen la propiedad HurtTime:0
que indica cuántos ticks (hasta 20) antes de que pueda recibir más daño. Sin embargo, esta propiedad para el soporte de armadura es inútil, ya que nunca cambia incluso si recibe un golpe. ¿Cómo puedo detectar si un jugador golpea un soporte de armadura con esta limitación en mente?
Respuesta
¿Demasiados anuncios?
Gerard Gracia
Puntos
36
Puedes detectar un golpe de un soporte de armadura usando una entidad llamada la Interacción. En las propiedades de datos hay una propiedad llamada ataque y si usas ataque.timestamp
puedes obtener el momento en que se golpeó la interacción, y establecer un marcador en el timestamp, si el marcador es mayor que 0 entonces hacer algo, y después de hacer algo lo vuelves a establecer en 0. Puedes establecer el marcador usando:
/execute store result score [Holder Of The Score] [Score] run data get entity @e[tag=interaction,type=interaction,limit=1] attack.timestamp 1