ProjectileHitEvent

EwrsPlay

Участник
Пользователь
Баллы
36
Имя в Minecraft
Ewrs728
Привет всем. У меня есть плагин, когда игрок стреляет из лука, то там, где упала стрела, его телепортирует. Вроде бы всё хорошо, но не тут то было. Если игрок попал в стену, то его может за эту стену перебросить нафиг... Вот у меня вопрос, как я могу проверить, в какой ситуации приземлилась стрела. Внизу кину картинки, чтобы вы поняли о чём я.
 

Вложения

  • mi793.JPG
    mi793.JPG
    20,2 КБ · Просмотры: 36
  • mi794.JPG
    mi794.JPG
    20 КБ · Просмотры: 35
  • mi795.JPG
    mi795.JPG
    24,7 КБ · Просмотры: 32
  • mi796.JPG
    mi796.JPG
    35,5 КБ · Просмотры: 32
Смотреть в каком направлении висит стрела, и там уже смотреть куда телепортировать
 
Направления напрямую не узнать, но можно проделать логику осматривая блоки относительно позиции Projectile, к примеру - находится ли твердый блок над стрелой, или под стрелой, или же стрела в блоке. Тонкости, но простого способа я лично здесь не вижу.
 
Направления напрямую не узнать, но можно проделать логику осматривая блоки относительно позиции Projectile, к примеру - находится ли твердый блок над стрелой, или под стрелой, или же стрела в блоке. Тонкости, но простого способа я лично здесь не вижу.
Пожалуйста, приведи пример. На данный момент я использую
Block loc2 = new Location(l.getWorld(), l.getX()+vec.getX(), l.getY()+vec.getY(), l.getZ()+vec.getZ()).getBlock();
 
Пожалуйста, приведи пример. На данный момент я использую
Block loc2 = new Location(l.getWorld(), l.getX()+vec.getX(), l.getY()+vec.getY(), l.getZ()+vec.getZ()).getBlock();
Я не знаю точно, где точно у стрелы локация, но я предполагаю логически - там где наконечник (по нему и можно толком зарендерить поворот стрелы). Это проверь. А дальше, по высоте можно сделать по такой логике:
arrow.png

Получать относительные блоки можно проще:
Block#getRelative(BlockFace blockFace)
 
Я не знаю точно, где точно у стрелы локация, но я предполагаю логически - там где наконечник (по нему и можно толком зарендерить поворот стрелы). Это проверь. А дальше, по высоте можно сделать по такой логике:
arrow.png

Получать относительные блоки можно проще:
Block#getRelative(BlockFace blockFace)

Чёт не очень врубаюсь. А вот еще такой вопрос, могу ли я проверить в ProjectileHitEvent если она попала в игрока? Если в игрока, то ничего не должно произойти
 
Назад
Верх