CS2 更新(2026年9月10日)
本次更新加入 GOTV 加密控制、面向脚本与观众的实验性 CustomPlayerCamera 系统,并为向观众展示自定义 HUD 布局提供了改进选项。
快速摘要
- 新的 GOTV 加密和聊天中继控制让赛事服务器对观众和工具可见的数据有更细粒度的控制。
- 实验性的 `CustomPlayerCamera` 系统(包含跟随与偏移模式)取代了脚本与自定义内容的旧摄像机 API。
- 聊天相关的用户消息新增 `textallchat` 标志,并将遗留的 CS:GO 格式在内部明确标识为 legacy,便于集成。
- 自定义 HUD 布局实体现在可标记为可观测(observable),使观众能看到每位玩家各自的脚本化界面。
- 打包与字符串更新将工具与资源(包括 `de_cache` 图标和若干语言文件)与新的网络与摄像机功能对齐。
本次更新主要集中在新的 GOTV 加密控制、更灵活的脚本与观众用自定义摄像机系统,以及与网络和工具相关的一些整理工作。
GOTV 加密与聊天中继控制
为赛事组织者、转播方和服务器管理员增加了多项关于 GOTV 数据发送与可见性的配置选项。
-
客户端解密密钥:
cl_decryptdata_key– 用于解密加密的 GOTV 消息的密钥。cl_decryptdata_key_pub– 用于解密公开加密 GOTV 消息的密钥。
这些控制台变量允许兼容的客户端(例如转播工具)提供密钥来解码来自 GOTV 的加密数据。看起来这是针对官方或私人广播流程的,而不是普通玩家场景。
-
服务器端加密密钥:
tv_encryptdata_key– 设置为有效密钥时,会对 GOTV 的通信消息进行加密。tv_encryptdata_key_pub– 设置为有效密钥时,会对公开通信消息进行加密。
组合使用后,服务器在将数据发送给观众或转播工具前可对 GOTV 流量进行加密,这有助于保护团队语音或战术数据等敏感信息,尤其适用于高水平赛事。
-
加密网络消息类型:
- 新的服务消息
svc_EncryptedData,对应的 protobuf 为CSVCMsg_EncryptedData,携带加密载荷并包含一个key_type值。 - 语音包
CSVCMsg_VoiceData现在包含caster标志,可能用于在 GOTV 中区分解说语音与玩家语音。
这些改动表明对 GOTV 中不同类别数据(例如队伍内部通信 vs. 公开通信)进行选择性加密的流水线变得更完整,同时允许授权工具进行解密。
- 新的服务消息
-
GOTV 聊天中继选项:
tv_relaytextchat– 将文本聊天中继到 GOTV:0 = off, 1 = say, 2 = say+say_team。- 已移除
tv_show_allchat。
服务器管理员现在可以更明确地控制哪些游戏内文本聊天对 GOTV 观众可见,包括是否中继仅队伍聊天。
聊天用户消息与遗留兼容性
用户消息的定义做了调整,明显把 CS2 的行为与遗留的 CS:GO 格式区分开来。
- 重命名的遗留用户消息:
CS_UM_SayText、CS_UM_SayText2、CS_UM_TextMsg和CS_UM_UpdateTeamMoney在内部枚举中被重标为带有_CSGOLegacy后缀。
这表明 CS2 会显式将部分消息类型标注为 CS:GO 遗留格式,但仍保留可用。依赖原始用户消息 ID 的插件或工具需要注意这些现在被明确标识为遗留,虽然数值 ID 未变。
此外,聊天的用户消息现在包含更多元数据:
- 新增
textallchat字段:CUserMessageSayText和CUserMessageSayText2现在包含布尔字段textallchat。
该标志用于指示某条消息是否属于“全局聊天”情境,有助于 HUD、解析工具和叠加层更可靠地区分全局聊天与队伍聊天或本地聊天。
面向脚本与观众的全新 CustomPlayerCamera 系统
更新引入了更灵活的摄像机系统以供脚本化内容使用,并将旧接口标记为弃用。
-
point_script中的新摄像机 API:CSPlayerPawn.GetCustomCamera()现在返回一个CustomPlayerCamera。- 旧的
GetCamera()方法目前仍在,但已显式标记为弃用。
-
CustomPlayerCamera类:- 向脚本暴露为
CustomPlayerCamera(内部名为CCSCustomPlayerCamera)。 - 主要方法:
GetPlayer()– 返回关联的CSPlayerPawn。GetMode()/SetMode(mode: CustomCameraMode)– 控制摄像机行为模式。SetFollowConfig(followConfig: CameraFollowConfig)– 配置跟随对象与跟随方式。
- 向脚本暴露为
-
摄像机模式(
CustomCameraMode/CustomCameraMode_t):DISABLED– 使用玩家正常的眼位与视角。CONTROLLED– 位置与角度均来自摄像机实体。CONTROLLED_POSITION– 位置来自摄像机实体;角度仍由玩家控制。FOLLOW_POSITION– 位置基于被跟随位置与配置偏移;角度由玩家控制。
-
CameraFollowConfig选项:followEntity– 要跟随的实体。followEyes– 是否基于实体的眼位而非原点作为跟随位置。followOffset– 跟随位置的偏移。cameraOffset– 围绕被跟随位置的偏移,会被玩家眼角度旋转影响。clipCameraOffset– 是否在发生穿模时将摄像机拉近以避免穿透实体。cameraOffsetReturnStrength– 摄像机在被拉近后向理想偏移回弹的强度。
对于使用 cs_script 的创作者,这使得能实现更复杂的观战与影视化镜头:按配置偏移跟随、考虑碰撞的环绕镜头、以及无需移动玩家 pawn 的摄像机装置。该系统被标记为实验性,脚本可能需随 Valve 的迭代做相应调整。
- 旧的
CSPlayerCamera被弃用:GetCamera()和CSPlayerCamera类仍存在,但已标记将在未来移除。- 旧字段如
m_bEnabled与m_bIsControllingAngles已移除,转而采用新的统一CustomPlayerCamera基类。
依赖旧摄像机的地图与模式作者应计划迁移到 CustomPlayerCamera 与 GetCustomCamera()。
自定义 HUD 布局的可观测性
自定义 HUD 布局现在增加了一项元数据,用于控制观众能否看到它们。
-
Hammer 中新增
Observable属性(在csgo.fgd中):cs_custom_layout(由cs_script控制的 Panorama UI 实体)新增observable(boolean)键:- 描述:"Show each player's own version of this UI to whoever is spectating them."(向观战该玩家的观众显示该玩家自己的 UI 版本。)
-
匹配的网络字段:
- 内部的
CCSCustomHudLayout在客户端和服务器端都新增了布尔字段m_bObservable。
- 内部的
实际效果是,脚本化的 HUD 元素现在可以选择加入到与内置 HUD 相同的观众可见逻辑中。理论上赛事叠加或自定义信息面板可一次性编写,然后自动显示给跟随该玩家的观众,从而改善观赛体验。
工具、语言与打包相关变更
更新还包含一些次要的整理和背景改动。
-
地图图标资源:
de_cache的 Panorama 地图截图图标在多个分辨率(360p、720p、1080p)上的清单条目被触及,但前后路径相同。这通常意味着资源重打包或轻微修订,可能反映该地图加载图像的重新压缩或更新。
-
本地化资源条目:
- 清单中
resource/csgo_dutch.txt、resource/csgo_romanian.txt、resource/csgo_schinese.txt、resource/csgo_swedish.txt和resource/csgo_tchinese.txt的引用被循环处理但仍然存在,表明这些语言文件可能被内部更新或重打包。
- 清单中
-
网络与工具字符串:
- 若干引擎与工具二进制中的字符串已根据新的 GOTV 加密消息类型和摄像机改动进行了更新。
- 一些对通用
key_type字符串的旧引用在若干工具中被移除,可能是为整合密钥处理而做出的清理。
这些变更不会直接影响普通玩家的日常游戏,但有利于工具稳定性与未来功能扩展。
综合影响
对大多数玩家来说,此次更新在日常体验中变化不大。主要受益方为:
- 赛事与转播流程,获得更细粒度的 GOTV 加密与聊天中继控制,以及更清晰的公开数据与敏感数据分离。
- 脚本与地图作者,得到功能更强的
CustomPlayerCamera系统,并能将自定义 HUD 布局标记为观众可见。 - 工具与插件开发者,需要注意新命名的用户消息、额外的聊天元数据以及新的加密网络消息类型,以便更新集成。
由于新的摄像机与 HUD 系统被明确标为实验性且部分旧 API 已弃用,社区创作者可能需要尽早着手适配,以防后续出现破坏性变更。
