Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Как выстрельнуть стрелу? Подробнее в теме

Тема в разделе "Разработка плагинов для новичков", создана пользователем EnderBro3D, 3 дек 2016.

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

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

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Всем привет, сегодня решил сделать так чтобы при взаимодействии с каким либо предметом (оружеем) вылетала стрела, как у лука, только дальше, сильнее и без натяжки предмета (титевы)
    Физику не проходили, можете не объяснять.
     
  2. Хостинг MineCraft
    <
  3. kirill2011s

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

    Баллы:
    103
  4. AtomicInteger

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

    Баллы:
    46
    Запустить стрелу можно так(для примера взял алмазный меч):
    Код:
    if (event.getItem().getType() == Material.DIAMOND_SWORD)
        player.launchProjectile(Arrow.class);
     
  5. Автор темы
    EnderBro3D

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

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Сделал я как-то так

    Код:
        @EventHandler
        public void PlayerInteract(PlayerInteractEvent event) {
            if(event.getMaterial() == Material.GOLD_HOE) {
                Player p = event.getPlayer();
                Arrow proj = p.launchProjectile(Arrow.class, p.getEyeLocation().getDirection());
                proj.setCustomName(ChatColor.DARK_GRAY + "Пуля");
                proj.setCustomNameVisible(true);
            }
        }
    Как мне теперь сделать чтобы стрела летела не вниз а всегда прямо?
     
  6. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    setVelsoity
     
  7. Автор темы
    EnderBro3D

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

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
     
  8. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Без физики не полетит.
     
  9. Автор темы
    EnderBro3D

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

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Но вы же - знаете физику. Просто напишите код, или что вставлять в 1 2 3 - new Vector(1,2,3); чтобы стрела летела постоянно прямо
     
  10. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Я тебе не школьный учитель физики. Так что сам думай.
     
  11. Автор темы
    EnderBro3D

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

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Вы ничего не будете объяснять, просто напишите какой код нужно вставить, без объяснения, я сам пойму потом
     
  12. AtomicInteger

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

    Баллы:
    46
    Как плохой вариант, можно каждый тик обновлять координату стрелы(y) на некоторое значение, получится что стрела двигается по прямой:)
    Так же, можешь попробовать такой вариант(вечно прямо она лететь не будет, но намного дальше чем обычно):
    Код:
        @EventHandler
        public void OnInteract(PlayerInteractEvent event) {
            if(event.getPlayer().getItemInHand().getType() == Material.ARROW) {
                Arrow p = event.getPlayer().launchProjectile(Arrow.class);
                p.setVelocity(event.getPlayer().getLocation().getDirection().multiply(1000));
            }
        }
    [DOUBLEPOST=1480794477,1480793562][/DOUBLEPOST]Только что провёл эксперимент, при значении параметра метода multiply в 1000(как в примере выше) потерь в высоте при дистанции стрельбы в 200 блоков не наблюдается.Думаю, этого хватит.
     

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