CS2 更新(2026年5月19日)
本次更新新增叠加增益的精度控制、扩展了 `cs_script` API 与示例 zoo 工具、调整了 GC 消息定义,并刷新了环境着色器与版本号。
快速摘要
- 新的 `weapon_accuracy_stack_boost_limit` 控制台变量影响大规模玩家叠加抬举时的武器散布。
- `cs_script` API 增加了回合、经济、武器与输入相关的辅助方法,并加入 `RegisterCheatCommand`。
- 编辑器 zoo 示例脚本将聊天触发改为受 `sv_cheats` 约束的作弊控制台命令,并在 `setup.js` 中集中启用 `sv_cheats`。
- GC 消息新增了 `steammessages_gc` 风格的定义,同时移除了旧的 convar 复制消息定义(`CMsgConVarValue`、`CMsgReplicateConVars`)。
- 用于地形与混合表面的环境着色器(`csgo_environment.slang`、`csgo_environment_blend.slang`)在 PC 与 Vulkan 上被重构并刷新了清单。
- 客户端与服务器版本更新为 `2000827`,补丁版本为 `1.41.6.2`。
本次更新为创作者带来更多脚本工具,调整了多人叠加增益对武器精度的影响,刷新了若干后端消息定义与环境着色器,并做了小幅版本号上调。
游戏性与控制台变量
- 新增叠加增益误差控制: 新增了一个可复制(replicated)控制台变量
weapon_accuracy_stack_boost_limit。其说明指出,当玩家由等于或超过该数目的队友叠加抬举(boost)时,会施加类似阶梯式的误差。这意味着在大规模玩家叠加抬举的场景下,可能会引入额外的武器散布,对依赖多人抬举的战术布置有影响。 - 用于机器人测试的命令: 新注册了
bot_hurt服务器命令,作为其他带有作弊标记的机器人命令之一。细节未在此处展开,但看起来是为离线或启用sv_cheats的测试场景准备,便于在练习或调试时快速对机器人造成伤害或击杀。
脚本与创意工坊 API 改进
cs_script/point_script API(创意工坊与自定义脚本常用)获得了显著扩展,并清理了部分实验性标注。
-
通用文档与稳定性调整:
- 脚本定义文件新增了专门的反馈行,指向
[email protected],邮件主题建议使用 "cs_script Feedback"。 - 一些此前标注为
@experimental的方法(如SetSaveData、GetSaveData、OnModifyPlayerDamage以及若干输入助手)已移除实验性警告,表明 Valve 对这些接口的稳定性更有信心。
- 脚本定义文件新增了专门的反馈行,指向
-
新的生命周期与回合流程钩子:
- 新增实验性回调
OnBeginRoundRestart(callback: () => void): void;,在回合重启清理开始时触发。创作者可用其在新回合开始前重置自定义状态,提升复杂回合脚本的可靠性。
- 新增实验性回调
-
玩家与回合控制辅助:
GetAllPlayerControllers(): CSPlayerController[]返回包括已断开连接在内的所有玩家控制器,便于在自定义模式中遍历所有玩家而不必猜测槽位。GetRoundRemainingTime(): number之外新增SetRoundRemainingTime(time: number): void;,允许脚本直接调整回合计时器,适用于训练、小游戏或有时间要求的自定义场景。
-
脚本专用控制台命令:
RegisterCheatCommand(name: string, callback: (args: string) => void): void;可以注册一个仅在sv_cheats为 true 时可用的控制台命令并调用脚本回调,给创作者提供更受控的调试或工具命令出口,而不用滥用聊天或其他触发机制。
-
武器与玩家状态访问:
CSWeaponBase新增IsSilencerOn(): boolean;,脚本可以检测武器是否处于消音状态。CSPlayerPawn新增若干辅助方法:HasHelmet()与SetHasHelmet(hasHelmet: boolean)用于查询和设置头盔状态。IsScoped()用于判断玩家是否在瞄准镜中。
CSPlayerController新增金钱相关方法:AddMoneySpendableNow(amount: number)/GetMoneySpendableNow()调整当前回合可消费的金钱。AddMoneyEarnedForNextRound(amount: number)/GetMoneyEarnedForNextRound()影响下一回合的收入(类似连败奖金机制)。
这些扩展有助于构建自定义经济系统、练习工具与模式特定逻辑(比如强制护甲、免费瞄准或脚本化装备)。
-
输入检测辅助被视为稳定:
CSPlayerPawn上的IsInputPressed、WasInputJustPressed和WasInputJustReleased不再带有实验性警告,说明 Valve 将输入状态查询纳入稳定脚本接口,便于制作移动教学、按键可视化或自定义技能系统。
编辑器 Zoo 示例脚本的变更
内置的 editor/zoo 地图示例脚本更新以配合新的脚本能力与作弊命令流程。
-
聊天命令改为作弊控制台命令:
- 旧的基于聊天的追踪工具(例如
!traceline、!tracesphere、!tracebox、!tracebullet)被替换为作弊控制台命令:script_zoo_trace <type>,type可为line、sphere、box或bullet。- 脚本使用
Instance.GetAllPlayerControllers()[0].GetPlayerPawn()选择用于追踪的 pawn,如参数无效则输出用法提示。
!showinput聊天命令同样改为作弊控制台命令:script_zoo_showinput切换第一个玩家控制器的输入显示。
这些改动演示了
RegisterCheatCommand的用法,并将开发工具限制在sv_cheats后面,而非普通聊天输入。 - 旧的基于聊天的追踪工具(例如
-
zoo 的集中化作弊开启:
- 不再在
grenadetraining.js内直接设置sv_cheats 1,而是由setup.js通过Instance.ServerCommand("sv_cheats 1");与已有的热身命令一起执行一次性设置。 - 这表明 Valve 希望示例内容展示一个更清晰的模式:用一个集中设置脚本配置服务器环境(作弊、热身),其他脚本专注于工具或示例逻辑。
- 不再在
-
已编译资源同步更新:
- 对应的打包脚本二进制(
*.vjs_c)在主游戏内容中也已刷新,玩家加载自带的editor/zoo地图时会直接得到新行为,无需手动设置。
- 对应的打包脚本二进制(
研究 zoo 地图以学习脚本的创作者现在会看到更贴近当前实践、并以作弊隔离的控制台命令为例的方式。
观察者与相机服务
- 观察者相机后期处理:
- 观察者相机服务的 schema 现在追踪
m_hPrevPostProcessingVolume,这是指向先前后期处理体积的句柄。 - 虽然具体行为未详述,但这应支持观察者在不同后期处理区域之间切换时更平滑的视觉过渡,例如室内外色彩分级或曝光变化的平滑切换。
- 观察者相机服务的 schema 现在追踪
网络、GC 与后端工具
新增了较为完整的 steammessages_gc.proto 定义,若干游戏和工具二进制引入了对应字符串引用。
-
新的 GC/Steam 消息定义:
- 新的 proto 文件定义了大量消息,涵盖:
- Web API 密钥与 HTTP 请求/响应(如
CMsgWebAPIKey、CMsgHttpRequest、CMsgWebAPIRequest、CMsgHttpResponse)。 - 账户与许可查询(如
CMsgAMFindAccounts、CMsgAMGetLicenses、CMsgAMGetUserGameStats等)。 - 类似 memcached 的缓存操作(
CGCMsgMemCachedGet、CGCMsgMemCachedSet、CGCMsgMemCachedDelete及统计)。 - 系统统计、SQL 统计、IP 定位查询、购买信任与 VAC 状态变更。
- 客户端与 Web API 消息的路由规则(如
CMsgGCRoutingInfo、CMsgGCMsgMasterSetWebAPIRouting、CMsgGCMsgMasterSetClientMsgRouting)。 - 邮件模板与发送、访客通行证、可疑活动通知与合作伙伴微交易等。
- Web API 密钥与 HTTP 请求/响应(如
这些更像是分布在游戏协调器、匹配与物品后台、以及开发者工具之间共享的基础设施消息,而非直接的对战内新功能。
- 新的 proto 文件定义了大量消息,涵盖:
-
跨组件字符串更新:
server_strings、client_strings、matchmaking_strings与cs2_item_editor_strings文件现在引用了许多新的 GC 消息与路由结构。- 同时,
CMsgConVarValue与CMsgReplicateConVars的引用已被移除,并且这些消息定义也从base_gcmessages.proto中删去。
对于服务器运营者与工具作者,这意味着若原有集成依赖于旧的 GC 级别的 convar 复制消息,可能不再接收到这些消息,需相应调整。
-
删除了 convar 复制的 GC 消息:
CMsgConVarValue与CMsgReplicateConVars已从共享 GC 消息 proto 中删除,这强烈暗示这些控制台变量不再通过该 GC 通道公开或同步。- 引擎内部的常规 convar 行为(通过服务器/客户端网络与现有工具)不受此更改影响,但基于 GC 侧 convar 复制构建的后端或第三方工具可能需要更新。
渲染与着色器调整
两份大型环境着色器文件及其对应的 Vulkan 与 PC 着色器清单被更新。
-
环境与混合着色器重构:
csgo_environment.slang与csgo_environment_blend.slang进行了显著重构,包含高度图、颜色贴图的采样方式以及多层合成逻辑的调整。- 新增代码路径计算诸如
_6616(由_19651 / vec2(_19651.x + _19651.y)得出),并对每层的坐标处理更为明确。 - 高度/粗糙度/色染(tint)处理更显式(对高度图值使用
fwidth、对粗糙度与色染使用 clamp/saturate),这可能影响在低视角或 LOD 过渡下混合表面的外观。
-
着色器清单的重写但路径未变:
shaders_vulkan_dir.txt与shaders_pc_dir.txt中对相同环境与静态覆盖着色器路径的移除与重新添加表明这是一次二进制重建或版本刷新,而非新增路径。
玩家在特定光照或观察角度下,尤其是在 Vulkan 上,可能会注意到地面、混合表面或环境细节的细微差异,但更新并未标记为明确的视觉特性开关。
构建与版本号上调
-
客户端与服务器新版本:
ClientVersion与ServerVersion更新为2000827,PatchVersion更新为1.41.6.2。- 内部构建与源码修订号亦有前进,标志着一次对匹配兼容性有影响的独立更新。
-
内容清单刷新:
- 主
pak01_dir.txt清单被轮换,重新列出了本地化的resource/csgo_*.txt文件、editor/zoo的脚本二进制以及若干地图图标截图(包括de_cache的截图)。 - 这些路径的移除与再添加完全相同,表明是打包或排序的刷新,而非新增资源。
- 主
请确保客户端与服务器版本匹配以避免连接到社区服务器时出现版本不符的问题。
整体影响
- 竞技玩家在极端多人抬举场景下可能会感受到
weapon_accuracy_stack_boost_limit带来的武器误差变化。 - 创作者与创意工坊作者将获得更丰富的脚本钩子,可控制回合流程、经济变化、武器与护甲状态,并通过示例的 zoo 脚本看到以
sv_cheats为门槛的控制台命令用法。 - 观察者在不同后期处理区域间切换时可能享受更平滑的视觉过渡。
- 后端与工具链方面对 GC 消息的重构与 convar 复制消息的移除有利于基础设施稳定,但依赖旧 GC 通道的集成需重新评估。
- 环境着色器的细微调整可能会在某些渲染条件下改变混合表面与地形的视觉表现,尤其在 Vulkan 上更易察觉。
