Learn · modules

Что такое фейковый лаг в Minecraft? Объяснение задержки пакетов

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

TRtrolPublished 4 min read

Что такое «фейковый лаг» в Minecraft?

«Фейковый лаг» — это боевой модуль, встречающийся в некоторых чит-клиентах для Minecraft, который удерживает исходящие пакеты перемещения игрока вместо отправки их каждый тик, а затем выпускает всю очередь сразу. Нормальное соединение постоянно сообщает о позиции, поэтому копия сервера о том, где находится игрок, отслеживает его реальное положение. «Фейковый лаг» намеренно нарушает эту связь: игрок продолжает идти и сражаться нормально на своем экране, в то время как сервер задерживает более старую позицию, а когда очередь наконец-то очищается, все остальные видят рывок или короткое телепортирование вместо плавного движения.

Привлекательность заключается в разрыве, который он создает. Пока пакеты удерживаются, запись позиции сервера отстает от реальности, и атаки, направленные на эту старую позицию, не попадают в вас настоящего. Когда всплеск происходит, вы возвращаетесь в то место, где на самом деле находитесь, и рассинхронизация закрывается.

Как работает «фейковый лаг»

Обычный клиент отправляет пакет перемещения примерно раз в тик, поэтому запись сервера о позиции игрока редко отстает от реальности более чем на долю секунды. «Фейковый лаг» перехватывает эти исходящие пакеты, помещает их в очередь и удерживает очередь закрытой в течение короткого периода времени вместо того, чтобы выпускать их немедленно.

Пока идёт удержание, ничего не меняется в опыте самого игрока. Он по-прежнему нормально ходит, прыгает и раскачивается на своём экране. Заморожена только точка зрения всех остальных: сервер и любой наблюдающий игрок застывают в последней позиции, которая успела быть зафиксирована до начала удержания. Когда удержание заканчивается, заблокированные пакеты высвобождаются одновременно, и игрок кажется резко перескакивающим или дергающимся в свою реальную позицию, вместо того чтобы просто дойти до неё.

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

Почему люди используют это в бою

Окно рассинхронизации создаёт проблему наведения для противников. Во время удержания они наводятся на последнюю известную позицию, которая теперь отстаёт от вашего реального местоположения на несколько тиков. Атаки приземляются в пустое пространство. В тот момент, когда рывок отправляет заблокированные пакеты, и вы мгновенно перемещаетесь в свою реальную позицию, окно закрывается, но вы получаете один или два кадра неуязвимости в бою.

В длительном удержании эффект более драматичен. Игрок может заикаться назад или вбок на несколько блоков с точки зрения всех остальных зрителей, что делает его гораздо сложнее поразить снарядами или оружием ближнего боя, требующим точного прицеливания.

Фейковый лаг против Блинка

Фейковый лаг часто относят к Блинку, поскольку оба являются модулями манипулирования пакетами, которые создают разрыв между реальным положением игрока и тем, что было сообщено серверу. Механизм, лежащий в основе, отличается, и то же самое касается того, как это выглядит на экране другого человека.

АспектФейковый лагБлинк
Поведение пакетовЗадерживает пакеты движения, а затем выпускает их залпомПриостанавливает соединение, а затем возобновляет его
Визуальный эффектЗаикание или короткий телепортЗаморозка, а затем мгновенный переход в новую позицию
Что эксплуатируетсяСервер хранит устаревшее положение, пока клиент продолжает двигатьсяСервер не получает обновлений во время приостановки
Маркер обнаруженияВнезапный всплеск пакетов движения после удержанияРазрыв соединения, за которым следует немедленное обновление

Они относятся к одной категории проблем, но используют разные рычаги. Фейковый лаг никогда не прекращает общение с сервером, он просто общается с задержкой и сразу всем. Блинк прекращает общение вообще и возобновляет разговор, когда решит.

Обнаружение и риск

Ложный лаг существует для того, чтобы сместить реальное положение игрока от того, что зафиксировал сервер, а внезапный рывок сразу после задержки — это именно та закономерность, на которую рассчитаны античиты на стороне сервера. Постоянство всплесков пакетов после задержек, паттерн прерывистого движения в нескольких боях, невозможные переходы позиции: всё это признаки, на которые обращает внимание хороший античит.

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

FAQ