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

Помогите Рандомный спавн в радиусе

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

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

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

    Баллы:
    6
    При заходе на сервер игрок должен появляться в радиусе 500 блоков от нулевых координат.

    ?:
    - Как можно получить рандомные координаты?
    - Как сделать радиус выборки рандомных координат?
    - Как перемещать на них игрока исключительно при первом заходе?

    P.S. готовые плагины не предлагать
     
  2. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    1. Random
    2. См. 1
    3. Player#hasPlayedBefore()
     
  3. Автор темы
    nayden

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

    Баллы:
    6
    спасибо, + можно примеры кода?
     
  4. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    В гугле посмотри примеры с Random, их там полно. При заходе проверяешь играл ли игрок до этого, и, если не играл - получаешь рандомные координаты при помощи класса Random и телепортируешь игрока на них.
     
  5. alexandrage

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

    Баллы:
    173
    Код:
        public static void randomTP(World world, Player player, int radius) {
            Random rd = new Random();
            int x = rd.nextInt(radius + 1) - radius / 2;
            int z = rd.nextInt(radius + 1) - radius / 2;
            int y = world.getHighestBlockYAt(x, z);
            player.teleport(new Location(world, x, y + 1, z));
        }
     
  6. Автор темы
    nayden

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

    Баллы:
    6
    благодарю, решено

    upd:
    корректировка
    Код:
    int y = world.getWorld().getHighestBlockYAt(x, z);
     
    Последнее редактирование: 17 дек 2020
  7. Witenin

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

    Баллы:
    76
    Имя в Minecraft:
    Witenin
    Тему закрой
     
Статус темы:
Закрыта.

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