二七王:平台接线与加载段
SubGameHooks 只解包转交、不写业务:_ReceiveData 收到的是完整包, 按 rpc 分发;Free 的参数是平台已取出的 deskfree、可能为 null; appStart 只记座位与房间选项,UI 初始化留给 C 阶段。 index.html 里 handler 排在 Dispatcher 之前——后者注册时要引用全部 handler。 另加 test_index_load_order.js:按 index.html 实际 script 顺序自动加载 codes/ 全部文件 + 3 个框架依赖,验证顺序无遗漏、无环,并断言 EQW_Dispatcher 路由表确已注册,作为长期守卫。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -246,5 +246,50 @@ SubGameHooks.gamemydraw = function (gameid, spid, times, timelong, no2, no3, no4
|
||||
// [D] gameui_stop_voice(uiIndex):停止桌面语音气泡。
|
||||
// SubGameHooks.gameui_stop_voice = function (uiIndex) { /* ... */ };
|
||||
|
||||
//—— 网络与对局(B 阶段接线)——
|
||||
//平台入口只解包转交,业务全在 net/ 的 handler 里。
|
||||
|
||||
// 对局推送。_msg 是完整包 {app, route, rpc, data}
|
||||
// (平台 12_Logic.js 按 route 分流,只有子游戏路由 erqiwang 才到这里)
|
||||
SubGameHooks._ReceiveData = function (_msg) {
|
||||
if (!_msg) { return; }
|
||||
EQW_Dispatcher.dispatch({ rpc: _msg.rpc, data: _msg.data });
|
||||
};
|
||||
|
||||
// 开局。可能差异化下发(sendtype:1 + seatlist[])
|
||||
SubGameHooks.StartWar = function (_msg) {
|
||||
EQW_ResyncHandler.handleStartWar(_msg);
|
||||
};
|
||||
|
||||
// 断线重连:拿到 get_deskinfo 的全量快照
|
||||
SubGameHooks.Reconnect = function (_deskinfo) {
|
||||
EQW_ResyncHandler.handleDeskinfo(_deskinfo);
|
||||
};
|
||||
|
||||
// 重连但未开战:没有牌局数据,无需重画对局
|
||||
SubGameHooks.ReconnectNoMakewar = function () {
|
||||
console.log('[EQW] 重连(未开战)');
|
||||
};
|
||||
|
||||
// 解散。_msg 即 Desk.deskfree,可能为 null(首局发牌前解散)
|
||||
SubGameHooks.Free = function (_msg) {
|
||||
EQW_ResultHandler.handleFree(_msg);
|
||||
};
|
||||
|
||||
// 房间信息(房号 / 总局数 / roomtype 位串)
|
||||
SubGameHooks.setRoomDes = function (roomcode, asetcount, roomtype) {
|
||||
EQW_ResyncHandler.handleSetRoomDes(roomcode, asetcount, roomtype);
|
||||
};
|
||||
|
||||
// 启动编排。B 阶段只记下自己的座位;UI 初始化留给 C 阶段
|
||||
SubGameHooks.appStart = function () {
|
||||
if (typeof C_Player !== 'undefined' && typeof C_Player.seat === 'number') {
|
||||
EQW_GameState.room.mySeat = C_Player.seat;
|
||||
}
|
||||
if (typeof Desk !== 'undefined' && Desk.roomtype) {
|
||||
EQW_GameState.room.options = EQW_RoomOptions_Parse.parse(Desk.roomtype);
|
||||
}
|
||||
};
|
||||
|
||||
window.SubGameHooks = SubGameHooks;
|
||||
if (typeof module !== 'undefined' && module.exports) { module.exports = SubGameHooks; }
|
||||
|
||||
Reference in New Issue
Block a user