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

Помогите Как подкинуть игрока?

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

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

    Nippels Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Nippels
    Хочу сделать так чтобы игрока бросило вверх на сколько-то блоков. Не знаю как :(
    Главное, чтобы не тп'шило, а именно кидало!
     
  2. Хостинг MineCraft
    <
  3. Sambon_

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

    Баллы:
    88
    Skype:
    morbla_kun
    Имя в Minecraft:
    Satael
    Ну, гипотетически, можно сделать так, чтобы его телепортировало циклически на 0.3333 блока до того момента, пока не достигнет нужной высоты, а дальше он сам упадёт.
     
  4. Автор темы
    Nippels

    Nippels Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Nippels
    Вероятно. Если функция по легче setVelocity. Только она не работает =/
    Код:
    Vector vec = new Vector(p.getVelocity().getX(), p.getVelocity().getY() + 8, p.getVelocity().getZ());
            p.setVelocity(vec);
     
  5. hyndorik

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

    Баллы:
    66
    Имя в Minecraft:
    hyndo
    Код:
        public static void pushTo(Entity target, Location to, double multiply) {
            Vector unitVector = to.toVector().subtract(target.getLocation().toVector()).normalize();
            target.setVelocity(unitVector.multiply(multiply).add(new Vector(0.0, 0.1, 0.0)));
        }
        public static void pushFrom(Entity target, Location from, double multiply) {
            Vector unitVector = target.getLocation().toVector().subtract(from.toVector()).normalize();
            target.setVelocity(unitVector.multiply(multiply).add(new Vector(0.0, 0.1, 0.0)));
        }
     
  6. Grazy

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

    Баллы:
    76
    Имя в Minecraft:
    Prost
    Попробуй так, у меня все работает.
    PHP:
                Vector v player.getLocation().getDirection();
                
    v.setY(0).normalize().multiply(4).setY(1.5);
                
    player.setVelocity(v);
     
     
  7. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Объясните нубу, что за метод normalize() =(
     
  8. Cristalix

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

    Баллы:
    61
    Имя в Minecraft:
    Superzeka
    Где я могу почитать о векторе?
    (Гуглом пользоваться не умею)
     
  9. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    В ГУГЛЕ
     
  10. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Ну все - выбрасывай.
     
  11. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Видимо, никто не знает...
     
  12. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Ничего он не делает, вроде бы..
     
  13. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Делает там что-то с x y z вроде бы..
     
  14. Dymeth

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

    Баллы:
    76
    Приводит вектор к стандартному виду. Т.е. к длине в одну единицу.
    Соответственно multiply после этого задает конкретную длину, а не некоторое абстрактное значение.
     

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