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

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

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

Статус темы:
Закрыта.
  1. Автор темы
    Taloff

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

    Баллы:
    61
    Здравствуйте, прошу подсказать, как отправить игроков на спавн в радиусе 200?
     
  2. Lemar98

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

    Баллы:
    76
    if(location1#distance(location2) <= 200) {
    player#teleport(location);
    }
     
  3. Автор темы
    Taloff

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

    Баллы:
    61
    Что ты написал? upload_2019-11-23_10-37-49.png
     
  4. alexandrage

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

    Баллы:
    173
  5. Lemar98

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

    Баллы:
    76
  6. Автор темы
    Taloff

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

    Баллы:
    61
    А можно ответ получить? Как это реализовать?
     
  7. alexandrage

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

    Баллы:
    173
    Тебе написали уже. Подумай своей "отсутствующей" головой и все.
     
  8. Lemar98

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

    Баллы:
    76
    Я тебе полностью готовый код дал.
    Если ты не можешь его заюзать, тебе в туториалы по джаве
    Про плагины пока забудь
     
  9. xXCopafumeXx

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

    Баллы:
    76
    Имя в Minecraft:
    xXCopafumeXx
    public void teleport(PlayerTeleportEvent e) {
    Player p = e.getPlayer();
    World w = p.getWorld();
    int loc1 = p.getLocation().getBlockX();
    int loc2= p.getLocation().getBlockZ();
    int loc3 = p.getLocation().getBlockY();
    Location l2 = new Location(w, 0, 0, 0); //Заместь нолей корды(X,Z,Y), а эту строчку можно стиреть
    if(loc1 > 200 && loc2 > 200 && loc3 > 200) {
    p.teleport(l2);
    }
    }
     
    Последнее редактирование: 23 ноя 2019
  10. Lemar98

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

    Баллы:
    76
    Что ты высрал
     
  11. xXCopafumeXx

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

    Баллы:
    76
    Имя в Minecraft:
    xXCopafumeXx
    Будь по адекватней, ок?
    Я так думаю ты Java знаешь лудше меня. Я написал есле корды игрока (X Y Z) превышают 200 то телепортировать его на кординаты указаные в l2.
     
  12. alexandrage

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

    Баллы:
    173
    Ну все - выбрасывай.
     
  13. MurlikMurlik

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

    Баллы:
    96
    Ну да, это будет работать если все 3 оси будут больше 200. И то не как задумано.

    Вот что нужно похоже.
    Location playerLoc = player.getLocation();
    for (Player pl : Bukkit.getOnlinePlayers()) {
    if (playerLoc.distance(pl.getLocation()) <= 200) {
    //Телепортируй игроков куда надо.
    pl.teleport(new Location(playerLoc.getWorld(), 0, 64, 0));
    }
    }

    p.s Ты рискуешь попасть в бесконечную рекурсию, вызовом телепортации в событии телепортации.
     
  14. MemoryRAVE

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

    Баллы:
    66
    Имя в Minecraft:
    xR4V3
  15. Lemar98

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

    Баллы:
    76
    Как можно нормально отвечать двум людям, у которых есть в руках готовый рабочий код, но они не могут его заюзать?
     
  16. Автор темы
    Taloff

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

    Баллы:
    61
    Спасибо ты мне очень помог!
     
  17. Автор темы
    Taloff

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

    Баллы:
    61
    Можно адекватно ответить, как это использовать и без тонких оскорблений! В ответ вам скажу из вас ужасный человек, который помогает!
     
Статус темы:
Закрыта.

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