Цепочка качения и затухания, вторичное преломление под перекрытием и штамп версии дефолтника: почему линии гранат не наследуются между серверами

23 сентября 2026 г. в 16:06:53

Дефолтные линии в CS2 — не статичные координаты, а динамический контракт с tick-сэмплингом, нормалями и материалами. Смещение release, смена порядка отскоков и разрыв между тренировочным и соревновательным окружением делают старые записи «минус кирпич» без перепривязки к ревизии карты.

Лид

На про-сцене дефолтная линия — это не «запомнил точку и кликнул». Траектория гранаты переписывается на границах tick, в нормалях столкновений и в параметрах prop: каждый патч может незаметно сдвинуть угол преломления под балкой, ступень трения на ступеньках или толщину коллайдера ящика. Тот же тайминг зажатия кнопки после обновления Mirage, Ancient или Inferno часто даёт не «совсем мимо», а смещение на один блок: дым цепляет нижний край окна и укатывает мимо пакета, молотов лишний раз отражается от косяка — и тайминг CT уже не тот.

Точка отсечения: задержка release и иллюзия «уже бросил»

Видимая дуга на клиенте и дуга, которую фиксирует сервер, не всегда лежат на одной временной оси. В хвосте ввода клиент подстраивает предсказание; если бросок совпал с концом strafe, переходом sit/stand или сменой оружия в тот же кадр, момент release, который сэмплирует сервер, может опоздать на пол-tick относительно ощущения «отпустил клавишу».

Окно-smoke на Mirage, огонь в проём Ancient — типичные линии «N шагов + jump-throw / ЛКМ». После патча симптом реже выглядит как полный промах: чаще минус кирпич — дым касается нижней кромки рамы и катится иначе, огонь лишний раз отскакивает от внутренней кромки. В разборе демо это записывают как «ошибся линией», точнее — таблица фаз не совпала со штампом версии: при том же наборе клавиш окно сэмплинга release сдвинулось.

В блокноте команды разделяйте шаги (смещение) и якорь прицела (стабилизировались ли pitch/yaw до release). Только шаги — и после sub-tick правок вся «книжка» протухает разом.

Цепочка отскоков: переворот нормали и тихая правка дефолтных prop

Настоящая подпись smoke/flash/molly — второе и третье столкновение. Первый удар задаёт sector, мелкие углы дальше решают: прилипнет к стене, докатится в нишу или повиснет на пороге.

В changelog редко пишут «friction ящика 0.4 → 0.6», но смена сетки, инстанса prop или interior/exterior меняет порядок bounce chain: после второго удара дым мог опускаться вдоль стены — и вдруг получает микро-отскок вверх, CT видит ноги раньше. Банан на Inferno, склон у Anubis — линии, которые едят угол качением, реагируют первыми.

Старый demo как учебник скрывает случай «визуально prop на месте, нормаль сдвинута на пол-юнита». Повторяема последовательность ввода; не повторяем отклик материалов на сервере.

Тренировочный сервер и MM: не фиксируй одну «фальшивую» дугу

На кастомке с sv_cheats, фиксированным tick и урезанным набором prop мышечная память кристаллизуется — в соревновательном матче «та же раскладка, другая точка». Три частых источника: неполный набор prop, иной порядок коллизий граната/игрок, смещение release из-за latency.

Дефолтник должен нести штамп версии + привычку фиксировать revision карты: для каждой линии — «проверено в MM, тот же диапазон ping, те же bind’ы прыжка/броска», а не «стрим 2024 года». GIF из C5GAME или Steam Workshop — лишь визуальная подсказка; финальная проверка — второй такт качения в актуальном патче на том ping, на котором играет команда.

Итог

Траектория, отскоки и prop-линии — динамический контракт с движком и коллизией карты. Перепрошивка линий после патча — не трата часов ради перфекционизма, а повторное выравнивание точки отсечения, bounce chain и согласованности среды. Иначе сохраняется память пальцев на клавишах, а теряется та половина beat, которую дым должен был закрыть от CT.