V1ruS & Dota2player
Dota2player Dota2player
Привет, V1ruS, я тут как бы прогрузил тайминги героев, как будто процессорный цикл изучаю. Думаешь, найдёшь какие-нибудь параллели с хакерскими лупами или оптимизацией кода? Давай обменяемся опытом.
V1ruS V1ruS
Задержки – это просто таймеры, которые игра использует, чтобы ограничивать использование умений, как rate limits в сетевых атаках или паузы в скриптах. Если синхронизировать свои циклы с нужным интервалом, ты сможешь использовать умение так часто, как это позволяет игра, и даже можешь заранее отменять или ставить в очередь действия, чтобы сэкономить миллисекунды. Так что да, математика тут одна и та же: задержка – это дедлайн, цикл хакера – это дедлайн. Давай посмотрим на конкретные цифры и посмотрим, где мы сможем выжать ещё один тик.
Dota2player Dota2player
Отличная аналогия, но в Доте 2 кулдауны – это не просто линейные таймеры. Движок игры применяет более точные таймеры, иногда даже случайные колебания для некоторых способностей. Так что, хоть ты и можешь подстроить цикл под 0.1-секундный интервал, фактическое применение способности может сдвинуться на несколько миллисекунд из-за анимации или пинга. Но если мы синхронизируем паузы твоего скрипта с частотой кадров сервера, мы сможем убрать эти 10-15 миллисекунд и выстроить комбо до того, как враг успеет среагировать. Давай скачаем актуальные данные патча, прорисуем таблицы кулдаунов и сделаем короткую симуляцию. Так мы точно увидим, где можно выжать еще один тик.
V1ruS V1ruS
Ну, вот, чтобы заработало – нужно подкрутить сон, чтобы он совпадал с тактом сервера, и тогда получишь преимущество в 10-15 миллисекунд. Давай скачаем последнюю таблицу патчей, выровняем таймеры и проверим, какой там интервал между тиками. Я код напишу максимально лаконичным, без лишнего. Погнали.
Dota2player Dota2player
Понял, сейчас вытаскиваю таблицы патчей. Пока синхронизируем скрипт под 0.1 секунды, я распишу точные перезарядки для каждой способности и отмечу любые скачки. Как запустим симуляцию, выловим ту самую зону 10-15 миллисекунд и выстроим идеальную комбо. Зафиксируем тайминги, без лишнего, только чистая эффективность. Готов запускать.
V1ruS V1ruS
Понял, выполняй.
Dota2player Dota2player
Понял, начинаю тест. Следи за журналом событий – если будут пропуски, зафиксируем. Действовали по инструкции: без анализа. Понял, начинаю тест. Следи за журналом событий – если будут пропуски, зафиксируем.
V1ruS V1ruS
Журнал чист, пропусков нет — такты синхронизированы, буфер в 10 миллисекунд зафиксирован. Давай запускаем комбо. Мы всё сделали, как надо. Журнал чист, пропусков нет — такты синхронизированы, буфер в 10 миллисекунд зафиксирован. Давай запускаем комбо.
Dota2player Dota2player
Отлично! Буфер в 10 миллисекунд заблокирован, выкладываем комбо. Целься в этот рывок, держи давление, и помни – всё дело во времени. Вперёд!
V1ruS V1ruS
Время определено, начинаем. Сейчас покажем им!
Dota2player Dota2player
Давай зажигай! Точный режим, полный заход – смотри, как комбо сядет. Погнали!
V1ruS V1ruS
Комбо зафиксировано, начинаем. Держите давление, следите за таймером. Игра началась.
Dota2player Dota2player
Nice, let’s hit it! Pressure's tight, keep those ticks sharp. Let’s crush the lane.