CD Code Digest Hub /CS:GO

覆盖与一致性审计

37 分钟阅读 8 个章节

本页记录本 Wiki 的审计过程与结果:覆盖了什么、有意排除了什么、哪些结论证据不足、审计中发现并修正了哪些问题,以及哪些验证没有执行。它不是“已全面分析”的声明。

返回 首页。

1. 快照、范围与日期#

项值
源码D:\Code\CSGO\Counter-Strike-Global-Offensive,提交 f82112a2388b841d72cb62ca48ab1846dfcc11c8(2020-04-23);共 21 个提交,最早为 2020-04-22 的 Initial commit 与 CS:GO Source
跟踪文件14,245 个(git ls-files);73 个顶层目录
工作区差异存在未跟踪目录 docs/(内含一份既有中文结构报告);本 Wiki 未把它当作证据,只以源码为准
审计日期2026-10-31(第一轮与第二轮同日完成,第二轮记录见第 8 节)
范围csgo_partner 构建组的运行时主路径 + CS:GO 玩法 + 地图编译器 + 其余内容工具入口;Windows PC 客户端与 Windows/Linux 专用服务器为主线

2. 机械检查(已执行)#

检查结果
源码引用存在性与行号范围49 个正文页面 + 首页 + 本页的约 4,100 条引用全部由脚本逐条校验:文件存在、起止行在文件范围内;校验时同时输出每条引用首行内容用于人工抽查
Wiki 内部链接无断链(只校验目标文件存在,不校验页内锚点)
孤立页面无(每个页面都能从首页或父页面到达)
占位符无未转换的引用占位符
文本损坏扫描第二轮发现第一轮因 shell 弯引号转义损坏了 6 处句子,已全部修复(见第 8 节);另用“行尾无标点”“同一短语重复”“弯引号不配对”三种规则扫描全部页面,未再发现损坏
密钥未复制任何密钥;仓库中被置空的主服务器公钥仅以“已置空”事实提及(engine/net_ws.cpp:4567);统计校验种子、武器脚本密钥等硬编码常量只说明用途,不复制值

链接与行号有效不等于语义正确;语义层面的检查见第 5、6 节。

3. 反向盘点覆盖矩阵#

以“需要理解的职责或运行入口”为单位,从顶层目录与入口重新盘点(不依赖页面树)。

3.1 进程入口与注册点#

对象类型对应页面状态
launcher_main WinMain / POSIX main进程入口客户端启动链已覆盖
launcher LauncherMainDLL 入口客户端启动链已覆盖
dedicated_main / dedicated DedicatedMain进程入口专用服务器已覆盖
CEngineAPI::Run、CDedicatedServerAPI::ModInit/RunFrame引擎入口客户端启动链、专用服务器已覆盖
CreateInterface / EXPOSE_*模块注册接口工厂已覆盖
IServerGameDLL、IServerGameClients、IServerGameEnts、IBaseClientDLL游戏 DLL 契约游戏 DLL 契约已覆盖
LINK_ENTITY_TO_CLASS、地图实体解析实体注册实体系统已覆盖
IGameSystem / CAutoGameSystem隐式注册实体系统已覆盖
ConVar/ConCommand 注册、命令缓冲与权限隐式注册 / 分派基础库层、输入与命令已覆盖
客户端发来的 net_StringCmd网络命令入口输入与命令已覆盖(第二轮)
无连接包:A2S 查询、RCON、挑战网络入口服务器运维面已覆盖(第二轮)
游戏事件、用户消息事件分发实体系统、网络通道已覆盖
SendTable/RecvTable、IMPLEMENT_SERVERCLASS/CLIENTCLASS网络注册实体复制已覆盖
实体 vscripts 键值与 RunScriptCode 等输入脚本入口VScript已覆盖(第二轮)
响应规则 Speak / 无线电命令台词分派场景与响应规则已覆盖(第二轮)
工具 main:vbsp/vvis/vrad工具入口地图编译器已覆盖(函数级,第二轮)
工具 main:vtex/studiomdl/shadercompile、Hammer工具入口内容工具链已覆盖(入口级)

3.2 顶层目录#

目录对应页面状态说明
appframework、interfaces接口工厂已覆盖
tier0~tier3、vstdlib、mathlib基础库层已覆盖职责级;未逐个分析容器与数学实现
launcher_main、launcher客户端启动链已覆盖
dedicated_main、dedicated专用服务器、VGUI 与本地化已覆盖VGUI 管理界面见 VGUI 页第 6 节;工程脚本引用的 Tracker/AdminServer 目录不在仓库中(证据不足)
engine、engine_ds引擎 及子页已覆盖第二轮补入 audio/、voice_codecs/、输入/命令、服务器运维、VGUI 面板、世界渲染;engine_ds 产物与 srcds 实际加载的 engine 模块的关系未闭环(N1)
game/client、game/server、game/shared(含 cstrike15)游戏 DLL、CS:GO 及子页已覆盖其他游戏子目录(hl2、portal* 等)有意排除
game/server/nav_*、game/*/cstrike15/bot导航网格、Bot 决策已覆盖(第二轮)网格编辑器、合并/简化算法、NextBot(CS:GO 未使用)、合作模式专用逻辑有意排除;未编译的旧副本已在页内标注
game/client 视图渲染(viewrender、clientshadowmgr、glow_outline_effect 等)客户端视图渲染管线已覆盖(第二轮)DetailObjectSystem、ClientLeafSystem 内部未展开
game/shared/econ物品与经济已覆盖(U1 未决)见第 4 节
matchmaking、gcsdk匹配与 GC已覆盖其他游戏的标题适配目录排除
materialsystem材质系统已覆盖第二轮补入材质代理、渲染目标分配、纹理加载;ps3gcm、各 Shader 实现、togl 未展开
studiorender、bonesetup、particles模型、动画与粒子已覆盖第二轮补入快速路径、LOD、flex
引擎世界渲染文件(gl_rsurf、gl_lightmap、r_areaportal、staticpropmgr、shadowmgr、disp_* 等)引擎世界渲染已覆盖(第二轮)brushbatchrender、buildcubemaps、顶视图未展开
soundsystem、soundemittersystem引擎音频管线已覆盖(第二轮)Miles SDK 缺失;DSP 算法、混音组未展开
avi、videocfg语音与视频已覆盖(第二轮)第一轮把 videocfg 归为视频是错的,它是显示设置配置(videocfg/videocfg.cpp:3);Bink SDK 缺失
inputsystem输入与命令已覆盖(第二轮)手柄死区、IME、输入上下文栈未展开
vgui2、vguimatsurface、localizeVGUI 与本地化已覆盖(第二轮)控件库见下方排除行
responserules、choreoobjects、scenefilecache场景与响应规则已覆盖(第二轮)第一轮的排除理由“CS:GO 玩法依赖小”不成立(K30);choreoobjects/ 目录只有 vpc,源码在 game/shared(choreoobjects/choreoobjects.vpc:20-29)
filesystem、vpklib、datacache文件系统与缓存已覆盖第二轮补入异步 I/O 与 QueuedLoader(PC 上不生效)
datamodel、dmserializers、dmxloaderDataModel 与 DMX已覆盖属性类型系统、撤销栈未展开
vscriptVScript已覆盖第二轮补入实体脚本作用域与客户端 VM;各语言运行时未展开
utils/vbsp、utils/vvis、utils/vrad地图编译器已覆盖(函数级,第二轮)utils/vmpi 只有头文件与预编译库,分布式行为无法验证
hammer、hammer_launcher、fgdlib、其余 utils、tools内容工具链已覆盖(入口级)studiomdl、vtex、shadercompile 内部算法未展开
scaleformuiHUD已覆盖SDK 缺失
vpc_scripts、devtools、lib、CreateSolution.bat构建已覆盖
common(协议与辅助)网络通道已覆盖(协议部分)其中第三方 SDK 子目录排除
public多页(接口头文件)已覆盖(按需引用)作为契约中心被引用,未单独成页
unittests、unitlib概览已覆盖(缺失事实)只有 1 个跟踪测试文件
README.md、aREADTHEREADME、根目录提示文本概览、物品与经济已覆盖README 与代码存在差异(K15)
thirdparty、external、dx9sdk、dx10sdk—有意排除第三方代码
serverbrowser、tracker、VGUI 控件库(vgui_controls、dme_controls、matsys_controls、game_controls)、vlocalizeVGUI 与本地化(仅提及)有意排除服务于引擎面板与工具,不在 CS:GO 玩法主路径
响应规则编辑工具(responserules_cli、ResponseEditor)—有意排除离线工具
fow、raytrace、bitmap、vtf、resourcefile、togl、materialobjects、mdlobjects、movieobjects、mdllib、meshutils、fbxutils、dmeutils、dmxeditlib—有意排除支撑库或工具侧对象库,只做存在性确认
docs(未跟踪)—不适用非源码,未作为证据

3.3 机制级盘点(第二轮新增)#

对象对应页面状态说明
实体句柄序列号、实体列表、edict 复用、空间分区实体句柄与实体列表已覆盖体素树算法未展开
CVerifiedUserCmd、预测存储槽与误差平滑预测内部机制、输入与预测已覆盖
LagRecord 动画层与姿态参数延迟补偿已覆盖
观战、接管 Bot、教练、投票、成就统计、MVP、人质玩家外围系统已覆盖客户端观战 HUD、人质跟随寻路未展开
刀、电击枪、霰弹枪、左轮、连发、消音器、开镜、客户端弹道特效特殊武器机制已覆盖双枪、机瞄内部、开镜遮罩 HUD 未展开
存档/读档实体系统有意排除引擎在多人游戏中拒绝存档
point_template实体系统证据不足仓库没有地图文件,无法确认 CS:GO 地图用法
sv_log、sv_uploaddata、Steam P2P 伪套接字服务器运维面(仅提及)有意排除
内容文件(.nav、BotProfile.db、BotChatter.db、response_rules.txt、scenes.image、声音脚本、物品 schema、GameModes.txt)各相关页证据不足仓库中不存在,只能描述加载与使用机制

3.4 状态计数#

按上表统计:入口/注册点 17 项全部“已覆盖”(1 项为入口级);目录行 34 行中“已覆盖”29 行(其中 1 行 U1 未决、1 行仅缺失事实、1 行入口级)、“有意排除”4 行、“不适用”1 行;机制级 9 项中“已覆盖”5 项、“有意排除”2 项、“证据不足”2 项。没有被判定为“遗漏”的核心对象。这只是盘点项的计数,不代表语义覆盖率。

4. 证据不足与未决问题#

4.1 第一轮未决问题的处理#

ID问题第二轮结论页面
U1运行时物品 schema 如何在正常启动时加载仍未决,已缩小范围:逐一检查了 7 个可能的 schema 加载入口,没有一个在正常启动时填充 schema;缺少的证据是原始加载代码(推断已被裁剪)或运行日志物品与经济
U2射击传入物品定义索引固定为 0 的后果后果已闭环:所有玩家射击路径都传 0(game/shared/cstrike15/weapon_csbasegun.cpp:731-746);查找失败时这一枪在任何网络事件、声音、伤害之前被丢弃,但弹药已扣(game/shared/cstrike15/fx_cs_shared.cpp:237-242)。实际是否失败取决于缺失的 schema 是否有 0 号或 default 条目特殊武器机制、武器与射击
U3csgo_partner 能否实际构建仍未决:缺 gc_clientsystem.h、Scaleform/Bink/Miles/CELT SDK、vphysics 等,未执行构建构建
U4client/server 是否共享 matchmaking.dll 中的 GameTypes 实例已闭环:两个游戏 DLL 都用 GameFactory 重新获取 g_pGameTypes,组查找不会返回它,随后由 matchmaking 工厂返回其单例(engine/sys_dll.cpp:1018-1036、matchmaking/main.cpp:160-166)比赛模式
U5VPK 是否优先于松散文件已闭环:FindFile 对相对路径先遍历全局 VPK 列表,且不受 path ID 约束(filesystem/basefilesystem.cpp:4171-4189)文件系统与缓存
U6专用服务器 gameinfo 建议目录写死为 left4dead 的影响已闭环:只有在既无 -game/-vproject、又非 Steam 文件系统时才会询问该函数,且失败后继续回退(public/filesystem_init.cpp:1063-1127)专用服务器
U7m_iAccountMoneyEarnedForNextRound 何时生效已闭环:冻结期结束后获得的钱记入该字段,下一回合才可花(game/server/cstrike15/cs_player.cpp:6000-6005)玩家

4.2 第二轮新增的未决问题#

ID问题现状页面
N1srcds 模块表加载名为 engine 的模块(dedicated/sys_windows.cpp:268),与 engine_ds 工程产物的关系VPC 中未找到输出名覆盖,无法闭环音频、构建
N2无线电响应是 scene 类型还是 speak 类型取决于缺失的 response_rules.txt;只有 scene 类型会传递队伍过滤器,影响“仅队友可听”场景与响应规则
N3cl_modelfastpath 注释称在 css15 上不工作,默认值却是 1(game/client/viewrender.cpp:5730-5733)文档漂移,运行效果未验证模型、动画与粒子
N4Bot 反应延迟约为配置值的 2/3、IncreaseDangerNearby 疑似方向写反、区域人数统计基本无人维护均为推断,需运行验证Bot 决策、导航网格
N5CreateEntityByName 路径触发两次 OnEntityCreated;ValidateUserCmd 忽略传入的分屏槽位;句柄序列号回绕与 IsStaticProp 序列号冲突前两项为观察,后两项为推断实体句柄与实体列表、预测内部机制
N6valve.rc、autoexec.cfg 的实际执行顺序;banned_user.cfg/banned_ip.cfg 只写不读仓库无 cfg 内容,无法闭环输入与命令、服务器运维面
N7PC 构建未定义 BINK_VIDEO(vpc_scripts/source_video_base.vpc:37-38),启动视频与 playvideo 是否实际失效推断,发行版构建配置未知语音与视频
N8未加载导航网格时 m_desiredDMSpawns 不初始化;DoCoopSpawnAndNavInit 找不到调用方观察,影响未验证导航网格

4.3 观察到但未验证的代码问题#

以下问题只在静态阅读中发现,未构建、未复现,也未评估可利用性:

  • HandleCommand_Buy_Internal 使用未初始化的 itemNameUsed(game/server/cstrike15/cs_player.cpp:7726);FireOutput 两个分支对延迟的处理不一致(game/server/cbase.cpp:280、game/server/cbase.cpp:289)。
  • 开启开发 ConVar dev_reportmoneychanges 时,ReleaseControlOfBot 可能解引用空 Bot 指针(game/server/cstrike15/cs_player.cpp:15713-15729);议题不是是/否类型时,VoteControllerThink 不再重新调度自身(game/server/vote_controller.cpp:675-680)。
  • 一行注释为 temp test 的代码让 Bot 在敌人可见时总是瞄腹部(game/server/cstrike15/bot/cs_bot_weapon.cpp:255-256)。
  • 安全相关观察三项(详见 服务器运维面 的约束与边界):非 DEDICATED 构建中 RCON 的截图与取控制台日志请求不检查认证;客户端读取服务器公钥/签名时长度未与 1024 字节栈缓冲比较;会话密钥用以时间为种子的 RandomInt 生成。

5. 关键结论台账(节选)#

ID规范化结论条件证据页面状态
K1模块通过版本字符串 + CreateInterface 连接;FindSystem 向父组回退全部 AppSystem 组appframework/AppSystemGroup.cpp:322-358接口工厂、启动链已验证
K2每帧时间被切成整数 tick;网络更新只在最后一个 tick 发送服务端总是;客户端 CL_Move 对回环连接默认例外engine/host.cpp:4079-4096、engine/sv_main.cpp:3475-3483、engine/cl_main.cpp:2767-2774主循环、网络通道已修正(第一轮增加回环例外;第二轮修复网络通道页中被损坏的该句)
K3引擎线程化(服务器 tick 在线程池运行)只用于监听服务器非 DEDICATED 构建,且运行时要求服务器与本地客户端同时活跃engine/host.cpp:4168-4172、engine/host.cpp:4648-4660主循环已验证(第二轮补充运行时条件:即使 srcds 加载的是非 DEDICATED 引擎,也没有活跃的本地客户端)
K4玩家命令在收到时排队,在下一次 GameFrame 的物理模拟中执行非暂停game/server/player.cpp:3778-3783、game/server/physics_main.cpp:2282-2339输入与预测、Bot已验证
K5实体只打包一次、所有客户端共享;差量必须以客户端确认过的帧为基准非本地后门engine/sv_packedentities.cpp:539-608、engine/baseclient.cpp:1437-1444实体复制已验证
K6TerminateRound 每回合只生效一次m_iRoundWinStatus != WINNER_NONE 时直接返回game/shared/cstrike15/cs_gamerules.cpp:13325-13326规则与回合已验证
K7CheckWinConditions 由事件驱动调用,而非在 Think 中轮询CS:GO 规则game/shared/cstrike15/cs_gamerules.cpp:6303规则与回合已验证(检索)
K8C4 激活时 CT 不能因团灭获胜T 不重生game/shared/cstrike15/cs_gamerules.cpp:7058-7087规则、C4已验证
K9拆弹时间:有拆弹器 5 秒,否则 10 秒—game/shared/cstrike15/weapon_c4.cpp:1055C4已验证
K10后坐力实现被裁剪本快照game/shared/cstrike15/weapon_csbase.cpp:3833-3836武器、特殊武器、Bot 决策、概览已验证
K11Bot 管理器在 EndGameFrame 中驱动—game/shared/cstrike15/cs_gamerules.cpp:9886-9893Bot、主循环已修正(第一轮)
K12游戏模式只执行 exec 项配置,离线时额外限定三个 Bot 难度 ConVar非自定义类型game/shared/cstrike15/gametypes.cpp:1697-1815比赛模式已修正(第一轮)
K13地图预置实体由 BSP 实体字符串创建;运行时实体动态创建—game/server/mapentities.cpp:520-569地图加载、实体系统已修正(第一轮)
K14Bot 命令跳过引擎解码与游戏层校验,直接进入玩家层 ProcessUsercmds—game/shared/cstrike15/bot/bot.h:886-888Bot已修正(第一轮)
K15README 称经济源码已移除,但 econ 代码存在且被编译,只是部分裁剪—README.md:3、game/client/client_econ_base.vpc物品与经济文档漂移(保留双方证据)
K16client 与 server 运行时使用 matchmaking.dll 中的 GameTypes 单例两端都经 GameFactory 获取game/server/gameinterface.cpp:793-796、engine/sys_dll.cpp:1018-1036比赛模式已验证(第二轮,原 U4)
K17相对路径文件先在全部已挂载 VPK 中查找,不受 path ID 约束SUPPORT_VPKfilesystem/basefilesystem.cpp:4171-4189文件系统已验证(第二轮,原 U5)
K18CQueuedLoader 在 PC 上不生效IsPC()filesystem/QueuedLoader.cpp:1801-1812文件系统已验证
K19按键按下被哪一层消费,松开事件就只交给那一层全部按键事件engine/keys.cpp:1180-1218输入与命令已验证
K20远程客户端的 FCVAR_GAMEDLL 命令必须带 FCVAR_GAMEDLL_FOR_REMOTE_CLIENTS 才会执行默认设置engine/sv_client.cpp:1558-1601输入与命令已验证
K21RCON 失败默认导致永久 IP 封禁sv_rcon_banpenalty 默认 0engine/sv_rcon.cpp:501-505服务器运维面已验证
K22监听服务器强制关闭 sv_pure非专用服务器engine/sv_main.cpp:2779-2782服务器运维面已验证(对抗抽查)
K23服务端只把 game sound 的哈希与随机种子发给客户端,由客户端解析具体 wav声音条目版本 > 1game/shared/SoundEmitterSystem.cpp:756-764音频已验证
K24不可靠声音每个快照最多 20 条,超出丢弃多人模式engine/baseclient.cpp:1406音频已验证
K25CS:GO 的可听判定在 CanPlayerHearTalker,sv_alltalk 已不被读取—game/shared/cstrike15/cs_gamerules.cpp:15582-15594语音与视频已验证
K26AddViewToScene 当场绘制,视图顺序即调用顺序全部视图game/client/viewrender.cpp:1332-1343客户端视图渲染已验证
K27RTT 阴影在 CS:GO 中被强制关闭,动态阴影靠 CSMCSTRIKE15game/client/clientshadowmgr.cpp:4336-4343客户端视图渲染已验证(对抗抽查)
K28普通材质代理在主线程调用,只有“队列友好”代理推迟到渲染线程队列渲染模式materialsystem/cmatqueuedrendercontext.cpp:1425-1451材质系统已验证
K29启动结束后封禁渲染目标分配-tools 除外materialsystem/cmaterialsystem.cpp:5141-5150材质系统已验证
K30玩家无线电默认经过响应规则系统bot_chatter_use_rr 默认 1game/server/cstrike15/cs_player.cpp:240、game/server/cstrike15/cs_player.cpp:8499-8516场景与响应规则、Bot 决策已验证(推翻第一轮的排除理由)
K31.nav 为 v16;地图激活时忽略加载错误码;添加 Bot 时可能自动生成网格并重启地图PCgame/server/nav_file.cpp:39、game/server/gameinterface.cpp:1375-1383、game/server/cstrike15/bot/cs_bot_manager.cpp:1037-1060导航网格已验证
K32CS 中导航区域的阻挡判定恒为“未阻挡”非合作任务模式game/server/cstrike15/cs_nav_area.cpp:213-222导航网格已验证
K33Bot 在敌人可见时总是瞄腹部本快照game/server/cstrike15/bot/cs_bot_weapon.cpp:185-268Bot 决策已修正(对抗审计把“所有 Bot 都瞄腹部”收窄为“敌人可见时”)
K34刀背刺要求朝向点积大于 0.475—game/shared/cstrike15/weapon_knife.cpp:404-418特殊武器已验证(对抗抽查)
K35射击者不接收自己的 TE_FireBullets玩家预测武器game/server/recipientfilter.cpp:288-303特殊武器已验证
K36实体句柄 = 槽位 + 序列号;移除实体时序列号自增并在 0x7fff 回绕两端game/shared/entitylist_base.cpp:237-262实体句柄已验证(对抗抽查)
K37edict 释放后 1 秒内不复用,除非显式允许或已耗尽—engine/pr_edict.cpp:133-171实体句柄已验证
K38无预测误差时不重跑已确认的命令cl_pred_optimize ≥ 2(默认)game/client/prediction.cpp:1676-1703预测内部机制已验证
K39延迟补偿对位置插值,但动画层与姿态参数取较旧记录—game/server/player_lagcompensation.cpp:412-442延迟补偿已验证
K40没有 vis 数据时 vrad 只算直接光—utils/vrad/vrad.cpp:2315-2321地图编译器已验证

6. 独立对抗审计#

两轮都在停止补充正文后单独执行“试图证明 Wiki 有错”的检查。第二轮的子代理只负责撰写各自领域,对抗审计由主代理在同一上下文中完成,并非独立代理审查。

第一轮

  1. 绝对化措辞扫描:修正了 5 处过度概括(K13、K14、实体复制的“唯一权威”、文件系统的“所有资源”、网络消息“全部为 Protobuf”)。
  2. 高风险结论复核:发现并修正 K2(回环例外)、K11、K12 三处与源码不符或缺条件的表述。
  3. 替代路径检查:覆盖动态注册(IGameSystem 自动注册、EXPOSE_*、LINK_ENTITY_TO_CLASS)、条件编译(DEDICATED、CLIENT_DLL/GAME_DLL、SWDS、NO_STEAM_GAMECOORDINATOR、GC_UPDATE_ITEM_SCHEMA_SUPPORTED)与跨模块工厂查找顺序。
  4. 裁剪标记检索:全仓 Removed for partner depot 共 44 个文件、131 处;涉及玩法的已在相关页面标注。

第二轮

  1. 文本完整性:从上一轮会话记录中定位到 6 条含弯引号的替换命令,逐一核对目标位置,共修复 6 处损坏(网络通道 2 处、实体复制 1 处、Bot 1 处、投掷物 1 处、玩家 1 处);其余替换核对无损。
  2. 绝对化措辞扫描:对 15 个新页面中约 100 处“总是/所有/全部/唯一/恒为/永不”等表述逐条查看上下文,抽查源码后收窄了 K33(Bot 瞄腹部只在敌人可见分支)。
  3. 高风险结论抽查:重读 K22、K27、K34、K36 与 wait 命令失效推断的源码(m_bWaitEnabled 既未初始化也无调用者设置,s_CommandBuffer 为静态存储因而为假),均与页面一致。
  4. 跨页一致性:核对了 engine 与 engine_ds 的表述(构建页、音频页、专用服务器页一致,N1 保持未决)、K3 线程化条件、sv_pure、sv_alltalk、BINK_VIDEO 在多页中的说法,未发现矛盾。
  5. 推翻第一轮结论:第一轮把 responserules 列为“CS:GO 玩法依赖小”而排除,第二轮证明玩家无线电默认走响应规则(K30),已改为覆盖;第一轮把 videocfg 归为视频播放,已更正。

未发现未处理的阻断级矛盾。仍未被源码闭环的高风险结论见第 4 节。

7. 未执行的命令与验证#

  • 未执行 CreateSolution.bat、devtools\bin\vpc.exe、devtools\bin\protoc.exe、任何编译、链接、单元测试、地图编译器或游戏运行。
  • 未做性能测量、安全审计、渗透测试或网络抓包;页面中关于性能、并行、安全的表述都是对代码结构的描述或明确标注的推断。
  • 未在多个平台上核对条件编译分支;主机平台(X360/PS3)与 OSX 路径只做存在性确认。
  • 页内锚点(# 后的标题)未被脚本校验。

8. 第二轮补全记录#

第一轮会话在写完 36 页、尚未完成最后核对时因上下文超限中断。第二轮的工作:

  1. 核对完成度:36 个计划页面均已存在;发现上一轮用 shell 字符串替换写文件时,中文弯引号被 PowerShell 当作字符串定界符,导致 6 处句子被截断或错位,已全部修复。
  2. 补全范围:把第一轮列为“有意排除”或“未展开”、且属于运行时主路径的内容拆成 6 个互不重叠的领域,由 6 个子代理并行撰写,各自只写自己拥有的页面;主代理负责父页面导航、首页、本审计页与跨页修正。新增 15 页:
  3. 深化已有页面:材质系统(代理、渲染目标、纹理加载)、模型(快速路径、LOD、flex)、输入与预测(CVerifiedUserCmd)、延迟补偿(动画层)、文件系统(异步 I/O、QueuedLoader)、VScript(实体作用域、客户端 VM)、Demo(REPLAY_ENABLED 从未定义)、比赛模式(U4)、专用服务器(U6)等。
  4. 仍然保留的边界:见首页“有意排除的区域”与本页第 3、4 节。