feat: migrate platform login scenes and native login flows
This commit is contained in:
@@ -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 编辑器操作或运行资源生成器;这份静态索引不新增真实验收结论。
|
||||
Reference in New Issue
Block a user