CS2 更新(2026年10月1日)
Rush 001 的脚本与 UI 被深度重写,准心扩展了象限样式及轮廓颜色,Vulkan 着色器组得到扩充,且 Cologne 2026 胶囊数据被重构以统一 volatile 行为并便于工具链整合。
快速摘要
- Rush 001 的脚本、天线逻辑、雾效、音效与 UI 被广泛重构并补充注释,但拉锯的核心规则未改变。
- 准心自定义扩展:新增 Static Quadrant 样式、显著放宽 gap 与 thickness 范围,并在 convar 与 UI 中增加独立的轮廓颜色与透明度控制。
- 为好友/观战叠层的准星专用 HUD 美术被移除,统一围绕主可配置准心与关联着色器。
- Cologne 2026 的贴纸与高光包现在通过新的 volatile 胶囊 prefab 路由,集中 volatile 行为并移除旧的喷漆字段。
- 新增或更新了一大批 CS2 专用的 Vulkan 着色器与资源编译器默认设置,标准化角色、武器、手套、贴花与 UI 的渲染表现,利于玩家与创作者。
- `gameinfo.gi` 被扩展以合并引擎、渲染、工具、导航与音频设置为单一配置,使 Hammer 与资源编译行为更可预测。
本次更新对 Rush 001 模式的脚本与 UI 进行了大范围重写,添加了新一代 Vulkan 着色器,显著扩展了准心自定义(包括新增象限样式和轮廓颜色),并完善了工具链与赛事物品数据的结构。
准心与 HUD 更新
- 新增准心样式与上限:
cl_crosshairstyle控制台变量现在允许到9,UI 中将样式9定义为 Static Quadrant(静态象限)。样式7的文本说明被重命名为 Dynamic Quadrant(动态象限),以更贴切描述其表现。 - 更宽的间隙范围:
cl_crosshair_gap现在接受从-3840到3840的值(此前为 0–128),便于在高分辨率或极端设定下做非常紧凑或非常分散的准心配置。 - 略微提高线宽上限:
cl_crosshair_thickness支持到32(此前上限为 31),允许更粗的准心线。 - 准心轮廓颜色控制: 新增每用户控制台变量
cl_crosshairoutline_r、cl_crosshairoutline_g、cl_crosshairoutline_b、cl_crosshairoutline_a(0–255),分别定义轮廓 RGB 与透明度。选项菜单中以 “Outline Color and Transparency” 暴露,玩家可以将内部颜色与轮廓颜色分离以提高在不同地图上的可见性。 - 象限专属调节: 为象限类准心增加了 “Quadrant Size” 滑块(
GameUI_StaticQuadSplitRatio),精细控制每个象限的尺寸。 - 移除好友/观战专用准星美术: 旧的 HUD 准星资源与 XML 条目用于好友和观战图像已从 HUD 布局和相关图片资源中删除,表明 CS2 正在统一以主可配置准心及相关着色器为中心,而不是额外叠加的准心美术。
- 回合结束胜负面板清理: 胜负概率图与 MVP 面板逻辑(
hudwinpanel.js/hudwinpanel_background_map.js)进行了大量内部清理与注释,行为不变,但代码现在更清晰地记录命中事件、赔率变化、音效与 MVP 背景的执行顺序,便于未来进一步打磨。 - 回合后伤害读条钩子: 队伍计数脚本更明确地记录并管理 Post-Round Damage Report 面板,与现有动画类结合。行为一致,但更易于 Valve 调整弹出时机与可见性。
- 演示控制器体验优化: demo UI 脚本增加了更详尽的注释并改进了内部状态处理,涉及:
- 高光与回放 切换文字与逻辑
- 时间线下的区间标记放置
- TrueView 预测与 DOA 切换的处理 这些改动侧重于健壮性与可维护性,而非新增可见功能。
Rush 001 模式:深度脚本重写与质量改进
支撑 Rush 001 的脚本文件(maps/scripts/rush_001.js)被大幅重写,逻辑更清晰且内联文档详尽。核心玩法规则未被改变,但流程更显式、易读。
从更新脚本可确认的行为细节:
- 线性拉锯布局: 模式被明确描述为七个房间的 tug-of-war(拉锯),恐怖分子向房间索引 6 推进,CT 向索引 0 推进。特殊的 决胜房间("Convoy") 保留用于 9–9 等局面,不会出现在普通的随机房间选择中。
- 房间选择与标识: 房间按索引组织,每个槽有固定的 ID 集合(例如基地房间 ID 为 301/401,起始四房群为 101–104,中间池为 201–212)。注释用名称标注(Spire、Trainyard、Crane、Hydra 等),但实际行为是每个索引从固定的可选房间列表中抽取。
- 比赛与回合追踪:
- 脚本内部追踪 每队回合胜数,因为脚本 API 无法直接读取引擎层的队伍分数。
- 脚本会检测引擎何时 重启比赛(例如通过
mp_restartgame或比赛结束),然后重新播种房间布局与计数以避免不同步。 - 在热身(warmup)阶段绕过回合结束逻辑,避免热身抽签污染拉锯状态。
- 前线与胜利判定:
- 回合结束时,前线房间索引 会根据胜方向其方向移动。
- 若前线超出可玩索引范围(一侧基地被推进过头),比赛立即判定为该队获胜。
- 若达到最大回合数且双方基地仍然存在,胜方先按 总回合胜数 判定,若平手再按前线推进接近敌方基地的程度判定;若双方围绕起始房完全平衡,则判为真正的平局。
- 决胜局行为: 当双方距离胜利只差一局(例如 19 轮赛制的 9–9)或通过作弊强制触发时,脚本会将 Convoy 决胜房间 插入前线槽,该房间将决定比赛。
- 按房间的回合计时: 基地房间的回合时间长于中间房间。脚本会提前一回合校准
mp_roundtime,以确保引擎锁定的回合时间符合下一房间的期望时长。 - 队伍灭队处理:
- 脚本检测队伍是否被 完全消灭,同时在测试中避免空队伍自动认定为负。
- 若双方均被消灭,由 当前房间控制器 决定胜者;否则以最后存活队伍为胜。
- 对于无击杀的队伍被清空(例如掉线)情况,脚本在按钮占领后会再次核查以作为回退措施。
- 可选的
END_ROUND_ON_TEAM_ELIMINATION标志保留但默认关闭。
- 灭队后的倒计时: 若灭队并不直接结束回合,脚本可启动带终止哔声和结束音效的倒计时,但仍允许房间占领改变结果。
天线、信标与音效
Rush 的塔/天线系统被理清并与地图作者特性解耦:
- 每张地图单一共享天线: 不再为每个房间复制天线,而是在每回合基于标记实体(
ant.base.<id>、ant.top.<id>)将单个天线装配瞬移到活动房间,节省资源并保持视觉一致。 - 高/矮天线顶部: 某些房间 ID 使用 短桅顶(适合低天花板),其他使用高顶。两者每回合都会被瞬移,未使用的一端会被显式隐藏并禁用碰撞,避免玩家与不可见几何体碰撞。
- 每房间侧灯: 每个房间包含成对的
light_barn侧灯(例如ant.side.light.201.a/b),根据控制房间的队伍着色。脚本:- 遍历所有房间,仅对活动房间开启灯光,其他房间关闭,从而减少动态照明开销。
- 使用中心化的 队伍颜色表,确保天线、旗帜与相关辉光颜色一致。
- 冻结时间的天线辉光: 回合开始时,天线在 freeze 期以拥有方颜色辉光以突出目标;当冻结结束并进入实战,该辉光被移除。脚本通过监测
IsFreezePeriod()转变来切换,而非独立的 freeze 回调。 - 逻辑状态与视觉状态分离: 脚本区分房间的逻辑控制(
_roomStates)与视觉天线颜色(_antennaTeam),尤其在回合结束时。回合结束后脚本会更新房间归属,但延迟重绘天线,保持最后的现场颜色与玩家存在感一致。 - 按钮与信标行为:
- 天线上的单一共享按钮每回合重连
OnPressed事件。 - 按钮按下时:
- 若按下方已拥有塔或回合已决定,播放 press 或 error 对应信标音效;
- 若有效,则更新房间控制、天线灯与 UI。
- 用于 idle hum、press、error、倒计时哔声 与 时间到 的音效实体会被动态指向当前房间的按钮,地图作者无需为每房间重复这些实体。
- 天线上的单一共享按钮每回合重连
计时哔声与回合结束音效
- 终端倒计时系统现在有明确的节拍阶段与调度规则:
- 多个 节拍阶段(例如 1.0s、0.5s、0.25s、0.125s 间隔)用于接近零点时的哔声序列。
- 脚本记录 下一次哔声时间 与已发哔声计数,并在计数耗尽时推进到下一个阶段。
- 允许小容差:若 think tick 稍早于计划时间到达仍会触发哔声,避免因等待下一 tick 导致逐步延迟。
- 若服务器发生卡顿并落后多个间隔,调度会以当前时间 重新锚定,避免剩余哔声堆叠在一起。
- 只有当回合因为时间耗尽真实结束时才会播放回合结束的 timer end 音效;若是灭队获胜则抑制该音效,避免误导玩家。
Rush 的雾效与地图氛围
- 脚本将 雾预设 与房间→雾映射集中管理:
- 期望场上存在名为
fog的env_gradient_fog实体,并通过脚本输入进行控制。 - 预设(例如
exterior、interior、tunnel、base)定义颜色、起始距离、结束距离、不透明度与衰减。 - 每个房间 ID 对应一个雾预设(如室内使用 interior、下水道使用 tunnel、城堡使用 base 风格),未出现在映射中的房间回退到默认预设。
- 期望场上存在名为
- 此系统有助于保持 Rush 的视觉可读性,并便于对各房间的能见度与氛围进行逐一微调而无需手工放置大量实体。
Rush UI 与玩家反馈
- Rush 专用 HUD(
rush_uipanorama 布局)由脚本更精确驱动:- 一组规范的 房间面板类名(例如
room_101)让脚本在显示进度时能够干净地清理旧类并应用新类。 - 在 回合开始 时,脚本会:
- 更新当前前线房间的归属指示;
- 基于哪队前进决定使用 前移 或 后退 滑动动画,若无进展则播放中性“无进度”动画。
- 同一进度面板对双方复用,使用
view-t和view-ct等玩家侧类使每侧从自身视角看到朝向。
- 一组规范的 房间面板类名(例如
- 每位玩家的 攻防提示 UI 会根据当前控制塔的队伍更新,提供 CT/T 变体与中立观战描述。
- UI 代码对热身与缺失实体具有容错性(例如若没有 Rush UI,脚本会静默跳过调用而非报错)。
赛事物品与经济:Cologne 2026 胶囊逻辑
对 items_game.txt 关于 Cologne 2026 贴纸与高光包的条目做了集中化改动:
- 新增 volatile 胶囊 prefab: 引入
cologne2026_sticker_capsule_prefab_volatile,它继承自主 Cologne 2026 贴纸胶囊 prefab 并定义了"volatile container" "3"属性。 - 箱子改为引用 volatile prefab: 多个 Cologne 2026 打包项(如全队、冠军、排名,以及高光包 1–6)现在改为引用
_volatileprefab 并使用相应的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"属性已被移除并转到_volatileprefab,表明 Valve 正在统一定义这些胶囊的 volatile 定价或供应行为。 - 移除喷漆相关字段: 某 Cologne 2026 prefab 中曾有
"type" "spraypaint"、第二套item_slot2/item_sub_position2为spray以及inv_graphic_art为graffiti的字段,这些已被删除,表明该赛事物品不再被视为类似喷漆的工具。
总体影响上看,这更像是对 Cologne 2026 贴纸与高光胶囊的后端准备,集中化定价/供应行为,实际的市场行为或 UI 展示可能在 Valve 启用这些项时发生变化,但本次更新主要是重构数据而非直接面向玩家推出新物品。
宠物与外观:相册与提示
与宠物和 pet book(宠物相册) 相关的 Panorama 脚本与资源也有更新:
- 为多页 宠物相册页面(例如 “early days”、“road trip”、“park life”、“balloons”)新增了 VTex 图像条目,用于支持游戏内照片簿的视觉。
- 英文本地化扩展了若干 宠物相册提示字符串:
- 之前的单条
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 着色器
- 在
shaders_vulkan_dir/shaders/vfx/下新增或更新了数十个*.slang着色器定义,包括:- 核心材质着色器:
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 着色器目录的 manifest 条目已更新以包含这些新文件。
对玩家而言,这可能带来 Vulkan 下的稳定性与性能提升,以及在角色、武器、手套、贴花与 UI 元素上的视觉一致性。对创意工坊作者与关卡美术者来说,这套 CS2 专用着色器集合将标准化可用目标管线,更容易适配与开发。
将资源编译器与工具设置整合进 gameinfo.gi
CS2 的主 gameinfo.gi 被大幅扩展,将此前分散在内部“core”或“imported”配置中的设置合并进单一文件。确定的要点包括:
- 引擎与渲染默认:
SteamAppId显式设为710,并将 mod/tool 系统标注为 64 位可用。- 默认渲染系统与工具渲染系统均设为
-dx11,并包含一个RenderingPipeline区块以:启用后处理、支持 MSAA、启用工具可视化模式与高精度光照。
- 控制台与输入优化:
- 将
PauseOnCtrlConsole强制设为0,避免 Source 2 中按住 Ctrl + 控制台切换自动暂停的行为——以匹配 CS:GO 行为。 RestrictConsoleCloseKey设为`,允许非默认控制台按键打开但不能关闭控制台;Escape 始终可关闭,亦模仿 CS:GO。cl_joystick_enabled与panorama_joystick_enabled默认为0,玩家可自行开启。
- 将
- 新增或固定的 convar:
demo_max_consecutive_skip_packets默认为 2500,限制 demo 回放单次跳跃可跳过的数据包数。r_particle_batch_collections设为 1,可能改善粒子批处理性能。spec_replay_enable被限制在 min/max 为 0,当前从客户端配置上等同于禁用。
- 资源编译器默认:
- 地图构建: 默认构建器现在包含烘焙光照(
bakedlighting)、导航网格生成(nav)与多个 Steam Audio 步骤(sareverb、sapaths、sacustomdata)。 - MeshCompiler: 启用顶点/索引缓冲编码、每 Draw 的剔除数据、meshlet、MikkTSpace 切线生成与深度流拆分。
- WorldRendererBuilder: 开启基于可见性的聚类、某些对象的静态环境贴图、非均匀缩放烘焙与聚合实例化。
- 烘焙光照: 配置确定性构建、LPV 使用、默认光照贴图尺寸与缝隙、多个 lightmap 通道(辐照度、阴影、方向性辐照度、调试颜色)并使用 DXT1 压缩。
- VisBuilder: 将可见性簇上限设为 4096,启用确定性构建,并对开放空间合并有若干阈值。
- 贴图编译: 使用
lz4压缩、磁盘上存储压缩 MIP、支持非 2 的幂次方纹理、Panorama MIP 生成,工具默认最大分辨率为 2048。
- 地图构建: 默认构建器现在包含烘焙光照(
对于制图者与资源创建者,这套集中化配置意味着 Hammer 与 resourcecompiler 在 CS2 下将更可预测,很多 CS:GO 特有的选择被编码为默认值而非隐藏在不同 mod 配置中。
场景、音频与工具系统
若干引擎模块与工具获得新能力或更安全的默认值:
- SceneSystem:
- 确认使用 GPU 光照分桶(light binning)、动态阴影分辨率、稀疏阴影树、点光阴影、角色贴花、第一人称腿部、混合实例化渐隐支持以及多个色调映射和雾选项。
- 引入 已知光 cookie 插槽(blank、flashlight、muzzleflash),并在
materials/effects/lightcookies/下增加相应贴图。
- 粒子系统:
- 声明粒子默认受雾效影响、支持混合分辨率并能对碰撞追踪做偏移以配合 CS2 调整。
- WorldRenderer:
- 标准化环境贴图设置(GGX 模糊、BC6H 格式、立方体数组、每图集)并设定草地渲染参数。
- NavSystem:
- 定义了全局导航网格参数(tile size、cell size/height、区域阈值、最大多边形边长、细节采样),并设置
NavHullsPreset为default,以及从server.dll加载自定义 nav 构建接口。
- 定义了全局导航网格参数(tile size、cell size/height、区域阈值、最大多边形边长、细节采样),并设置
- Hammer:
- 确认 CS2 的 Hammer 使用
csgo.fgd与csgo_internal.fgd,包含 Counter-Strike 功能集、地形工具、Steam Audio、格点变形器、智能道具实例化渲染,并使用 6144x6144 的阴影图集。
- 确认 CS2 的 Hammer 使用
- ModelDoc 与资源工具:
- ModelDoc 标注 CS2 专用特性,更严格地对待缺失材质,并将关键信息缺失视为错误(warnings as errors),以提高内容质量。
网络协议清理
- 在共享的
cstrike15_gcmessages.proto与对应客户端 schema 中,移除了若干 Game Coordinator 消息类型与支持的EInitSystemResult枚举:GC2ClientRefuseSecureModeGC2ClientRequestValidationGC2ClientInitSystemGC2ClientInitSystem_Response
- 与模块 manifest、系统包与验证结果相关的字段也被删去。
这表明游戏正在弃用与初始化/验证相关的一些消息类型,并对客户端与服务端间的某些协调流程做出清理。
