Обновление кода1 окт. 2026 г., 01:50 GMT+3

Обновление CS2 (1 окт. 2026 г.)

Rush 001 получил глубокую переработку скриптов и документации, настройки прицела расширены новым квадрантным стилем и управлением цветом обводки, Vulkan-шейдеры пополнились, а данные капсул Cologne 2026 реструктурированы для volatile‑ценообразования и интегра‑

Кратко

  • Скрипт Rush 001 (логика башен, туман, звуки и UI) серьёзно рефакторен и документирован, при этом основные правила tug-of-war не изменились.
  • Настройки прицела расширены: добавлен стиль Static Quadrant, значительно увеличены диапазоны gap и thickness, а также введено отдельное управление цветом и прозрачностью обводки в конварах и UI.
  • Ретикл-арт для друзей/наблюдателей удалён, сосредоточив разработку вокруг основного настраиваемого прицела и связанных шейдеров.
  • Наборы наклеек и хайлайтов Cologne 2026 теперь проходят через новый volatile-префаб капсул, что централизует поведение volatile контейнеров и убирает устаревшие поля spray.
  • Добавлен и обновлён большой набор Vulkan-шейдеров и дефолтов компилятора ресурсов, стандартизирующий рендер персонажей, оружия, перчаток, декалей и UI для игроков и создателей.
  • `gameinfo.gi` расширен, объединив настройки движка, рендера, инструментов, nav и аудио в одну конфигурацию, что делает работу Hammer и resourcecompiler более предсказуемой.

Это обновление перезапускает скрипты и UI режима Rush 001, добавляет новый набор Vulkan-шейдеров, значительно расширяет настройки прицела (включая новый квадрантный стиль и управление цветом обводки) и упрощает как конвейер инструментов, так и данные турнирных предметов.

Обновления прицела и HUD

  • Новый стиль и лимиты прицела: cl_crosshairstyle теперь допускает значения до 9; стиль 9 в UI обозначен как Static Quadrant. Стиль 7 в тексте переименован в Dynamic Quadrant для более точного описания визуала.
  • Значительно расширенный диапазон gap: cl_crosshair_gap теперь принимает значения от -3840 до 3840 (ранее 0–128), что даёт крайне тонкую настройку для очень компактных или наоборот широко разнесённых прицелов, включая нетипичные конфигурации на высоких разрешениях.
  • Небольшое увеличение верхней границы толщины: cl_crosshair_thickness теперь поддерживает до 32 (ранее максимум 31), давая чуть больше свободы для жирных линий.
  • Управление цветом обводки прицела: Новые per-user-конвары cl_crosshairoutline_r, _g, _b и _a (0–255) задают RGB-цвет и прозрачность обводки. Меню опций теперь показывает это как “Outline Color and Transparency”, позволяя отделять внутренний цвет от обводки для лучшей видимости на разных картах.
  • Тонкая настройка квадрантов: Для квадрантных прицелов добавлен слайдер “Quadrant Size” (GameUI_StaticQuadSplitRatio), который позволяет точнее регулировать размер каждой четверти.
  • Удалена отдельная ретикл-артка для друзей/наблюдателей: Старые HUD-ресурсы ретикла и XML-записи для специальных изображений друзей и наблюдателей удалены из макета HUD и связанных изображений. Это указывает на консолидацию вокруг основного настраиваемого прицела вместо дополнительных наложенных артов.
  • Очистка логики панели победы: Логика и график вероятности выигрыша в конце раунда и панель MVP (hudwinpanel.js / hudwinpanel_background_map.js) получили большой внутренний рефакторинг и комментарии. Поведение не изменилось, но код теперь чётче документирует последовательность обработки хитов, изменения шансов, звуков и фонов MVP.
  • Хуки для отчёта урона после раунда: Скрипт учёта команды теперь явно логирует и управляет панелями Post-Round Damage Report, связывая их с существующими классами анимаций. Поведение сохранено, но рефакторинг упростит будущие правки таймингов и видимости попапов.
  • UX-правки контроллера демо: Скрипт UI демо добавляет более описательные комментарии и улучшает внутреннее состояние для:
    • переключателя highlights vs. round playback и текста,
    • расположение маркеров интервала под таймлайном,
    • обработки переключателей TrueView и DOA. Эти изменения направлены на надёжность и ясность, а не на видимые новые функции.

Rush 001: глубокий перепис скриптов и улучшения удобства

Скрипт режима Rush 001 (maps/scripts/rush_001.js) был глубоко переписан, с более понятной логикой и подробной внутристрочной документацией. Правила геймплея остались прежними, но поток выполнения стал гораздо явнее.

Подтверждённые детали поведения из обновлённого скрипта:

  • Линейная «перетягивание каната»: Режим описан как семи-комнатный tug-of-war, где террористы толкают в сторону индекса комнаты 6, а CT — в сторону индекса 0. Специальная decider room («Convoy») зарезервирована для ситуаций 9–9 и не участвует в обычном случайном выборе комнаты.
  • Выбор комнат и идентичности: Комнаты организованы по индексам с определёнными наборами ID для каждого слота (напр., базовые комнаты с ID 301/401, стартовый кластер 101–104, пул средних комнат 201–212). Комментарии маркируют комнаты по именам (Spire, Trainyard, Crane, Hydra и т.д.), но практическое поведение — выбор из фиксированного списка допустимых ID для каждого индекса.
  • Отслеживание матчей и раундов:
    • Скрипт внутренне отслеживает выигрыши раундов по командам, поскольку API скриптинга не даёт прямого доступа к счёту команд.
    • Он аккуратно детектирует перезапуск матча движком (например, mp_restartgame или окончание матча) и пересеивает расположение комнат и счётчики, чтобы избежать рассинхронов.
    • В режиме разогрева (warmup) логика конца раунда обходится, чтобы ничьи в разогреве не портили состояние tug-of-war.
  • Логика фронта и победы:
    • В конце раунда индекс frontline room сдвигается в сторону победившей команды.
    • Если фронт пересекает крайнюю базу (вне первого или последнего играбельного индекса), матч немедленно завершается в пользу соответствующей команды.
    • Если максимальное число раундов исчерпано, но обе базы всё ещё стоят, победитель определяется сначала по сумме выигрышей раундов, а при равенстве — по тому, какая сторона сдвинула фронт ближе к базе противника. При полном балансе результат трактуется как ничья.
  • Поведение решающего раунда: Когда обе команды находятся на одну победу от финала (например, 9–9 в гонке до 19) или при форсированном включении, скрипт подставляет Convoy в слот фронта; эта комната затем гарантированно решит матч.
  • Тайминги раундов по типам комнат: Базовые комнаты имеют более длительные таймеры раунда, чем средние. Скрипт заранее настраивает mp_roundtime на следующий раунд так, чтобы движок зафиксировал нужную длительность.
  • Обработка уничтожения команды:
    • Скрипт детектирует, если команда была полностью уничтожена, при этом учитывает тестовые ситуации с пустыми командами, чтобы они не проигрывали автоматически.
    • Если обе команды выбыли, победителя решает текущий контроллер комнаты; в остальных случаях побеждает последняя выжившая команда.
    • Случаи «wipe без убийств» (напр., отключения) обрабатываются дополнительной проверкой после захватов кнопок.
    • Опциональный флаг END_ROUND_ON_TEAM_ELIMINATION остаётся, но по умолчанию выключен.
  • Отсчёт после элиминирования: Если элиминация не завершает раунд мгновенно, скрипт может запустить отсчёт с финальным сигналом и звуком конца времени, оставляя возможность захватов комнат до окончательной фазы.

Антенна, маяки и звуки

Система башни/антенны в Rush была прояснена и отделена от особенностей авторинга карт:

  • Одна общая антенна на карту: Вместо копий по комнатам используется одна сборка антенны, которой телепортируется в активную комнату каждый раунд на основании маркеров сущностей (ant.base.<id>, ant.top.<id>). Это упрощает визуалы и снижает расходы на управление.
  • Высокие и низкие вершины антенн: Для некоторых ID комнат используется короткий мачт (низкие потолки), для других — высокий. Оба «топа» телепортируются, а неиспользуемый явно скрывается и у него отключена коллизия, чтобы игроки не сталкивались с невидимой геометрией.
  • Боковые огни для комнат: В каждой комнате есть пара light_barn (например, ant.side.light.201.a/b), окрашиваемых в цвет команды, контролирующей комнату. Скрипт:
    • Итерирует все комнаты и включает огни только в активной комнате, выключая везде прочих, что снижает стоимость динамического освещения в неиспользуемых областях.
    • Использует центральную таблицу цветов команд, чтобы антенна, флаги и свечения были цветово согласованы.
  • Свечение антенны во freezetime:
    • В начале раунда антенна светится в цвете владеющей команды во время freeze, чтобы выделить цель.
    • Как только раунд становится live (конец freeze), свечение убирается. Отдельного callback для freezetime нет, скрипт отслеживает IsFreezePeriod() и переключает состояние при переходе.
  • Глобальное vs визуальное состояние антенны:
    • Скрипт отличает логическое владение комнатой (_roomStates) от визуального цвета антенны (_antennaTeam), особенно на конце раунда.
    • При окончании раунда скрипт обновляет владение комнатой, но откладывает перерисовку антенны до следующего раунда, чтобы последний живой цвет оставался ассоциирован с реальным присутствием игроков.
  • Поведение кнопки и маяков:
    • Единственная общая кнопка на антенне испускает события OnPressed, которые скрипт переподключает каждый раунд.
    • Нажатия кнопки:
      • воспроизводят либо сигнал «press», либо «error» в зависимости от того, принадлежит ли башня уже нажавшей команде или раунд уже решён;
      • обновляют контроль комнаты, антенновые огни и UI при валидном действии.
    • Звуковые сущности для «idle hum», press, error, countdown beeps и time expiry динамически перенаправляются на кнопку текущей комнаты, чтобы авторам карт не требовалось дублировать их по комнатам.

Тиканье таймера и аудио окончания раунда

  • Система терминального отсчёта теперь имеет явные темповые стадии и правила планирования:
    • Несколько темповых стадий, каждая для фиксированного числа звуков (напр., интервалы 1.0с, 0.5с, 0.25с, 0.125с), используются по мере приближения таймера к нулю.
    • Скрипт отслеживает время следующего тика и количество уже проигранных тиканий, продвигаясь по стадиям по мере исчерпания счётов.
    • Заложена небольшая толерантность, чтобы думающий тик чуть раньше запланированного всё равно воспроизвёл звук, а не отложил его на следующий тик и не вызвал дрейф.
    • Если сервер подвисает и отстаёт более чем на интервал, расписание перепривязывается к текущему времени, чтобы оставшиеся тики не накладывались плотной пачкой.
  • Звук конца таймера воспроизводится только если раунд реально закончился по таймеру; выигрыши через элиминацию подавляют этот звук, чтобы избежать вводящей в заблуждение аудиоинформации.

Туман и атмосфера карт в Rush

  • Скрипт централизует преднастройки тумана и сопоставления комнаты → пресет тумана:
    • Ожидается сущность env_gradient_fog с именем fog, которой управляют скриптовыми вводами.
    • Пресеты (например, exterior, interior, tunnel, base) задают цвет, начальную и конечную дистанции, непрозрачность и спад.
    • Каждый ID комнаты мапится на пресет тумана (напр., интерьер для тесных комнат, tunnel для канализаций, base-style для замков).
    • Комнаты, отсутствующие на карте, откатываются к дефолтному пресету.
  • Эта система делает читаемость Rush более последовательной и упрощает тонкую настройку видимости и настроения покомнатно без ручной правки сущностей.

UI Rush и обратная связь для игроков

  • HUD, специфичный для Rush (rush_ui panorama layout), теперь управляется точнее:
    • Канонический список классов панелей комнат (напр., room_101) позволяет скрипту аккуратно чистить старые классы и применять новые при показе прогресса.
    • На старте раунда скрипт:
      • обновляет индикаторы владения для текущей фронтовой комнаты,
      • решает, показывать анимацию вперёд или назад в зависимости от прогресса команды, либо нейтральную анимацию «без прогресса», если никто не сдвинулся.
    • Одна и та же панель прогресса переиспользуется для обеих команд с классами вроде view-t и view-ct, чтобы каждая сторона видела ориентацию со своей точки зрения.
  • Для каждого игрока подсказка «атаковать/защищать» обновляется в зависимости от того, какая команда контролирует башню, с вариантами CT/T и нейтральным описанием для наблюдателей.
  • UI-код устойчив к разогреву и отсутствию сущностей (например, если Rush UI отсутствует, скрипт тихо пропускает вызовы вместо ошибок).

Турнирная экономика: логика капсул Cologne 2026

В items_game.txt внесены сосредоточенные изменения, касающиеся наклеек и наборов хайлайтов Cologne 2026:

  • Новый префаб volatile capsule: Введён cologne2026_sticker_capsule_prefab_volatile, унаследованный от основного префаба капсулы Cologne 2026 и определяющий атрибут "volatile container" "3".
  • Ящики теперь ссылаются на volatile-префаб: Несколько паков Cologne 2026 (напр., all-team, champion, rankings и highlights стадии 1–6) теперь используют _volatile префаб плюс соответствующие модификаторы volatile_pricing_*, вместо того чтобы прямо добавлять volatile container в сами предметы:
    • Примеры: crate_sticker_pack_cologne2026_all, crate_sticker_pack_cologne2026_champion, и несколько crate_highlights_pack_cologne2026_X теперь ссылаются на cologne2026_sticker_capsule_prefab_volatile.
  • Консолидация volatile-атрибутов: Прямые "volatile container" "2" атрибуты были убраны из индивидуальных ящиков и перемещены в _volatile префаб, что указывает на централизацию поведения по volatile-ценообразованию или снабжению для этих капсул.
  • Поля, связанные со спреями, удалены: В одном из префабов Cologne 2026 были "type" "spraypaint", вторичная item_slot2/item_sub_position2 как spray и inv_graphic_art как graffiti. Эти поля удалены, что сигнализирует, что данный турнирный предмет больше не обрабатывается как spray-подобный инструмент.

По сути, это выглядит как бэкенд-подготовка к тому, как будут продаваться и ценообразоваться капсулы Cologne 2026. Поведение рынка или UI при продаже может измениться при публикации Valve, но само обновление в основном реструктурирует данные и не вводит предметы напрямую игрокам.

Питомцы и косметика: Pet Book и подсказки

Panorama-скрипты и ресурсы, связанные с питомцами и функцией pet book, также обновлены:

  • Добавлены новые VTex-записи изображений для нескольких страниц pet book (например, «early days», «road trip», «park life», «balloons») для визуального наполнение фотокниги.
  • Английская локализация расширила несколько строк подсказок pet book:
    • Предыдущая единичная строка pet_book_hint_adolescent_road_trip теперь разделена на два варианта, каждый явно перечисляет набор карт, например «Dust II, Baggage, Inferno, or Train» и «Mirage, Nuke, Cache, or Ancient».
    • Это может означать, что система прогрессии питомцев использует более конкретные категории карт при выдаче фотозаданий, хотя прямых изменений геймплея здесь не подтверждается.
  • Много Panorama-скриптов (pet_book_pages.js, pet_book_turn.js, vanity_pet_info.js, pet_photo_* попапы) были затронуты в рамках большого рефактора UI. Поведение, похоже, сохранено, но код стал чище и лучше документирован.

Набор Vulkan-шейдеров и конвейер инструментов

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

Новые и обновлённые Vulkan-шейдеры

  • Десятки *.slang шейдеров в shaders_vulkan_dir/shaders/vfx/ были добавлены или обновлены, включая:
    • Основные шейдеры материалов: csgo_character.slang, csgo_vertexlitgeneric.slang, csgo_lightmappedgeneric.slang, csgo_unlitgeneric.slang.
    • Шейдеры оружия и перчаток: csgo_customweapon.slang, csgo_customglove.slang, плюс csgo_customglove_preview.slang для превью в осмотре.
    • Окружение и декали: csgo_projected_decals.slang, csgo_decal_renderer.slang, csgo_water.slang, csgo_decalmodulate.slang, csgo_beachfoam.slang.
    • UI и служебные: csgo_crosshair.slang, tools_wireframe.slang, csgo_tools_shading_complexity.slang, sky.slang, spritecard.slang.
  • Манифесты для директорий шейдеров Vulkan и PC обновлены, чтобы включить эти файлы.

Для игроков это, вероятно, даст устойчивость и прирост производительности на Vulkan и более единообразную визуализацию персонажей, оружия, перчаток, декалей и UI. Для создателей Workshop и художников это стандартизирует набор CS2-специфичных шейдеров.

Настройки компилятора ресурсов и интеграция в gameinfo

Главный gameinfo.gi для CS2 был сильно расширен, объединив настройки, ранее разбросанные по внутренним «core» или «imported» конфигам, в один файл. Основные моменты:

  • Дефолты движка и рендеринга:
    • SteamAppId явно задан как 710, мод/инструменты отмечены как 64-bit.
    • Система рендера по умолчанию и tools render system установлены в -dx11, с блоком RenderingPipeline, который:
      • включает постобработку в основном пайплайне,
      • поддерживает MSAA,
      • включает режимы визуализации для инструментов и высокоточную подсветку.
  • Console и ввод:
    • PauseOnCtrlConsole принудительно 0, чтобы предотвратить паузу при удержании Ctrl + открытии консоли, как в Source 2; это приводит поведение к совместимости с CS:GO.
    • RestrictConsoleCloseKey установлен на `, так что нестандартные бинды консолей могут открывать, но не закрывать консоль; Escape всегда закрывает, как в CS:GO.
    • cl_joystick_enabled и panorama_joystick_enabled по умолчанию 0, с возможностью включения игроком.
  • Новые или закреплённые конвары:
    • demo_max_consecutive_skip_packets по умолчанию 2500 — лимит, насколько далеко воспроизведение демо может прыгнуть за один раз.
    • r_particle_batch_collections установлен в 1, что может улучшить батчинг частиц.
    • spec_replay_enable ограничен min/max 0, фактически отключая spectator replay с клиентской стороны пока что.
  • Дефолты для resource compiler:
    • Сборка карт: дефолтные билд-степы теперь включают baked lighting (bakedlighting), генерацию navmesh (nav) и несколько проходов Steam Audio (sareverb, sapaths, sacustomdata).
    • MeshCompiler: включает кодирование вершинных/индексных буферов, данные per-draw culling, meshlets, генерацию тангенсов MikkTSpace и разделение depth stream.
    • WorldRendererBuilder: включает visibility-guided clustering, использование статических envmap для некоторых объектов, запекание non-uniform scale и aggregate instancing.
    • Baked lighting: настроен на детерминированные билды, LPV, дефолтные размеры lightmap и канавки, множественные световые каналы (irradiance, shadows, directional irradiance, debug colors) с сжатием DXT1.
    • VisBuilder: ограничивает кластеров видимости до 4096 и включает параметры для детерминированной сборки с порогами слияния открытого пространства.
    • Компиляция текстур: использует lz4 компрессию, сжатые mips на диске, поддержку NPOT-текстур, генерацию mips для Panorama и публичный дефолтный максимум разрешения инструментов 2048.

Для мапперов и создателей ассетов такая консолидированная конфигурация означает, что Hammer и resourcecompiler будут вести себя предсказуемее для CS2, с настройками, специфичными для CS:GO, заданными как дефолты.

Сцена, аудио и инструменты

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

  • SceneSystem:
    • Подтверждён игровой набор возможностей: GPU light binning, динамическое разрешение теней, sparse shadow trees, point light shadows, character decals, firstperson legs, hybrid instanced fade support и несколько опций тонемапинга и тумана.
    • Введены известные слоты light cookie для blank, flashlight и muzzleflash, поддержанные новыми текстурами в materials/effects/lightcookies/.
  • Particles:
    • Настройки указывают, что частицы по умолчанию затуманены, поддерживают смешанное разрешение и умеют смещать трассировки коллизий в соответствии с настройками CS2.
  • WorldRenderer:
    • Стандартизированы настройки environment map (blur type GGX, формат BC6H, cube arrays, per-map atlases) и параметры рендеринга травы.
  • NavSystem:
    • Глобальные параметры navmesh (tile size, cell size/height, region thresholds, max poly edge length, detail sampling) определены, с NavHullsPreset = default и интерфейсом билда nav, загружаемым из server.dll.
  • Hammer:
    • Подтверждено, что Hammer CS2 использует csgo.fgd и csgo_internal.fgd, набор фич Counter-Strike, инструменты террейна, Steam Audio, lattice deformers, smart prop instance rendering и shadow atlas 6144x6144.
  • ModelDoc и инструменты ассетов:
    • ModelDoc помечает CS2-специфичные возможности, ужесточает обработку отсутствующих материалов и трактует предупреждения как ошибки для ключевых путей (агенты, модели оружия), повышая качество контента.

Очистка сетевого протокола

  • Несколько типов сообщений Game Coordinator и сопутствующий enum EInitSystemResult были удалены из общего cstrike15_gcmessages.proto и клиентских схем:
    • GC2ClientRefuseSecureMode
    • GC2ClientRequestValidation
    • GC2ClientInitSystem
    • GC2ClientInitSystem_Response
  • Поля, связанные с манифестами модулей, пакетa
Назад к обновлениям

Недавние обновления

Обновление кода1 окт. 2026 г., 02:56 GMT+3

Обновление CS2 (1 окт. 2026 г.)

Обновление CS2 перестраивает рендер прицела и редактор, добавляет новые стили и выбор цвета контура, уточняет поведение турнирового магазина и данные Cologne 2026, а также приносит примеры скриптов для кастомных карт.

  • Рендеринг прицела полностью переработан на шейдерную систему с новым стилем Static Quadrant, расширенными диапазонами gap/thickness и пикером цвета контура.
  • UI ретикла и предпросмотры прицела упрощены: удалена устаревшая графика, а `CSGOCrosshair` заменён на `CSGOCrosshairPreview` для согласованного отображения.
  • Данные Cologne 2026 теперь используют выделенный volatile prefab, из капсул убраны некоторые спрей‑поведения; турнирный UI показывает Major‑контент только при активных событиях.
  • `gameinfo.gi` и веточные переопределения консолифицированы, улучшая ясность для инструментов, Hammer и рабочего процесса моддинга.
  • Новые демонстрационные `cs_script` карты показывают продвинутые примеры трассировки, тренировки с гранатами, манипуляций с пропами, отладки ввода и взаимодействия UI.
  • Манифесты рендеринга и шейдеры обновлены для PC и Vulkan — включая шейдер прицела v2 и изменения формата tint для перчаток — что указывает на продолжение доработки графического пайплайна.
Подробнее
Обновление кода1 окт. 2026 г., 02:12 GMT+3

Обновление CS2 (1 окт. 2026 г.)

CS2 уточняет прицел и HUD гранат, приводит в порядок Rush 001 и Panorama UI, перестраивает контейнеры Cologne 2026 и добавляет новые механизмы безопасности и рендеринга.

  • Линейка стилей прицела, ограничения и шейдеры переработаны; добавлены слои для союзников и наблюдателей, упрощена конфигурация.
  • Система подсказки броска гранат получила новый контрол интервала тиков при сохранении подписанных и масштабируемых меток.
  • Контейнеры Cologne 2026 были перестроены: волатильность выражена через единые атрибуты, а signature-капсула подключена к логике spraypaint.
  • Скрипт Rush 001 и ряд компонентов HUD/Demo были очищены от комментариев и логов без изменения игровой логики.
  • Добавлены новые сообщения и схемы Game Coordinator для инициализации и валидации secure/trusted режима.
  • Обновления рендеринга и тулчейна: очищены манифесты шейдеров, унифицирована обработка текстур и локальные правки материалов (PP-Bizon).
  • Панорама и главное меню получили обеспыление: переименование ресурсов, удаление устаревших хаков и упрощение строк UI.
Подробнее
CS2@CounterStrike
1 окт. 2026 г., 02:01 GMT+3
Подробнее