1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Snowmaze, 22 июл 2019.

  1. Автор темы
    Snowmaze

    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
     
    Последнее редактирование: 23 июл 2019
  2. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Попробуй придать ускорение спустя тик после выстрела.
     
  3. Автор темы
    Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    Пробовал, и через два тоже. Всё равно разворачивается
     
  4. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Попробуй без Vector#normalize()
     
  5. Автор темы
    Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    Тоже пробовал, ещё хуже без этого
     
  6. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Проверь сначала, это на сервере летит криво, или на клиенте?
     
  7. Автор темы
    Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    Когда я стрелял мобов из далека, то большинство стрел разворачивались и не попадали, значит на сервере. Другие люди тоже разворот этот видят
     
  8. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Код:
        public void onShoot(ProjectileLaunchEvent event) {
            event.getEntity().setVelocity(event.getLocation().getDirection().normalize().multiply(5));
        }
     
  9. Автор темы
    Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    Я забыл упомянуть, я на версии 1.13.2, там почему-то нет event.getLocation()
     
  10. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Это он ошибся.
    Скорее всего, хотел это предложить:
    PHP:
       public void onShoot(ProjectileLaunchEvent event) {
           
    event.getProjectile().setVelocity(event.getProjectile().getLocation().getDirection().normalize().multiply(5));
       }
     
  11. Автор темы
    Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    Нет, он не ошибся
    upload_2019-7-23_13-7-57.png
    Его способ как бы оказывается работает, но стало хуже
    https://yadi.sk/i/TXUnQqKYeF_axA
     
  12. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Да нет, не ошибся, оно точно есть в 1.14.4
     
  13. Автор темы
    Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    Но из-за этого кода происходит на 1.13.2 то, что на видосе
     
  14. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Как все сложно то... Тогда так.
    Код:
        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));
            }
        }
     
  15. Автор темы
    Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    Значение натяжения тетивы теряется, если стрелять по взгляду игрока. А мне надо чтобы ещё от силы натяжения зависел выстрел. Уже пытался так делать до того, как сюда писал
     
    Последнее редактирование: 23 июл 2019
  16. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ну тогда никак получается. Если там направление левое возвращает.
     
  17. Автор темы
    Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    Да должен быть способ
     
  18. Автор темы
    Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    Я отключил стрелам гравитацию и почему-то даже, когда они статичны они вертятся. Почему? Мы уже сами рассчитали вектор, но почему-то стрела именно через примерно секунду полёта куда-то разворачивается
     
  19. Автор темы
    Snowmaze

    Snowmaze Участник Пользователь

    Баллы:
    36
    и оказывается это из-за сопротивления воздуха, которое обратно пропорционально velocity
     

Поделиться этой страницей