feat: migrate platform login scenes and native login flows
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# 开发测试配置来源
|
||||
|
||||
唯一开关在 `cocoscreator_projects/YouleNexus/assets/framework/config/profiles.ts` 的 `STARTUP_CONFIG`:
|
||||
|
||||
```ts
|
||||
mode: 'debug',
|
||||
configSource: 'local', // local:项目 txt;remote:gameserver 地址
|
||||
localConfigResource: 'dev-config/update_jsonv2', // resources 相对路径,不带 .txt
|
||||
```
|
||||
|
||||
本地文件为 `cocoscreator_projects/YouleNexus/assets/resources/dev-config/update_jsonv2.txt`。
|
||||
初始内容取自 2026-09-06 当前 `gameserver` 的完整配置快照,不会自动与远程同步。
|
||||
修改并保存 profiles.ts 或 txt 后,切回 Creator,等待资源导入和脚本编译完成,再启动预览。
|
||||
仅刷新浏览器不保证 Creator 已完成文件扫描;如日志仍显示旧 source,需在 Creator
|
||||
资源管理器中刷新对应 profiles.ts 和 txt,再重新预览。
|
||||
文件扩展名是 `.txt`,内容必须是合法 JSON,不能添加注释或尾逗号。
|
||||
|
||||
默认仍为 `configSource: 'remote'`。本地模式跳过远程请求及 `gameconfig` 地址覆盖;
|
||||
渠道身份仍按原规则解析。两种来源共用原工程 `get_paravalue` 的层级取值规则,
|
||||
修改某个键时需留意 agent/game/channel/market 中的对应值。
|
||||
控制台 `[PlatformStartup] login-config` 的 `source` 和 `gameserver` 显示实际读取来源。
|
||||
|
||||
`configSource` 只决定配置内容从哪里读取;`useLocalServer` 独立决定 WebSocket
|
||||
是否使用 `localServers`,切换配置来源不会隐式切换游戏服务器。
|
||||
|
||||
本地模式同时要求 `mode: 'debug'` 和 Cocos 开发预览/调试构建。
|
||||
发布模式或非调试构建会明确拒绝本地读取;文件缺失、JSON 错误也直接报错,绝不回退远程。
|
||||
|
||||
## 已验证的预览缓存问题(2026-09-06)
|
||||
|
||||
曾复现磁盘 profiles.ts 已为 local,但新浏览器预览仍输出 remote。通过 Creator
|
||||
asset-db 刷新 profiles.ts 和本地 txt 后,日志恢复为 local,且读取到 marketid=4
|
||||
下的 deviceLogin=true,手机登录按钮正常显示。无需修改配置内容或 get_paravalue。
|
||||
@@ -0,0 +1,833 @@
|
||||
# 平台模板 RPC 全量清单
|
||||
|
||||
> 核对日期:2026-09-05;基线:codex/local-platform-login @ 556c47a。本文是后续联调的索引与覆盖快照,不替代 01–05 章的字段契约,也不表示清单内接口已经验收。
|
||||
|
||||
## 范围与计数
|
||||
|
||||
- 共 **86 个唯一名称**:旧 RpcList 的 **82 个**(重复赋值按名称去重),加表外 submit_error、show_message、refresh_task_state,以及 h5RpcList.joinRoom。
|
||||
- 这是 Game_Surface_3 平台模板的全量:包含大厅、房间、纯推送、历史/保留名、HTTP 特例和外部桥接。具体子游戏自定义 route/rpc 没有在模板中穷举定义,留到子游戏阶段;本轮不选择或接入真实子游戏。
|
||||
- 86 是索引名称数,不是 86 个可直接调用的 WebSocket 接口。submit_log 不另计;握手 @toconcon、心跳 @serverheartbeat 和 webserve-服务器未工作 是传输控制数据,不是业务 RPC。
|
||||
- platform 是合法路由名称,但本次模板发送扫描未发现独占 route=platform 的命名业务请求;不复制 agent/room 名称来凑第三份清单。纯推送的路由归档不是当前本地服务器抓包证明。
|
||||
|
||||
## 接入与验收状态口径
|
||||
|
||||
- **L**:本地真实 Cocos 启动、加载、游客登录已验收;仅 player_login。依据[验收记录](../superpowers/reports/2026-09-05-local-platform-login-acceptance.md)。
|
||||
- **R**:新 PlatformRuntime 的严格平台分发表已接入(共 11 个,含 L),仅表示源码处理链存在;除 L 外,当前批次没有真实 RPC 成功验收证据。
|
||||
- **N**:不在新 PlatformRuntime 平台分发表中;不代表旧 H5 或旧 PlatformSession 完全没有实现。协议常量存在、旧 room-handlers 存在,均不能算新 Runtime 已接入。
|
||||
- **X**:保留、HTTP 特例或本地桥接,不按普通 WS 平台命令判定。具体子游戏生命周期支持也不等于其某个对局 rpc 已实现。
|
||||
- 当前 LocalPlatformLogin 联调入口只允许发 agent/player_login;R 中的房间/切服条目仍受测试边界阻断。本文不放宽测试入口。
|
||||
- 条目中“旧发送/接收函数”只表示静态定义,不能推断调用点活跃或服务器确实响应。请求/响应摘要取自对应协议章节;未明确之处保留待核实,不补字段。
|
||||
|
||||
## 发现的差异与注意事项
|
||||
|
||||
1. refresh_task_state:当前旧源码引用未定义常量;02 章称硬编码字符串,已不符。新 routes.ts 也未收录。
|
||||
2. submit_error、show_message:旧路径确有硬编码发送/命名接收器,但不在旧 RpcList,也不在新 routes.ts;不能只扫常量表。
|
||||
3. submit_log:实际 rpc 仍为 submit_error;change_room 的响应为 change_seat;quick_enter_share_room 没有同名接收器。
|
||||
4. README 仍写 WS 双层包装,而 01 章已更正为单层 {app,route,rpc,data};MessageEvent.data 是浏览器事件壳。以 01 章与已验收传输实现为准。
|
||||
5. 02 章登录 version:string 与本地已验收 number 值有差异;openid/unionid 不得依据历史“游客可空”注释省略。
|
||||
6. 新 routes.ts 的注释分组不是权威 rpc→route 映射,例如 create_room/self_join_room/get_player_grade1/get_player_grade2 在 room 注释区域,但旧发送实际为 agent;本清单按协议与发送源码归档。
|
||||
7. can_award 的旧接收器调用未定义 C_Player.can_award;五个社交保留名没有旧 Net 接收器;不能按完整可用协议验收。
|
||||
8. update_roomcard/update_bean:05_Func.js 的原生 yPaytype 与 WVJB yPaytype 回调直接上行,02 章“仅接收、无主动请求”不完整;已在条目中补齐,不能划为只读接口。
|
||||
9. 本轮仅整理清单,未修改上述历史文档、业务代码、服务端或任何 Cocos 序列化资源。
|
||||
|
||||
## 配置来源与批次边界
|
||||
|
||||
- agentid/gameid/channelid/marketid/version 继续由现有配置来源经 runtime-config/local-startup 解析;各 RPC 只携带它所要求的字段,不能为统一外观给所有请求塞上整套身份。规范字段名为 channelid,不能写 chanelid。
|
||||
- openid/unionid 与游客资料由现有 visitor-account 来源读取缓存或生成;登录后的 playerid 来自服务器与 Store。查询目标 playerid 与当前登录 playerid 的语义要逐项区分。
|
||||
- roomcode/seat/shortcode/roomtype/deskinfo 等属于后续房间或子游戏范围;短信、原生数据、支付渠道等有各自前置条件,不能生成假值补齐。
|
||||
- 后续优先梳理非房间平台 RPC 的只读查询,再逐项处理写操作和推送;房间相关及子游戏最后进行。列入本清单不等于授权执行。
|
||||
|
||||
## 按功能快速浏览
|
||||
|
||||
- **大厅 · 登录 / 账号(6)**:`player_login`、`query_player2`、`binding_phone`、`send_phone_checkcode`、`send_phone_code_wechat`、`setSign`。
|
||||
- **大厅 · 房间创建 / 进入(大厅侧)(8)**:`create_room`、`self_join_room`、`quick_enter_share_room`、`advanced_roomlist`、`advanced_createroom`、`get_share_room`、`getInfoByShortCode`、`switchRoomList`。
|
||||
- **大厅 · 战绩 / 排行 / 财富(5)**:`get_player_grade1`、`get_player_grade2`、`get_treasurelist`、`getShortCodeRankList`、`getVipRankList`。
|
||||
- **大厅 · 任务系统(5)**:`get_player_task`、`player_finish_task`、`get_task_award`、`refresh_task_state`、`can_award`。
|
||||
- **大厅 · 支付 / 充值 / 资产(4)**:`get_paylist`、`pay_succ`、`topup_card`、`giveCoin`。
|
||||
- **大厅 · 仓库 / 星星 / 魅力(4)**:`set_bankpwd`、`change_star`、`update_charm`、`setAllCharm`。
|
||||
- **大厅 · 邀请码 / 绑定(2)**:`binding_invitecode`、`get_player_invitecode`。
|
||||
- **大厅 · VIP 管理 / 黑白名单(4)**:`optBanList`、`getPlayerWhiteList`、`optWhiteList`、`setVipForbidSelect`。
|
||||
- **大厅 · 其它 agent 协议(8)**:`submit_opinion`、`submit_location`、`submit_phoneinfo`、`submit_error`、`kick_server`、`broadcast`、`connect_agentserver`、`playerBehavior`。
|
||||
- **房间 · 房间生命周期(8)**:`self_break_room`、`other_break_room`、`self_exit_room`、`other_exit_room`、`player_prepare`、`change_room`、`share_room`、`change_seat`。
|
||||
- **房间 · 进房推送(他人视角)(3)**:`other_join_room`、`other_offline`、`other_online`。
|
||||
- **房间 · 解散投票(开局后)(8)**:`self_apply_free_room`、`other_apply_free_room`、`self_agree_free_room`、`other_agree_free_room`、`self_refuse_free_room`、`other_refuse_free_room`、`free_room`、`beanroom_surrender`。
|
||||
- **房间 · 开局(2)**:`self_makewar`、`other_makewar`。
|
||||
- **房间 · 房间内社交(6)**:`send_text`、`send_voice`、`send_gift`、`send_phiz`、`call_phone`、`hangup_phone`。
|
||||
- **保留名称 · 房间社交(5)**:`receive_chat`、`play_voice`、`other_send_gift`、`other_callphone`、`other_hangup`。
|
||||
- **大厅 · 资产更新与系统推送(4)**:`update_bean`、`update_roomcard`、`kick_offline`、`show_message`。
|
||||
- **房间 · 服务器切换(room 侧)(1)**:`connect_roomserver`。
|
||||
- **子游戏 · 框架保留名称(2)**:`over_game`、`agentserver_game`。
|
||||
- **外部桥接 · 非网络 RPC(1)**:`joinRoom`。
|
||||
|
||||
## 全量条目
|
||||
|
||||
### 大厅 · 登录 / 账号(6)
|
||||
|
||||
#### 01. player_login
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**L / R**;新 Rpc 常量:有。
|
||||
- 用途:连接建立后 `onopen` 自动发送;断线重连、切服后重发(12_Logic.js:35、:61 构造,09_Net.js:122 `Send_login` 注入)。
|
||||
- 请求:构建身份 agentid/gameid/channelid/marketid/version;账号 openid/unionid/nickname/avatar/sex/province/city;设备与环境 machineid/machineroom/location/ip;按来源契约携带设备登录和缓存 playerid 等可选字段。完整结构见登录契约与 02/04 章。
|
||||
- 响应/推送:state(0 成功);账号/资产字段,以及可能存在的房间恢复快照。完整结构见 04 章与当前 login-contract;本批只验收不在房的成功登录。
|
||||
- 注意:真实本地启动→加载→游客登录已验收;version=1(number)已被本地服务器接受。02 章 version:string、游客 openid 可空的描述不能作为本地联调输入依据;本地服务要求 openid 与 unionid。房间恢复不在已验收范围。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:14);旧函数:[Send_login](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:122)、[player_login](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:240)。
|
||||
|
||||
#### 02. query_player2
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:仓库转账前查询目标玩家信息。
|
||||
- 请求:`agentid`、`playerid`(目标玩家ID)。
|
||||
- 响应/推送:`avatar`(string)、`nickname`(string)、`playerid`(int);昵称/头像均空时提示"未找到对应玩家"。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:44);旧函数:[Send_query_player2](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:869)、[query_player2](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:872)。
|
||||
|
||||
#### 03. binding_phone
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:绑定手机号。
|
||||
- 请求:`agentid`、`playerid`、`phonenum`、`smmcode`(短信验证码)。
|
||||
- 响应/推送:`phonenum`(string,回写 `C_Player.tel`)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:51);旧函数:[Send_binding_phone](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:829)、[binding_phone](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:833)。
|
||||
|
||||
#### 04. send_phone_checkcode
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:发送手机短信验证码。
|
||||
- 请求:`agentid`、`phonenum`(构造点未集中定位,至少含手机号)。
|
||||
- 响应/推送:无业务字段(`Desk.send_phone_checkcode` 为空实现,07_Desk.js:1342)。
|
||||
- 注意:⚠️ 请求字段以后端实现为准。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:58);旧函数:[Send_send_phone_checkcode](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:837)、[send_phone_checkcode](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:841)。
|
||||
|
||||
#### 05. send_phone_code_wechat
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:微信渠道发送手机验证码(绑定手机流程的另一入口)。
|
||||
- 请求:`agentid`、`phonenum`(唯一调用点 11_GameUI.js:2620-2623 当前被注释,按注释代码为 agentid+phonenum)。
|
||||
- 响应/推送:无业务字段(`Desk.send_phone_code_wechat` 为空实现,07_Desk.js:1345)。
|
||||
- 注意:⚠️ 框架完整定义并接线,但**当前前端唯一调用点(11_GameUI.js:2623)被注释,实际不发送**;字段以后端实现为准。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:65);旧函数:[Send_send_phone_code_wechat](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:845)、[send_phone_code_wechat](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:849)。
|
||||
|
||||
#### 06. setSign
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:设置个性签名。
|
||||
- 请求:`agentid`、`playerid`、`sign`。
|
||||
- 响应/推送:`sign`(string,回显写入 `C_Player.sign`)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:72);旧函数:[Send_setSign](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:735)、[setSign](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:739)。
|
||||
|
||||
### 大厅 · 房间创建 / 进入(大厅侧)(8)
|
||||
|
||||
#### 07. create_room
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:玩家创建房间。
|
||||
- 请求:`agentid`、`playerid`、`gameid`、`roomtype`(房间类型配置数组,见 doc04);`Send_create_room` 自动注入 `ip`=`C_Player.ip`、`location`=`C_Player.addr`(09_Net.js:106-107)。
|
||||
- 响应/推送:`state`(0成功)、`roomcode`、`seat`、`roomtype`、`makewar`、`asetcount`、`shortcode`、`infinite`;失败 `showerror`/`error`。详见 [04 → 房间响应公共字段](./04-数据结构.md#房间创建--进入响应公共字段)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:83);旧函数:[Send_create_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:104)、[create_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:111)。
|
||||
|
||||
#### 08. self_join_room
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**R**;新 Rpc 常量:有。
|
||||
- 用途:输入房号 / 快速加入 / H5 唤起 / 进 VIP 配置房。
|
||||
- 请求:`agentid`、`playerid`、`gameid`、`roomcode`(房号);`Send_self_join_room` 自动注入 `location`=`C_Player.addr`、`ip`=`C_Player.ip`(09_Net.js:254-255);进 VIP 配置房入口额外带 `vipMatch:1`(12_Logic.js:2171);比赛进房入口可带 `match_id`。
|
||||
- 响应/推送:`state`、`roomcode`、`seat`、`isowner`、`players[]`、`roomtype`、`makewar`、`asetcount`、`deskwar`、`deskinfo`(重连快照)。详见 [04 → 房间响应公共字段](./04-数据结构.md#房间创建--进入响应公共字段)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:90);旧函数:[Send_self_join_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:251)、[self_join_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:259)。
|
||||
|
||||
#### 09. quick_enter_share_room
|
||||
|
||||
- 路由/通道:agent;方向:C→S;结果经其它 rpc 返回;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:快速进入分享/星星场房间。
|
||||
- 请求:`agentid`、`playerid`、`gameid`、`type`(房间类型)、`roomtype`(可选)。
|
||||
- 响应/推送:走 self_join_room 进房流程(无独立 `Net.quick_enter_share_room` 接收函数,结果通过 self_join_room/show_message 等回包)。
|
||||
- 注意:无 Net.quick_enter_share_room;关联 self_join_room/show_message,不能按同名请求响应配对。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:97);旧函数:[Send_quick_enter_share_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:651)。
|
||||
|
||||
#### 10. advanced_roomlist
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:拉取 VIP/高级房间列表。
|
||||
- 请求:`agentid`、`playerid`、`gameid`。
|
||||
- 响应/推送:房间列表对象,整包写入 `GameData.snrRoomList` 并渲染(07_Desk.js:1176)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:104);旧函数:[Send_advanced_roomlist](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:659)、[advanced_roomlist](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:664)。
|
||||
|
||||
#### 11. advanced_createroom
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:创建 VIP/高级房间。
|
||||
- 请求:`agentid`、`gameid`、`playerid`、`tea`(茶水费)、`infinite`(0/1无限局)、`roomtype`、`videoConfig`(可选)、`rebateLimit`(可选)、`rebateType`(可选)。
|
||||
- 响应/推送:`tea`、`rebateLimit` 及房间配置(整包写入 `GameData.snrRoomList`,并回拉 advanced_roomlist,07_Desk.js:1180)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:111);旧函数:[Send_advanced_createroom](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:668)、[advanced_createroom](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:673)。
|
||||
|
||||
#### 12. get_share_room
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:获取分享/星星场房间列表(仅非大厅环境发送)。
|
||||
- 请求:`agentid`、`playerid`、`gameid`。
|
||||
- 响应/推送:房间数组(`Desk.get_share_room` / `Game_Modify.getShareRoom` 处理)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:118);旧函数:[Send_get_share_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:640)、[get_share_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:647)。
|
||||
|
||||
#### 13. getInfoByShortCode
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:按短码批量查询房间信息(VIP 房列表)。
|
||||
- 请求:`agentid`、`gameid`、`shortcodeList`(短码列表)。
|
||||
- 响应/推送:`roomInfo`(短号房间信息) → `GameUI.setVipRoomListData`(07_Desk.js:1284)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:125);旧函数:[Send_getInfoByShortCode](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:753)、[getInfoByShortCode](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:757)。
|
||||
|
||||
#### 14. switchRoomList
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:开关房间在列表中的可见/可进入状态。
|
||||
- 请求:`agentid`、`playerid`、`gameid`、`isClose`(0开/1关)。
|
||||
- 响应/推送:`state`(0成功)、`isClose`;失败 `error`(07_Desk.js:1267)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:132);旧函数:[Send_switchRoomList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:743)、[switchRoomList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:747)。
|
||||
|
||||
### 大厅 · 战绩 / 排行 / 财富(5)
|
||||
|
||||
#### 15. get_player_grade1
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:拉取战绩(类型1)。
|
||||
- 请求:`agentid`、`playerid`、`gameid`、`type`(可选)、`direction`(可选,翻页)、`gradeidx`(可选,分页索引)。
|
||||
- 响应/推送:战绩数据(`gameCombat.get_player_grade1` 渲染)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:143);旧函数:[Send_get_player_grade1](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:359)、[get_player_grade1](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:364)。
|
||||
|
||||
#### 16. get_player_grade2
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:拉取战绩(类型2)。
|
||||
- 请求:透传调用方 `_data`,构造点未集中定位;至少含 `agentid`/`playerid`/`gameid`。
|
||||
- 响应/推送:战绩数据(`gameCombat.get_player_grade2` 渲染)。
|
||||
- 注意:⚠️ 请求字段构造点未定位,待核对。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:150);旧函数:[Send_get_player_grade2](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:371)、[get_player_grade2](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:376)。
|
||||
|
||||
#### 17. get_treasurelist
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:财富榜。
|
||||
- 请求:`agentid`、`gameid`。
|
||||
- 响应/推送:`list`(排行数组) → `Desk.get_treasurelist`。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:157);旧函数:[Send_get_treasurelist](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:685)、[get_treasurelist](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:690)。
|
||||
|
||||
#### 18. getShortCodeRankList
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:短号场排行榜。
|
||||
- 请求:`agentid`、`playerid`、`shortcode`。
|
||||
- 响应/推送:成功为排行数据(整包写入 `GameData.vipRank.data`);失败 `error:true` + `message`(07_Desk.js:1311)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:164);旧函数:[Send_getShortCodeRankList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:769)、[getShortCodeRankList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:773)。
|
||||
|
||||
#### 19. getVipRankList
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:VIP 排行榜。
|
||||
- 请求:`agentid`、`limit`(条数)。
|
||||
- 响应/推送:`list`(VIP排行数组) → `GameData.rankList`(07_Desk.js:1328)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:171);旧函数:[Send_getVipRankList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:787)、[getVipRankList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:791)。
|
||||
|
||||
### 大厅 · 任务系统(5)
|
||||
|
||||
#### 20. get_player_task
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:获取任务列表。
|
||||
- 请求:`agentid`、`playerid`、`gameid`。
|
||||
- 响应/推送:`tasks`(任务数组) → `Desk.get_player_task`。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:182);旧函数:[Send_get_player_task](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:408)、[get_player_task](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:413)。
|
||||
|
||||
#### 21. player_finish_task
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:上报任务完成(如分享成功触发,06_Player.js:414)。
|
||||
- 请求:`agentid`、`playerid`、`taskid`。
|
||||
- 响应/推送:`state`(int)——`state==1` 且当前 `taskstate==0` 时把 `C_Player.taskstate` 置 1(06_Player.js:476)。
|
||||
- 注意:原文档"响应含 `taskstate`"无源码依据,已删除——接收函数仅读 `_msg.data.state`。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:189);旧函数:[Send_player_finish_task](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:420)、[player_finish_task](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:424)。
|
||||
|
||||
#### 22. get_task_award
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:领取任务奖励。
|
||||
- 请求:`agentid`、`playerid`、`gameid`、`taskid`。
|
||||
- 响应/推送:`taskid`(对应任务 state 置 2=已领取)、`taskstate`(写入 `C_Player.taskstate`)(06_Player.js:482)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:196);旧函数:[Send_get_task_award](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:428)、[get_task_award](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:434)。
|
||||
|
||||
#### 23. refresh_task_state
|
||||
|
||||
- 路由/通道:agent;方向:C→S 意图;当前旧代码缺常量,不能认定可发送;状态:**N**;新 Rpc 常量:无。
|
||||
- 用途:刷新任务可领取状态。
|
||||
- 请求:透传 `_data`(构造点未集中定位,至少含 `agentid`/`playerid`)。
|
||||
- 响应/推送:服务器推送 `can_award`(见下条)。
|
||||
- 注意:本次核实:09_Net.js:440 用 RpcList.refresh_task_state,但 02_Const.js 无此定义;全模板搜索未找到赋值。未被外部注入时该值为 undefined,JSON.stringify 会省略 rpc。02 章“硬编码字符串”的记载与当前源码不符,待后续专项核对;本轮不修代码。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:203);旧函数:[Send_can_award](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:439)。
|
||||
|
||||
#### 24. can_award
|
||||
|
||||
- 路由/通道:agent;方向:S→C 推送;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:服务器通知有任务可领取。
|
||||
- 请求:无(纯推送)。
|
||||
- 响应/推送:任务可领取标记(载荷字段待后端确认)。
|
||||
- 注意:🐛 `06_Player.js` **未定义** `Player.prototype.can_award`(全文无此方法)。推送一旦到达,`C_Player.can_award` 为 undefined,调用即抛 TypeError。当前为 bug,不可当正常协议使用。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:210);旧函数:[Send_can_award](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:439)、[can_award](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:443)。
|
||||
|
||||
### 大厅 · 支付 / 充值 / 资产(4)
|
||||
|
||||
#### 25. get_paylist
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:拉取支付项列表。
|
||||
- 请求:`agentid`。
|
||||
- 响应/推送:`paylist`(支付项数组) → `GameData.payList`,并打开支付界面(09_Net.js:567)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:221);旧函数:[Send_get_paylist](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:561)、[get_paylist](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:566)。
|
||||
|
||||
#### 26. pay_succ
|
||||
|
||||
- 路由/通道:HTTP(保留 agent 信封);方向:C→HTTP;未见同名 Net 接收函数;状态:**X**;新 Rpc 常量:有。
|
||||
- 用途:支付成功后通知服务器入账。
|
||||
- 请求:`agentid`、`playerid`、`channelid`、`productid`、`payid`、`amount`、`money`、`paytype`(05_Func.js:2240-2254 构造)。
|
||||
- 响应/推送:无显式 WS 回包;资产变化通过 `update_bean`/`update_roomcard` 推送(充房卡场景前端还会本地 `UpdateRoomcard`,05_Func.js:2263)。
|
||||
- 注意:原工程支付流程使用 HTTP;存在 Send_pay_succ 定义,但调用点被注释。不得仅凭常量/发送函数判为活跃 WS 请求。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:228);旧函数:[Send_pay_succ](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:572)。
|
||||
|
||||
#### 27. topup_card
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:充值卡兑换。
|
||||
- 请求:`agentid`、`playerid`、`cardno`(卡号)。
|
||||
- 响应/推送:`Desk.topup_card` 为空实现(07_Desk.js:1365),资产变化经 update_bean/update_roomcard 推送。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:235);旧函数:[Send_topup_card](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:862)、[topup_card](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:866)。
|
||||
|
||||
#### 28. giveCoin
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:仓库面板向他人转账豆豆/金币。
|
||||
- 请求:`agentid`、`playerid`(转出)、`toPlayerid`(转入目标ID)、`gameid`、`count`(数量)、`password`(仓库密码)(11_GameUI.js:2132-2139)。
|
||||
- 响应/推送:`state`(0成功)、`star2`(转出后**仓库星星**数 → `setWareHouseStarCOunt`,**非豆豆**);失败 `showerror`/`error`(07_Desk.js:1381)。
|
||||
- 注意:响应 `star2` 为仓库星星数,注意区别于豆豆余额。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:242);旧函数:[Send_giveCoin](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:875)、[giveCoin](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:878)。
|
||||
|
||||
### 大厅 · 仓库 / 星星 / 魅力(4)
|
||||
|
||||
#### 29. set_bankpwd
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:设置仓库密码。
|
||||
- 请求:`agentid`、`playerid`、`unionid`、`password`。
|
||||
- 响应/推送:`state`(0成功)、`password`;失败 `showerror`/`error`(07_Desk.js:1228)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:253);旧函数:[Send_set_bankpwd](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:696)、[set_bankpwd](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:700)。
|
||||
|
||||
#### 30. change_star
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:仓库存/取(豆豆 ↔ 仓库星星)。
|
||||
- 请求:`agentid`、`playerid`、`mode`(0存入/1取出,源码 `safeInputType-1`)、`password`(仓库密码,字符串)、`count`(数量)(11_GameUI.js:2065-2069 调用点齐全携带此 5 字段)。
|
||||
- 响应/推送:`state`(0成功)、`star1`(更新后豆豆余额 → `update_bean2`)、`star2`(更新后仓库星星数 → `setWareHouseStarCOunt`)、`msg`(可选提示)、`count`(可选,回填安全输入);失败 `showerror`/`error`(07_Desk.js:1238)。
|
||||
- 注意:原审计疑虑"`mode`/`password` 未见"——经核对仓库存/取调用点(11_GameUI.js:2068-2069)**确含** `mode` 与 `password`,文档正确,疑虑解除。审计提到的"agentid/playerid/toPlayerid/gameid/count"实为相邻的 `giveCoin` 转账包(11_GameUI.js:2132-2139),并非本 rpc。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:260);旧函数:[Send_change_star](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:706)、[change_star](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:710)。
|
||||
|
||||
#### 31. update_charm
|
||||
|
||||
- 路由/通道:agent;方向:S→C 推送;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:座位魅力值更新。
|
||||
- 请求:`Net.Send_update_charm`(`09_Net.js:727`) 已定义但**无任何调用点**;实际只作服务器→客户端推送。
|
||||
- 响应/推送:`seatlist`:[ {`seat`(int), `charm`(number)} ](07_Desk.js:1260 遍历 setCharm)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:267);旧函数:[Send_update_charm](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:726)、[update_charm](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:730)。
|
||||
|
||||
#### 32. setAllCharm
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:批量设置总魅力。
|
||||
- 请求:`agentid`、`playerid`、`gameid`、`value`(11_GameUI.js:1269-1275)。
|
||||
- 响应/推送:无显式业务字段,`Desk.setAllCharm` 仅本地存储并提示成功(07_Desk.js:1321)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:274);旧函数:[Send_setAllCharm](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:778)、[setAllCharm](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:782)。
|
||||
|
||||
### 大厅 · 邀请码 / 绑定(2)
|
||||
|
||||
#### 33. binding_invitecode
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:绑定邀请码。
|
||||
- 请求:`agentid`、`playerid`、`invitecode`(11_GameUI.js:1367-1369)。
|
||||
- 响应/推送:`state`(0成功时写入 `invitecode`)、`invitecode`、`error`(提示文案)(06_Player.js:251)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:285);旧函数:[Send_binding_invitecode](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:586)、[binding_invitecode](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:591)。
|
||||
|
||||
#### 34. get_player_invitecode
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:获取自己的邀请码(打开绑定界面)。
|
||||
- 请求:`agentid`、`playerid`、`unionid`、`openid`(11_GameUI.js:1378-1382)。
|
||||
- 响应/推送:`invitecode`(string) → `C_Player.setInvitecod` 并打开绑定界面(09_Net.js:607)。
|
||||
- 注意:修正原文档——请求字段为 `agentid/playerid/unionid/openid`,**无 `gameid`**,新增 `unionid`/`openid`(11_GameUI.js:1378)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:292);旧函数:[Send_get_player_invitecode](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:602)、[get_player_invitecode](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:606)。
|
||||
|
||||
### 大厅 · VIP 管理 / 黑白名单(4)
|
||||
|
||||
#### 35. optBanList
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:黑名单查看/添加/移除(多入口)。
|
||||
- 请求:随入口不同,公共字段 `agentid`、`playerid`、`type`:
|
||||
- 响应/推送:`type`(1/3/4/5/6)、`banList`(黑名单数组)、`message`(可选提示)(07_Desk.js:1289)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:303);旧函数:[Send_optBanList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:761)、[optBanList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:765)。
|
||||
|
||||
#### 36. getPlayerWhiteList
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:获取白名单。
|
||||
- 请求:`agentid`、`playerid`、`gameid`。
|
||||
- 响应/推送:`whiteList`(数组) → `GameData.whiteList.data`(07_Desk.js:1412)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:316);旧函数:[Send_getPlayerWhiteList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:881)、[getPlayerWhiteList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:885)。
|
||||
|
||||
#### 37. optWhiteList
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:白名单添加/修改/删除。
|
||||
- 请求:`agentid`、`playerid`、`gameid`、`shortcode`、`mode`、`userid`(目标ID):
|
||||
- 响应/推送:`whiteList`(更新后数组)、`mode`(可选)、`message`(可选提示)(07_Desk.js:1398)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:323);旧函数:[Send_optWhiteList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:889)、[optWhiteList](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:893)。
|
||||
|
||||
#### 38. setVipForbidSelect
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:VIP 房禁止玩家选桌开关。
|
||||
- 请求:`agentid`、`playerid`、`gameid`、`forbidSelect`(1开/0关,11_GameUI.js:2631-2639)。
|
||||
- 响应/推送:`state`(0成功)、`forbidSelect`(1开/0关);失败 `error`(07_Desk.js:1348)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:332);旧函数:[Send_setVipForbidSelect](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:854)、[setVipForbidSelect](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:858)。
|
||||
|
||||
### 大厅 · 其它 agent 协议(8)
|
||||
|
||||
#### 39. submit_opinion
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:提交反馈/意见。
|
||||
- 请求:`agentid`、`playerid`、`gameid`、`content`。
|
||||
- 响应/推送:`state`(0成功)(07_Desk.js:1100)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:343);旧函数:[Send_submit_opinion](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:546)、[submit_opinion](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:550)。
|
||||
|
||||
#### 40. submit_location
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:提交定位信息(仅非大厅环境发送)。
|
||||
- 请求:`agentid`、`playerid`、`info`(定位对象)。
|
||||
- 响应/推送:经 `Game.submit_location` 处理(09_Net.js:583)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:350);旧函数:[Send_submit_location](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:576)、[submit_location](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:582)。
|
||||
|
||||
#### 41. submit_phoneinfo
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求(无响应处理);状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:提交手机/通讯录信息(仅非大厅环境发送)。
|
||||
- 请求:`agentid`、`playerid`、`info`{ `phoneInfo`(手机信息), `addrBook`(通讯录) }。
|
||||
- 响应/推送:`Net.submit_phoneinfo` 接收函数为空实现(09_Net.js:722)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:357);旧函数:[Send_submit_phoneinfo](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:716)、[submit_phoneinfo](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:721)。
|
||||
|
||||
#### 42. submit_error
|
||||
|
||||
- 路由/通道:agent;方向:C→S;同名回包被旧接收器忽略;状态:**N**;新 Rpc 常量:无。
|
||||
- 用途:异常/日志上报(Net.submit_error 与 Net.submit_log 共用同一个实际 rpc)。
|
||||
- 请求:`packet`(出错数据包字符串)、`msg`(错误/堆栈信息)、`playerid`、`agentid`、`gameid`(09_Net.js:66-72)。
|
||||
- 响应/推送:服务器若回 rpc `"submit_error"`,前端在分发处直接 `return` 忽略(12_Logic.js:235)。
|
||||
- 注意:submit_log 是本地函数别名,不是第二个线上 rpc;不能重复计数。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:364);旧函数:[submit_error](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:55)、[submit_log](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:81)。
|
||||
|
||||
#### 43. kick_server
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 推送;状态:**R**;新 Rpc 常量:有。
|
||||
- 用途:管理端踢出玩家 / 被踢下线弹窗。
|
||||
- 请求:`agentid` 等(构造点未集中定位)。
|
||||
- 响应/推送:`msg`(踢出提示) → `GameUI.OpenKick`(07_Desk.js:1108)。
|
||||
- 注意:⚠️ 请求字段待补。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:371);旧函数:[Send_kick_server](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:554)、[kick_server](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:557)。
|
||||
|
||||
#### 44. broadcast
|
||||
|
||||
- 路由/通道:agent;方向:C→S 请求 + S→C 推送;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:广播消息/滚动公告(主要为服务器推送)。
|
||||
- 请求:`agentid` 等(`Send_broadcast` 存在,09_Net.js:530)。
|
||||
- 响应/推送:`msgtype`(0消息框/1滚动公告,可选,缺省 0)、`msgcontent`(内容)(07_Desk.js:1112)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:378);旧函数:[Send_broadcast](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:529)、[broadcast](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:533)。
|
||||
|
||||
#### 45. connect_agentserver
|
||||
|
||||
- 路由/通道:agent;方向:双向(切服);状态:**R**;新 Rpc 常量:有。
|
||||
- 用途:切换到大厅服务器。
|
||||
- 请求:`Send_connect_agentserver`(`09_Net.js:515`) 透传 `_data`(切服时使用)。
|
||||
- 响应/推送:`agentserver`(新大厅服地址)、`opt`(切换原因,如 `other_break_room`/`free_room`)(09_Net.js:518)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:385);旧函数:[Send_connect_agentserver](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:514)、[connect_agentserver](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:517)。
|
||||
|
||||
#### 46. playerBehavior
|
||||
|
||||
- 路由/通道:HTTP GET(历史 agent 名称);方向:C→HTTP;状态:**X**;新 Rpc 常量:有。
|
||||
- 用途:玩家行为埋点。
|
||||
- 请求:原 WS 路径(agentid/gameid/playerid/tag)**被注释**(09_Net.js:799-806),实际改走独立 HTTP GET 上报 `http://test3.1888day.com/api/gamedo/gamedo?agentid=&gameid=&playerid=&tag=`(09_Net.js:807-815)。
|
||||
- 响应/推送:HTTP 回调 `playerBehavior_Succ`/`_Fail`(09_Net.js:818/822);WS 接收函数 `Net.playerBehavior`(`09_Net.js:826`) 当前无触发。
|
||||
- 注意:当前调用走独立 HTTP 埋点地址,WS 段被注释;不归入本地 WebSocket 验收。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:392);旧函数:[Send_playerBehavior](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:796)、[playerBehavior](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:825)。
|
||||
|
||||
### 房间 · 房间生命周期(8)
|
||||
|
||||
#### 47. self_break_room
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:房主在**未开局**前主动解散房间。
|
||||
- 请求:仅通用四字段。
|
||||
- 响应/推送:`roomcode`(可选,用于从本地"我的房间"列表移除)。处理:清空牌桌、回大厅。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:19);旧函数:[Send_self_break_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:266)、[self_break_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:271)。
|
||||
|
||||
#### 48. other_break_room
|
||||
|
||||
- 路由/通道:room;方向:S→C 推送;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:他人(房主)解散房间,推送给房内其余玩家。
|
||||
- 请求:无(纯推送)。
|
||||
- 响应/推送:无业务字段;触发 `Func.exitRoom()`、清桌、回大厅、提示"房主已解散房间!"。
|
||||
- 注意:常伴随 **connect_agentserver** 切服包(`data.opt == other_break_room`,见下文)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:26);旧函数:[other_break_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:277)。
|
||||
|
||||
#### 49. self_exit_room
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:**R**;新 Rpc 常量:有。
|
||||
- 用途:自己在**未开局**前退出房间。
|
||||
- 请求:仅通用四字段(发送处见 `08_Utl_Output.js:993`)。
|
||||
- 响应/推送:`isowner`(可选,==1 且非无限局时把房间加回本地列表), `seat`(可选,传给 `Game_Modify.myExitRoom`), `roomcode`(可选)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:33);旧函数:[Send_self_exit_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:289)、[self_exit_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:294)。
|
||||
|
||||
#### 50. other_exit_room
|
||||
|
||||
- 路由/通道:room;方向:S→C 推送;状态:**R**;新 Rpc 常量:有。
|
||||
- 用途:其他玩家(未开局)退出房间。
|
||||
- 请求:无(纯推送)。
|
||||
- 响应/推送:`seat`(离开者座位)。处理:清该座位、`playercnt--`;若 `seat==0` 且非无限局,提示房主已离开。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:40);旧函数:[other_exit_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:301)。
|
||||
|
||||
#### 51. player_prepare
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 推送;状态:**R**;新 Rpc 常量:有。
|
||||
- 用途:玩家点击准备(`needprepare==1` 的房间)。
|
||||
- 请求:仅通用四字段。
|
||||
- 响应/推送:`seat`(准备者座位), `deskwar`(可选;为真表示满足开战条件 → `HideStartScene` + `Game_Modify.StartWar`)。推送给房内所有人。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:47);旧函数:[Send_player_prepare](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:628)、[player_prepare](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:631)。
|
||||
|
||||
#### 52. change_room
|
||||
|
||||
- 路由/通道:room;方向:C→S;响应 rpc=change_seat;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:玩家请求换座 / 换桌。
|
||||
- 请求:仅通用四字段(**不带目标座位**,由服务器决定换到哪个空位)。发送处 `11_GameUI.js:1945`、`08_Utl_Output.js:1006`。
|
||||
- 响应/推送:rpc 名改为 **`change_seat`**,`data`:`seat1`, `seat2`(两个互换的座位号)。处理:交换两座 Desk 信息,若自己在其中则 `C_Player.SetSeat` 更新。
|
||||
- 注意:上行 rpc=`change_room`,下行 rpc=`change_seat`,二者成对。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:54);旧函数:[Send_change_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:677)。
|
||||
|
||||
#### 53. share_room
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:把房间分享到世界房列表。
|
||||
- 请求:通用四字段;可选 `roomlist`、`roomtype`、`shareType`(高级房分享时携带,见 `11_GameUI.js:1734`/`11_GameUI.js:1891`)。
|
||||
- 响应/推送:无业务字段;提示"已成功分享至平台!"。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:61);旧函数:[Send_share_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:634)、[share_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:637)。
|
||||
|
||||
#### 54. change_seat
|
||||
|
||||
- 路由/通道:room;方向:S→C(change_room 的响应);状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:服务器指定两座互换。
|
||||
- 请求:无同名上行;上行是 change_room。
|
||||
- 响应/推送:seat1、seat2。
|
||||
- 注意:独立列名,不能把 change_room 与 change_seat 合成一条而漏计。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:54);旧函数:[change_seat](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:681)。
|
||||
|
||||
### 房间 · 进房推送(他人视角)(3)
|
||||
|
||||
#### 55. other_join_room
|
||||
|
||||
- 路由/通道:room;方向:S→C 推送;状态:**R**;新 Rpc 常量:有。
|
||||
- 用途:其他玩家加入当前房间。
|
||||
- 请求:无(纯推送;自己进房用 `self_join_room`,走 agent 路由,见 02 章)。
|
||||
- 响应/推送:`seat`(新玩家座位) + 该玩家完整对象(直接传给 `Player.SetDeskInfo`,见 [04 · Player 座位对象](./04-数据结构.md#player-座位对象)):
|
||||
- 注意:⚠️ `charm`/`sign` 是否每次必含、其余字段是否完整以 `Player.SetDeskInfo` 实际读取为准,详见 [04 章](./04-数据结构.md#player-座位对象)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:72);旧函数:[other_join_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:281)。
|
||||
|
||||
#### 56. other_offline
|
||||
|
||||
- 路由/通道:room;方向:S→C 推送;状态:**R**;新 Rpc 常量:有。
|
||||
- 用途:其他玩家离线。
|
||||
- 请求:无(纯推送)。
|
||||
- 响应/推送:`seat`。处理:该座 `onstate=1`,刷新 UI。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:80);旧函数:[other_offline](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:389)。
|
||||
|
||||
#### 57. other_online
|
||||
|
||||
- 路由/通道:room;方向:S→C 推送;状态:**R**;新 Rpc 常量:有。
|
||||
- 用途:其他玩家重新上线。
|
||||
- 请求:无(纯推送)。
|
||||
- 响应/推送:`seat`, `ip`。处理:该座 `onstate=0`、更新 ip。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:87);旧函数:[other_online](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:394)。
|
||||
|
||||
### 房间 · 解散投票(开局后)(8)
|
||||
|
||||
#### 58. self_apply_free_room
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:自己申请解散房间。
|
||||
- 请求:仅通用四字段。
|
||||
- 响应/推送:`agreefree` { `state`:[各座同意状态数组], `countdown`:倒计时 }。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:101);旧函数:[Send_self_apply_free_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:308)、[self_apply_free_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:313)。
|
||||
|
||||
#### 59. other_apply_free_room
|
||||
|
||||
- 路由/通道:room;方向:S→C 推送;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:他人申请解散。
|
||||
- 请求:无(纯推送)。
|
||||
- 响应/推送:`seat`(申请者), `agreefree` { `state`[], `countdown` }。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:108);旧函数:[other_apply_free_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:319)。
|
||||
|
||||
#### 60. self_agree_free_room
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:自己同意解散。
|
||||
- 请求:仅通用四字段。
|
||||
- 响应/推送:无业务字段;本地把自己加入同意列表、刷新投票 UI。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:115);旧函数:[Send_self_agree_free_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:323)、[self_agree_free_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:328)。
|
||||
|
||||
#### 61. other_agree_free_room
|
||||
|
||||
- 路由/通道:room;方向:S→C 推送;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:他人同意解散。
|
||||
- 请求:无(纯推送)。
|
||||
- 响应/推送:`seat`(同意者)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:122);旧函数:[other_agree_free_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:333)。
|
||||
|
||||
#### 62. self_refuse_free_room
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:自己拒绝解散。
|
||||
- 请求:仅通用四字段。
|
||||
- 响应/推送:无业务字段;清空同意列表、投票结果置不通过、弹"已拒绝"结果。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:129);旧函数:[Send_self_refuse_free_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:338)、[self_refuse_free_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:343)。
|
||||
|
||||
#### 63. other_refuse_free_room
|
||||
|
||||
- 路由/通道:room;方向:S→C 推送;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:他人拒绝解散(任一人拒绝即否决本轮)。
|
||||
- 请求:无(纯推送)。
|
||||
- 响应/推送:`seat`(拒绝者)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:136);旧函数:[other_refuse_free_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:348)。
|
||||
|
||||
#### 64. free_room
|
||||
|
||||
- 路由/通道:room;方向:S→C 推送;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:解散投票最终结果。
|
||||
- 请求:无(纯推送)。
|
||||
- 响应/推送:freeNow;deskfree、roomcard、tips、time、seats 按具体分支读取,字段语义见 03 章。
|
||||
- 注意:可伴随 **connect_agentserver** 切服包(`data.opt == free_room`,见下文)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:143);旧函数:[free_room](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:353)。
|
||||
|
||||
#### 65. beanroom_surrender
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 响应;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:豆豆房(金币房)投降。
|
||||
- 请求:通用四字段 + `count`(投降数量 = `GameData.surrendCount`,发送处 `11_GameUI.js:1245`)。
|
||||
- 响应/推送:`state`(0=成功 → `Game_Modify.onSurrender(_msg)`); 失败时 `showerror`(==1 则弹) / `error`(错误文本)。
|
||||
- 注意:⚠️ 未见成对的 `other_xxx` 推送,是否向房内其他玩家广播他人投降待后端确认。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:160);旧函数:[Send_beanroom_surrender](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:612)、[beanroom_surrender](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:616)。
|
||||
|
||||
### 房间 · 开局(2)
|
||||
|
||||
#### 66. self_makewar
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 → S→C 响应(self_makewar);状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:房主主动开局。
|
||||
- 请求:仅通用四字段。
|
||||
- 响应/推送:rpc=`self_makewar`,无业务字段;触发 `Desk.self_makewar` → `Game_Modify.StartWar(_msg)`。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:171);旧函数:[Send_self_makewar](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:469)、[self_makewar](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:474)。
|
||||
|
||||
#### 67. other_makewar
|
||||
|
||||
- 路由/通道:room;方向:S→C 推送;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:开局广播(房主开局或满员自动开局)给房内其他玩家。
|
||||
- 请求:无(纯推送)。
|
||||
- 响应/推送:开局信息对象 → `Desk.makewar` → `Game_Modify.StartWar(msg)`。
|
||||
- 注意:实际发牌等对局数据在此之后通过**子游戏内协议**下发(见 05 章)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:178);旧函数:[other_makewar](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:479)。
|
||||
|
||||
### 房间 · 房间内社交(6)
|
||||
|
||||
#### 68. send_text
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 文字聊天;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:文字聊天 / 全服公告 / 预定义常用语。
|
||||
- 请求:通用四字段 + `text`(内容;点常用语时为 `Game_Config.Info.TextContent[spid-206]` 文本) + `type`(0=普通 / 1=全服公告;按是否勾选公告设 0/1) + `info`(可选;**有 info 时 `type` 改为 2**)。发送处 `11_GameUI.js:1170`(输入框)、`11_GameUI.js:2717`(常用语)。
|
||||
- 响应/推送:`type`(0=普通 / 1=全服公告 / 2=机器人 / 3=预定义文字), `text`(内容;**type==3 时为 `Game_Config.Info.TextContent` 的 1 基索引**,客户端按 `(idx-1)%len` 取文本), `seat`(发送者座位,type≠1 时使用), `info`(type==2 时附加)。
|
||||
- 注意:百人场(`vipInfinite`)只处理 type==1 公告分支。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:189);旧函数:[Send_send_text](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:399)、[send_text](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:403)。
|
||||
|
||||
#### 69. send_voice
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 语音;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:发送语音消息。
|
||||
- 请求:通用四字段 + `voiceurl`(已上传音频地址) + `time`(时长) + `info`(可选) + `type`(可选,有 info 时为 2)。发送处 `05_Func.js:1714`、`05_Func.js:2984`。
|
||||
- 响应/推送:`type`(0=普通 / 2=机器人), `seat`(发送座位), `voiceurl`, `time`, `info`(type==2 时)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:203);旧函数:[Send_send_voice](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:491)、[send_voice](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:494)。
|
||||
|
||||
#### 70. send_gift
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 互动/送礼;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:向指定座位送互动礼物。
|
||||
- 请求:通用四字段 + `giftid`(=`spid_up - 255`,按钮精灵号算出,发送处 `11_GameUI.js:2725`) + `receiveseat`(=`GameData.InteractPlayer`) + `info`(可选) + `type`(有 info 时为 2)。
|
||||
- 响应/推送:`type`(0=普通 / 2=机器人), `giftid`(客户端做 `(giftid-1)%4+1` 归一为 1~4 动画), `sendseat`(发送座位), `receiveseat`(接收座位), `info`(type==2 时)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:218);旧函数:[Send_send_gift](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:483)、[send_gift](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:486)。
|
||||
|
||||
#### 71. send_phiz
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 表情;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:发送表情动画。
|
||||
- 请求:通用四字段 + `text`(=`up_id`,表情按钮序号 1~`ConstVal.Emotion.count`,发送处 `11_GameUI.js:815`) + `info`(可选) + `type`(有 info 时为 2)。
|
||||
- 响应/推送:`type`(0=普通 / 2=机器人), `text`(表情 ID,客户端按 `(text-1)%ConstVal.Emotion.src_list.length+1` 归一), `seat`(发送座位), `info`(type==2 时)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:232);旧函数:[Send_send_phiz](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:538)、[send_phiz](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:542)。
|
||||
|
||||
#### 72. call_phone
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 拨打电话;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:拨打/接听电话,置玩家 `onstate=2`(通话中)。
|
||||
- 请求:仅通用四字段(发送处 `06_Player.js:380` / `:388` / `:396`,对应接起/电话进来/去电三种触发)。
|
||||
- 响应/推送:rpc=`call_phone`,`seat`(拨打者座位 → 该玩家 `onstate=2`)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:239);旧函数:[Send_call_phone](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:451)、[call_phone](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:455)。
|
||||
|
||||
#### 73. hangup_phone
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 挂断电话;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:挂断电话,置玩家 `onstate=0`。
|
||||
- 请求:仅通用四字段(发送处 `06_Player.js:372`)。
|
||||
- 响应/推送:rpc=`hangup_phone`,`seat`(挂断者座位 → 该玩家 `onstate=0`)。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:253);旧函数:[Send_hangup_phone](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:460)、[hangup_phone](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:464)。
|
||||
|
||||
### 保留名称 · 房间社交(5)
|
||||
|
||||
#### 74. receive_chat
|
||||
|
||||
- 路由/通道:room(文档归类,线上未确认);方向:未确认(文档推测为下行);状态:**X**;新 Rpc 常量:有。
|
||||
- 用途:聊天推送的另一可能 rpc 名(与 `send_text` 成对)。
|
||||
- 请求:未发现同名发送链。
|
||||
- 响应/推送:未定义,不能套用其它 rpc 字段。
|
||||
- 注意:常量存在,旧 Net 无同名接收器。与实际已实现的 send_voice/send_text/call_phone/hangup_phone/send_gift 区分;不据此断言服务器绝不会发送。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:196);旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
|
||||
|
||||
#### 75. play_voice
|
||||
|
||||
- 路由/通道:room(文档归类,线上未确认);方向:未确认(文档推测为下行);状态:**X**;新 Rpc 常量:有。
|
||||
- 用途:与 `send_voice` 成对,疑为语音**播放**推送。
|
||||
- 请求:未发现同名发送链。
|
||||
- 响应/推送:未定义,不能套用其它 rpc 字段。
|
||||
- 注意:常量存在,旧 Net 无同名接收器。与实际已实现的 send_voice/send_text/call_phone/hangup_phone/send_gift 区分;不据此断言服务器绝不会发送。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:211);旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
|
||||
|
||||
#### 76. other_send_gift
|
||||
|
||||
- 路由/通道:room(文档归类,线上未确认);方向:未确认(文档推测为下行);状态:**X**;新 Rpc 常量:有。
|
||||
- 用途:与 `send_gift` 成对,疑为他人送礼推送。
|
||||
- 请求:未发现同名发送链。
|
||||
- 响应/推送:未定义,不能套用其它 rpc 字段。
|
||||
- 注意:常量存在,旧 Net 无同名接收器。与实际已实现的 send_voice/send_text/call_phone/hangup_phone/send_gift 区分;不据此断言服务器绝不会发送。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:225);旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
|
||||
|
||||
#### 77. other_callphone
|
||||
|
||||
- 路由/通道:room(文档归类,线上未确认);方向:未确认(文档推测为下行);状态:**X**;新 Rpc 常量:有。
|
||||
- 用途:与 `call_phone` 成对,疑为他人拨打电话推送。
|
||||
- 请求:未发现同名发送链。
|
||||
- 响应/推送:未定义,不能套用其它 rpc 字段。
|
||||
- 注意:常量存在,旧 Net 无同名接收器。与实际已实现的 send_voice/send_text/call_phone/hangup_phone/send_gift 区分;不据此断言服务器绝不会发送。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:246);旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
|
||||
|
||||
#### 78. other_hangup
|
||||
|
||||
- 路由/通道:room(文档归类,线上未确认);方向:未确认(文档推测为下行);状态:**X**;新 Rpc 常量:有。
|
||||
- 用途:与 `hangup_phone` 成对,疑为他人挂断电话推送。
|
||||
- 请求:未发现同名发送链。
|
||||
- 响应/推送:未定义,不能套用其它 rpc 字段。
|
||||
- 注意:常量存在,旧 Net 无同名接收器。与实际已实现的 send_voice/send_text/call_phone/hangup_phone/send_gift 区分;不据此断言服务器绝不会发送。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:260);旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
|
||||
|
||||
### 大厅 · 资产更新与系统推送(4)
|
||||
|
||||
#### 79. update_bean
|
||||
|
||||
- 路由/通道:上行 agent;下行按 agent 归档(实际推送路由待逐项抓包);方向:C→S + S→C;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:豆豆变化(本人或房内座位)
|
||||
- 请求:原生 yPaytype / WVJB yPaytype 回调直接发送 agentid、playerid、change:num、type:9;这是资产写入路径,不属于只读查询。
|
||||
- 响应/推送:bean、change/seat/type(按场景可选)、text;不同分支见原处理器。
|
||||
- 注意:02 章“无对应主动请求”与当前 05_Func.js 不符。存在发送代码不代表支付来源可信性、服务端行为或新框架已经验收。
|
||||
- 直接上行来源:[原生 yPaytype](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/05_Func.js:2191)、[WVJB yPaytype](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/05_Func.js:3053)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:406);旧函数:[update_bean](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:597)。
|
||||
|
||||
#### 80. update_roomcard
|
||||
|
||||
- 路由/通道:上行 agent;下行按 agent 归档(实际推送路由待逐项抓包);方向:C→S + S→C;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:房卡变化
|
||||
- 请求:原生 yPaytype / WVJB yPaytype 回调直接发送 agentid、playerid、change:num、type:9;这是资产写入路径,不属于只读查询。
|
||||
- 响应/推送:roomcard、text(可选);change 分支条件见原处理器。
|
||||
- 注意:02 章“无对应主动请求”与当前 05_Func.js 不符。存在发送代码不代表支付来源可信性、服务端行为或新框架已经验收。
|
||||
- 直接上行来源:[原生 yPaytype](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/05_Func.js:2188)、[WVJB yPaytype](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/05_Func.js:3050)。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:405);旧函数:[update_roomcard](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:382)。
|
||||
|
||||
#### 81. kick_offline
|
||||
|
||||
- 路由/通道:agent(协议归档;实际推送路由待逐项抓包);方向:S→C;状态:**N**;新 Rpc 常量:有。
|
||||
- 用途:被踢下线
|
||||
- 请求:无对应主动请求。
|
||||
- 响应/推送:fromOther、gameid(可选);旧流程同时上报 submit_error。
|
||||
- 注意:仅有旧处理器不能证明新 Runtime 接入或真实服务已覆盖。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:408);旧函数:[kick_offline](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:447)。
|
||||
|
||||
#### 82. show_message
|
||||
|
||||
- 路由/通道:agent(协议归档;实际推送路由待逐项抓包);方向:S→C;状态:**N**;新 Rpc 常量:无。
|
||||
- 用途:通用提示
|
||||
- 请求:无对应主动请求。
|
||||
- 响应/推送:msg、time。
|
||||
- 注意:仅有旧处理器不能证明新 Runtime 接入或真实服务已覆盖。
|
||||
- 依据:[02-协议-agent路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/02-协议-agent路由.md:409);旧函数:[show_message](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:655)。
|
||||
|
||||
### 房间 · 服务器切换(room 侧)(1)
|
||||
|
||||
#### 83. connect_roomserver
|
||||
|
||||
- 路由/通道:room;方向:C→S 请求 + S→C 推送 · 切到房间服;状态:**R**;新 Rpc 常量:有。
|
||||
- 用途:从大厅服切换到房间服务器。
|
||||
- 请求:由 `Send_connect_roomserver` 发起(走 room 路由)。
|
||||
- 响应/推送:`data.roomserver`(新房间服地址)。处理:置 `GameData.ConnectType=true`、`GameData.ConnectRpc=connect_roomserver`、`GameData.Server=data.roomserver`,关闭当前连接并用新地址重连。
|
||||
- 依据:[03-协议-room路由.md](G:/Works/YouleGamesCocosCreator/docs/protocol/03-协议-room路由.md:295);旧函数:[Send_connect_roomserver](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:499)、[connect_roomserver](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:502)。
|
||||
|
||||
### 子游戏 · 框架保留名称(2)
|
||||
|
||||
#### 84. over_game
|
||||
|
||||
- 路由/通道:由具体子游戏契约确定;方向:文档描述 S→C;实际由子游戏确认;状态:**X**;新 Rpc 常量:有。
|
||||
- 用途:结算广播保留名;具体载荷由子游戏定义。
|
||||
- 请求:模板未定义。
|
||||
- 响应/推送:模板未定义。
|
||||
- 注意:Game_Surface_3 的 Game_Modify 为模板,不能据名字推导具体子游戏协议。
|
||||
- 依据:[05-游戏内协议与桥接.md](G:/Works/YouleGamesCocosCreator/docs/protocol/05-游戏内协议与桥接.md:144);旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
|
||||
|
||||
#### 85. agentserver_game
|
||||
|
||||
- 路由/通道:由具体子游戏契约确定;方向:未定义;状态:**X**;新 Rpc 常量:有。
|
||||
- 用途:对局数据经大厅服中转的保留名。
|
||||
- 请求:模板未定义。
|
||||
- 响应/推送:模板未定义。
|
||||
- 注意:Game_Surface_3 的 Game_Modify 为模板,不能据名字推导具体子游戏协议。
|
||||
- 依据:[05-游戏内协议与桥接.md](G:/Works/YouleGamesCocosCreator/docs/protocol/05-游戏内协议与桥接.md:145);旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
|
||||
|
||||
### 外部桥接 · 非网络 RPC(1)
|
||||
|
||||
#### 86. joinRoom
|
||||
|
||||
- 路由/通道:H5/小程序本地桥接;方向:外部入口→前端确认流程;状态:**X**;新 Rpc 常量:有。
|
||||
- 用途:唤起进房确认;不是直接向服务器发送 joinRoom。
|
||||
- 请求:{rpc:"joinRoom",data:{roomcode}};H5 来自 URL gameData,小程序来自缓存 openminigamedata。
|
||||
- 响应/推送:确认后走 self_join_room;不产生 joinRoom 网络回包。
|
||||
- 注意:h5RpcList 唯一名称;旧小程序 checkType=8 与白名单删除撞号,不能沿用。WVJB handler 名不计为服务器 RPC。
|
||||
- 依据:[05-游戏内协议与桥接.md](G:/Works/YouleGamesCocosCreator/docs/protocol/05-游戏内协议与桥接.md:229);旧函数:无同名 Net 定义(保留/桥接按所引章节核对)。
|
||||
|
||||
## 覆盖核对方法
|
||||
|
||||
- 逐一取 02_Const.js 的 RpcList 字符串赋值去重;核对 09_Net.js 中 RpcList 引用、Net 命名函数以及硬编码 rpc;扫描全模板的直接 _SendData 调用与 rpc 赋值(包含 05_Func.js 支付桥接),补入 h5RpcList。
|
||||
- 与 02/03 章标题、02 章末尾推送表以及 05 章保留/桥接名称取并集;按实际名称一条一项,跨章节引用不重复计数。
|
||||
- 结果:82 个旧常量名称全部命中;补充 4 个名称后 86 条,无遗漏或重复;11 个现代严格分发名称全部命中。
|
||||
- 新框架状态依据 platform/runtime.ts、protocol/platform-handlers.ts、protocol/first-slice-routes.ts;旧 protocol/routes.ts 大常量表仅用于“名称存在”对照。
|
||||
- 本轮没有发送网络请求、触发 Cocos 编辑器操作或运行资源生成器;这份静态索引不新增真实验收结论。
|
||||
@@ -0,0 +1,67 @@
|
||||
# 登录场景与原工程接线
|
||||
|
||||
用户已确认:启动、加载、登录分别组织;协议由独立 PopupRoot 动态实例化;按钮显示和调用按 Game_Surface_3。
|
||||
|
||||
最新协议要求覆盖本文早期验收记录:默认已勾选;所有登录方式都要求当前勾选,未勾选统一提示“未同意协议”。LoginAccounts 持有唯一协议状态,授权、回调、游客、手机、快速/隐藏入口和缓存自动登录统一拦截;LocalPlatformLogin 诊断入口同步。175 项相关测试通过。
|
||||
|
||||
## 实施顺序
|
||||
|
||||
1. 在 `assets/framework/presentation/login-policy.ts` 集中实现 `JumpWxAuth` 的显示顺序,配置缺省仅在来源定义。测试覆盖审核、设备、游客、QQ、缓存账号组合,并保留 QQ 最后覆盖的源行为。
|
||||
2. 在登录适配器实现 `accreditlogin(2/1)`、`sharelogin` 回调、游客/设备/手机账号、缓存与 `player_login`。手机号使用原字段 `telphone/smmcode/telphoneAuto`,不增加服务器接口。验证码按钮沿用“请通过相关渠道获取”。针对接口参数、协议勾选及缓存编写测试。
|
||||
3. 创建常驻启动组件与 Loading/Login 场景宿主,保留单个 Runtime/连接;使用 `director.loadScene`,等待场景绑定后展示数据。Logo 继续复用既有倒计时和进度行为。
|
||||
4. 使用 Cocos MCP 移除 Login prefab 内协议实例,场景中设置 PopupRoot。协议和手机窗口独立加载、重复点击防重入、场景销毁取消加载与清理监听。
|
||||
5. 用原生 Cocos 节点和预览核对启动场景顺序、按钮显示、协议开关和滑动;执行相关测试与类型检查,记录既有失败。对比改动前资源哈希,确认只修改任务资源。
|
||||
|
||||
## 验收边界
|
||||
|
||||
- 初始 check=false;点击两次回到 false;微信未同意时不调用授权;QQ/游客遵循原分支。
|
||||
- 审核、正式、showVisitor、deviceLogin、qqLogin 和缓存组合符合源码。
|
||||
- 授权参数 2/1,原回调字段映射与手机请求字段精确一致。
|
||||
- Login prefab 无 Layer10_Protol 子节点;弹层在 PopupRoot 下,关闭后释放。
|
||||
- Startup → Loading → Login 使用真实场景切换;Runtime 和网络连接不重复创建。
|
||||
- 不修改服务器,不覆盖既有 scene/meta 工作,不提交无关文件。
|
||||
|
||||
## 本次验证结果
|
||||
|
||||
- 新入口为 `assets/scenes/PlatformStartup.scene`,实际浏览器日志依次显示 `LoadScene PlatformLoading`、`LoadScene PlatformLogin`。
|
||||
- Login prefab 已无协议实例;Startup 引用独立协议/手机 prefab,弹窗归属 PopupRoot。
|
||||
- 浏览器实际点击验证 false → true → false、协议内容上下拖动、Spirit253 关闭、遮罩关闭;最终预览 error/warn 为空。
|
||||
- Cocos 原生节点验证手机窗口生成两个数字 EditBox,字体取原资源高度 28;协议含原生 ScrollView。
|
||||
- 补齐成功设备登录缓存、玩家 ID 写回、global/WVJB 的不同缓存目的地、startlocation(2)/getlocationinfo。正式/审核按钮位置沿用源坐标,关闭对应 Widget 避免静态布局覆盖运行时位置。
|
||||
- `node --experimental-transform-types --test framework-tests/local-platform-login/*.test.ts`:97/97 通过。
|
||||
- 全工程类型检查仍有既有 5 条错误:login-sources.ts 的 unknown 字段 3 条、room-contracts.ts 的 0/1 类型 1 条、game-contract-harness.ts 的 node:assert 类型 1 条;本次新增代码没有类型错误。
|
||||
- 对比本次资源哈希清单,仅既有 Login prefab 因移除嵌套协议而变化;保留其他已存在的 scene/meta 修改。没有修改服务器或原工程,也没有提交无关文件。
|
||||
- 真机微信/QQ 授权、手机号登录成功和原生定位尚未进行端到端联调;当前验证涵盖接口参数、缓存/协议契约及 Cocos UI,不代表真实账号已登录。
|
||||
|
||||
## 远程 showVisitor 排查与修正
|
||||
|
||||
- 实际 POST `config_test/update_jsonv2.txt` 返回 200。`showVisitor=1` 属于代理 `1B2h0ccl205c390Y28m1Ajdplkuu4wgy`;原构建默认代理错误地选择另一分支,且其下没有当前 gameid。
|
||||
- 在 BUILD_IDENTITY 单一来源修正为当前 gameid 所属的代理及渠道 `aouv0LotK0pYyQ0Pdrx0CsdcaezfzrcG`,未修改远程文件、服务端或分层配置读取规则。
|
||||
- 实际 marketid=4 还配置了 deviceLogin=true。用户确认保留两个按钮同时显示,调整为游客在左、手机在右,解决原坐标重叠。
|
||||
- 预览日志确认 showVisitor=true/deviceLogin=true/qqLogin=false;实际画面确认游客与手机并排、微信隐藏,error/warn 为空。
|
||||
- 新增远程层级到 UI policy 的回归测试,并同步已有测试中失效的配置 URL 断言;登录、配置和本地适配器合计 170/170 通过。
|
||||
|
||||
## 游客成功回包 tel 校验修复
|
||||
|
||||
- 新增的设备缓存校验错误地根据全局 deviceLogin 开关强制要求游客回包包含 tel。改为使用本次请求的 DeviceLoginMode,游客成功只记录 playerid,不写设备账号缓存或伪造手机号。
|
||||
- 缓存选择为 visitorinfo 时,自动登录也按游客方式提交;同时启用手机按钮不改变这个请求分支。
|
||||
- 回归覆盖“两个按钮开启 → 游客提交 → 无 tel 成功回包 → 刷新缓存自动登录”,并保留手机账号缓存测试。172 项相关测试全部通过。
|
||||
- 实际浏览器点击游客显示“登录成功”;刷新后缓存游客自动登录也显示“登录成功”,error/warn 均为空。没有修改服务器。
|
||||
|
||||
## 手机登录弹窗对齐
|
||||
|
||||
- 来源:11_GameUI.js 的 3243/3244/3245/3251/3253/3254 分支、openPhoneBind、数字输入面板;12_Logic.js 的 readPhoneCode。
|
||||
- 登录入口使用标题第 2 帧“手机登录”;恢复图标和原提示精灵,输入后隐藏对应提示。继续使用原生 EditBox,保留前导零,数字最多 18 位,与原数字面板一致。
|
||||
- 使用原 sgame_phoneCode 缓存键恢复手机号和 30 秒剩余时间,验证码不自动回填。倒计时中切等待帧;验证码获取仍仅提示“请通过相关渠道获取”,不发送原工程已注释掉的短信 RPC。
|
||||
- 两个输入非空才调用既有 phoneLogin 对应适配器并关闭;Spirit3251 和 Spirit3241 关闭,释放输入监听和定时器。
|
||||
- PhoneLoginAssets 通过 MCP 挂载并保存两个帧引用,保证构建资源依赖;没有手改 prefab/meta。
|
||||
- 浏览器验证标题、图标、输入位置、前导零、获取提示、空验证码拦截、关闭/重开及遮罩关闭。原生 Cocos 节点验证缓存恢复、倒计时拦截/结束、非空提交一次并关闭、定时器清理。174 项相关测试通过;未发送真实手机号或验证码登录。
|
||||
|
||||
## 2026-09-06 旧诊断入口退役
|
||||
|
||||
- 新流程所需倒计时、节点绑定、登录阶段 GameEntry 已迁入 assets/scripts/platform-login,并补充职责、协议状态、缓存优先级及生命周期注释。
|
||||
- 使用 Cocos asset-db 删除 LocalPlatformLogin.scene、scripts/local-platform-login 及其 meta。迁移保留行为测试至 framework-tests/platform-login,删除旧诊断入口专属测试。
|
||||
- GameEntry 仍是显式拒绝游戏操作的占位实现,保留诊断 key/route;不代表接入大厅或房间。
|
||||
- 按现有 Login_Layer 的 Logining 分组修正头像、昵称、遮罩绑定路径,未修改 prefab。
|
||||
- 删除后 93 项相关测试通过;浏览器预览正常进入登录界面,无 error/warn。此前已有的 5 项全项目类型错误仍存在。
|
||||
- 对比操作前哈希,删除范围之外的已有序列化资源无变化。
|
||||
@@ -0,0 +1,348 @@
|
||||
# 原项目与 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;真实登录结论引用[已保存验收报告](./2026-09-05-local-platform-login-acceptance.md),本轮没有重跑登录验收或测试。
|
||||
- RPC 字段索引见 [07-RPC全量清单](../../protocol/07-RPC全量清单.md)。本文记录界面流程,不另建一份运行时配置常量。
|
||||
|
||||
## 当前 Cocos 入口和核心的实际能力
|
||||
|
||||
- [LoginFlow.ts](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/LoginFlow.ts:68):旧 PlatformSession/NetClient,硬编码 A/C/G、mock_openid 与连接兜底,成功后跳 MainMenu;这不是新 Runtime 的正式入口。
|
||||
- [LaunchFlow.ts](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/LaunchFlow.ts:17):1 秒 scheduleOnce 模拟加载后跳 Login;脚本存在,但三份现有场景未挂它。
|
||||
- [SceneStart.ts](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/SceneStart.ts:17):mock playerState 演示,3 秒后写测试资料;现有场景未挂载,不能当服务器状态回显。
|
||||
- [两个 PlayerInfoView](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/PlayerInfoView.ts:18) 与 [views/PlayerInfoView.ts](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/views/PlayerInfoView.ts:52):相同 ccclass 名。前者只有 applyPlayer,无注释声称的 bindTo;后者有旧 session binder,但头像加载仍未实现。均未挂到本轮扫描的 prefab/scene;重复类名是后续接管风险,不据静态扫描断言当前已发生运行时冲突。
|
||||
- [UI 契约](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/ui-contracts.ts:1):PageId 只有 loading/login/lobby/room;PlayerModel 为 playerid/nickname/avatar/bean;UiRuntime 命令只有 login/joinRoom/prepare/exitRoom。没有任务、仓库、排行、反馈等页面状态和命令。
|
||||
- [诊断 View](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/local-platform-login/local-login-view.ts:39):游客触摸绑定、版本显示、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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer1_Logo.prefab)、[Layer614_Loading](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer614_Loading.prefab)、[Login_Layer](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/Login_Layer.prefab)。
|
||||
- Cocos 缺口/状态:诊断闭环已验收;普通 Login.scene 仍挂旧 LoginFlow,尚未切换为新 Runtime 正式入口。
|
||||
- 原代码依据:[11_GameUI.js:791](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:791)、[05_Func.js:1233](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/05_Func.js:1233)、[09_Net.js:122](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer10_Protol.prefab)、[Layer18_Auth](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer18_Auth.prefab)、[Login_Layer](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/Login_Layer.prefab)、[Layer29_PhoneInfo](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer29_PhoneInfo.prefab)。
|
||||
- Cocos 缺口/状态:诊断 View 主动隐藏微信、手机、QQ、快速登录等节点;协议勾选与授权 UI 尚无现代接线。
|
||||
- 原代码依据:[11_GameUI.js:612](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:612)、[11_GameUI.js:1309](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1309)、[11_GameUI.js:2560](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2560)。
|
||||
|
||||
### 03. 大厅导航、入口开关与玩家头部
|
||||
|
||||
- 原入口与流程:旧菜单按 versionState、LaunchMode、agentmode、hallConfig/sysConfig 控制入口显隐;设置 7、任务 17、分享 14、个人信息 9 等经统一 spid 事件分发;菜单进入后更新公告和按钮。
|
||||
- 数据/配置:C_Player 资料和资产;功能开关、审核版本、入口配置、公告来源。
|
||||
- RPC/外部能力:导航本身不发统一 RPC,进入具体功能后才发对应请求。
|
||||
- 关闭、错误及边界:按钮有美术节点,不代表在所有模式下都应显示或可点。
|
||||
- Cocos 资源(存在):[Layer4_MainMenu](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer4_MainMenu.prefab)、[Layer6](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer6.prefab)、[Layer8_Notice](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer8_Notice.prefab)。
|
||||
- Cocos 缺口/状态:MainMenu.scene 不存在;Layer4 未挂业务组件。新 lobby PageModel 只有 self 的 playerid/nickname/avatar/bean,诊断只显示文字结果,不是完整大厅。
|
||||
- 原代码依据:[11_GameUI.js:3781](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:3781)、[11_GameUI.js:3915](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:3915)、[11_GameUI.js:4832](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer17_PlayerInfo.prefab)、[Layer6](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer6.prefab)、[Layer601](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer601.prefab)。
|
||||
- Cocos 缺口/状态:资料弹窗、文本输入、签名命令与响应均未接入;两个旧同名 PlayerInfoView 都不是该弹窗完整实现。
|
||||
- 原代码依据:[11_GameUI.js:4545](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4545)、[11_GameUI.js:2350](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2350)、[12_Logic.js:2224](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/12_Logic.js:2224)、[09_Net.js:739](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer609_Setting.prefab)。
|
||||
- Cocos 缺口/状态:无设置 Presenter、持久化接线、开关事件及现代退出登录生命周期。
|
||||
- 原代码依据:[11_GameUI.js:595](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:595)、[11_GameUI.js:701](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:701)、[11_GameUI.js:4201](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4201)、[12_Logic.js:1094](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer8_Notice.prefab)、[Layer9_Feedback](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer9_Feedback.prefab)、[Layer402_GameNotice](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer402_GameNotice.prefab)。
|
||||
- Cocos 缺口/状态:无公告队列、滚动驱动、通知选择/翻页与更多入口接线。
|
||||
- 原代码依据:[11_GameUI.js:624](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:624)、[11_GameUI.js:666](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:666)、[11_GameUI.js:3356](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:3356)、[11_GameUI.js:3578](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:3578)、[11_GameUI.js:4357](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4357)、[07_Desk.js:1114](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer9_Feedback.prefab)。
|
||||
- Cocos 缺口/状态:没有输入控件、反馈命令、成功/失败回显、草稿和重复提交策略。
|
||||
- 原代码依据:[11_GameUI.js:630](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:630)、[11_GameUI.js:652](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:652)、[11_GameUI.js:6211](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:6211)、[07_Desk.js:1102](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer16_Bind.prefab)。
|
||||
- Cocos 缺口/状态:无输入/粘贴/已绑定状态呈现,也无现代命令和回包处理。
|
||||
- 原代码依据:[11_GameUI.js:1342](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1342)、[11_GameUI.js:1359](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1359)、[11_GameUI.js:1375](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1375)、[11_GameUI.js:6591](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:6591)、[09_Net.js:602](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer26_Task.prefab)、[Layer22_Share](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer22_Share.prefab)。
|
||||
- Cocos 缺口/状态:无任务列表模型、滚动/动态项、领取状态机、分享成功回调接线。
|
||||
- 原代码依据:[11_GameUI.js:727](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:727)、[11_GameUI.js:748](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:748)、[11_GameUI.js:4637](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4637)、[07_Desk.js:942](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:942)、[06_Player.js:424](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/06_Player.js:424)、[06_Player.js:499](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer21_RankList.prefab)。
|
||||
- Cocos 缺口/状态:无列表请求、数据模型、动态行、模式切换和关闭生命周期。
|
||||
- 原代码依据:[11_GameUI.js:1853](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1853)、[11_GameUI.js:2540](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2540)、[11_GameUI.js:7628](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:7628)、[07_Desk.js:1225](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1225)、[07_Desk.js:1330](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer12_CombatLayer.prefab)、[Layer13](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer13.prefab)。
|
||||
- Cocos 缺口/状态:无现代战绩命令、分页、列表/详情 View;不能把 grade2 算成旧前端完整功能。
|
||||
- 原代码依据:[01_SubGame_modify.js:310](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/01_SubGame/01_SubGame_modify.js:310)、[01_SubGame_modify.js:737](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/01_SubGame/01_SubGame_modify.js:737)、[01_SubGame_modify.js:777](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/01_SubGame/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer11_ChargeInfo.prefab)、[Layer14_Pay](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer14_Pay.prefab)。
|
||||
- Cocos 缺口/状态:只有资源,无商品/支付状态、渠道分流与原生回调的现代界面接线。
|
||||
- 原代码依据:[11_GameUI.js:919](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:919)、[11_GameUI.js:6362](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:6362)、[09_Net.js:566](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:566)、[05_Func.js:2182](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/05_Func.js:2182)、[05_Func.js:2236](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer9_Feedback.prefab)。
|
||||
- Cocos 缺口/状态:无兑换模式、事件绑定或兑换结果与资产更新接线。
|
||||
- 原代码依据:[11_GameUI.js:2648](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2648)、[11_GameUI.js:2656](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2656)、[07_Desk.js:1366](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer25_wareHouse.prefab)。
|
||||
- Cocos 缺口/状态:无页签状态机、输入、密码设置及失败显示。
|
||||
- 原代码依据:[11_GameUI.js:1959](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1959)、[11_GameUI.js:2019](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2019)、[11_GameUI.js:8117](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:8117)、[07_Desk.js:1230](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer25_wareHouse.prefab)。
|
||||
- Cocos 缺口/状态:无余额投影、输入限制、提交状态或双资产一致刷新。
|
||||
- 原代码依据:[11_GameUI.js:2045](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2045)、[07_Desk.js:1240](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1240)、[11_GameUI.js:8117](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer25_wareHouse.prefab)。
|
||||
- Cocos 缺口/状态:无目标资料 View、查询命令、过期响应处理或赠送流程。
|
||||
- 原代码依据:[11_GameUI.js:2000](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2000)、[11_GameUI.js:2119](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2119)、[07_Desk.js:1370](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1370)、[07_Desk.js:1383](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1383)、[11_GameUI.js:8789](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer29_PhoneInfo.prefab)。
|
||||
- Cocos 缺口/状态:无 EditBox/数字输入绑定、倒计时、登录/绑定分流和回包关闭逻辑。
|
||||
- 原代码依据:[11_GameUI.js:2550](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2550)、[11_GameUI.js:2616](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2616)、[11_GameUI.js:9654](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:9654)、[07_Desk.js:1339](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer22_Share.prefab)、[Layer9_Feedback](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer9_Feedback.prefab)、[Layer603](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer603.prefab)。
|
||||
- Cocos 缺口/状态:无现代分享/二维码 Presenter、动态图加载、原生结果到任务状态的 UI 接线。
|
||||
- 原代码依据:[11_GameUI.js:876](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:876)、[11_GameUI.js:4340](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4340)、[11_GameUI.js:6199](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:6199)、[11_GameUI.js:2669](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2669)、[06_Player.js:424](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer612_Tips.prefab)、[Layer613_RoomCardUpdate](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer613_RoomCardUpdate.prefab)、[Layer615_Reconnect](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer615_Reconnect.prefab)、[Layer616_Kick](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer616_Kick.prefab)、[Layer617_iMessage](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer617_iMessage.prefab)、[Layer402_GameNotice](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer402_GameNotice.prefab)。
|
||||
- Cocos 缺口/状态:核心 OverlayModel 已有 reconnect/denial/kicked/fatal;诊断使用自己的文字遮罩。原弹窗资源尚未接管,broadcast/show_message/资产推送等无现代处理链。
|
||||
- 原代码依据:[11_GameUI.js:5838](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:5838)、[11_GameUI.js:5920](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:5920)、[11_GameUI.js:5967](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:5967)、[11_GameUI.js:6165](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:6165)、[07_Desk.js:1109](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer602_inputPannel.prefab)、[Layer607_Cal](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer607_Cal.prefab)、[Layer601](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer601.prefab)、[Layer420_CheckFree](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer420_CheckFree.prefab)。
|
||||
- Cocos 缺口/状态:没有通用输入、确认框组件和业务回调所有权。资源图标不能替代实际输入控件。
|
||||
- 原代码依据:[11_GameUI.js:1217](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1217)、[11_GameUI.js:1304](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1304)、[11_GameUI.js:2335](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2335)、[11_GameUI.js:7945](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:7945)、[11_GameUI.js:9142](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer8_Notice.prefab)、[Layer24_Neighbor](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer24_Neighbor.prefab)、[Layer608_Help](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer608_Help.prefab)。
|
||||
- Cocos 缺口/状态:资源存在,但无对应入口、外部能力接线或帮助内容加载。
|
||||
- 原代码依据:[11_GameUI.js:1947](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1947)、[11_GameUI.js:4728](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4728)、[11_GameUI.js:8027](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:8027)、[12_Logic.js:2054](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer29_PhoneInfo.prefab)、[Layer28_SeniorOptions](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer28_SeniorOptions.prefab)、[Layer7_ewm](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer7_ewm.prefab)。
|
||||
- Cocos 缺口/状态:无现代管理面板接线;这里只登记资源和调用链,不验收房间管理。
|
||||
- 原代码依据:[11_GameUI.js:2305](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2305)、[11_GameUI.js:2370](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2370)、[11_GameUI.js:2480](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2480)、[07_Desk.js:1291](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1291)、[07_Desk.js:1400](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1400)。
|
||||
|
||||
## 后续实施需要共用的验收条件
|
||||
|
||||
- 入口与可见性:按同一份模式/配置来源决定入口;资源可见、可点击与权限/前置状态一致。
|
||||
- 请求:参数来自权威配置、登录 Store 或明确用户输入;单次操作发出预期包;查询目标与本人身份不混淆。
|
||||
- 响应:先校验契约,再更新权威状态、PageModel、实际控件;列表空、拒绝、网络失败、加载失败都可识别。
|
||||
- 生命周期:打开/关闭/再次打开不重复监听;未完成请求关闭后不误开弹窗;异步旧响应不覆盖新输入;销毁清理触摸、订阅和定时器。
|
||||
- 实际边界:纯 TS 测试与资源结构检查通过后,仍需真实 Creator 预览、真实服务器包和实际界面一致的证据;支付/原生外部流程单独验收。
|
||||
|
||||
## 尚未展开的专项范围
|
||||
|
||||
- 每个动态 spid、全部模式组合、拖动裁剪、原工程视觉/声音/动画细节,尚未逐事件运行验证;本轮为入口和数据链审计。
|
||||
- 微信/QQ/原生授权、客服电话/剪贴板/分享/支付、邻居去向与外部商城页的全分支;代码来源已定位的部分列在条目中,实际设备效果待对应阶段。
|
||||
- 战绩详情里的子游戏解释、回放与帮助正文;创建/加入/房间列表、房内设置、聊天语音、投票、对局与重连快照,留到房间/子游戏阶段。
|
||||
- 已发现的旧代码差异(领奖 gameid、refresh_task_state 缺常量、can_award 空缺接收方法、重复 case/确认类型、历史默认值)须逐项核对契约后处理;本轮未修复或替服务器补约定。
|
||||
|
||||
## 编辑器结构快照
|
||||
|
||||
以下为本次完整平台 prefab 清点,包含后置的房间资源。节点数含 prefab 根和 group。每项业务组件/按钮事件/输入/滚动/动画组件均为 0;不包含运行时动态绑定。
|
||||
|
||||
- [Login_Layer.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/Login_Layer.prefab):20 个节点;group-2(登录)。
|
||||
- [Layer10_Protol.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer10_Protol.prefab):6 个节点;group-37。
|
||||
- [Layer11_ChargeInfo.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer11_ChargeInfo.prefab):6 个节点;group-20。
|
||||
- [Layer12_CombatLayer.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer12_CombatLayer.prefab):31 个节点;group-7、group-8、group-9。
|
||||
- [Layer13.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer13.prefab):9 个节点;group-7、group-8。
|
||||
- [Layer14_Pay.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer14_Pay.prefab):46 个节点;group-53、group-54。
|
||||
- [Layer15_JoinRoom.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer15_JoinRoom.prefab):28 个节点;group-5。
|
||||
- [Layer16_Bind.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer16_Bind.prefab):9 个节点;group-80。
|
||||
- [Layer17_PlayerInfo.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer17_PlayerInfo.prefab):17 个节点;group-18。
|
||||
- [Layer18_Auth.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer18_Auth.prefab):11 个节点;group-57。
|
||||
- [Layer19_WorldRoomList.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer19_WorldRoomList.prefab):38 个节点;group-82、group-96、group-97。
|
||||
- [Layer1_Logo.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer1_Logo.prefab):8 个节点;group-1、group-32。
|
||||
- [Layer202_PlayerHeadScore.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/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](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer21_RankList.prefab):22 个节点;group-84。
|
||||
- [Layer22_Share.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer22_Share.prefab):8 个节点;group-11。
|
||||
- [Layer24_Neighbor.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer24_Neighbor.prefab):9 个节点;group-88。
|
||||
- [Layer25_wareHouse.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer25_wareHouse.prefab):73 个节点;group-91、group-92、group-93、group-94。
|
||||
- [Layer26_Task.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer26_Task.prefab):48 个节点;group-10。
|
||||
- [Layer27_CreateRoom.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer27_CreateRoom.prefab):21 个节点;group-4。
|
||||
- [Layer28_SeniorOptions.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer28_SeniorOptions.prefab):58 个节点;group-83。
|
||||
- [Layer29_PhoneInfo.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer29_PhoneInfo.prefab):41 个节点;group-106、group-108。
|
||||
- [Layer402_GameNotice.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer402_GameNotice.prefab):4 个节点;group-56。
|
||||
- [Layer403.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer403.prefab):3 个节点;group-81。
|
||||
- [Layer404_MainSceneButton.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer404_MainSceneButton.prefab):8 个节点;group-28。
|
||||
- [Layer405_MainButton.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer405_MainButton.prefab):8 个节点;group-21。
|
||||
- [Layer408_Interact.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer408_Interact.prefab):24 个节点;group-21、group-39。
|
||||
- [Layer409_ChatVoice.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer409_ChatVoice.prefab):22 个节点;group-76。
|
||||
- [Layer410_ChatText.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer410_ChatText.prefab):22 个节点;group-75。
|
||||
- [Layer411.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer411.prefab):8 个节点;group-81。
|
||||
- [Layer413_BtnPanel.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer413_BtnPanel.prefab):23 个节点;group-21、group-81、group-99、group-100。
|
||||
- [Layer416_PlayerInfo.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer416_PlayerInfo.prefab):19 个节点;group-77、group-38。
|
||||
- [Layer418_ChatPannel.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer418_ChatPannel.prefab):56 个节点;group-30。
|
||||
- [Layer420_CheckFree.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer420_CheckFree.prefab):9 个节点;group-36。
|
||||
- [Layer4_MainMenu.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer4_MainMenu.prefab):34 个节点;group-3。
|
||||
- [Layer50_MainScene.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer50_MainScene.prefab):13 个节点;group-21。
|
||||
- [Layer6.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer6.prefab):56 个节点;group-103、group-3。
|
||||
- [Layer601.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer601.prefab):7 个节点;group-102。
|
||||
- [Layer602_inputPannel.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer602_inputPannel.prefab):21 个节点;group-87。
|
||||
- [Layer603.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer603.prefab):5 个节点;group-107。
|
||||
- [Layer606_Apply.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer606_Apply.prefab):34 个节点;group-29、group-32。
|
||||
- [Layer607_Cal.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer607_Cal.prefab):23 个节点;group-78、group-79。
|
||||
- [Layer608_Help.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer608_Help.prefab):9 个节点;group-19。
|
||||
- [Layer609_Setting.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer609_Setting.prefab):17 个节点;group-6。
|
||||
- [Layer612_Tips.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer612_Tips.prefab):8 个节点;group-32、group-89。
|
||||
- [Layer613_RoomCardUpdate.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer613_RoomCardUpdate.prefab):5 个节点;group-34。
|
||||
- [Layer614_Loading.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer614_Loading.prefab):4 个节点;group-40。
|
||||
- [Layer615_Reconnect.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer615_Reconnect.prefab):6 个节点;group-35。
|
||||
- [Layer616_Kick.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer616_Kick.prefab):5 个节点;group-33。
|
||||
- [Layer617_iMessage.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer617_iMessage.prefab):6 个节点;group-41。
|
||||
- [Layer618.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer618.prefab):5 个节点;group-85、group-86。
|
||||
- [Layer619_BackHall.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer619_BackHall.prefab):3 个节点;group-55。
|
||||
- [Layer620_Record.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer620_Record.prefab):5 个节点;group-101。
|
||||
- [Layer7_ewm.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer7_ewm.prefab):33 个节点;group-104、group-105。
|
||||
- [Layer8_Notice.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer8_Notice.prefab):12 个节点;group-3、group-95。
|
||||
- [Layer9_Feedback.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/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 改动。未运行资源生成器或网络请求。
|
||||
Reference in New Issue
Block a user