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

Прыжок на несколько блоков в высоту

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

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

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

    Баллы:
    61
    Пробовал сделать прыжок на 2 или 3 блока вверх, но пока что ничего толкового не вышло. Никто не знает, как реализовать?
     
  2. MrMagaChannel

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

    Баллы:
    76
    Имя в Minecraft:
    mrmagachannel
    Эффект прыгучести
     
  3. Автор темы
    Taranton

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

    Баллы:
    61
    Я имею в виду конкретно прыжок на определенное кол-во блоков. Например, на 3. Без эффектов, через код.
     
  4. LetsDank

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

    Баллы:
    61
    Имя в Minecraft:
    LetsDank
    Код:
    @EventHandler
    public void onFlightAttempt(PlayerToggleFlightEvent event) {
     
        if(!event.isFlying && event.getPlayer().getGameMode() != GameMode.CREATIVE) {
     
            event.getPlayer().setVelocity(event.getPlayer().getVelocity().add(new Vector(0,0.25,0)));
            event.setCancelled(true);
     
        }
     
    }
     
  5. Автор темы
    Taranton

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

    Баллы:
    61
    Ничего не поменялось(
     
  6. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    И че не работает?
     
  7. Nikolai_Faint

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

    Баллы:
    96
    Войти в креатив.
     
  8. Grazy

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

    Баллы:
    76
    Имя в Minecraft:
    Prost
    Vector v = p.getLocation().getDirection();
    v.setY(1.5);
    p.setVelocity(v);
     
  9. Автор темы
    Taranton

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

    Баллы:
    61
    Ну этот ивент не вызывается. После махинаций с PlayerMove все таки заходит, но данное условие не выполняется
     
  10. Автор темы
    Taranton

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

    Баллы:
    61
    Зачем заходить в креатив, если в условии прописано, что режим не должен быть креатив
     
  11. Grazy

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

    Баллы:
    76
    Имя в Minecraft:
    Prost
    А для чего именно вам нужен этот код?
     
  12. Автор темы
    Taranton

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

    Баллы:
    61
    Для своих целей. Делаю один плагин
     
  13. Grazy

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

    Баллы:
    76
    Имя в Minecraft:
    Prost
    Хмм, не хочешь не говори. Если тебе нужно подкинуть игрока на три блока вверх, векторы тебе в помощь.
     
  14. Автор темы
    Taranton

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

    Баллы:
    61
    Ну игроки будут прыгать не на 1 блок в высоту, а на 2-3.
    В этот же ивент помещать? PlayerToggleFlight?
     
  15. Grazy

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

    Баллы:
    76
    Имя в Minecraft:
    Prost
    Смотри, получаешь игрока с самого ивента:
    Код:
        @EventHandler
        public void ars(PlayerToggleFlightEvent e){
            Player p = e.getPlayer();
            Vector v = p.getLocation().getDirection().setY(3);
            p.setVelocity(v);
        }
    
    Не совсем понял что за ивент ты слушаешь...
    Тут скорее всего нужна будет задержка, а то игроки смогут летать), еще античит кикать будет)
     
    Последнее редактирование: 9 окт 2017
  16. Автор темы
    Taranton

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

    Баллы:
    61
    Ну как я понял, этот ивент работает если нажать на пробел два раза. А я вот хотел бы, чтобы при нажатии одного раза прыжок был на 2 блока вверх
     
  17. Grazy

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

    Баллы:
    76
    Имя в Minecraft:
    Prost
    Может тебе дать игроку просто эфект прыгучести, вот посмотри мой пример.
    Код:
    @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e) {
            Player player = e.getPlayer();
            if (player.getWorld().getName().equals("World_the_end")) {
                PotionEffectType type = PotionEffectType.JUMP;
                PotionEffect effect = new PotionEffect(type, 999999999, 3, false, false);
                player.addPotionEffect(effect);
            } else {
                PotionEffectType type = PotionEffectType.JUMP;
                player.removePotionEffect(type);
            }
        }
    
     
  18. Автор темы
    Taranton

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

    Баллы:
    61
    И можно установить на какое количество блоков он будет подпрыгивать?
     
  19. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
  20. alexandrage

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

    Баллы:
    173
    Со стороны сервера вообще нет определения прыжка, этим занимается клиаент. Тебе придется дать эффект прыгучисти 2-3 уровня. Нравится тебе это, или нет.
     

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