Помогите Ускорение стрелы

Snowmaze

Участник
Пользователь
Баллы
36
Когда я сильно ускоряю стрелу(в 5 раз например) с помощью
Код:
public void onShoot(EntityShootBowEvent event) {
     event.getProjectile().setVelocity(event.getProjectile().getVelocity().normalize().multiply(5));
}
стрела начинает немного отклоняться от курса и лететь куда-то не туда. Есть способ исправить?https://yadi.sk/i/g5JuLP7MG9R5Og
Версия 1.13.2
 
Последнее редактирование:
Попробуй придать ускорение спустя тик после выстрела.
 
Проверь сначала, это на сервере летит криво, или на клиенте?
 
Проверь сначала, это на сервере летит криво, или на клиенте?
Когда я стрелял мобов из далека, то большинство стрел разворачивались и не попадали, значит на сервере. Другие люди тоже разворот этот видят
 
Код:
    public void onShoot(ProjectileLaunchEvent event) {
        event.getEntity().setVelocity(event.getLocation().getDirection().normalize().multiply(5));
    }
 
Я забыл упомянуть, я на версии 1.13.2, там почему-то нет event.getLocation()
Это он ошибся.
Скорее всего, хотел это предложить:
PHP:
   public void onShoot(ProjectileLaunchEvent event) {
       event.getProjectile().setVelocity(event.getProjectile().getLocation().getDirection().normalize().multiply(5));
   }
 
Но из-за этого кода происходит на 1.13.2 то, что на видосе
Как все сложно то... Тогда так.
Код:
    public void onShoot(ProjectileLaunchEvent event) {
        Projectile prejectile = event.getEntity();
        if (prejectile.getShooter() instanceof Player) {
            Player player = (Player) prejectile.getShooter();
            event.getEntity().setVelocity(player.getLocation().getDirection().normalize().multiply(5));
        }
    }
 
Как все сложно то... Тогда так.
Код:
    public void onShoot(ProjectileLaunchEvent event) {
        Projectile prejectile = event.getEntity();
        if (prejectile.getShooter() instanceof Player) {
            Player player = (Player) prejectile.getShooter();
            event.getEntity().setVelocity(player.getLocation().getDirection().normalize().multiply(5));
        }
    }
Значение натяжения тетивы теряется, если стрелять по взгляду игрока. А мне надо чтобы ещё от силы натяжения зависел выстрел. Уже пытался так делать до того, как сюда писал
 
Последнее редактирование:
Значение натяжения тетивы теряется, если стрелять по взгляду игрока. А мне надо чтобы ещё от силы натяжения зависел выстрел. Уже пытался так делать до того, как сюда писал
Ну тогда никак получается. Если там направление левое возвращает.
 
Я отключил стрелам гравитацию и почему-то даже, когда они статичны они вертятся. Почему? Мы уже сами рассчитали вектор, но почему-то стрела именно через примерно секунду полёта куда-то разворачивается
 
Я отключил стрелам гравитацию и почему-то даже, когда они статичны они вертятся. Почему? Мы уже сами рассчитали вектор, но почему-то стрела именно через примерно секунду полёта куда-то разворачивается
и оказывается это из-за сопротивления воздуха, которое обратно пропорционально velocity
 
Назад
Верх