Обновление кода25 авг. 2026 г., 22:58 GMT+3

Обновление CS2 (25 авг. 2026 г.)

Valve выпустила официальный `cs_script` демонстрационный аддон, полный справочник JavaScript API и поддержку пользовательских Panorama HUD-лейаутов, управляемых скриптами — мощные инструменты для авторов карт.

Кратко

  • Новый официальный аддон `cs_script_demo` с примерной картой, скриптами и кастомным UI.
  • Полный TypeScript‑декларационный файл документирует JavaScript API `cs_script` для сущностей `point_script`.
  • Несколько примеров скриптов демонстрируют трассировки, тренировку гранат, смену моделей, отладку ввода и кастомный приветственный UI.
  • Разрешены кастомные Panorama UI и добавлены поисковые пути для пользовательских HUD‑лейаутов и стилей.
  • Подсказки редактора и приветственный экран zoo обновлены и перенаправляют создателей на новый аддон `cs_script_demo`.
  • Клиентская и серверная сборки увеличены с небольшими внутренними корректировками схем и движка.

В новом сборке Counter-Strike 2 основной упор сделан на скрипты и пользовательский UI: Valve выпустила официальный демонстрационный аддон cs_script_demo, полный справочник JavaScript API для скриптов карт и поддержку пользовательских Panorama HUD-лейаутов, управляемых из скриптов. Обновление ориентировано в первую очередь на маперов, моддеров и авторов Workshop — для обычных игроков видимых изменений немного.

Официальный демонстрационный аддон cs_script и примерная карта

  • Новый демонстрационный аддон: Теперь в csgo_addons определён аддон cs_script_demo, а в addoninfo.txt указывают карту cs_script_demo. Похоже, это официальный примерный пакет, который будет идти вместе с инструментами.
  • Содержимое демонстрации: Манифест аддона перечисляет карту cs_script_demo.vmap, несколько скомпилированных скриптов (.vjs) и собственные Panorama-лейаут и стиль. Судя по всему, демонстрационная карта показывает возможности cs_script от начала до конца: логику геймплея, утилиты трассировки, кастомный HUD и скриптовые взаимодействия.
  • Способ доступа: Текст приветствия явно сообщает, что «cs_script demo has moved to csgo_addons/cs_script_demo» и инструктирует «launch with workshop tools». Это сильно намекает, что демо рассчитано на открытие из окружения Workshop/Tools, а не через стандартный матчмейкинг.

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

Полный JavaScript API-справочник для cs_script

  • Новые TypeScript-декларации для point_script: В cs_script_demo/maps/scripts добавлен большой файл point_script.d.ts, документирующий JavaScript API, доступный скриптам, прикреплённым к сущностям point_script. Модуль экспортируется как cs_script/point_script.

  • Интеграция с редакторами: В комментариях объясняется, что размещение point_script.d.ts и сопутствующего tsconfig.json рядом со скриптами позволяет редакторам предоставлять IntelliSense, проверку типов и инструменты для JavaScript, нацеленного на текущий runtime CS2. Это должно заметно улучшить рабочий поток авторов скриптов.

  • Основная поверхность API: Декларации открывают центральный объект Instance с колбэками и хелперами для:

    • Жизненного цикла игры: OnActivate, OnPlayerConnect, OnPlayerActivate, OnPlayerDisconnect, OnRoundStart, OnRoundEnd, хуки перезапуска раунда, события установки/разминирования бомбы и прочие.
    • Боя и урона: OnModifyPlayerDamage (с возможностью изменять величину урона, флаги или отменять попадания), OnPlayerDamage, OnPlayerKill, OnGunFire, OnGunReload, OnBulletImpact, атаки ножом, броски и отскоки гранат.
    • Взаимодействия с игроком: чат (OnPlayerChat), пинги (OnPlayerPing), прыжки и приземления, подбор/сброс оружия.
    • Трассировки и физические запросы: TraceLine, TraceSphere, TraceBox, TracePlayer, TraceBullet с структурированными типами результатов.
    • Взаимодействие с миром: отправка входов сущностям (EntFireAtName, EntFireAtTarget), подписка на выходы через ConnectOutput / DisconnectOutput, и хелперы поиска сущностей (FindEntityByName, FindEntitiesByClass и т. п.).
    • Тайминги: система think (SetThink, SetNextThink), промисы Delay и QueueAfterThinks для безопасных модификаций после физики.
    • Запросы состояния игры: оставшееся время раунда, warmup/freeze-статусы, тип/режим игры, имя карты и счётчик раундов, а также управление оставшимся временем раунда.
    • Команды: ClientCommand, ServerCommand и RegisterCheatCommand для консольных утилит, управляемых скриптами.
    • Персистентные данные: SetSaveData и GetSaveData для сохранения строк, связанных с аддоном.
  • Классы сущностей и игроков: Декларации содержат классы вроде Entity, BaseModelEntity, CSWeaponBase, CSPlantedC4, CSGrenadeProjectileBase, CSPlayerPawn, CSPlayerController, CSObserverPawn, CustomHudLayout, CSPlayerCamera и PointTemplate с API для движения, моделей, здоровья, оружия, брони, денег, управления камерой и поведения пользовательского HUD.

  • Перечисления и структуры данных: Формально задокументирован ряд enum-ов (типы движения, тип оружия, типы урона и флаги, хитгруппы, флаги ввода, тип гранаты, слоты загрузки и т. д.) и интерфейсов данных (трэйсы пуль, трэйсы игроков, события урона, отскоки гранат, события бомбы).

  • Отмеченные устаревания: Несколько методов и перегрузок помечены как @deprecated с пометкой об удалении в будущих обновлениях. Это даёт авторам скриптов раннее предупреждение о необходимости миграции от устаревших хелперов, таких как OnBeforePlayerDamage, старые перегрузки отладочной отрисовки и некоторые специфические помощники по урону.

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

Примеры скриптов: трассы, вводы, гранаты, модели и UI

В cs_script_demo теперь включено несколько конкретных JavaScript-примеров, которые демонстрируют использование API в реальной логике карт и будут полезны как справочные материалы.

Трассировка и визуализация пуль (trace.js)

  • Чит-команда для отладки трасс: Команда script_zoo_trace переключает режимы трасс: line, sphere, box, player или bullet.
  • Линейные/сферические/блочные трассы: Скрипт:
    • Берёт позицию взгляда первого игрока и направление взгляда.
    • Выполняет разные типы трасс в зависимости от режима (линия, сфера или осесимметричный бокс), игнорируя игрока при необходимости.
    • Использует DebugSphere, DebugBox и DebugLine для отрисовки точек попаданий и нормалей поверхности.
  • Трассировка столкновений игрока: Пример TracePlayer показывает поведение столкновений при движении игрока, используя приседшую высоту pawn-а для размеров бокса.
  • Симуляция пули: Пример TraceBullet использует дальность активного оружия, урон, модификатор дальности и параметры пробиваемости для симуляции траектории и пробиваемости пули. Он:
    • Разноцветно помечает попадания по миру, малый урон, обычный урон и очень большой урон.
    • Отмечает хэдшоты маленькой сферой, а остальные попадания — маленьким боксом.

Этот скрипт показывает, как строить визуализаторы движения, коллизий и поведения пуль — полезно для тренировочных карт и отладки кастомной механики.

Мини‑режим тренировки гранат (grenadetraining.js)

  • Поворотный выбор целей: Скрипт отслеживает раунды, попадания и текущий индекс цели, затем:
    • Случайным образом выбирает из множества целей с простой анти‑повторной логикой.
    • Регулирует сложность в зависимости от номера раунда.
    • Использует входы сущностей (cover.*, tele.* и world text entities) для отображения следующей цели и сброса игрока.
  • Поток тренировки: Кастомные входы скрипта управляют конечным автоматом:
    • ResetAndCleanUp сбрасывает триггеры, таймеры, текст, звуки и объекты cover, отключает бесконечные боеприпасы, уничтожает оружие игрока и принуждает слот гранаты.
    • StartTraining включает режим: включает бесконечные боеприпасы, даёт игроку HE-гранату, запускает отсчёты и таймеры, сбрасывает счётчики раундов/попаданий.
    • GrenadeHit увеличивает счётчик попаданий, воспроизводит звук, обновляет UI-текст и удаляет отслеживаемый снаряд, если он есть.
    • SetNextTarget запускается по таймеру, переключаясь на новую цель до 10 раундов, затем очищает состояние и проигрывает финальный звук.
  • Рисование траектории гранаты в реальном времени: Через OnGrenadeThrow скрипт отслеживает брошенный снаряд и каждое тике рисует позади него непрерывную отладочную линию, пока он не исчезнет, помогая визуализировать траекторию.

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

Изменение моделей и эффекты свечения (mdlchange.js)

  • Динамические модели: Скрипт находит проп с именем mdlchange.prop_dyn и показывает, как:
    • Менять его модель в рантайме через SetModel на несколько примерных моделей.
    • Масштабировать проп со временем с помощью SetModelScale и простого множителя.
  • Переключение свечения: Вход GlowToggle использует Glow, Unglow и IsGlowing чтобы выделять проп, иллюстрируя, как кастомные карты могут подчёркивать интерактивные объекты или мишени.

Инспекция ввода игрока (input.js)

  • Команда для отладки ввода: Чит‑команда script_zoo_showinput переключает отслеживаемый pawn игрока (pawn первого контроллера).
  • Отображение статуса ввода на экране: Каждый тик скрипт выводит три строки отладочного HUD-текста для отслеживаемого pawn-а:
    • Нажатые в данный момент действия (IsInputPressed).
    • Действия, только что нажаты в этом тике (WasInputJustPressed).
    • Действия, только что отпущены в этом тике (WasInputJustReleased).

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

Приветственная логика, боты и модификации урона (setup.js)

  • Серверные настройки по загрузке: При загрузке скрипта демо включает sv_cheats, офлайн warmup и приостановку таймера warmup, что делает окружение безопасным для экспериментов.
  • Автоконфиг первого игрока: При первом событии OnPlayerActivate скрипт:
    • Принудительно ставит игрока в команду 2.
    • Останавливает ботов и добавляет одного бота, вероятно, как тренировочную мишень.
    • Показывает приветственный UI этому игроку.
  • Изменения урона: С помощью OnModifyPlayerDamage и OnPlayerDamage:
    • Урон по ботам помечается флагом CSDamageFlags.PREVENT_DEATH, что фактически делает ботов бессмертными целями.
    • Колющий урон (например, от ножа) даёт игровый эффект: после урона скрипт планирует изменение скорости, которое подбрасывает жертву вверх через Teleport с модифицированным вектором скорости.
  • Кастомный приветственный диалог: Скрипт подключает сущность CustomHudLayout с именем welcome_layout чтобы:
    • Показать диалог подключившемуся игроку через SetHasClassForPlayer и SetInputCaptureEnabled.
    • Скрыть его при нажатии игроком на кнопку с id dismiss_button, детектируемую через OnCustomHudClicked.
  • Команда для повторного показа: Чит‑команда script_zoo_show_welcome повторно отображает приветственный диалог для всех подключённых контроллеров.

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

Минимальный hello-world (hello.js)

  • Простейший вывод: Самый простой пример просто импортирует Instance и пишет в консоль «Hello cs_script!». Это удобная отправная точка для авторов, проверяющих настройку.

Поддержка пользовательского HUD и игрового UI

  • Кастомный game UI разрешён: В конфигурации игры теперь AllowCustomGameUI установлено в 1. Это означает, что движок позволяет активировать кастомный Panorama UI для карт/игр, где ранее он был отключён.

  • Поисковые пути для кастомных лейаутов: Главная конфигурация game info теперь включает пути поиска ресурсов:

    • "panorama/layout/custom_game"
    • "panorama/styles/custom_game"

    Это позволяет загружать лейауты и стили, помещённые в эти каталоги.

  • Документация сущности custom HUD: Определение custom_hud_layout в csgo.fgd по‑прежнему описывает сущность как «Panorama UI that can be controlled by cs_script.» Небольшое изменение убирает справочную ссылку в редакторе на команду dev_report_info_hud_layout, упростив подсказку. Сущность продолжает использовать поле layout(resource:xml) для указания Panorama-лейаута.

  • Обновление содержимого welcome screen: Файлы welcome.xml и welcome.css карты редактора zoo были подправлены:

    • Диалог стал шире и чуть выше (520x220 вместо 350x200), чтобы уместить больше текста.
    • Текст теперь информирует: «The cs_script demo has moved to csgo_addons/cs_script_demo. Launch with workshop tools to view.» Это явно перенаправляет маперов к новому аддону и от старой встроенной карты.

Создатели карт теперь, вероятно, смогут проектировать более выразительные HUD и диалоги, управляемые напрямую из скриптов, используя класс CustomHudLayout вместе с пользовательскими Panorama-лейаутами и CSS в новых директориях.

Изменения редактора и инструментов для скриптовых ассетов

  • Видимость типов ассетов: Общая конфигурация типов ассетов больше не скрывает некоторые типы ассетов, связанные со скриптами, от розничной среды CS:GO/CS2. В частности, ссылки на m_HideForRetailMods = [ "csgo" ] удалены для некоторых ресурсов на базе KV3 (Panorama layout/style). Это может позволить этим ассетам быть более распознаваемыми в инструментах и пайплайне, а не быть строго редакторными.
  • Обновлённые файлы редактора zoo: Скомпилированные ресурсы welcome (welcome.vxml_c / welcome.vcss_c) снова перечислены в манифесте пакета карты zoo, что указывает на их участие в наборе инструментов и обновление вместе с новым текстом и размерами.
  • Очистка enum-ов движения в заглушках редактора: Редакторская версия point_script.d.ts, используемая в карте zoo, лишилась двух записей движения (FLY, PUSH) в CSMoveType, что приводит её в соответствие с новой канонической версией демонстрационного API. Это должно снизить несоответствия между заглушкой в редакторе и официальной версией аддона.

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

Под капотом и версия сборки

  • Бамп клиентской и серверной сборки: В steam.inf видно изменение версий клиента и сервера с 2000888 на 2000891, с обновлённой информацией о исходной ревизии и времени сборки. Это сигнализирует о новом релизе сборки, хотя поведение геймплея вне области скриптов/интерфейса очевидно не менялось.
  • Небольшие изменения движка и схем: Есть мелкие правки в таблицах строк движка и пара внутренних заголовков схем, связанных с динамическим питч/громкостью (dynpitchvol_*). Это, похоже, фундаментальные корректировки, а не новые пользовательские функции.

Итоговое влияние

Для повседневных игроков это обновление почти незаметно: серьёзных изменений в геймплее или балансе ожидать не стоит. Самое заметное для обычного пользователя — что старый приветственный панель редактора zoo теперь перенаправляет к новому аддону cs_script_demo.

Для маперов, моддеров и авторов Workshop сборка важна:

  • Появился официальный, строго типизированный справочник по API cs_script, что делает написание и поддержку JavaScript-логики для карт значительно проще.
  • Вышел полноценный демонстрационный аддон с множеством примеров, показывающих работу с хук‑ами урона, трассировками, пулями, гранатами, ботами, кастомными HUD, моделями сущностей и вводом игроков.
  • Движок теперь явно поддерживает кастомные Panorama HUD-лейауты, управляемые из cs_script, что открывает дорогу более насыщенным тренировочным картам, сценариям и пользовательским интерфейсам.

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

Назад к обновлениям

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

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

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

В обновлении: чуть более быстрая перезарядка у конкретного оружия, смягчённые серверные сетевые лимиты, улучшенный микс звука оружия, очистка протоколов econ, исправления шейдеров и инструментов, а также полировка интерфейса фотобудки питомца.

  • После перезарядки сокращено окно запрета атаки для конкретного оружия — перезарядки ощущаются чуть быстрее.
  • Серверные защитные лимиты по CPU и recv‑буферу ослаблены и переведены в `release`, чтобы снизить число ложных откидываний игроков.
  • Модификаторы аудиомикса оружия обновлены — выстрелы могут лучше «прорезать» звуковую картину.
  • Крупная очистка сообщений и схем Game Coordinator econ: многие устаревшие операции помечены deprecated, добавлены более общие операции для предметов.
  • В сетевые данные игровых пауков игроков добавлено новое поле `m_flModifier0`, вероятно для синхронизируемого игрового или визуального модификатора.
  • Тултип фотобудки питомца переведён на систему локализации, а ряд языковых и ресурсов Pet Book перепакованы.
  • Много Vulkan‑шейдеров обновлены ради согласованных имён и корректных привязок параметров, что повышает устойчивость VFX и инструментов создания контента.
  • ModelDoc получил операцию Strip Morphs для удаления морф‑таргетов, а Asset Browser — ярлык для перехода к выделённому ассету на диске.
  • Пакет карты `rush_001` и её миниатюры были пересобраны — вероятно мелкие визуальные или упаковочные правки, без изменения планировки.
  • Клиентские, серверные, матчмейкинг и движковые бинарники пересобраны с версией `1.41.9.0` — общее обновление стабильности и протоколов.
Подробнее
Официальное обновление9 окт. 2026 г., 01:36 GMT+3

Обновление Counter-Strike 2 (9 окт. 2026 г.)

Краткий обзор: значок пинга для упавших комплектов для обезвреживания, изменение перезарядки `AUG`, исправления звука, коллизий, локализации и стабильности.

  • Добавлен значок пинга для упавших комплектов для обезвреживания
  • Сокращено время перезарядки `AUG` на полсекунды
  • Исправлено звуковое событие при тихой перезарядке для `Desert Eagle`
  • Исправлен случай жужжащих звуковых эффектов во время воспроизведения демо
  • Исправлены проблемы с коллизиями на картах серии `Rush`
  • Обновления локализации
  • Обновления стабильности
Подробнее