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

Помогите Оптимизация кода выстрела

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

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

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

    Баллы:
    76
    Я думаю что вызов getNearbyEntityes каждый раз может плохо сказаться на производительности, поэтому думаю что есть альтернативный способ решения задачи. После выстрела запускается цикл, который берёт положение взгляда игрока и итерирует его пока не встретит LivingEntity.
    upload_2019-4-11_0-46-55.png upload_2019-4-11_0-47-36.png
     
  2. MurlikMurlik

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

    Баллы:
    96
    Попробуй измерить время выполнения этого метода.
    Добавь перед его выполнением System.nanoTime();
    А в конце отнимаешь текущее время от старого. Получишь время в наносекундах которое потребовалось на выполнение этого кода. Таким образом и можно прикинуть нагрузку. В идеале, это не должно быть более милисекунды.
     
  3. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    И зачем ты создаешь новый сет каждый раз, если все равно потом просто итерурешь? upload_2019-4-11_12-34-38.png

    + Замени проверку instanceof LivingEntity на
    getNearbyEntitiesByType(LivingEntity.class, ...) (не знаю есть ли в обычном спиготе, в пепере еще можно просто getNearbyLivingEntites, но около-без разницы, можешь самому чекать.
    Ну и к сведению, если радиус у тебя маленький то соответственно getNearbyEntites будет брать энтитией из одного чанка.
     

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