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

Помогите Изменение скорости игрока.

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

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

    mayor123 Старожил Девелопер Пользователь

    Баллы:
    173
    Как изменить скорость игрока? Такой вариант не предлагать:
    Код:
        @EventHandler
        public void onPlayerMove(PlayerMoveEvent event) {
            Player p = event.getPlayer();
            PotionEffect effect = new PotionEffect(PotionEffectType.SPEED, 999999999,  0);
            p.addPotionEffect(effect);
        }
    По причинам:
    1. Слишком быстро
    2. При беге картинка переворачивается
     
    zuma2 нравится это.
  2. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Альтернатив собственно немного.
    Вот к примеру, плагин, он использует множитель для вектора velocity. Но у этого метода есть неприятные моменты:
    1. Рассинхронизация с клиентом, которая приводит к тому, что могут быть дерганья и рывки. Т.е. клиент считает, что у тебя скорость одна, а с сервера тебе присылают другую.
    2. Можно установка velocity легко приводит к зацикливанию: представляете вы в onPlayerMove ставите игроку скорость и всё, он не может остановиться. Тут наверное обязательно учитывать состояния игрока isSprinting() или что-то ещё.

    Вопрос обсуждался здесь. Вроде в споуте есть функции для множителя скорости. Но... тут нужен будет и клиент.

    Поэтому вопрос с эффектом зелья - пока самый лучший вариант.

    Кстати, я сейчас как раз добавляю спидвеи в RoadProtector и работать они будут как раз на основе эффекта зелья скорости.

    Вот тестовый код, результат работы которого меня полностью устраивает - (естественно добавится зависимость от конфигурации):

    Код:
        @EventHandler(priority=EventPriority.NORMAL, ignoreCancelled = true)
        public void onPlayerMove (PlayerMoveEvent event) {
            Player p = event.getPlayer();
     
            if (p.isSprinting()&&(p.getLocation().getBlock().getRelative(BlockFace.DOWN).getType()==Material.GRAVEL)&&
                    (plg.PlaceGuarded(p.getLocation().getBlock())))
                p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,20,0));
     
        }
    
    Т.е. смотрите, практически один в один то, что у Вас. Но я выдаю зелье на 1 секунду - а у вас какое-то огромное число (как сошёл с дороги, его действие закончилось) и проверяю находится ли игрок в состоянии бега. Т.е. ходим по дороге с обычной скоростью.
    Никаких переворачиваний нет, работает отлично. Скорость... наверное можно и увеличить.
     
    mayor123 нравится это.
  3. Автор темы
    mayor123

    mayor123 Старожил Девелопер Пользователь

    Баллы:
    173
    Я нашел в чем проблема. При тестировании плагина ускорение имело значение 100. А время 300 тысячам часов. И в карте сохранился эффект такого сильного ускорения.
     
  4. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Ускорение 100? Я представляю что это было. Я больше 5 не ставил. Там второй параметр - это уровень зелья 0 - первый и т.д.
     
  5. NAUSHNIK52

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

    Баллы:
    103
    Очень хочу на это посмотреть :)
     
  6. Автор темы
    mayor123

    mayor123 Старожил Девелопер Пользователь

    Баллы:
    173
  7. NAUSHNIK52

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

    Баллы:
    103
    Красота!
     
  8. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    mayor123, там без пароля не посмотреть :(
     
  9. Автор темы
    mayor123

    mayor123 Старожил Девелопер Пользователь

    Баллы:
    173
  10. EpicMan2

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

    Баллы:
    173
    Варп прыжок!
     
  11. blood7564

    blood7564 Активный участник

    Баллы:
    88
    Skype:
    kybikr
    Имя в Minecraft:
    Jyree
    "Нужно наличие brains.exe с привязкой библиотеки arms.dll"
     
  12. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    blood7564, Вы думаете, что Вы тонко пошутили? А по-моему, вы просто нахамили, намекая, что у участников данной темы кривые руки и мозг отсутствует. Пожалуйста, будьте дружелюбнее к людям, не хамите.
     
  13. ufes

    ufes Старожил Девелопер Пользователь

    Баллы:
    173
    Смешная шутка!
    Сам то хоть простой плагин написал?


    @fromgate, тут же задам вопрос. Вы случайно не знаете что за подтипы есть у биомов, и где можно прочитать их описание?
     
  14. blood7564

    blood7564 Активный участник

    Баллы:
    88
    Skype:
    kybikr
    Имя в Minecraft:
    Jyree
    fromgate я не нахомил, а просто "посоветовал" почитать литературы...
     
  15. blood7564

    blood7564 Активный участник

    Баллы:
    88
    Skype:
    kybikr
    Имя в Minecraft:
    Jyree
    и это я процитировал
     
    ВремяПриключений нравится это.
  16. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    blood7564, извините там не видно предложения почитать литературу (может подскажете, что именно почитать, а то надоело методом научного тыка что-то находить, да исходники крафтбуккита изучать). Там был недвусмысленный намёк, причем после того как автор темы отписался, что он понял в чем была его проблема.

    Подтипов не знаю ;) Но наверное имеются в виду "технические биомы"? Собственно все виды биомов перечислены здесь. Там правда есть ещё и устаревшие биомы: rain_forest, seasonal_forest, savanna, shrubland, ice_desert, tundra. Для чего их оставили не понятно, наверное для совместимости - чтобы переконвертировать старые карты. Как я понимаю эти биомы важны при генерации. Потом можно смело выставлять похожие: где нужен снег ставить тайгу и не заморачиваться с ландшафтным соответствием ;)
     
    slavik123123123, ufes и mayor123 нравится это.
  17. Автор темы
    mayor123

    mayor123 Старожил Девелопер Пользователь

    Баллы:
    173
    Спасибо! Просто ufes в моей команде. Когда я писал плагин, столкнулся как раз с непонятными биомами, спросил его: "Ты знаешь, что это за биомы [биомы]?" Тему я закрою, нафлудили тут мне...
     
Статус темы:
Закрыта.

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