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

20 сентября 2026 г. в 16:08:57

Дефолтные смokes и flashes в CS2 — не «мышечная память», а конечный автомат с начальной скоростью, угловой скоростью и коэффициентами материалов. Сдвиг на полшага в шаге физики или нормали — и точка уходит с подоконника на перила.

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

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

Кадр отпускания: та же стойка, другой вектор

Бросок в CS2 — не только «длительность зажатия». Остаточная скорость движения, граница приседа, комбинация ЛКМ/ПКМ вместе задают вектор на первом кадре. На Mirage mid в той же щели кирпича, если патч тронул замедление в воздухе или лимит броска из приседа, разница 1% скорости может дать на кадр раньше удар о потолок коннектора — из «закрыть окно» получается «оставить щель».

Про-игроки режут линию на наблюдаемые узлы: царапина на штукатурке, угол антенны, пересечение прицела HUD со skybox — не «на глаз». Если узел расходится с реальной точкой, это не дрожание руки, а сигнал, что регистр вектора сменился. На тренировочной карте с sv_cheats 1 включают трассировку и сверяют высоту касания потолка и горизонтальный сдвиг на одном узле, вместо слепых 50 повторов.

Первый и второй отскок: нормаль на дюйм — точка на метр

Сложнее всего не парабола, а распределение энергии после первого контакта. Тонкий поручень, шов наклонной текстуры, невидимое ребро хитбокса делают нормаль круче или положе, чем кажется по модели. Если у флешки первый угол 42° стал 39°, второй отскок может съехать с ящика в траншею — команда белая превращается в чёрную.

При пересборке дефолтов фиксируйте последовательность отскоков, а не только финальную точку: стена или пол на первом контакте, жив ли предохранитель на втором, съел ли rolling-граната горизонталь на «зубцах» ступени. После патча сначала прогоняйте двухотскочные позиции — линии, которые исторически заходили только со второго касания (логика вроде арки Banana на Inferno или внешнего склона у святилища на Ancient; механика, без привязки к номеру патча).

Дефолтная линия = конфиг с версией

Таблица командных раскидок — как JSON: ключ стойка + прицел, значение — ожидаемое время касания потолка + хеш последовательности отскоков. В минорном патче имя карты то же, а дефолты физматериалов или приоритет столкновения игрок–граната меняются — старый хеш мёртв. Зубрёжка заставит в решающем раунде бросать дым прошлого сезона в рамку текущего.

Ритм пересборки (чисто competitive, не про осмотр карт на C5GAME):

  1. Три на карту: оставить по одной подтверждённой дефолтной smoke / flash / molotov; остальное — статус «нужна повторная проверка».
  2. Запись покадрово: на одном узле сравнить кадр касания потолка и кадр взрыва; ≥2 кадра расхождения — метка «дрейф версии».
  3. Голос в пачке: саппорт называет «потолок / пол» в момент контакта — дешевле раунда, чем угадывать отпускание по реплею.

У гранат нет магии — есть ещё не выровненная система координат. После обновления сначала выровняйте вектор и порядок отскоков, потом говорите о тактике. Иначе ваши дефолты — это правильный ответ в старом движке, повторённый в новом.