Помогите Есть ли рядом игрок

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

Kurumi

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Kurumi
Допустим игрок отправил команду /test player, player это ник игрока. Мне нужно проверить, если рядом с сендером стоит игрок из аргумента, ему будет отправляться сообщение. Каким образом можно проверить, находиться ли игрок из аргумента вблизи сендера?
 
Если ты уже проверил что sender - игрок
PHP:
Player sender;
Player player;
int maxDistance=10; //У всех своё понятие о близости
if(sender.getLocation().distance(player.getLocation())<maxDistance) {
    //Отправитель меньше чем в 10 блоках от игрока
}
 
Последнее редактирование:
Код:
    int getDistance(double x1, double y1, double x2, double y2) {
        double dx = x2 - x1;
        double dy = y2 - y1;
        return (int) Math.sqrt(dx * dx + dy * dy);
    }
 
Попробую чуть позже, в данный момент не могу проверить
 
Если ты уже проверил что sender - игрок
PHP:
Player sender;
Player player;
int maxDistance=10; //У всех своё понятие о близости
if(sender.getLocation().distanceSquared(player.getLocation())<maxDistance) {
    //Отправитель меньше чем в 10 блоках от игрока
}
Все работает! Но почему ты не поставил там просто distance, а именно distanceSquared ? Я так понял этот метод получает площадь игрока
 
Все работает! Но почему ты не поставил там просто distance, а именно distanceSquared ? Я так понял этот метод получает площадь игрока
Площадь игрока... Орнул. Ошибся, но можно и его использовать.

Расстояние между локациями (метод distanceSquared) получают за формулой (x2 - x1)^2 + (y2 - y1)^2 + (z2 - z1)^2, но оно возвращает дистанцию в квадрате. Чтобы получить саму дистанцию, получают корень (метод distance).
Если надо оптимизировать - можно использовать distanceSquared, но тогда сравнивать с максимальным расстоянием в квадрате.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх