Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
Подтверждено Задержка на наложение талантов

Упомянутые в теме пользователи:

Показано с 1 по 12 из 18

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Инопланетянин Аватар для Gooldark
    Регистрация
    05.01.2012
    Сообщений
    3,911
    Поблагодарил(а)
    264
    Получено благодарностей: 764 (сообщений: 431).
    Репутация: 4435
    В общем доспав 2 часа ночи, которых меня лишили, а так же прочитав патчноуты и примеры в них, я подумал над всех этой реализацией, а так же зачем она нужна.

    Предположим все спелы бы имели флайтаймы или фиксированные задержки, тогда каждый раз при использовании спела запускался свой отдельный таймер, в случае с флайтаймом время таймера бы зависело от расстояния.

    Все это сильно грузило бы систему да и в принципе лишено смысла когда все это можно упростить.
    Предположим мы разобьем время на равные промежутки по ~300мс, все эти промежутки будет считать один таймер, а не тысячи для каждого отдельного спела.
    Назовем этот промежуток времени пакетом или Spell Batching.
    Но введем такое понятие как приоритет.
    Например:
    Для фрост болта приоритет будет равен 1
    Для винтерчила приоритет будет равен 2
    Для пробуждения древних приоритет будет равен 4

    Если игрок использовал спел, проводилась проверка на приоритетность заклинания, если у спела приоритет равен 0, то спел тут же обрабатывался, если приоритет отличался от 0, то он становился в очередь.
    Затем, когда текущий пакет заканчивался, у всех спелов в очереди уменьшался приоритет на единицу и проводилась новая проверка на необходимость обработки в порядке очереди.

    Таким образом:
    урон фрост болта обрабатывался через 0 - 300 мс
    наложение винтерчила проходило через 300 - 600 мс
    пробуждение древних хилило через 1200 - 1500 мс
    Все зависело в какой промежуток времени попадал игрок при использовании спела, ему могла повезти и он бы попал сразу перед началом нового пакета, либо наоборот не повезти если он попал сразу после его начала.

    Разумеется это все грубо представлено, но думаю основная идея была именно такой, а именно - оптимизация.

    Сейчас у близард более совершенные машины чем были раньше, и они могут уменьшить время таймера пакета.

  2. 1 пользователь сказал cпасибо Gooldark за это полезное сообщение:

    Anemia (19.10.2021)

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 14.02.2018, 20:49
  2. Ответов: 21
    Последнее сообщение: 07.05.2017, 04:14

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •