SocketMission.js 23 KB

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