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

Помогите Телепортация игрока

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

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

    _Stimun_ Ньюби

    Баллы:
    1
    Имя в Minecraft:
    _Stimun_
    Как сделать так чтобы когда игрок заходил допустим на координаты с -10 5 10 по -1 10 20 и его телепортировало на 20 11 30
     
  2. alexandrage

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

    Баллы:
    173
    Геометрия.
     
  3. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    PlayerMoveEvent
     
  4. Автор темы
    _Stimun_

    _Stimun_ Ньюби

    Баллы:
    1
    Имя в Minecraft:
    _Stimun_
    Не эт я знаю мне нужно типо как узнать зашол он на координаты или нет
     
  5. alexandrage

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

    Баллы:
    173
    Выше писал, геометрия.

    Код:
    package Example;
    public class Cuboid {
        private long xMin;
        private long xMax;
        private long yMin;
        private long yMax;
        private long zMin;
        private long zMax;
        public Cuboid(long x1, long y1, long z1, long x2, long y2, long z2) {
            if (x1 < x2) {
                xMin = x1;
                xMax = x2;
            } else {
                xMin = x2;
                xMax = x1;
            }
            if (y1 < y2) {
                yMin = y1;
                yMax = y2;
            } else {
                yMin = y2;
                yMax = y1;
            }
            if (z1 < z2) {
                zMin = z1;
                zMax = z2;
            } else {
                zMin = z2;
                zMax = z1;
            }
        }
        public boolean intersects(Cuboid cuboid) {
            return cuboid.xMin <= xMax && cuboid.xMax >= xMin
                   && cuboid.yMin <= yMax && cuboid.yMax >= yMin
                   && cuboid.zMin <= zMax && cuboid.zMax >= zMin;
        }
      
        public boolean contains(long x, long y, long z) {
            return x >= xMin && x <= xMax
                   && y >= yMin && y <= yMax
                   && z >= zMin && z <= zMax;
        }
      
        public long getVolume() {
            return getWidth() * getHeight() * getDepth();
        }
      
        public long getWidth() {
            return xMax - xMin + 1;
        }
      
        public long getHeight() {
            return yMax - yMin + 1;
        }
      
        public long getDepth() {
            return zMax - zMin + 1;
        }
    }
     
  6. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Даже я не понял:cry:
     
  7. alexandrage

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

    Баллы:
    173
    Тебе это не нужно.
    Для особо отбитых.
    Код:
                Cuboid rg = new Cuboid(-10, 5, 10, -1, 10, 20);
                //Проверяем локацию игрока.
                if(rg.contains(userX, userY, userZ)) {
                    //телепорт
                }
     
  8. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    На сколько я понял, он и не поймет
     
  9. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Если не критично, лучше шедулером...
     
  10. alexandrage

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

    Баллы:
    173
    Если в списке 1-10 регионов, можно и мове.
     
  11. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Зависит от количества игроков...
     
  12. alexandrage

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

    Баллы:
    173
    Ну ванили набирали максимум 800 где то. Получаем 1-10*800, ничего сверхтормознутого нет.
    Ну это редкий случай, обычно онли макксимум 150-300. А минигеймы по 50 каждый сервер, если нормальные.
     
  13. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ну да, пожалуй.
     

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