# 模板房间接入验收 依据:已确认的 `2026-09-07-room-entry-template-design.md`。分支 `codex/room-entry-template`;未提交或合并。服务器零改动。 ## 已接入 - Layer15_JoinRoom:0–9、删除、重输、粘贴、短号确认、6 位自动提交。显示保留前导零,出站房号按原模板为 number。复用 00046 BitmapFont;原有 Sprite 数字槽改为 Label。 - Layer27_CreateRoom:根节点挂 TemplateCreateRoomView,使用两个 Cocos ToggleContainer。选择与上次 roomtype 的读取遵循原模板;创建按钮仍发原源码固定数组。重新对齐选项、标签和关闭按钮,面板背景阻止点击穿透。 - create_room 请求、独立创建回包解析和权威房间状态建立;创建回包不要求 players。创建成功的自己资料来自已登录玩家,不向原始回包添加虚构字段。 - 平台与子游戏双向调用沿用 GameEntry / GameModule / GameHost:成功提交状态后挂载模块,房间视图消费快照,准备/退出经受限 host 发回平台。替换原登录专用拒绝房间入口。 - 请求防重复、15 秒超时、错误与断线结束等待;断线关闭房间页并使迟到剪贴板回调失效。关闭页不能撤销已经发往服务器的请求,迟到成功仍由平台按服务器状态进入房间。 - 原样传递 join/login 的 deskinfo。解析人数前传给子游戏的是不可变 roomtype 副本,防止污染服务器原始数据。 ## 子游戏如何换创建页 1. 在自己的 prefab 根节点挂继承 `assets/scripts/platform-login/CreateRoomPage.ts` 的脚本,实现 `open(context)`、`setBusy(busy)`、`close()`。 2. 子游戏自行管理选项、布局、校验和异步回调,调用 `context.submit(roomtype)` 提交已经验证的数组,调用 `context.cancel()` 关闭。 3. 在 PlatformStartup 场景的 SubgameAssets.createRoom 指定该 prefab。平台不访问其 group/Spirit 节点。 4. 子游戏的 GameEntry 提供实际 route、resolveSeatCount 和 GameModule。本次模板注册放在 Startup 的组合入口;不把模板的示例规则作为其他游戏的默认值。 模板的 Desk.Create 在没有 getMaxPlayerCount 钩子时明确采用 Game_Config.Max.PlayerCnt=10。本次 TemplateRoomRules 保留该容量;其他游戏必须用自己的真实人数规则。模板没有玩法网络实现,`Game_Surface_3` 模块标识不是任何具体游戏服务器路由的认证结果。TemplateRoom.prefab 是房间接管演示页,不是已完成的牌桌玩法。 ## 验证结果 - 223 项房间相关平台/协议/模型测试通过。 - Cocos Game View 30 项检查通过:真实坐标点击键盘、数字显示、删除/粘贴、ToggleContainer(再次点击选中项保持选中)、防重复、迟到回调取消、超时、创建拒绝、创建成功真实加载 TemplateRoom 场景、准备/退出 GameHost、重复成功不重挂、加入成功及 deskinfo 原样恢复。脚本:`cocoscreator_projects/scripts/verify-room-entry-preview.mjs`。实际 socket 在测试前停止,测试回包与出站捕获仅在本地运行。 - Cocos 与 framework 两个严格 TypeScript 检查通过(ES2022/DOM,TypeScript 6);import boundaries 通过。 - 三个 prefab 共 55 个资源引用校验,无缺失;截图检查创建页和加入页布局。 - 全量 775 项测试:770 通过,5 失败。3 项旧迁移测试仍读取已在本任务前移走的 Login_Layer.prefab;2 项账号/登录策略测试硬编码旧 agentid/channelid,与本任务前已调整的 defaults 配置不一致。未为测试改回用户的配置或资源名称。 - 基线哈希核对:原有序列化资源仅 PlatformStartup.scene、Layer15_JoinRoom.prefab、Layer27_CreateRoom.prefab 变化。其余原有 scene/prefab/anim/meta 保持基线。 - 协议审查发现的可变数组问题、集成审查发现的断线剪贴板问题均已修复并复核。 未进行实际服务器创建/加入联调,未实现具体子游戏的规则解释、玩法消息或牌桌操作。本次确认的是模板页面与平台房间交接边界。 截图:`cocoscreator_projects/YouleNexus/temp/mcp-captures/room-create.png`、`room-join.png`。