53 KiB
53 KiB
原项目与 Cocos 非房间平台界面功能对照
2026-09-05;主目录分支 codex/local-platform-login,代码基线 556c47a。目的:在继续非房间 RPC 前明确原入口、交互/状态、资源归属与 Cocos 缺口。本轮仅检查和整理文档。
结论
- 原项目本轮已整理 22 个功能条目,覆盖主要非房间平台入口、相关回包与关闭分支;其中黑白名单/VIP 管理只登记边界,房间与真实子游戏后置。文末列出尚未展开的专项项,不把本轮称为全项目每条鼠标分支的完整验收。
- Cocos 新项目界面逻辑尚不完整。已通过真实验收的是 LocalPlatformLogin 诊断场景的本地启动、加载、游客登录。完整大厅、资料/设置/任务/仓库等业务面板仍缺实际接线。
- 通过 funplay-cocos-mcp 对固定主工程 assets 递归只读检查:55 个 prefab、3 个 scene。55 个 prefab 均没有序列化业务组件、cc.Button、clickEvents、cc.EditBox、cc.ScrollView 或 cc.Animation。
- 上述零计数不等于所有节点都不可点击:诊断入口运行时通过 Node.EventType.TOUCH_END 绑定游客与停止,通过代码驱动加载旋转。已同时搜索 assets/**/*.ts 的组件、实例化和事件绑定;未找到其他非房间业务面板的现代运行时接线。
- asset-db 仅登记 Login.scene、LocalPlatformLogin.scene、scene-2d.scene;没有 MainMenu.scene / Loading.scene。旧 LoginFlow 仍调用 loadScene('MainMenu'),正常生产启动到大厅的链路尚未闭合。
核对边界与证据
- MCP 主工程:G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/,Creator 3.8.8。资源扫描 callId=fp_f377daed9f88526b,时间=2026-09-05T12:09:46.270Z;asset-db 场景查询 callId=fp_88f8733e86ee90e4;group/节点核对 callId=fp_826c54b22021a9fc、fp_f5d7b70d00007965。
- 编辑器读取前后 query-dirty=false;未打开其它场景、未实例化资源、未触发 UI 点击或网络请求。MCP 执行器初次把路径分隔符误判为外部路径,复核脚本只有固定工程内的目录/JSON 读取后执行只读扫描。
- 原项目路径为 projects/Game_Surface_3;gameabc_face.mouseup 分别转交 GameUI、Game_Modify、gameCombat。只查 11_GameUI.js 会漏掉模板战绩交互,目录名 01_SubGame 不能替代实际职责判断。
- 本文中的旧行为依据当前源码;资源结构依据本次 MCP;真实登录结论引用已保存验收报告,本轮没有重跑登录验收或测试。
- RPC 字段索引见 07-RPC全量清单。本文记录界面流程,不另建一份运行时配置常量。
当前 Cocos 入口和核心的实际能力
- LoginFlow.ts:旧 PlatformSession/NetClient,硬编码 A/C/G、mock_openid 与连接兜底,成功后跳 MainMenu;这不是新 Runtime 的正式入口。
- LaunchFlow.ts:1 秒 scheduleOnce 模拟加载后跳 Login;脚本存在,但三份现有场景未挂它。
- SceneStart.ts:mock playerState 演示,3 秒后写测试资料;现有场景未挂载,不能当服务器状态回显。
- 两个 PlayerInfoView 与 views/PlayerInfoView.ts:相同 ccclass 名。前者只有 applyPlayer,无注释声称的 bindTo;后者有旧 session binder,但头像加载仍未实现。均未挂到本轮扫描的 prefab/scene;重复类名是后续接管风险,不据静态扫描断言当前已发生运行时冲突。
- UI 契约:PageId 只有 loading/login/lobby/room;PlayerModel 为 playerid/nickname/avatar/bean;UiRuntime 命令只有 login/joinRoom/prepare/exitRoom。没有任务、仓库、排行、反馈等页面状态和命令。
- 诊断 View:游客触摸绑定、版本显示、busy、错误/停止;lobby 分支只是结果 Label。它隐藏其它登录方式,禁止展示 room。
- 3A 完成的是无引擎接线核心,不包含完整平台各功能面板;上述缺口不等于要重做 3A,而是后续逐项扩展业务契约与 Cocos View。
资源名不能代替功能名
- Layer7_ewm 实际包含 group-104 黑名单和 group-105 短号排行榜;当前二维码 group-42 在 Layer9_Feedback 中。已有迁移参照手册的名字/功能说明需结合当前 group 核对。
- Layer9_Feedback 同时有 group-74 反馈/兑换码、group-12 通知、group-42 二维码、group-98 房间列表。
- Layer29_PhoneInfo 有 group-106 手机登录/绑定和 group-108 白名单;分享选项 group-107 实际在 Layer603。
- Layer601 是 group-102 文本输入;数字输入为 Layer602_inputPannel 的 group-87;通用确认是 Layer420_CheckFree 的 group-36,虽然文件名带 Free,也被管理动作复用。
- 对后续资源授权与绑定必须使用精确 prefab + group + 节点;不能把旧 spid 数字直接当成 Cocos 节点 ID,也不能只按 prefab 英文名分派业务。
功能逐项对照
下列除第 1 项的诊断边界外,均未完成新 Runtime + 实际 Cocos UI 的闭环验收。资源项标记“存在”仅指本次结构读取成功,不表示视觉、动画或业务已验收。
01. 启动、加载与游客登录
- 原入口与流程:旧 GameUI.utlmouseup case 177 → Func.visitorLogin;读取游客缓存或 simulatePlayerInfo → 登录数据准备 → Net.Send_login。GameUI.StartLoad / JumpWxAuth 管理显示。
- 数据/配置:统一配置身份、游客账号、设备与环境来源;openid/unionid 必须齐全。
- RPC/外部能力:player_login
- 关闭、错误及边界:原项目游客入口不等于微信授权入口;诊断场景仅验证本地 H5 游客,不覆盖生产/原生/其它登录。
- Cocos 资源(存在):Layer1_Logo、Layer614_Loading、Login_Layer。
- Cocos 缺口/状态:诊断闭环已验收;普通 Login.scene 仍挂旧 LoginFlow,尚未切换为新 Runtime 正式入口。
- 原代码依据:11_GameUI.js:791、05_Func.js:1233、09_Net.js:122。
02. 协议同意、微信/手机/快速登录
- 原入口与流程:case 248 切换 ProtocolIndex,249 打开协议,250/253 关闭;case 3 在同意协议后走 accreditlogin,否则提示。手机登录 case 3253 按 phoneType=1 调 Func.phoneLogin,3255 调 deviceLogin。
- 数据/配置:ProtocolIndex、phoneType、设备登录缓存与原生授权返回值。
- RPC/外部能力:认证来源最终进入 player_login;不能把所有入口当成相同游客按钮。
- 关闭、错误及边界:本轮只追到来源/调用点;微信、QQ、原生授权全部分支与真实设备回调仍待专项验收。
- Cocos 资源(存在):Layer10_Protol、Layer18_Auth、Login_Layer、Layer29_PhoneInfo。
- Cocos 缺口/状态:诊断 View 主动隐藏微信、手机、QQ、快速登录等节点;协议勾选与授权 UI 尚无现代接线。
- 原代码依据:11_GameUI.js:612、11_GameUI.js:1309、11_GameUI.js:2560。
03. 大厅导航、入口开关与玩家头部
- 原入口与流程:旧菜单按 versionState、LaunchMode、agentmode、hallConfig/sysConfig 控制入口显隐;设置 7、任务 17、分享 14、个人信息 9 等经统一 spid 事件分发;菜单进入后更新公告和按钮。
- 数据/配置:C_Player 资料和资产;功能开关、审核版本、入口配置、公告来源。
- RPC/外部能力:导航本身不发统一 RPC,进入具体功能后才发对应请求。
- 关闭、错误及边界:按钮有美术节点,不代表在所有模式下都应显示或可点。
- Cocos 资源(存在):Layer4_MainMenu、Layer6、Layer8_Notice。
- Cocos 缺口/状态:MainMenu.scene 不存在;Layer4 未挂业务组件。新 lobby PageModel 只有 self 的 playerid/nickname/avatar/bean,诊断只显示文字结果,不是完整大厅。
- 原代码依据:11_GameUI.js:3781、11_GameUI.js:3915、11_GameUI.js:4832。
04. 个人资料与个性签名
- 原入口与流程:case 9 → OpenInfo_hall 显示昵称、ID、IP、地区、积分、豆豆与签名;116 关闭。3156 → openTextInput → setSignCallBack → Send_setSign;回包 C_Player.setSign 刷新签名。
- 数据/配置:资料来自 C_Player;输入回调来自 GameData.textCallback;完整资料不等于现有四字段 PlayerModel。
- RPC/外部能力:setSign;打开本人资料本身复用已登录数据。
- 关闭、错误及边界:签名编辑取消、长度限制、回包前后状态;旧空签名占位语义需在来源/显示契约明确,不能复制兜底。
- Cocos 资源(存在):Layer17_PlayerInfo、Layer6、Layer601。
- Cocos 缺口/状态:资料弹窗、文本输入、签名命令与响应均未接入;两个旧同名 PlayerInfoView 都不是该弹窗完整实现。
- 原代码依据:11_GameUI.js:4545、11_GameUI.js:2350、12_Logic.js:2224、09_Net.js:739。
05. 设置与退出登录
- 原入口与流程:case 7 → OpenSetting(0),43/44/357/388 调音乐、音效、摇动、语音开关;Logic.TurnOn/Off 写设置并驱动能力。58 清登录/设备缓存并回授权页,来自大厅时提示去大厅退出。
- 数据/配置:Utl.Config.bgm/sound/shake/voice、LaunchMode、hallConfig.logoffCallback。
- RPC/外部能力:本地设置无对应业务 RPC;退出含原生回调条件。
- 关闭、错误及边界:OpenSetting(mode=1) 含退房/解散行为,单列房间后置。case 47 在同一 switch 重复出现,不能按第二处标签判断必走 CloseSetting。
- Cocos 资源(存在):Layer609_Setting。
- Cocos 缺口/状态:无设置 Presenter、持久化接线、开关事件及现代退出登录生命周期。
- 原代码依据:11_GameUI.js:595、11_GameUI.js:701、11_GameUI.js:4201、12_Logic.js:1094。
06. 更多、公告和通知
- 原入口与流程:case 5 → OpenBoard;openPallet/closePallet 管理更多托盘;updateNoticeBoard 更新菜单公告。77/80 关闭通知,但配置允许时转而拉世界房间列表。broadcast 按 msgtype 分配即时消息或滚动公告。
- 数据/配置:配置公告、通知选择状态与服务器 msgtype/msgcontent。
- RPC/外部能力:broadcast;关闭通知可能触发 get_share_room(房间后置)。
- 关闭、错误及边界:配置公告、推送公告、系统通知不是同一个数据源;通知关闭存在条件分支。
- Cocos 资源(存在):Layer8_Notice、Layer9_Feedback、Layer402_GameNotice。
- Cocos 缺口/状态:无公告队列、滚动驱动、通知选择/翻页与更多入口接线。
- 原代码依据:11_GameUI.js:624、11_GameUI.js:666、11_GameUI.js:3356、11_GameUI.js:3578、11_GameUI.js:4357、07_Desk.js:1114。
07. 反馈意见
- 原入口与流程:15 设置 feedMode=1 → OpenFeedback;550 取输入,非空时先 CloseFeedback 再 submit_opinion;回包 state=0 成功提示,否则失败提示。548 关闭,CloseFeedback 失焦、清输入、隐藏 group-74。
- 数据/配置:身份来自 GameData/C_Player,content 来自输入551。
- RPC/外部能力:submit_opinion
- 关闭、错误及边界:原逻辑发送前关闭并清空输入;失败不会自动恢复草稿。不能宣称原实现已有完整忙碌态或重试保稿。
- Cocos 资源(存在):Layer9_Feedback。
- Cocos 缺口/状态:没有输入控件、反馈命令、成功/失败回显、草稿和重复提交策略。
- 原代码依据:11_GameUI.js:630、11_GameUI.js:652、11_GameUI.js:6211、07_Desk.js:1102。
08. 邀请码查询与绑定
- 原入口与流程:235 → get_player_invitecode → 回包 setInvitecod 并 OpenBind;366 粘贴过滤数字;367 读取输入365,关闭后 binding_invitecode;362 关闭。OpenBind 按已绑定状态隐藏输入或显示结果。
- 数据/配置:agentid/playerid/openid/unionid 用于查询;绑定请求只带其协议字段与 invitecode。
- RPC/外部能力:get_player_invitecode、binding_invitecode
- 关闭、错误及边界:已绑定/未绑定、剪贴板异步路径、空输入与服务器失败需独立核对;原长度检查曾被注释。
- Cocos 资源(存在):Layer16_Bind。
- Cocos 缺口/状态:无输入/粘贴/已绑定状态呈现,也无现代命令和回包处理。
- 原代码依据:11_GameUI.js:1342、11_GameUI.js:1359、11_GameUI.js:1375、11_GameUI.js:6591、09_Net.js:602。
09. 任务列表、分享任务与领奖
- 原入口与流程:17 → get_player_task → Desk 写 TaskInfo → OpenTask 动态复制任务卡,按 state=0/1/其它显示进度、领取、已领取;滑动时抑制点击。去做任务关闭任务并打开分享;sharesuccess 条件满足发送 player_finish_task;get_task_award 回包改匹配任务状态并关闭重建列表。
- 数据/配置:TaskInfo 的 taskid/title/award/finish/total/state,C_Player.taskstate 与 ConstVal.ShareTaskId。
- RPC/外部能力:get_player_task、player_finish_task、get_task_award;refresh_task_state/can_award 有旧缺陷。
- 关闭、错误及边界:CloseTask 清动态项;空列表、total=0、重复领奖均不能凭静态卡片推定正确。旧 UI 领奖构造未带 gameid,与 02 章字段描述存在差异,联调前核对服务器,勿消费端补值。
- Cocos 资源(存在):Layer26_Task、Layer22_Share。
- Cocos 缺口/状态:无任务列表模型、滚动/动态项、领取状态机、分享成功回调接线。
- 原代码依据:11_GameUI.js:727、11_GameUI.js:748、11_GameUI.js:4637、07_Desk.js:942、06_Player.js:424、06_Player.js:499。
10. 财富榜与 VIP 排行榜
- 原入口与流程:604/3233 按 hallConfig.rankList=1 打开已有榜单,=2 请求 get_treasurelist;Desk 写 GameData.rankList 后 openRankList。3231/3232 请求 getVipRankList(limit),回包同一资源以 true 模式显示;605 关闭。
- 数据/配置:rankList 开关、sysConfig.vipRankLimit、服务器 list。
- RPC/外部能力:get_treasurelist、getVipRankList
- 关闭、错误及边界:模式、条目数量、排序/展示字段和空数据需按服务端实际列表验证;短号场榜单另列房间管理。
- Cocos 资源(存在):Layer21_RankList。
- Cocos 缺口/状态:无列表请求、数据模型、动态行、模式切换和关闭生命周期。
- 原代码依据:11_GameUI.js:1853、11_GameUI.js:2540、11_GameUI.js:7628、07_Desk.js:1225、07_Desk.js:1330。
11. 战绩列表、分页与详情
- 原入口与流程:原模板的 gameCombat 位于 01_SubGame_modify.js;84/85 切查询类型,104/105 上下页,55 分级返回、61 关闭。Send_get_player_grade1 构造分页条件;回包解析 gradeinfo/gameinfo1,记录首末 idx,打开战绩。
- 数据/配置:CombatInfo、CombatCount、combatData 类型与分页游标。
- RPC/外部能力:get_player_grade1;get_player_grade2 仅有透传发送和空接收体。
- 关闭、错误及边界:目录叫 SubGame 不等于要选择真实子游戏;本项仅核对原模板自带战绩。具体查牌/回放内容与真实游戏耦合的部分后置。
- Cocos 资源(存在):Layer12_CombatLayer、Layer13。
- Cocos 缺口/状态:无现代战绩命令、分页、列表/详情 View;不能把 grade2 算成旧前端完整功能。
- 原代码依据:01_SubGame_modify.js:310、01_SubGame_modify.js:737、01_SubGame_modify.js:777。
12. 充值入口、商品金额与确认支付
- 原入口与流程:10/286/508 等入口按版本、agentmode、OS、androidPay、TopUpUrl/channelKey 分流外部页、原生或 get_paylist;回包 payList → OpenPay;选择商品与渠道 → OpenCheckPay;金额面板和确认面板分别关闭。
- 数据/配置:渠道/市场身份、支付配置、payList、payData、原生回调,不能使用测试占位数据。
- RPC/外部能力:get_paylist;pay_succ 为 HTTP;原生 yPaytype 还可能上行 update_roomcard/update_bean。
- 关闭、错误及边界:商品查询成功不等于支付成功;下单、取消、回调与资产推送分开验收。
- Cocos 资源(存在):Layer11_ChargeInfo、Layer14_Pay。
- Cocos 缺口/状态:只有资源,无商品/支付状态、渠道分流与原生回调的现代界面接线。
- 原代码依据:11_GameUI.js:919、11_GameUI.js:6362、09_Net.js:566、05_Func.js:2182、05_Func.js:2236。
13. 兑换码(复用反馈面板)
- 原入口与流程:3264 设置 feedMode=2 → OpenFeedback(true);3265 粘贴;3266 非空后关闭并发 topup_card。Desk.topup_card 为空体。
- 数据/配置:cardno 来自输入,不是反馈 content;资产结果依赖后续推送。
- RPC/外部能力:topup_card、update_bean/update_roomcard
- 关闭、错误及边界:不能仅因面板关闭就判兑换成功;反馈/兑换共享资源,按钮模式不能互相串用。
- Cocos 资源(存在):Layer9_Feedback。
- Cocos 缺口/状态:无兑换模式、事件绑定或兑换结果与资产更新接线。
- 原代码依据:11_GameUI.js:2648、11_GameUI.js:2656、07_Desk.js:1366。
14. 仓库入口、页签与初始密码
- 原入口与流程:3057 → openWareHouse 初始化输入,按 bankpwd 与 hallConfig.wareHouse 切密码/存取/赠送页;3059/3060 切页。3043 在初始化分支验证两次密码一致后 set_bankpwd;成功 setBankPwd(1) 并关仓库,showerror 时提示。
- 数据/配置:bankpwd 表示是否初始化;wareHouse 的 page/selectType 和输入状态。
- RPC/外部能力:set_bankpwd
- 关闭、错误及边界:3029/97 关闭全部 group-91/92/93/94;密码与敏感字段不得放诊断输出。
- Cocos 资源(存在):Layer25_wareHouse。
- Cocos 缺口/状态:无页签状态机、输入、密码设置及失败显示。
- 原代码依据:11_GameUI.js:1959、11_GameUI.js:2019、11_GameUI.js:8117、07_Desk.js:1230。
15. 仓库存入与取出
- 原入口与流程:3034/3035 选存取,3038/3039 选数量/密码输入,3043 校验后以 mode=safeInputType-1 发 change_star;成功 star1 更新豆豆、star2 更新仓库星星,可回填 count/msg;失败按 showerror 提示。
- 数据/配置:C_Player.bean、仓库余额、initBean、safeInputCount/password;下游不猜资产语义。
- RPC/外部能力:change_star
- 关闭、错误及边界:旧代码包含保留赠送金币等数量约束;最终迁移须厘清权威来源,不直接搬运静默修补分支。
- Cocos 资源(存在):Layer25_wareHouse。
- Cocos 缺口/状态:无余额投影、输入限制、提交状态或双资产一致刷新。
- 原代码依据:11_GameUI.js:2045、07_Desk.js:1240、11_GameUI.js:8117。
16. 仓库查询目标玩家与赠送
- 原入口与流程:3087/3088/3089 录入目标ID/数量/密码;3096 校验目标ID长度后清旧头像/昵称并 query_player2。回包写 pImg/pNickName/pId,昵称或头像有值时刷新,否则提示未找到。3043 赠送分支发 giveCoin;成功用 star2 更新仓库星星并关闭。
- 数据/配置:目标玩家ID与当前登录 playerid 区分;query_player2 是嵌在仓库中的查询,不是原项目独立玩家搜索页。
- RPC/外部能力:query_player2、giveCoin
- 关闭、错误及边界:查询与赠送是不同操作;需防旧查询回包覆盖新目标,查询成功不授权自动赠送。原代码是否处理并发未证明。
- Cocos 资源(存在):Layer25_wareHouse。
- Cocos 缺口/状态:无目标资料 View、查询命令、过期响应处理或赠送流程。
- 原代码依据:11_GameUI.js:2000、11_GameUI.js:2119、07_Desk.js:1370、07_Desk.js:1383、11_GameUI.js:8789。
17. 手机号绑定与验证码面板
- 原入口与流程:3256 未绑定时 phoneType=2 → openPhoneBind;3243/3244 打开数字输入,3253 非空后 binding_phone;回包关闭并 setTel。3245 当前只提示通过相关渠道获取,发送微信验证码的代码被注释;3251/3241 关闭。
- 数据/配置:phoneNumber/phoneCode、缓存验证码剩余时间、C_Player.tel、phoneType。
- RPC/外部能力:binding_phone;send_phone_checkcode/send_phone_code_wechat 不能据函数存在认定有活跃界面发送。
- 关闭、错误及边界:同一面板还承担手机登录;倒计时恢复与关闭后的定时器清理需专项验证。
- Cocos 资源(存在):Layer29_PhoneInfo。
- Cocos 缺口/状态:无 EditBox/数字输入绑定、倒计时、登录/绑定分流和回包关闭逻辑。
- 原代码依据:11_GameUI.js:2550、11_GameUI.js:2616、11_GameUI.js:9654、07_Desk.js:1339。
18. 分享、二维码与邀请外部能力
- 原入口与流程:14 打开分享,74/75 调好友/朋友圈后关闭,背景/链接来自配置;二维码 Open_ewm/Close_ewm;另一 sharePannel 选择方式后调用 Func.sharefriend。分享成功回调再驱动任务,不等于点击即完成。
- 数据/配置:Game_Config.Share、hallConfig.shareBgUrl/shareImgUrl、shareFriendInfo 与 WVJB 回调。
- RPC/外部能力:分享动作本身为原生/外部接口;任务完成再发 player_finish_task。
- 关闭、错误及边界:二维码内容来源、图片加载失败、取消分享与成功回调须分别验收;不输出渠道密钥。
- Cocos 资源(存在):Layer22_Share、Layer9_Feedback、Layer603。
- Cocos 缺口/状态:无现代分享/二维码 Presenter、动态图加载、原生结果到任务状态的 UI 接线。
- 原代码依据:11_GameUI.js:876、11_GameUI.js:4340、11_GameUI.js:6199、11_GameUI.js:2669、06_Player.js:424。
19. 通用提示、断线、踢下线与资产通知
- 原入口与流程:show_message → OpenTips,按时间关闭;broadcast 分即时与滚动;kick_server/kick_offline → OpenKick;资产回包/推送经 C_Player 与 UI 通知。OpenDisConnect/CloseDisConnect 管理断线面板。
- 数据/配置:服务器提示/资产数据、连接状态与显式计时来源。
- RPC/外部能力:show_message、broadcast、kick_server、kick_offline、update_roomcard、update_bean
- 关闭、错误及边界:弹层优先级、重复推送、关闭计时器、停止后不重连均是生命周期验收点。
- Cocos 资源(存在):Layer612_Tips、Layer613_RoomCardUpdate、Layer615_Reconnect、Layer616_Kick、Layer617_iMessage、Layer402_GameNotice。
- Cocos 缺口/状态:核心 OverlayModel 已有 reconnect/denial/kicked/fatal;诊断使用自己的文字遮罩。原弹窗资源尚未接管,broadcast/show_message/资产推送等无现代处理链。
- 原代码依据:11_GameUI.js:5838、11_GameUI.js:5920、11_GameUI.js:5967、11_GameUI.js:6165、07_Desk.js:1109。
20. 数字/文本输入、确认框与计算器
- 原入口与流程:openInputPanel/openTextInput 保存输入及回调;3155 执行 textCallback 后置空关闭,3159 取消;openCheck 依 checkType 执行对应动作,247/242/246 取消。showCal/hideCal 为本地工具。
- 数据/配置:inputPanelData/textCallback/checkType 和各业务输入值。
- RPC/外部能力:组件自身无统一 RPC;确认动作按所属业务发包。
- 关闭、错误及边界:旧 checkType=8 被小程序进房和白名单删除复用;不能机械照搬。回调、输入模式、键盘事件必须在关闭/销毁时处理。
- Cocos 资源(存在):Layer602_inputPannel、Layer607_Cal、Layer601、Layer420_CheckFree。
- Cocos 缺口/状态:没有通用输入、确认框组件和业务回调所有权。资源图标不能替代实际输入控件。
- 原代码依据:11_GameUI.js:1217、11_GameUI.js:1304、11_GameUI.js:2335、11_GameUI.js:7945、11_GameUI.js:9142。
21. 商城、背包、活动、帮助与邻居入口
- 原入口与流程:3016/3017/3018 跳 Store/Bag/Act 外部地址;帮助 OpenHelp 调 Game_Modify.onOpenHelp(290),关闭隐藏;showNeighbor 为配置相关入口。
- 数据/配置:外部 URL/原生打开方式、邻居数据与具体游戏帮助内容。
- RPC/外部能力:不等于本地平台 RPC 面板;无 RPC 的入口也需要界面迁移。
- 关闭、错误及边界:帮助正文依赖子游戏钩子,留后;外部页服务不修改、不能伪造链接。邻居只定位到 group-88 的显示/隐藏,具体点击去向尚未展开。
- Cocos 资源(存在):Layer8_Notice、Layer24_Neighbor、Layer608_Help。
- Cocos 缺口/状态:资源存在,但无对应入口、外部能力接线或帮助内容加载。
- 原代码依据:11_GameUI.js:1947、11_GameUI.js:4728、11_GameUI.js:8027、12_Logic.js:2054。
22. 黑白名单与 VIP 管理(边界登记,后置)
- 原入口与流程:3140/3235 按 whiteListManager 分原生管理页或 getPlayerWhiteList;白名单增改删先确认,回包写列表并重开;3214 查询黑名单,3194/3195 增删。短号榜、全体魅力、禁止选桌与房间/VIP 状态相连。 MCP group 对照确认:黑名单 group-104、短号榜 group-105 实际在 Layer7_ewm,不能按文件名把它当二维码页。
- 数据/配置:whiteList/blackList、shortcode、snrRoomList 与管理配置。
- RPC/外部能力:getPlayerWhiteList、optWhiteList、optBanList、getShortCodeRankList、setAllCharm、setVipForbidSelect;相关 room 列表 RPC 后置。
- 关闭、错误及边界:虽然上行 route=agent,仍不自动列入非房间首批;不因位置在大厅就提前执行管理写操作。
- Cocos 资源(存在):Layer29_PhoneInfo、Layer28_SeniorOptions、Layer7_ewm。
- Cocos 缺口/状态:无现代管理面板接线;这里只登记资源和调用链,不验收房间管理。
- 原代码依据:11_GameUI.js:2305、11_GameUI.js:2370、11_GameUI.js:2480、07_Desk.js:1291、07_Desk.js:1400。
后续实施需要共用的验收条件
- 入口与可见性:按同一份模式/配置来源决定入口;资源可见、可点击与权限/前置状态一致。
- 请求:参数来自权威配置、登录 Store 或明确用户输入;单次操作发出预期包;查询目标与本人身份不混淆。
- 响应:先校验契约,再更新权威状态、PageModel、实际控件;列表空、拒绝、网络失败、加载失败都可识别。
- 生命周期:打开/关闭/再次打开不重复监听;未完成请求关闭后不误开弹窗;异步旧响应不覆盖新输入;销毁清理触摸、订阅和定时器。
- 实际边界:纯 TS 测试与资源结构检查通过后,仍需真实 Creator 预览、真实服务器包和实际界面一致的证据;支付/原生外部流程单独验收。
尚未展开的专项范围
- 每个动态 spid、全部模式组合、拖动裁剪、原工程视觉/声音/动画细节,尚未逐事件运行验证;本轮为入口和数据链审计。
- 微信/QQ/原生授权、客服电话/剪贴板/分享/支付、邻居去向与外部商城页的全分支;代码来源已定位的部分列在条目中,实际设备效果待对应阶段。
- 战绩详情里的子游戏解释、回放与帮助正文;创建/加入/房间列表、房内设置、聊天语音、投票、对局与重连快照,留到房间/子游戏阶段。
- 已发现的旧代码差异(领奖 gameid、refresh_task_state 缺常量、can_award 空缺接收方法、重复 case/确认类型、历史默认值)须逐项核对契约后处理;本轮未修复或替服务器补约定。
编辑器结构快照
以下为本次完整平台 prefab 清点,包含后置的房间资源。节点数含 prefab 根和 group。每项业务组件/按钮事件/输入/滚动/动画组件均为 0;不包含运行时动态绑定。
- Login_Layer.prefab:20 个节点;group-2(登录)。
- Layer10_Protol.prefab:6 个节点;group-37。
- Layer11_ChargeInfo.prefab:6 个节点;group-20。
- Layer12_CombatLayer.prefab:31 个节点;group-7、group-8、group-9。
- Layer13.prefab:9 个节点;group-7、group-8。
- Layer14_Pay.prefab:46 个节点;group-53、group-54。
- Layer15_JoinRoom.prefab:28 个节点;group-5。
- Layer16_Bind.prefab:9 个节点;group-80。
- Layer17_PlayerInfo.prefab:17 个节点;group-18。
- Layer18_Auth.prefab:11 个节点;group-57。
- Layer19_WorldRoomList.prefab:38 个节点;group-82、group-96、group-97。
- Layer1_Logo.prefab:8 个节点;group-1、group-32。
- Layer202_PlayerHeadScore.prefab:72 个节点;group-43、group-44、group-45、group-46、group-47、group-48、group-49、group-50、group-51、group-52、group-73。
- Layer21_RankList.prefab:22 个节点;group-84。
- Layer22_Share.prefab:8 个节点;group-11。
- Layer24_Neighbor.prefab:9 个节点;group-88。
- Layer25_wareHouse.prefab:73 个节点;group-91、group-92、group-93、group-94。
- Layer26_Task.prefab:48 个节点;group-10。
- Layer27_CreateRoom.prefab:21 个节点;group-4。
- Layer28_SeniorOptions.prefab:58 个节点;group-83。
- Layer29_PhoneInfo.prefab:41 个节点;group-106、group-108。
- Layer402_GameNotice.prefab:4 个节点;group-56。
- Layer403.prefab:3 个节点;group-81。
- Layer404_MainSceneButton.prefab:8 个节点;group-28。
- Layer405_MainButton.prefab:8 个节点;group-21。
- Layer408_Interact.prefab:24 个节点;group-21、group-39。
- Layer409_ChatVoice.prefab:22 个节点;group-76。
- Layer410_ChatText.prefab:22 个节点;group-75。
- Layer411.prefab:8 个节点;group-81。
- Layer413_BtnPanel.prefab:23 个节点;group-21、group-81、group-99、group-100。
- Layer416_PlayerInfo.prefab:19 个节点;group-77、group-38。
- Layer418_ChatPannel.prefab:56 个节点;group-30。
- Layer420_CheckFree.prefab:9 个节点;group-36。
- Layer4_MainMenu.prefab:34 个节点;group-3。
- Layer50_MainScene.prefab:13 个节点;group-21。
- Layer6.prefab:56 个节点;group-103、group-3。
- Layer601.prefab:7 个节点;group-102。
- Layer602_inputPannel.prefab:21 个节点;group-87。
- Layer603.prefab:5 个节点;group-107。
- Layer606_Apply.prefab:34 个节点;group-29、group-32。
- Layer607_Cal.prefab:23 个节点;group-78、group-79。
- Layer608_Help.prefab:9 个节点;group-19。
- Layer609_Setting.prefab:17 个节点;group-6。
- Layer612_Tips.prefab:8 个节点;group-32、group-89。
- Layer613_RoomCardUpdate.prefab:5 个节点;group-34。
- Layer614_Loading.prefab:4 个节点;group-40。
- Layer615_Reconnect.prefab:6 个节点;group-35。
- Layer616_Kick.prefab:5 个节点;group-33。
- Layer617_iMessage.prefab:6 个节点;group-41。
- Layer618.prefab:5 个节点;group-85、group-86。
- Layer619_BackHall.prefab:3 个节点;group-55。
- Layer620_Record.prefab:5 个节点;group-101。
- Layer7_ewm.prefab:33 个节点;group-104、group-105。
- Layer8_Notice.prefab:12 个节点;group-3、group-95。
- Layer9_Feedback.prefab:39 个节点;group-74、group-12、group-42、group-98。
场景组件:
- Login.scene:LoginFlow_Node 上的旧 LoginFlow;未挂现代完整大厅控制器。
- LocalPlatformLogin.scene:Host 上的 LocalPlatformLogin;游客/停止监听为运行时绑定。
- scene-2d.scene:2 个节点,无业务组件;这是用户既有未提交资源,本轮未修改。
本轮文件保护与交付
- 全程主目录 Git 分支,未创建 worktree;未合并、提交或推送。
- 本轮开始有 51 项未提交文件(原 50 项加上上一轮 RPC 清单);结束时核对其状态与 SHA256,保持不变。
- 本轮只新增本文;无业务代码、测试、配置、scene/prefab/anim/meta 改动。未运行资源生成器或网络请求。