SocketMission.js 24 KB

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