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

  • Автор темы Автор темы Taranton
  • Дата начала Дата начала

Taranton

Активный участник
Пользователь
Баллы
61
Пробовал сделать прыжок на 2 или 3 блока вверх, но пока что ничего толкового не вышло. Никто не знает, как реализовать?
 
Код:
@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);
 
    }
 
}
 
Код:
@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);
 
    }
 
}
Ничего не поменялось(
 
Vector v = p.getLocation().getDirection();
v.setY(1.5);
p.setVelocity(v);
 
Хмм, не хочешь не говори. Если тебе нужно подкинуть игрока на три блока вверх, векторы тебе в помощь.
 
Смотри, получаешь игрока с самого ивента:
Код:
    @EventHandler
    public void ars(PlayerToggleFlightEvent e){
        Player p = e.getPlayer();
        Vector v = p.getLocation().getDirection().setY(3);
        p.setVelocity(v);
    }
Не совсем понял что за ивент ты слушаешь...
Тут скорее всего нужна будет задержка, а то игроки смогут летать), еще античит кикать будет)
 
Последнее редактирование:
Смотри, получаешь игрока с самого ивента:
Код:
    @EventHandler
    public void ars(PlayerToggleFlightEvent e){
        Player p = e.getPlayer();
        Vector v = p.getLocation().getDirection().setY(3);
        p.setVelocity(v);
    }
Не совсем понял что за ивент ты слушаешь...
Тут скорее всего нужна будет задержка, а то игроки смогут летать), еще античит кикать будет)
Ну как я понял, этот ивент работает если нажать на пробел два раза. А я вот хотел бы, чтобы при нажатии одного раза прыжок был на 2 блока вверх
 
Может тебе дать игроку просто эфект прыгучести, вот посмотри мой пример.
Код:
@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);
        }
    }
 
Может тебе дать игроку просто эфект прыгучести, вот посмотри мой пример.
Код:
@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);
        }
    }
И можно установить на какое количество блоков он будет подпрыгивать?
 
Со стороны сервера вообще нет определения прыжка, этим занимается клиаент. Тебе придется дать эффект прыгучисти 2-3 уровня. Нравится тебе это, или нет.
 
Назад
Верх