Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Отслеживание передвижения Player'a

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

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

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

    Баллы:
    61
    Можно ли каким-нибудь танцам с бубном узнать сколько Player прошел
     
    Последнее редактирование: 21 июн 2016
  2. Хостинг MineCraft
    <
  3. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    Отлавливай ивент PlayerMoveEvent.
     
  4. Mr_RoboMan

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

    Баллы:
    123
    Мне кажется он хочет узнать именно двигается ли Игрок в определенный момент, т.е. что-то вроде вызвать метод Player.IsMovingNowMazafaka();
    Но такого нету(
     
  5. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    А самому такой метод закостылить?
     
  6. Mr_RoboMan

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

    Баллы:
    123
    Я не представляю насколько это костыльно должно быть))...
     
  7. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ну сохраняй позицию игрока в хашмап при каждом moveevent, а перед тем как сохранить тупо сравнивай позицию из хашмапа и игрока. Если отличаеться то значит он двигаеться. И заноси новые корды в мапу
     
  8. Mr_RoboMan

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

    Баллы:
    123
    Ну можно, только это не мне надо, а ТСу)
     
  9. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    ))
     
  10. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Каждые два тика.
     
  11. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Через timer или repeating task чтоли?
     
  12. Jampire

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

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    ох уж эти мамкины кодеры. а потом "ой, сервер лагает"

    для подобных решений категорически запрещено использовать MoveEvent. На сервере с онлайном в 100 человек эта штука может вызываться 2 - 3 тысячи раз в секунду. даже 1 миллисекунда исполнения запихнутого туда кода вызовет огромную проблему.
     
  13. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    NCP нормальноже работает с большим онлайном, а там действий с MoveEvent намного больше, чем тупо сохранение корд в мапу. Хотя как обычно я наверное не прав.
     
  14. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Молчал бы уже тогда. Вспомни сначала, как привелегии в своих самописах через dispatchCommand выдавал.
     
  15. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
  16. Автор темы
    stiznt

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

    Баллы:
    61
  17. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Код:
        @EventHandler
        public void onMove(PlayerMoveEvent event) {
            Player p = event.getPlayer();
            if(!(event.getFrom().getY() < event.getTo().getY())) {
                // игрок не прыгнул
                // куда то заносишь значение
                // в моем случае в конфиг предположим
                getConfig().set(p.getName().toString(), getConfig().getInt(p.getName().toString()) + 1);
                 saveConfig();
            }
        }
     
  18. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Если нужно узнать сколько игрок прошёл вообще (с первого захода) то вот
    Код:
    int totalWalked = player.getStatistic(Statistic.WALK_ONE_CM);
     
  19. Автор темы
    stiznt

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

    Баллы:
    61
    Спасибо! То что нужно
     
Статус темы:
Закрыта.

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