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

Помогите Дальность полета стрелы

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

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

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Делаю вот так
    Код:
    event.getEntity().setVelocity(event.getEntity().getVelocity().multiply(3));
    
    Но из-за такого стрела отклоняется от курса. Как можно увеличить дальность стрельбы без отклонения?
     
  2. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Увеличивать только одну характеристику.
     
  3. Автор темы
    konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Ладно
    Сделал вот такую штуку
    Код:
              Location locBlock = player.getTargetBlock(null, 1).getLocation();
               
               if(locBlock != null) {
                 
                 if(locBlock.getBlockX() - player.getLocation().getBlockX() != 0) {
                   if(locBlock.getBlockX() > player.getLocation().getBlockX()) {
                     event.getEntity().setVelocity(event.getEntity().getVelocity().setX(event.getEntity().getVelocity().getBlockX() + 3));
                     System.out.println("1###############" + event.getEntity().getVelocity().toString());
                   }else {
                     event.getEntity().setVelocity(event.getEntity().getVelocity().setX(event.getEntity().getVelocity().getBlockX() - 3));
                     System.out.println("1###############" + event.getEntity().getVelocity().toString());
                   }
                 }
                 if(locBlock.getBlockZ() - player.getLocation().getBlockZ() != 0) {
                   if(locBlock.getBlockZ() > player.getLocation().getBlockZ()) {
                     event.getEntity().setVelocity(event.getEntity().getVelocity().setZ(event.getEntity().getVelocity().getBlockZ() + 3));
                     System.out.println("2###############" + event.getEntity().getVelocity().toString());
                   }else {
                     event.getEntity().setVelocity(event.getEntity().getVelocity().setZ(event.getEntity().getVelocity().getBlockZ() - 3));
                     System.out.println("2###############" + event.getEntity().getVelocity().toString());
                   }
                 }
                 
               }
               System.out.println("3###############" + event.getEntity().getVelocity().toString());
    
    Но стрела все равно слетает, если игрок стреляет по диагонали, а не прямо по осям.
     
  4. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Как-то запутанно у вас все.
    Vector v = event.getEntity().getVelocity();
    if(v.getX() > v.getZ())
    v.add(20, 0, 0);
    else
    v.add(0, 0,0 20);
    Вот примерный код.
     
  5. Автор темы
    konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Когда смотрел, то вектора были еще и отрицательными, поэтому так и сделал.
     
  6. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Мне кажется, что надо умножить X и Z на одно и тоже число И/ИЛИ прибавить константу/умножить на коэффициент скорость по Y.
     
  7. Автор темы
    konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu

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