SocketMission.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. _gLinkArr = new Array();
  2. function getFreeSocketID() { //输入参数名称
  3. var res = 0;
  4. for (var i in _gLinkArr) {
  5. if (i == res) res++;
  6. }
  7. return res;
  8. }
  9. CSocketMission = cc.Class({
  10. ctor: function () {
  11. this.m_MaxPortIndex = 3;
  12. },
  13. init: function (url, port) {
  14. this.mSocketEngine = new cc.CSocketEngine(this);
  15. this.mUrl = url;
  16. this.mPort = port;
  17. this.mPortIndex = 0;
  18. },
  19. start: function () {
  20. if (this.isAlive()) {
  21. this.onEventTCPSocketLink();
  22. } else {
  23. this.mSocketEngine.connect(this.mUrl, this.mPort + this.mPortIndex);
  24. }
  25. },
  26. OnErr: function () {
  27. this.mPortIndex++;
  28. if (window.LOG_NET_DATA) console.log("正在重新分配服务器 " + this.mPortIndex);
  29. if (this.mPortIndex < this.m_MaxPortIndex) {
  30. this.start();
  31. } else {
  32. this.mPortIndex = 0;
  33. if (window.LOG_NET_DATA) console.log("连接失败!");
  34. this.onEventLinkErr();
  35. }
  36. },
  37. stop: function () {
  38. this.mSocketEngine.disconnect();
  39. },
  40. isAlive: function () {
  41. return this.mSocketEngine.isAlive();
  42. },
  43. send: function (main, sub, data, size) {
  44. return this.mSocketEngine.send(main, sub, data, size);
  45. }
  46. });
  47. CGPLoginMission = cc.Class({
  48. extends: CSocketMission,
  49. ctor: function () {
  50. //设置回调接口
  51. this.mIGPLoginMissionSink = arguments[0];
  52. if (window.OPEN_DOMAIN_NET && cc.sys.isNative != cc.sys.os) {
  53. this.init(window.DOMAIN_LOGIN, 443);
  54. } else {
  55. this.init(window.SOCKET_IP, LOGIN_SERVER_PORT);
  56. }
  57. this.SendData(arguments[1], arguments[2], arguments[3], arguments[4]);
  58. },
  59. SendData: function (wMain, wSub, DataStr, Length) {
  60. console.log("SendData发送 ", wMain, wSub)
  61. this.m_wMain = wMain;
  62. this.m_wSub = wSub;
  63. this.m_DataStr = DataStr;
  64. this.m_Length = Length;
  65. this.start();
  66. },
  67. onEventTCPSocketLink: function (event) {
  68. var cbData = gCByte.Str2Bytes(this.m_DataStr);
  69. if (this.m_Length == null) this.m_Length = cbData.length;
  70. this.send(this.m_wMain, this.m_wSub, cbData, this.m_Length);
  71. return true;
  72. },
  73. onEventLinkErr: function () {
  74. if (this.mIGPLoginMissionSink) {
  75. this.mIGPLoginMissionSink.OnEventLinkErr();
  76. }
  77. return true;
  78. },
  79. onEventTCPSocketShut: function () {
  80. // if (this.mIGPLoginMissionSink){
  81. // this.mIGPLoginMissionSink.StopLoading();
  82. // }
  83. },
  84. onEventTCPSocketRead: function (main, sub, data, size) {
  85. console.log("onEventTCPSocketRead " + main, sub)
  86. try {
  87. switch (main) {
  88. //登录消息
  89. case MDM_GP_LOGON: return this.onSocketMainLogon(sub, data, size);
  90. //列表信息
  91. case MDM_GP_SERVER_LIST: return this.onSocketMainServerList(sub, data, size);
  92. //用户服务
  93. case MDM_GP_USER_SERVICE: return this.onSocketUserService(sub, data, size);
  94. case MDM_GP_USER: return;//this.onSocketUserServer(sub, data, size);
  95. case MDM_GP_GET_SERVER: return this.onSocketQueryServer(sub, data, size);
  96. default: break;
  97. }
  98. if (window.LOG_NET_DATA) console.log("ERROR LoginMission:not case main!");
  99. } catch (error) {
  100. if (window.LOG_NET_DATA) console.log("ERROR LoginMission:onEventTCPSocketRead !");
  101. }
  102. return true;
  103. },
  104. //////////////////////////////////////////////////////////////////////////
  105. //登陆信息
  106. onSocketMainLogon: function (sub, data, size) {
  107. switch (sub) {
  108. //登录成功
  109. case SUB_GP_LOGON_SUCCESS: return this.onSocketSubLogonSuccess(data, size);
  110. //登录失败
  111. case SUB_GP_LOGON_FAILURE: return this.onSocketSubLogonFailure(data, size);
  112. //升级提示
  113. case SUB_GP_UPDATE_NOTIFY: return this.onSocketSubUpdateNotify(data, size);
  114. //登录完成
  115. case SUB_GP_LOGON_FINISH: return this.onSocketSubLogonFinish(data, size);
  116. //俱乐部信息
  117. case SBU_GP_CLUB_SERVER_INFO: return this.onSocketSubClubServerInfor(data, size);
  118. /*case SUB_GP_GROWLEVEL_CONFIG:
  119. case SUB_GP_VERIFY_CODE_RESULT:
  120. case SUB_GP_REAL_AUTH_CONFIG: */
  121. default:
  122. //if(window.LOG_NET_DATA)console.log("onSocketMainLogon 未处理消息 "+sub)
  123. return true;
  124. }
  125. return false;
  126. },
  127. //登录失败
  128. onSocketSubLogonFailure: function (data, size) {
  129. var LogonError = new CMD_GP_LogonError();
  130. gCByte.Bytes2Str(LogonError, data);
  131. //显示消息
  132. if (this.mIGPLoginMissionSink)
  133. this.mIGPLoginMissionSink.onGPLoginFailure(LogonError.szErrorDescribe);
  134. //关闭处理
  135. this.stop();
  136. return true;
  137. },
  138. //登录成功
  139. onSocketSubLogonSuccess: function (data, dataSize) {
  140. //消息处理
  141. var pLogonSuccess = new CMD_GP_LogonSuccess();
  142. //效验数据
  143. if (dataSize < gCByte.Bytes2Str(pLogonSuccess, data)) return false;
  144. console.log("登录成功onSocketSubLogonSuccess", pLogonSuccess)
  145. cc.sys.localStorage.setItem('LoginPsw', cc.sys.localStorage.getItem('LoginPswT'));
  146. //变量定义
  147. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  148. var pUserInsureInfo = g_GlobalUserInfo.GetUserInsureInfo();
  149. //保存信息
  150. gCByte.StrSameMemCopy(pGlobalUserData, pLogonSuccess);
  151. window.PLATFORM_RATIO = pLogonSuccess.dwPlatformRatio;
  152. //用户成绩
  153. pUserInsureInfo.llUserScore = pLogonSuccess.llUserScore;
  154. pUserInsureInfo.llUserInsure = pLogonSuccess.llUserInsure;
  155. if (this.mIGPLoginMissionSink)
  156. this.mIGPLoginMissionSink.onGPLoginSuccess();
  157. return true;
  158. },
  159. //登录完成
  160. onSocketSubLogonFinish: function (data, size) {
  161. this.stop();
  162. if (window.CLUB_PORT == 0) {
  163. g_CurScene.ShowAlert('伺服器連接異常,請重新登入!')
  164. this.mIGPLoginMissionSink.StopLoading();
  165. return;
  166. }
  167. if (this.mIGPLoginMissionSink)
  168. this.mIGPLoginMissionSink.onGPLoginComplete();
  169. return true;
  170. },
  171. //俱乐部信息
  172. onSocketSubClubServerInfor: function (data, size) {
  173. var obj = new CMD_GP_ClubServerInfo();
  174. if (gCByte.Bytes2Str(obj, data) != size) return false;
  175. if (window.CLUB_PORT == 0) window.CLUB_PORT = obj.wClubPort;
  176. if (window.CLUB_PORT != 0) window.gClubClientKernel.connect();
  177. console.log("动态端口--window.CLUB_PORT", window.CLUB_PORT)
  178. return true;
  179. },
  180. // 列表信息
  181. onSocketMainServerList: function (sub, data, size) {
  182. console.log("onSocketMainServerList 列表信息" + sub)
  183. switch (sub) {
  184. case SUB_GP_LIST_TYPE: return this.onSocketListType(data, size);
  185. case SUB_GP_LIST_KIND: return this.onSocketListKind(data, size);
  186. case SUB_GP_LIST_SERVER: return this.onSocketListServer(data, size);
  187. case SUB_GP_LIST_MATCH: return this.onSocketListMatch(data, size);
  188. case SUB_GP_LIST_FINISH: return this.onSocketListFinish(data, size);
  189. case SUB_GP_SERVER_FINISH: return this.onSocketServerFinish(data, size);
  190. /*case SUB_GR_KINE_ONLINE:
  191. case SUB_GR_SERVER_ONLINE:
  192. case SUB_GR_ONLINE_FINISH:
  193. case SUB_GP_LIST_PROPERTY_TYPE:
  194. case SUB_GP_LIST_PROPERTY_RELAT:
  195. case SUB_GP_LIST_PROPERTY:
  196. case SUB_GP_LIST_PROPERTY_SUB:
  197. case SUB_GP_MATCH_FINISH:
  198. case SUB_GP_PROPERTY_FINISH:*/
  199. default:
  200. //if(window.LOG_NET_DATA)console.log("onSocketMainServerList 消息未处理! subid "+sub)
  201. return true;
  202. }
  203. if (window.LOG_NET_DATA) console.log("onSocketMainServerList undefined! subid " + sub)
  204. return false;
  205. },
  206. // 服务信息
  207. onSocketUserService: function (sub, data, size) {
  208. console.log("onSocketUserService 服务信息" + sub)
  209. switch (sub) {
  210. // 签到信息
  211. case SUB_GP_CHECKIN_INFO: return this.onSocketCheckinInfo(data, size);
  212. // 签到结果
  213. case SUB_GP_CHECKIN_RESULT: return this.onSocketCheckinResult(data, size);
  214. // 修改个人信息结果
  215. case SUB_GP_OPERATE_FAILURE:
  216. case SUB_GP_OPERATE_SUCCESS: return this.onSockeOperateRes(data, size);
  217. case SUB_GP_GIFT_OPERATION_RESULT: return this.onSocketGiftOPRes(data, size);
  218. }
  219. return true;
  220. },
  221. onSocketQueryServer: function (sub, data, size) {
  222. //if(window.LOG_NET_DATA)console.log("onSocketQueryServer "+sub)
  223. switch (sub) {
  224. //房间操作失败
  225. case SUB_GP_FAILED: return this.onSocketQueryFailed(data, size);
  226. // 查询结果
  227. case SUB_GP_QUERYRES: return this.onSocketQueryRes(data, size);
  228. //创建房间结果
  229. case SUB_GP_CREATE_SUCCESS: return this.onSocketCreatRoomRes(data, size);
  230. case SUB_GP_JOIN_ROOM_RES: return this.onSocketJoinRoomRes(data, size);
  231. case SUB_GP_JOIN_ROOM_RES_G: return this.onSocketJoinRoomRes_G(data, size);
  232. //更新俱乐部房间列表
  233. case SUB_GP_CLUB_ROOM: return this.onSocketUpdateClubRoom(data, size);
  234. case SUB_GP_CLUB_REVENUE_INFO: return this.onSocketClubRevenueInfo(data, size);
  235. case SUB_GP_CLUB_USER_LIST: return this.onSocketUpdateUserList(data, size);
  236. case SUB_GP_CLUB_DISS_SUC: return this.onSocketDisClubRoom(data, size);
  237. case SUB_GP_ROOMCARD: return this.onSocketGetUsingCard(data, size);
  238. case SUB_GP_CLUB_SET_SUC: return this.onSocketClubSetSuc(data, size);
  239. case SUB_GP_GET_ROOMEX_RES: return this.onSocketRoomExRes(data, size);
  240. case SUB_GP_OWN_ROOM_INFO: return this.onSocketOwnRoomList(data, size);
  241. case SUB_GP_S_GET_LOBBY_LIST: return this.onSocketGetLobbyList(data, size);
  242. case SUB_GP_RES_MSG: return this.onSocketResMsg(data, size);
  243. //case SUB_GP_CREATE_AGENT_SUC: return this.onSocketCreateAgentSuc();
  244. //case SUB_GP_SCAN_ROOM_INFO: return this.onSocketScanRoomInfo(data, size);
  245. }
  246. return true;
  247. },
  248. //代开列表
  249. onSocketScanRoomInfo: function (data, size) {
  250. if (size == 0) this.stop();
  251. return this.mIGPLoginMissionSink.OnScanRoomInfo(data, size);
  252. },
  253. //代开
  254. onSocketCreateAgentSuc: function () {
  255. this.stop();
  256. return this.mIGPLoginMissionSink.OnCreateAgentSuc();
  257. },
  258. onSockeOperateRes: function (data, size) {
  259. var Res = new CMD_GP_OperateSuccess();
  260. if (size > gCByte.Bytes2Str(Res, data)) return false;
  261. this.mIGPLoginMissionSink.OnBindSpreaderRes(Res.lResultCode, Res.szDescribeString);
  262. //关闭处理
  263. this.stop();
  264. return true;
  265. },
  266. onSocketGiftOPRes: function (data, size) {
  267. var Res = new CMD_GP_GIFT_OP_Success();
  268. if (size > gCByte.Bytes2Str(Res, data)) return false;
  269. // console.log("gift--2", Res)
  270. // 通知UI层
  271. if (this.mIGPLoginMissionSink && this.mIGPLoginMissionSink.OnGiftOPResult)
  272. this.mIGPLoginMissionSink.OnGiftOPResult(Res);
  273. //关闭处理
  274. this.stop();
  275. return true;
  276. },
  277. onSocketQueryFailed: function (data, size) {
  278. var Res = new CMD_GP_S_Failed();
  279. if (size != gCByte.Bytes2Str(Res, data)) return false;
  280. this.stop();
  281. this.mIGPLoginMissionSink.OnQueryFailed(Res);
  282. return true;
  283. },
  284. onSocketQueryRes: function (data, size) {
  285. var Res = new CMD_GP_S_ReturnServer();
  286. if (size != gCByte.Bytes2Str(Res, data)) return false;
  287. console.log("返回CMD_GP_S_ReturnServer", Res)
  288. this.stop();
  289. this.mIGPLoginMissionSink.OnQueryServerRes(Res);
  290. return true;
  291. },
  292. onSocketJoinRoomRes: function (data, size) {
  293. var Res = new CMD_GP_S_ReturnRoom();
  294. if (size != gCByte.Bytes2Str(Res, data)) return false;
  295. this.stop();
  296. this.mIGPLoginMissionSink.OnQueryRoomRes(Res);
  297. return true;
  298. },
  299. onSocketCreatRoomRes: function (data, size) {
  300. var Res = new CMD_GP_S_CreatSuccess();
  301. if (size != gCByte.Bytes2Str(Res, data)) return false;
  302. this.stop();
  303. this.mIGPLoginMissionSink.OnCreatRoomRes(Res);
  304. return true;
  305. },
  306. onSocketJoinRoomRes_G: function (data, size) {
  307. console.log("加入房间G 返回")
  308. var Res = new CMD_GP_S_CreatSuccess();
  309. if (size != gCByte.Bytes2Str(Res, data)) return false;
  310. this.stop();
  311. this.mIGPLoginMissionSink.OnCreatRoomRes(Res);
  312. return true;
  313. },
  314. onSocketClubRevenueInfo: function (data, size) {
  315. var Res = new CMD_GP_S_ClubRevenueInfo();
  316. gCByte.Bytes2Str(Res, data);
  317. this.mIGPLoginMissionSink.OnClubRevenueInfo(Res);
  318. return true;
  319. },
  320. onSocketUpdateClubRoom: function (data, size) {
  321. var Res = new CMD_GP_S_ClubRoomInfo();
  322. gCByte.Bytes2Str(Res, data);
  323. if (Res.wRoomCnt > 0) {
  324. Res.RoomInfo = new Array();
  325. for (var i = 0; i < Res.wRoomCnt; i++) {
  326. Res.RoomInfo[i] = new ServerRoomInfo();
  327. }
  328. if (size != gCByte.Bytes2Str(Res, data)) return false;
  329. }
  330. this.mIGPLoginMissionSink.LoadRoomInfo(Res);
  331. return true;
  332. },
  333. onSocketUpdateUserList: function (data, size) {
  334. var Res = new CMD_GP_S_ClubUserInfo();
  335. gCByte.Bytes2Str(Res, data);
  336. console.log("onSocketUpdateUserList--", Res)
  337. for (var i = 0; i < Res.wPlayerCnt; i++) {
  338. if (Res.UserInfo == null) Res.UserInfo = new Array();
  339. Res.UserInfo[i] = new ServerRoomUserInfo();
  340. }
  341. if (size != gCByte.Bytes2Str(Res, data)) return false;
  342. this.stop();
  343. this.mIGPLoginMissionSink.SetRoomUserInfo(Res);
  344. return true;
  345. },
  346. onSocketDisClubRoom: function (data, size) {
  347. this.stop();
  348. this.mIGPLoginMissionSink.OnClubRoomDisolve();
  349. return true;
  350. },
  351. onSocketGetUsingCard: function (data, size) {
  352. var Res = new CMD_GP_S_UsingCard();
  353. if (size != gCByte.Bytes2Str(Res, data)) return false;
  354. this.stop();
  355. this.mIGPLoginMissionSink.OnSendCardQuery(Res.lUsingCard);
  356. return true;
  357. },
  358. onSocketClubSetSuc: function (data, size) {
  359. this.stop();
  360. this.mIGPLoginMissionSink.OnClubSetSuc();
  361. return true;
  362. },
  363. onSocketRoomExRes: function (data, size) {
  364. this.stop();
  365. var Res = new CMD_GP_C_GetRoomExRes();
  366. gCByte.Bytes2Str(Res, data);
  367. if (Res.wRoomCnt > 0) {
  368. Res.RoomInfo = new Array();
  369. for (var i = 0; i < Res.wRoomCnt; i++) Res.RoomInfo[i] = new ServerRoomInfo();
  370. }
  371. if (size != gCByte.Bytes2Str(Res, data)) return false;
  372. this.mIGPLoginMissionSink.OnGetRoomExRes(Res);
  373. return true;
  374. },
  375. onSocketOwnRoomList: function (data, size) {
  376. this.stop();
  377. var Res = new CMD_GP_S_OwnRoomInfo();
  378. if (size != gCByte.Bytes2Str(Res, data)) return false;
  379. this.mIGPLoginMissionSink.onOwnRoomList(Res);
  380. return true;
  381. },
  382. onSocketResMsg: function (data, size) {
  383. this.stop();
  384. var Res = new CMD_GP_S_Msg();
  385. if (size != gCByte.Bytes2Str(Res, data)) return false;
  386. this.mIGPLoginMissionSink.OnMsgRes(Res.szMsg);
  387. return true;
  388. },
  389. //种类信息
  390. onSocketListType: function (data, size) {
  391. var Obj = new Object();
  392. Obj.Arr = new Array();
  393. Obj.Arr[0] = new tagGameType();
  394. var itemSize = gCByte.GetSize(Obj.Arr[0]);
  395. //效验参数
  396. if (size % itemSize != 0 || size == 0) return false;
  397. //变量定义
  398. var iItemCount = size / itemSize;
  399. for (var i = 1; i < iItemCount; i++) {
  400. Obj.Arr[i] = new tagGameType();
  401. }
  402. gCByte.Str2Bytes(Obj, data);
  403. //更新数据
  404. for (var i = 0; i < iItemCount; i++) {
  405. g_ServerListData.InsertGameType(Obj.Arr[i]);
  406. }
  407. console.log("服务列表-1", g_ServerListData);
  408. return true;
  409. },
  410. //类型信息
  411. onSocketListKind: function (data, size) {
  412. return true;
  413. },
  414. //房间列表
  415. onSocketListServer: function (data, size) {
  416. var Obj = new Object();
  417. Obj.Arr = new Array();
  418. Obj.Arr[0] = new tagGameServer();
  419. var strsize = gCByte.GetSize(Obj.Arr[0]);
  420. if (size % strsize != 0) return false;
  421. //变量定义
  422. var iItemCount = size / strsize;
  423. if (iItemCount == 0) return true;
  424. //更新数据
  425. for (var i = 1; i < iItemCount; i++) {
  426. Obj.Arr[i] = new tagGameServer();
  427. }
  428. gCByte.Bytes2Str(Obj, data);
  429. console.log("服务列表-2-0", Obj);
  430. for (var i in Obj.Arr) {
  431. g_ServerListData.InsertGameServer(Obj.Arr[i]);//
  432. }
  433. console.log("服务列表-2", g_ServerListData);
  434. return true;
  435. },
  436. //比赛列表
  437. onSocketListMatch: function (data, size) {
  438. var pGameMatch = new tagGameMatch();
  439. //效验参数
  440. if (size % pGameMatch.getSize() != 0) return false;
  441. //变量定义
  442. var wItemCount = size / pGameMatch.getSize();
  443. //获取对象
  444. var pGameServerItem = null;
  445. //更新数据
  446. for (var i = 0; i < wItemCount; i++) {
  447. pGameMatch.wServerID = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_wServerID);
  448. pGameMatch.dwMatchID = gCByte.r4(data, pGameMatch.getSize() * i + pGameMatch.index_dwMatchID);
  449. pGameMatch.dwMatchNO = gCByte.r4(data, pGameMatch.getSize() * i + pGameMatch.index_dwMatchNO);
  450. pGameMatch.cbMatchType = gCByte.r1(data, pGameMatch.getSize() * i + pGameMatch.index_cbMatchType);
  451. pGameMatch.szMatchName = gCByte.rStr(data, pGameMatch.getSize() * i + pGameMatch.index_szMatchName);
  452. pGameMatch.cbMemberOrder = gCByte.r1(data, pGameMatch.getSize() * i + pGameMatch.index_cbMemberOrder);
  453. pGameMatch.cbMatchFeeType = gCByte.r1(data, pGameMatch.getSize() * i + pGameMatch.index_cbMatchFeeType);
  454. pGameMatch.lMatchFee = gCByte.r8(data, pGameMatch.getSize() * i + pGameMatch.index_lMatchFee);
  455. pGameMatch.wStartUserCount = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_wStartUserCount);
  456. pGameMatch.wMatchPlayCount = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_wMatchPlayCount);
  457. pGameMatch.wRewardCount = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_wRewardCount);
  458. pGameMatch.MatchStartTime.wYear = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wYear);
  459. pGameMatch.MatchStartTime.wMonth = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wMonth);
  460. pGameMatch.MatchStartTime.wDayOfWeek = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wDayOfWeek);
  461. pGameMatch.MatchStartTime.wDay = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wDay);
  462. pGameMatch.MatchStartTime.wHour = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wHour);
  463. pGameMatch.MatchStartTime.wMinute = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wMinute);
  464. pGameMatch.MatchStartTime.wSecond = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wSecond);
  465. pGameMatch.MatchStartTime.wMilliseconds = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wMilliseconds);
  466. pGameMatch.MatchEndTime.wYear = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wYear);
  467. pGameMatch.MatchEndTime.wMonth = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wMonth);
  468. pGameMatch.MatchEndTime.wDayOfWeek = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wDayOfWeek);
  469. pGameMatch.MatchEndTime.wDay = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wDay);
  470. pGameMatch.MatchEndTime.wHour = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wHour);
  471. pGameMatch.MatchEndTime.wMinute = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wMinute);
  472. pGameMatch.MatchEndTime.wSecond = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wSecond);
  473. pGameMatch.MatchEndTime.wMilliseconds = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wMilliseconds);
  474. pGameServerItem = g_ServerListData.SearchGameServer(pGameMatch.wServerID);
  475. if (pGameServerItem != null) {
  476. pGameServerItem.m_GameMatch.wServerID = pGameMatch.wServerID;
  477. pGameServerItem.m_GameMatch.dwMatchID = pGameMatch.dwMatchID;
  478. pGameServerItem.m_GameMatch.dwMatchNO = pGameMatch.dwMatchNO;
  479. pGameServerItem.m_GameMatch.cbMatchType = pGameMatch.cbMatchType;
  480. pGameServerItem.m_GameMatch.szMatchName = pGameMatch.szMatchName;
  481. pGameServerItem.m_GameMatch.cbMemberOrder = pGameMatch.cbMemberOrder;
  482. pGameServerItem.m_GameMatch.cbMatchFeeType = pGameMatch.cbMatchFeeType;
  483. pGameServerItem.m_GameMatch.lMatchFee = pGameMatch.lMatchFee;
  484. pGameServerItem.m_GameMatch.wStartUserCount = pGameMatch.wStartUserCount;
  485. pGameServerItem.m_GameMatch.wMatchPlayCount = pGameMatch.wMatchPlayCount;
  486. pGameServerItem.m_GameMatch.wRewardCount = pGameMatch.wRewardCount;
  487. pGameServerItem.m_GameMatch.MatchStartTime.wYear = pGameMatch.MatchStartTime.wYear;
  488. pGameServerItem.m_GameMatch.MatchStartTime.wMonth = pGameMatch.MatchStartTime.wMonth;
  489. pGameServerItem.m_GameMatch.MatchStartTime.wDayOfWeek = pGameMatch.MatchStartTime.wDayOfWeek;
  490. pGameServerItem.m_GameMatch.MatchStartTime.wDay = pGameMatch.MatchStartTime.wDay;
  491. pGameServerItem.m_GameMatch.MatchStartTime.wHour = pGameMatch.MatchStartTime.wHour;
  492. pGameServerItem.m_GameMatch.MatchStartTime.wMinute = pGameMatch.MatchStartTime.wMinute;
  493. pGameServerItem.m_GameMatch.MatchStartTime.wSecond = pGameMatch.MatchStartTime.wSecond;
  494. pGameServerItem.m_GameMatch.MatchStartTime.wMilliseconds = pGameMatch.MatchStartTime.wMilliseconds;
  495. pGameServerItem.m_GameMatch.MatchEndTime.wYear = pGameMatch.MatchEndTime.wYear;
  496. pGameServerItem.m_GameMatch.MatchEndTime.wMonth = pGameMatch.MatchEndTime.wMonth;
  497. pGameServerItem.m_GameMatch.MatchEndTime.wDayOfWeek = pGameMatch.MatchEndTime.wDayOfWeek;
  498. pGameServerItem.m_GameMatch.MatchEndTime.wDay = pGameMatch.MatchEndTime.wDay;
  499. pGameServerItem.m_GameMatch.MatchEndTime.wHour = pGameMatch.MatchEndTime.wHour;
  500. pGameServerItem.m_GameMatch.MatchEndTime.wMinute = pGameMatch.MatchEndTime.wMinute;
  501. pGameServerItem.m_GameMatch.MatchEndTime.wSecond = pGameMatch.MatchEndTime.wSecond;
  502. pGameServerItem.m_GameMatch.MatchEndTime.wMilliseconds = pGameMatch.MatchEndTime.wMilliseconds;
  503. }
  504. }
  505. return true;
  506. },
  507. //房间完成
  508. onSocketServerFinish: function (data, size) {
  509. if (this.mIGPLoginMissionSink)
  510. this.mIGPLoginMissionSink.onGetServerListFinish();
  511. return true;
  512. },
  513. // 列表完成
  514. onSocketListFinish: function (data, size) {
  515. if (this.mIGPLoginMissionSink)
  516. this.mIGPLoginMissionSink.onGetServerListFinish();
  517. return true;
  518. },
  519. OnGetLobbyList: function () {
  520. console.log("获取大厅列表")
  521. var obj = new CMD_C_GetLobbyList();
  522. obj.wType = 0;
  523. obj.dwUserID = g_GlobalUserInfo.GetGlobalUserData().dwUserID;
  524. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_GET_LOBBY_LIST, obj);
  525. return true;
  526. },
  527. onSocketGetLobbyList: function (data, size) {
  528. // console.log("服务器返回大厅列表-1")
  529. var Res = new CMD_S_GetLobbyList();
  530. gCByte.Bytes2Str(Res, data);
  531. // console.log("解析后的数据:", Res);
  532. // console.log(Res)
  533. if (Res.wListCnt > 0) {
  534. Res.ListInfo = new Array();
  535. for (var i = 0; i < Res.wListCnt; i++) {
  536. Res.ListInfo[i] = new CMD_S_GetLobbyListInfo();
  537. }
  538. if (size != gCByte.Bytes2Str(Res, data)) return false;
  539. // console.log("大厅列表返回-2")
  540. console.log(Res)
  541. }
  542. // 添加回调调用
  543. if (this.mIGPLoginMissionSink && this.mIGPLoginMissionSink.onSocketGetLobbyList) {
  544. this.mIGPLoginMissionSink.onSocketGetLobbyList(Res, size);
  545. }
  546. //将返回的大厅列表数据存储到全局变量
  547. window.currentLobbyList = Res;
  548. return true;
  549. },
  550. // OnGetLobbyList: function () {
  551. // console.log("获取大厅列表-l")
  552. // var obj = new CMD_C_GetLobbyList();
  553. // obj.wType = 0;
  554. // obj.dwUserID = g_GlobalUserInfo.GetGlobalUserData().dwUserID;
  555. // this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_GET_LOBBY_LIST, obj);
  556. // return true;
  557. // },
  558. // onSocketGetLobbyList: function (data, size) {
  559. // console.log("大厅列表返回l-1")
  560. // var Res = new CMD_S_GetLobbyList();
  561. // gCByte.Bytes2Str(Res, data);
  562. // console.log(Res)
  563. // if (Res.wListCnt > 0) {
  564. // Res.ListInfo = new Array();
  565. // for (var i = 0; i < Res.wListCnt; i++) {
  566. // Res.ListInfo[i] = new CMD_S_GetLobbyListInfo();
  567. // }
  568. // if (size != gCByte.Bytes2Str(Res, data)) return false;
  569. // console.log("大厅列表返回l-2")
  570. // console.log(Res)
  571. // }
  572. // return true;
  573. // },
  574. });