Помогите Как проверить смотрит ли игрок на регион WorldGuard API.

  • Автор темы Автор темы Grazy_
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Grazy_

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
Grazy_
Знаю как проверить находиться ли игрок в регионе он в нем, но мне нужно смотрит ли игрок на регион. Если можно киньте примеров пару, буду благодарен.
Нашел код как проверить смотрит ли игрок на локацию, но мне нужен регион или получить локацию региона тогда.
Спи*дил нашел в одной теме о векторах.
Код:
  public boolean doesPlayerTarget(Player p, Location target) {
      // p — это ваш игрок
      // target — это локация, куда игрок должен смотреть
      // Проверяем, находятся ли они в одном мире
      if(!target.getWorld().equals(p.getWorld())) return false;
      // Давайте начнём!
      // Получаем локацию головы игрока
      Location head = p.getLocation().add(0, p.getEyeHeight(), 0);
      // Получаем направление взгляда игрока в виде вектора и
      // сокращаем его до длины 1, используя normalize()
      Vector look = p.getLocation().getDirection().normalize();
      // Получаем направление цели от игрока, вычитая из его локации цель
      // Естественно, снова используем normalize(), чтобы сократить значение
      Vector direction = head.subtract(target).toVector().normalize();
      // Давайте сконструируем наше векторное умножение. Когда длина векторного умножения 0, игрок
      // определённо смотрит на нашу локацию цели
      // почему? потому что тогда площадь параллелограмма, показанного выше, будет равно 0 :)
      Vector cp = direction.crossProduct(look);
      // Давайте получим длину из вектора
      double length = cp.length();
      // Если длина больше 0.1, игрок явно
      // Не смотрит на нашу локацию.
      if (length < 0.1){
         return false;
      }
      return true;
}
 
Последнее редактирование:
Разобрался, для моих целей достаточно было проверить самого игрока в регионе. То исть я брал и самого игрока и того на кого он смотрит. Так так тема осталась без ответа, скорее всего такое мало кому пригодилось, тему закрываю.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх