Помогите Как проверить наличие препятствия перед игроком на X радусе

  • Автор темы Автор темы Sergeo
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Sergeo

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Solomka
Одна из рун телепортирует игрока на определенное кол-во блоков по координате X. Мне нужно проверять на наличие стены или чего-то иного перед игроком, если есть, то отменять телепорт

Решено!
 
Последнее редактирование:
И еще вопрос: Почему он телепортирует по координате Z, то есть, если я смотрю вперед меня разворачивает и телепортирует назад по координате Z, а мне нужно, чтобы он телепортировал по взглязу игрока


Решено! Если кому-то это поможет, то вот код


Код:
private static void teleport(Player p, float y, int levelRune){

        if(y > 315 || y < 45){
            south(p, levelRune);
            return;
        }

        if(y > 45 && y < 135){
            west(p, levelRune);
            return;
        }

        if(y > 135 && y < 225) {
            north(p, levelRune);
            return;
        }
        if(y > 225 && y < 315 ){
            east(p, levelRune);
        }
    }

    private static void west(Player p, int levelRune) {

        Location loc = p.getLocation();

        double x = loc.getX();

        x = x - getInt("SpecialRune.Levels.TeleportDistantion." + levelRune);

        loc.setX(x);

        if(isHaveBlock(loc)) p.teleport(loc);

    }

    private static void north(Player p, int levelRune) {
        Location loc = p.getLocation();

        double z = loc.getZ();

        z = z - getInt("SpecialRune.Levels.TeleportDistantion." + levelRune);

        loc.setZ(z);

        if(isHaveBlock(loc)) p.teleport(loc);
    }

    private static void east(Player p, int levelRune) {

        Location loc = p.getLocation();

        double x = loc.getX();

        x = x + getInt("SpecialRune.Levels.TeleportDistantion." + levelRune);

        loc.setX(x);

        if(isHaveBlock(loc)) p.teleport(loc);
    }

    private static void south(Player p, int levelRune) {
        Location loc = p.getLocation();

        double z = loc.getZ();

        z = z + getInt("SpecialRune.Levels.TeleportDistantion." + levelRune);

        loc.setZ(z);

        if(isHaveBlock(loc)) p.teleport(loc);
    }
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.
Назад
Верх