Помогите Как получить игрока, который находится под прицелом

_MCMaster_

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
DragOn4ik
Вопрос в названии. Заранее спасибо)
 
Проверить находиться ли какое-то существо или локация "под прицелом" можно через длину вектора, ортогонального вектору направления взгляда игрока и разности радиус-векторa игрока и данной сущности/локации.

Если же нужно узнать, какие существа находятся под прицелом игрока, то нужно пробежаться по вектору направления взгляда игрока и проверять ближайших сущностей.

Если нас интересуют только игроки, а другие мобы нет, то вероятно будет эффективней пробежаться по всем игрокам и проверять первым способом.
 
Последнее редактирование:
Не подскажешь, как?
Я же тебе написал
Проверить находиться ли какое-то существо или локация "под прицелом" можно через длину вектора, ортогонального вектору направления взгляда игрока и разности радиус-векторa игрока и данной сущности/локации.
 
Ударь и там покажет в ивенте.
Ну так себе решение... Мне надо найти игрока под прицелом, а не игрока, которого ты ударил.
Или ты имел в виду ударить через плагин? (Это возможно?)
И потом отменить ивент.
 
Чем ему удар поможет? Максимум - проверить можно ли бить в этом регионе.
 
Про это я и сам знал...
Чем ему удар поможет? Максимум - проверить можно ли бить в этом регионе.
Вот именно! Как я получу игрока, которого ударить надо? Все равно придется узнать, кто под прицелом...
 
Про это я и сам знал...

Вот именно! Как я получу игрока, которого ударить надо? Все равно придется узнать, кто под прицелом...
player.launchProjectile(Arrow.class, player.getLocation().getDirection().multiply(100));
Стрела сама все сделает.
 
player.launchProjectile(Arrow.class, player.getLocation().getDirection().multiply(100));
Стрела сама все сделает.
d0259cd1cccd14e891557d6d850f1eb1.jpg
 
ТС, а на каком максимальном расстоянии должен находиться игрок? Возможно проще просто по вектору взгляда проитерировать.
 
Че за рофлы и за костыли? Через вектор нормально можно проверить
Никаких рофлов. Не умеете юзать, никто не виноват.
Код:
        Arrow arr = player.launchProjectile(Arrow.class, player.getLocation().getDirection().multiply(100));
        arr.setMetadata("bullet", new FixedMetadataValue(this.plugin, "14,7"));
Остальное обработает дамаг ивент.
 
Последнее редактирование:
Собстно затея ТС мне не совсем понятна. Если он решил в рантайме проверять при движении игрока. Сервак успешно уйдет поспать.
 
Никаких рофлов. Не умеете юзать, никто не виноват.
Код:
        Arrow arr = player.launchProjectile(Arrow.class, player.getLocation().getDirection().multiply(100));
        arr.setMetadata("bullet", new FixedMetadataValue(this.plugin, "14,7"));
Остальное обработает дамаг ивент.
Так вот как всякие VoxelSniper'ы вычисляют блок на который смотрит игрок...
(нет, ну реально рофлишь)
 
Назад
Верх