SocketMission.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577
  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_RES_MSG: return this.onSocketResMsg(data, size);
  242. //case SUB_GP_CREATE_AGENT_SUC: return this.onSocketCreateAgentSuc();
  243. //case SUB_GP_SCAN_ROOM_INFO: return this.onSocketScanRoomInfo(data, size);
  244. }
  245. return true;
  246. },
  247. //代开列表
  248. onSocketScanRoomInfo: function (data, size) {
  249. if (size == 0) this.stop();
  250. return this.mIGPLoginMissionSink.OnScanRoomInfo(data, size);
  251. },
  252. //代开
  253. onSocketCreateAgentSuc: function () {
  254. this.stop();
  255. return this.mIGPLoginMissionSink.OnCreateAgentSuc();
  256. },
  257. onSockeOperateRes: function (data, size) {
  258. var Res = new CMD_GP_OperateSuccess();
  259. if (size > gCByte.Bytes2Str(Res, data)) return false;
  260. this.mIGPLoginMissionSink.OnBindSpreaderRes(Res.lResultCode, Res.szDescribeString);
  261. //关闭处理
  262. this.stop();
  263. return true;
  264. },
  265. onSocketGiftOPRes: function (data, size) {
  266. var Res = new CMD_GP_GIFT_OP_Success();
  267. if (size > gCByte.Bytes2Str(Res, data)) return false;
  268. // console.log("gift--2", Res)
  269. // 通知UI层
  270. if(this.mIGPLoginMissionSink && this.mIGPLoginMissionSink.OnGiftOPResult)
  271. this.mIGPLoginMissionSink.OnGiftOPResult(Res);
  272. //关闭处理
  273. this.stop();
  274. return true;
  275. },
  276. onSocketQueryFailed: function (data, size) {
  277. var Res = new CMD_GP_S_Failed();
  278. if (size != gCByte.Bytes2Str(Res, data)) return false;
  279. this.stop();
  280. this.mIGPLoginMissionSink.OnQueryFailed(Res);
  281. return true;
  282. },
  283. onSocketQueryRes: function (data, size) {
  284. var Res = new CMD_GP_S_ReturnServer();
  285. if (size != gCByte.Bytes2Str(Res, data)) return false;
  286. console.log("返回CMD_GP_S_ReturnServer", Res)
  287. this.stop();
  288. this.mIGPLoginMissionSink.OnQueryServerRes(Res);
  289. return true;
  290. },
  291. onSocketJoinRoomRes: function (data, size) {
  292. var Res = new CMD_GP_S_ReturnRoom();
  293. if (size != gCByte.Bytes2Str(Res, data)) return false;
  294. this.stop();
  295. this.mIGPLoginMissionSink.OnQueryRoomRes(Res);
  296. return true;
  297. },
  298. onSocketCreatRoomRes: function (data, size) {
  299. var Res = new CMD_GP_S_CreatSuccess();
  300. if (size != gCByte.Bytes2Str(Res, data)) return false;
  301. this.stop();
  302. this.mIGPLoginMissionSink.OnCreatRoomRes(Res);
  303. return true;
  304. },
  305. onSocketJoinRoomRes_G: function (data, size) {
  306. console.log("加入房间G 返回")
  307. var Res = new CMD_GP_S_CreatSuccess();
  308. if (size != gCByte.Bytes2Str(Res, data)) return false;
  309. this.stop();
  310. this.mIGPLoginMissionSink.OnCreatRoomRes(Res);
  311. return true;
  312. },
  313. onSocketClubRevenueInfo: function (data, size) {
  314. var Res = new CMD_GP_S_ClubRevenueInfo();
  315. gCByte.Bytes2Str(Res, data);
  316. this.mIGPLoginMissionSink.OnClubRevenueInfo(Res);
  317. return true;
  318. },
  319. onSocketUpdateClubRoom: function (data, size) {
  320. var Res = new CMD_GP_S_ClubRoomInfo();
  321. gCByte.Bytes2Str(Res, data);
  322. if (Res.wRoomCnt > 0) {
  323. Res.RoomInfo = new Array();
  324. for (var i = 0; i < Res.wRoomCnt; i++) {
  325. Res.RoomInfo[i] = new ServerRoomInfo();
  326. }
  327. if (size != gCByte.Bytes2Str(Res, data)) return false;
  328. }
  329. this.mIGPLoginMissionSink.LoadRoomInfo(Res);
  330. return true;
  331. },
  332. onSocketUpdateUserList: function (data, size) {
  333. var Res = new CMD_GP_S_ClubUserInfo();
  334. gCByte.Bytes2Str(Res, data);
  335. console.log("onSocketUpdateUserList--", Res)
  336. for (var i = 0; i < Res.wPlayerCnt; i++) {
  337. if (Res.UserInfo == null) Res.UserInfo = new Array();
  338. Res.UserInfo[i] = new ServerRoomUserInfo();
  339. }
  340. if (size != gCByte.Bytes2Str(Res, data)) return false;
  341. this.stop();
  342. this.mIGPLoginMissionSink.SetRoomUserInfo(Res);
  343. return true;
  344. },
  345. onSocketDisClubRoom: function (data, size) {
  346. this.stop();
  347. this.mIGPLoginMissionSink.OnClubRoomDisolve();
  348. return true;
  349. },
  350. onSocketGetUsingCard: function (data, size) {
  351. var Res = new CMD_GP_S_UsingCard();
  352. if (size != gCByte.Bytes2Str(Res, data)) return false;
  353. this.stop();
  354. this.mIGPLoginMissionSink.OnSendCardQuery(Res.lUsingCard);
  355. return true;
  356. },
  357. onSocketClubSetSuc: function (data, size) {
  358. this.stop();
  359. this.mIGPLoginMissionSink.OnClubSetSuc();
  360. return true;
  361. },
  362. onSocketRoomExRes: function (data, size) {
  363. this.stop();
  364. var Res = new CMD_GP_C_GetRoomExRes();
  365. gCByte.Bytes2Str(Res, data);
  366. if (Res.wRoomCnt > 0) {
  367. Res.RoomInfo = new Array();
  368. for (var i = 0; i < Res.wRoomCnt; i++) Res.RoomInfo[i] = new ServerRoomInfo();
  369. }
  370. if (size != gCByte.Bytes2Str(Res, data)) return false;
  371. this.mIGPLoginMissionSink.OnGetRoomExRes(Res);
  372. return true;
  373. },
  374. onSocketOwnRoomList: function (data, size) {
  375. this.stop();
  376. var Res = new CMD_GP_S_OwnRoomInfo();
  377. if (size != gCByte.Bytes2Str(Res, data)) return false;
  378. this.mIGPLoginMissionSink.onOwnRoomList(Res);
  379. return true;
  380. },
  381. onSocketResMsg: function (data, size) {
  382. this.stop();
  383. var Res = new CMD_GP_S_Msg();
  384. if (size != gCByte.Bytes2Str(Res, data)) return false;
  385. this.mIGPLoginMissionSink.OnMsgRes(Res.szMsg);
  386. return true;
  387. },
  388. //种类信息
  389. onSocketListType: function (data, size) {
  390. var Obj = new Object();
  391. Obj.Arr = new Array();
  392. Obj.Arr[0] = new tagGameType();
  393. var itemSize = gCByte.GetSize(Obj.Arr[0]);
  394. //效验参数
  395. if (size % itemSize != 0 || size == 0) return false;
  396. //变量定义
  397. var iItemCount = size / itemSize;
  398. for (var i = 1; i < iItemCount; i++) {
  399. Obj.Arr[i] = new tagGameType();
  400. }
  401. gCByte.Str2Bytes(Obj, data);
  402. //更新数据
  403. for (var i = 0; i < iItemCount; i++) {
  404. g_ServerListData.InsertGameType(Obj.Arr[i]);
  405. }
  406. console.log("服务列表-1", g_ServerListData);
  407. return true;
  408. },
  409. //类型信息
  410. onSocketListKind: function (data, size) {
  411. return true;
  412. },
  413. //房间列表
  414. onSocketListServer: function (data, size) {
  415. var Obj = new Object();
  416. Obj.Arr = new Array();
  417. Obj.Arr[0] = new tagGameServer();
  418. var strsize = gCByte.GetSize(Obj.Arr[0]);
  419. if (size % strsize != 0) return false;
  420. //变量定义
  421. var iItemCount = size / strsize;
  422. if (iItemCount == 0) return true;
  423. //更新数据
  424. for (var i = 1; i < iItemCount; i++) {
  425. Obj.Arr[i] = new tagGameServer();
  426. }
  427. gCByte.Bytes2Str(Obj, data);
  428. console.log("服务列表-2-0", Obj);
  429. for (var i in Obj.Arr) {
  430. g_ServerListData.InsertGameServer(Obj.Arr[i]);//
  431. }
  432. console.log("服务列表-2", g_ServerListData);
  433. return true;
  434. },
  435. //比赛列表
  436. onSocketListMatch: function (data, size) {
  437. var pGameMatch = new tagGameMatch();
  438. //效验参数
  439. if (size % pGameMatch.getSize() != 0) return false;
  440. //变量定义
  441. var wItemCount = size / pGameMatch.getSize();
  442. //获取对象
  443. var pGameServerItem = null;
  444. //更新数据
  445. for (var i = 0; i < wItemCount; i++) {
  446. pGameMatch.wServerID = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_wServerID);
  447. pGameMatch.dwMatchID = gCByte.r4(data, pGameMatch.getSize() * i + pGameMatch.index_dwMatchID);
  448. pGameMatch.dwMatchNO = gCByte.r4(data, pGameMatch.getSize() * i + pGameMatch.index_dwMatchNO);
  449. pGameMatch.cbMatchType = gCByte.r1(data, pGameMatch.getSize() * i + pGameMatch.index_cbMatchType);
  450. pGameMatch.szMatchName = gCByte.rStr(data, pGameMatch.getSize() * i + pGameMatch.index_szMatchName);
  451. pGameMatch.cbMemberOrder = gCByte.r1(data, pGameMatch.getSize() * i + pGameMatch.index_cbMemberOrder);
  452. pGameMatch.cbMatchFeeType = gCByte.r1(data, pGameMatch.getSize() * i + pGameMatch.index_cbMatchFeeType);
  453. pGameMatch.lMatchFee = gCByte.r8(data, pGameMatch.getSize() * i + pGameMatch.index_lMatchFee);
  454. pGameMatch.wStartUserCount = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_wStartUserCount);
  455. pGameMatch.wMatchPlayCount = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_wMatchPlayCount);
  456. pGameMatch.wRewardCount = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_wRewardCount);
  457. pGameMatch.MatchStartTime.wYear = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wYear);
  458. pGameMatch.MatchStartTime.wMonth = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wMonth);
  459. pGameMatch.MatchStartTime.wDayOfWeek = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wDayOfWeek);
  460. pGameMatch.MatchStartTime.wDay = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wDay);
  461. pGameMatch.MatchStartTime.wHour = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wHour);
  462. pGameMatch.MatchStartTime.wMinute = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wMinute);
  463. pGameMatch.MatchStartTime.wSecond = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wSecond);
  464. pGameMatch.MatchStartTime.wMilliseconds = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchStartTime + pGameMatch.MatchStartTime.index_wMilliseconds);
  465. pGameMatch.MatchEndTime.wYear = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wYear);
  466. pGameMatch.MatchEndTime.wMonth = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wMonth);
  467. pGameMatch.MatchEndTime.wDayOfWeek = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wDayOfWeek);
  468. pGameMatch.MatchEndTime.wDay = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wDay);
  469. pGameMatch.MatchEndTime.wHour = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wHour);
  470. pGameMatch.MatchEndTime.wMinute = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wMinute);
  471. pGameMatch.MatchEndTime.wSecond = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wSecond);
  472. pGameMatch.MatchEndTime.wMilliseconds = gCByte.r2(data, pGameMatch.getSize() * i + pGameMatch.index_MatchEndTime + pGameMatch.MatchEndTime.index_wMilliseconds);
  473. pGameServerItem = g_ServerListData.SearchGameServer(pGameMatch.wServerID);
  474. if (pGameServerItem != null) {
  475. pGameServerItem.m_GameMatch.wServerID = pGameMatch.wServerID;
  476. pGameServerItem.m_GameMatch.dwMatchID = pGameMatch.dwMatchID;
  477. pGameServerItem.m_GameMatch.dwMatchNO = pGameMatch.dwMatchNO;
  478. pGameServerItem.m_GameMatch.cbMatchType = pGameMatch.cbMatchType;
  479. pGameServerItem.m_GameMatch.szMatchName = pGameMatch.szMatchName;
  480. pGameServerItem.m_GameMatch.cbMemberOrder = pGameMatch.cbMemberOrder;
  481. pGameServerItem.m_GameMatch.cbMatchFeeType = pGameMatch.cbMatchFeeType;
  482. pGameServerItem.m_GameMatch.lMatchFee = pGameMatch.lMatchFee;
  483. pGameServerItem.m_GameMatch.wStartUserCount = pGameMatch.wStartUserCount;
  484. pGameServerItem.m_GameMatch.wMatchPlayCount = pGameMatch.wMatchPlayCount;
  485. pGameServerItem.m_GameMatch.wRewardCount = pGameMatch.wRewardCount;
  486. pGameServerItem.m_GameMatch.MatchStartTime.wYear = pGameMatch.MatchStartTime.wYear;
  487. pGameServerItem.m_GameMatch.MatchStartTime.wMonth = pGameMatch.MatchStartTime.wMonth;
  488. pGameServerItem.m_GameMatch.MatchStartTime.wDayOfWeek = pGameMatch.MatchStartTime.wDayOfWeek;
  489. pGameServerItem.m_GameMatch.MatchStartTime.wDay = pGameMatch.MatchStartTime.wDay;
  490. pGameServerItem.m_GameMatch.MatchStartTime.wHour = pGameMatch.MatchStartTime.wHour;
  491. pGameServerItem.m_GameMatch.MatchStartTime.wMinute = pGameMatch.MatchStartTime.wMinute;
  492. pGameServerItem.m_GameMatch.MatchStartTime.wSecond = pGameMatch.MatchStartTime.wSecond;
  493. pGameServerItem.m_GameMatch.MatchStartTime.wMilliseconds = pGameMatch.MatchStartTime.wMilliseconds;
  494. pGameServerItem.m_GameMatch.MatchEndTime.wYear = pGameMatch.MatchEndTime.wYear;
  495. pGameServerItem.m_GameMatch.MatchEndTime.wMonth = pGameMatch.MatchEndTime.wMonth;
  496. pGameServerItem.m_GameMatch.MatchEndTime.wDayOfWeek = pGameMatch.MatchEndTime.wDayOfWeek;
  497. pGameServerItem.m_GameMatch.MatchEndTime.wDay = pGameMatch.MatchEndTime.wDay;
  498. pGameServerItem.m_GameMatch.MatchEndTime.wHour = pGameMatch.MatchEndTime.wHour;
  499. pGameServerItem.m_GameMatch.MatchEndTime.wMinute = pGameMatch.MatchEndTime.wMinute;
  500. pGameServerItem.m_GameMatch.MatchEndTime.wSecond = pGameMatch.MatchEndTime.wSecond;
  501. pGameServerItem.m_GameMatch.MatchEndTime.wMilliseconds = pGameMatch.MatchEndTime.wMilliseconds;
  502. }
  503. }
  504. return true;
  505. },
  506. //房间完成
  507. onSocketServerFinish: function (data, size) {
  508. if (this.mIGPLoginMissionSink)
  509. this.mIGPLoginMissionSink.onGetServerListFinish();
  510. return true;
  511. },
  512. // 列表完成
  513. onSocketListFinish: function (data, size) {
  514. if (this.mIGPLoginMissionSink)
  515. this.mIGPLoginMissionSink.onGetServerListFinish();
  516. return true;
  517. },
  518. });