ClubClientKernel.js 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927
  1. ClubClientKernel = cc.Class({
  2. extends: cc.Component,
  3. ctor: function () {
  4. this._ClubSink = null;
  5. this._ClubRoomSink = null;
  6. this._LobbySink = null;
  7. this._clubID = 0;
  8. this._InitiateClose = false;
  9. this._RelinkCuount = 0;
  10. this._Sink = null;
  11. //this.mHeartStatTime = 0;
  12. //this.mServerHeartTime = 0;
  13. this._inviteInfor = [];
  14. this._inviteUser = {};
  15. this._OnlineUser = {};
  16. this._ClubInfo = [];
  17. },
  18. connect: function () {
  19. if (window.LOG_DEBUG) console.log(" !-------------- ClubClientKernel connect")
  20. //创建组件
  21. this._SocketEngine = new cc.CSocketEngine(this);
  22. this._SocketEngine.connect(window.SOCKET_IP, window.CLUB_PORT);
  23. },
  24. shutdown: function () {
  25. if (!this._SocketEngine) return;
  26. this._inviteInfor = [];
  27. this._inviteUser = {};
  28. this._OnlineUser = {};
  29. this._InitiateClose = true;
  30. this._ClubSink = null;
  31. this._ClubRoomSink = null;
  32. this._SocketEngine.closesocket();
  33. this._SocketEngine = null;
  34. g_GlobalClubInfo.onClear();
  35. this.unschedule(this.NetworkHeartbeat);
  36. },
  37. onSetClubSink: function (ClubSink, ClubRoomSink) {
  38. if (window.LOG_DEBUG) console.log(" !-------------- ClubClientKernel onSetClubSink")
  39. this._ClubSink = ClubSink;
  40. this._ClubRoomSink = ClubRoomSink;
  41. },
  42. onSetLobbySink: function (sink) {
  43. this._LobbySink = sink;
  44. },
  45. onEventTCPSocketLink: function (event) {
  46. g_CurScene.StopLoading();
  47. this._isAlive = true;
  48. this._InitiateClose = false;
  49. this._RelinkCuount = 0;
  50. this.onSendRegisterUser();
  51. //断线重连 判断当前页,为俱乐部,发送进入俱乐部消息
  52. if (g_Lobby && g_Lobby['m_JsClubDLG'] && g_Lobby['m_JsClubDLG'].node.active) {
  53. this.onSendEnetrOrLeave(true, g_ShowClubInfo.dwClubID, g_ShowClubInfo.cbClubLevel);
  54. }
  55. if (cc.share.IsH5_WX() && g_Lobby) {
  56. g_Lobby.OnQueryParam();
  57. }
  58. //this.mServerHeartTime = new Date().getTime();
  59. if (window.LOG_DEBUG) console.log(" !-------------- ClubClientKernel onEventTCPSocketLink")
  60. this.unschedule(this.NetworkHeartbeat);
  61. this.schedule(this.NetworkHeartbeat, 5);
  62. return true;
  63. },
  64. //网络心跳
  65. NetworkHeartbeat: function (dt) {
  66. //if (window.LOG_DEBUG) console.log(" !-------------- ClubClientKernel NetworkHeartbeat---1");
  67. if (!this._isAlive) return;
  68. // if (window.LOG_DEBUG) console.log(" !-------------- ClubClientKernel NetworkHeartbeat---2");
  69. //this.mHeartStatTime = new Date().getTime(); //服务器心跳时间
  70. if (this._SocketEngine) this._SocketEngine.sendClass(MDM_KN_COMMAND, SUB_KN_CLIENT_HEART, null);
  71. //this.onSendSocketClass(MDM_KN_COMMAND, SUB_KN_CLIENT_HEART);
  72. },
  73. onEventLinkErr: function () {
  74. if (this._InitiateClose == false) {
  75. if (this._RelinkCuount > 3) {
  76. g_CurScene.ShowAlert('與伺服器斷開連接!', Alert_Yes, function () {
  77. window.gClubClientKernel.shutdown();
  78. ChangeScene('Launch');
  79. }.bind(this))
  80. return;
  81. }
  82. this.connect();
  83. }
  84. if (window.LOG_DEBUG) console.log(" !-------------- ClubClientKernel onEventLinkErr")
  85. return true;
  86. },
  87. OnErr: function () {
  88. this._isAlive = false;
  89. if (this._InitiateClose == false) {
  90. if (this._RelinkCuount == 0) g_CurScene.ShowLoading();
  91. this._RelinkCuount++;
  92. if (this._RelinkCuount % 7 >= 6) {
  93. g_CurScene.StopLoading();
  94. g_CurScene.ShowAlert('與伺服器斷開連接,請重新登入!', Alert_Yes, function () {
  95. window.gClubClientKernel.shutdown();
  96. var kernel = window.gClientKernel.get();
  97. kernel && kernel.mServerItem.IntermitConnect(true);
  98. kernel && kernel.destory();
  99. ChangeScene('Launch');
  100. }.bind(this))
  101. this._RelinkCuount = 0;
  102. this.unschedule(this.NetworkHeartbeat);
  103. return;
  104. }
  105. this._SocketEngine.closesocket();
  106. this.connect();
  107. }
  108. if (window.LOG_DEBUG) console.log(" !-------------- ClubClientKernel OnErr")
  109. return true;
  110. },
  111. onEventTCPSocketShut: function () {
  112. this._isAlive = false;
  113. if (this._InitiateClose == false) {
  114. this._RelinkCuount++;
  115. if (this._RelinkCuount > 3) {
  116. g_CurScene.ShowAlert('與伺服器斷開連接!', Alert_Yes, function () {
  117. window.gClubClientKernel.shutdown();
  118. ChangeScene('Launch');
  119. }.bind(this))
  120. return;
  121. }
  122. this.connect();
  123. }
  124. if (window.LOG_DEBUG) console.log(" !-------------- ClubClientKernel onEventTCPSocketShut")
  125. },
  126. onEventTCPSocketRead: function (main, sub, data, size) {
  127. // if (window.LOG_DEBUG) console.log("Club Client kernel main:" + main + " sub:" + sub);
  128. switch (main) {
  129. case MDM_GC_CLUB: return this.onEventClubMsgHandle(sub, data, size);
  130. case MDM_GP_GET_SERVER: return this.onEventQueryMsgHandle(sub, data, size);
  131. case MDM_GC_PUSH: return this.onEventPushMsgHandle(sub, data, size);
  132. }
  133. },
  134. //心跳消息
  135. OnSocketHeart: function () {
  136. //if (window.LOG_DEBUG) console.log(" !-------------- ClubClientKernel OnSocketHeart")
  137. //服务器端返回的心跳
  138. this.mServerHeartTime = new Date().getTime();
  139. return true;
  140. },
  141. onEventClubMsgHandle: function (sub, data, size) {
  142. switch (sub) {
  143. case SUB_CS_S_FORCED_OFFLINE: return this.onForcedOffline(data, size);
  144. case SUB_CS_S_UPDATE_CARD: return this.onUpdateCard(data, size);
  145. case SUB_CS_S_UPDATE_SCORE: return this.onUpdateScore(data, size);
  146. case SUB_CS_S_USER_INVITE: return this.onInviteUser(data, size);
  147. case SUB_CS_S_ANDROID_LIST: return this.onAndroidList(data, size);
  148. case SUB_CS_S_ANDROID_LIST_FINISH: return this.onAndroidListFinish();
  149. case SUB_CS_S_ANDROID_CREAT_RES: return this.onCreatAndroidRes();
  150. case SUB_CS_S_ANDROID_DEL_RES: return this.onDelAndroidRes();
  151. case SUB_CS_S_OPERATE_FAILURE: return this.onOperateFailure(data, size);
  152. }
  153. return true;
  154. },
  155. onEventQueryMsgHandle: function (sub, data, size) {
  156. if (window.LOG_NET_DATA) console.log("onSocketQueryServer " + sub)
  157. switch (sub) {
  158. //房间操作失败
  159. case SUB_GP_FAILED: return this.onSocketQueryFailed(data, size);
  160. // 查询结果
  161. case SUB_GP_QUERYRES: return this.onSocketQueryRes(data, size);
  162. //创建房间结果
  163. case SUB_GP_CREATE_SUCCESS: return this.onSocketCreatRoomRes(data, size);
  164. case SUB_GP_JOIN_ROOM_RES: return this.onSocketJoinRoomRes(data, size);
  165. //更新俱乐部房间列表
  166. case SUB_GP_CLUB_ROOM: return this.onSocketUpdateClubRoom(data, size);
  167. case SUB_GP_CLUB_REVENUE_INFO: return this.onSocketClubRevenueInfo(data, size);
  168. case SUB_GP_CLUB_USER_LIST: return this.onSocketUpdateUserList(data, size);
  169. case SUB_GP_CLUB_DISS_SUC: return this.onSocketDisClubRoom(data, size);
  170. case SUB_GP_ROOMCARD: return this.onSocketGetUsingCard(data, size);
  171. case SUB_GP_CLUB_SET_SUC: return this.onSocketClubSetSuc(data, size);
  172. case SUB_GP_GET_ROOMEX_RES: return this.onSocketRoomExRes(data, size);
  173. case SUB_GP_OWN_ROOM_INFO: return this.onSocketOwnRoomList(data, size);
  174. case SUB_GP_CREATE_CLUB_RES: return this.onSocketCreateClubRes(data, size);
  175. case SUB_GP_JOIN_CLUB_RES: return this.onSocketJoinClubRes(data, size);
  176. case SUB_GP_EXIT_CLUB_RES: return this.onSocketExitClubRes(data, size);
  177. case SUB_GP_ONLINE_USER_RES: return this.onSocketOnlineUserRes(data, size);
  178. case SUB_GP_CREAT_ANDROID_RES: return this.onSocketAndroidCreatRes(data, size);
  179. case SUB_GP_DELETE_ANDROID_RES: return this.onSocketDelAndroidRes(data, size);
  180. case SUB_GP_CREAT_ANDROID_GROUP_RES: return this.onSocketCreatAndroidGroupRes(data, size);
  181. case SUB_GP_DELETE_ANDROID_GROUP_RES: return this.onSocketDelAndroidGroupRes(data, size);
  182. case SUB_GP_GET_ANDROID_GROUP_LIST: return this.onSocketAndroidGroupList(data, size);
  183. case SUB_GP_GET_ANDROID_GROUP_LIST_END: return this.onSocketAndroidGroupListEnd(data, size);
  184. case SUB_GP_GET_ANDROID_CNT_INFO: return this.onSocketAndroidCntInfo(data, size);
  185. case SUB_GP_ONLINE_USER_RES_FINISH: return this.onSocketOnlineUserResFinish(data, size);
  186. case SUB_GP_RES_MSG: return this.onSocketResMsg(data, size);
  187. //case SUB_GP_CREATE_AGENT_SUC: return this.onSocketCreateAgentSuc();
  188. //case SUB_GP_SCAN_ROOM_INFO: return this.onSocketScanRoomInfo(data, size);
  189. }
  190. return true;
  191. },
  192. onEventPushMsgHandle: function (sub, data, size) {
  193. if (window.LOG_NET_DATA) console.log("onEventPushMsgHandle " + sub)
  194. switch (sub) {
  195. case SUB_GP_S_CLUB_LIST_PUSH: return this.onSocketClubList(data, size);
  196. case SUB_GP_S_APPLY_PUSH: return this.onSocketUserApply(data, size);
  197. case SUB_GP_S_USER_LEVEL_PUSH: return this.onSocketSetMemLevel(data, size);
  198. case SUB_GP_S_EXIT_CLUB_PUSH: return this.onSocketDissClub(data, size);
  199. case SUB_GP_S_CLUB_INFO_PUSH: return this.onSocketClubInfo(data, size);
  200. case SUB_GP_S_ROOM_INFOR: return this.onSocketRoomInfor(data, size);
  201. case SUB_GP_S_DIS_ROOM: return this.onSocketDisRoom(data, size);
  202. case SUB_GP_S_USER_GAMESTATUS: return this.onSocketUserGameStatus(data, size);
  203. case SUB_GP_S_CHANGE_CLUB_INFO: return this.onSocketChangeClubInfo(data, size);
  204. case SUB_GP_S_MODIFY_ROOM_INFOR: return this.onSocketModifyTableRule(data, size);
  205. case SUB_GP_S_ONLINE_USER: return this.onSocketOnlineUser(data, size);
  206. case SUB_GP_S_OFFLINE_USER: return this.onSocketOfflineUser(data, size);
  207. case SUB_GP_S_CLUB_USER_SOCRE: return this.onSocketClubUserScore(data, size);
  208. case SUB_GP_S_CLUB_ROOM_INFO: return this.onSocketClubRoomInfo(data, size);
  209. case SUB_GP_S_KICK_USER_RES: return this.onSocketKickUserRes(data, size);
  210. }
  211. return true;
  212. },
  213. onSendSocketData: function (main, sub, data, size) {
  214. this._SocketEngine.send(main, sub, data, size);
  215. },
  216. onSendSocketClass: function (main, sub, Obj) {
  217. if (this._isAlive == false) {
  218. if (window.LOG_DEBUG) console.log("socket shutdown please reconnect scoket");
  219. return;
  220. }
  221. if (this._SocketEngine == null) {
  222. this.connect();
  223. return;
  224. }
  225. if (this._SocketEngine) this._SocketEngine.sendClass(main, sub, Obj);
  226. },
  227. onForcedOffline: function (data, size) {
  228. var obj = new CMD_CS_S_OperateFailure();
  229. gCByte.Bytes2Str(obj, data);
  230. //console.log(obj.szDescribeString)
  231. g_CurScene.ShowAlert(obj.szDescribeString, Alert_Yes, function () {
  232. gReLogin = false;
  233. gClientKernel.destory();
  234. window.gClubClientKernel.shutdown();
  235. ChangeScene('Launch');
  236. }.bind(this))
  237. return true;
  238. },
  239. onUpdateScore: function (data, size) {
  240. var obj = new CMD_CS_S_UpdateScore();
  241. if (gCByte.Bytes2Str(obj, data) != size) return false;
  242. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  243. if (pGlobalUserData.dwUserID != obj.dwUserID) {
  244. g_Lobby && g_Lobby.ShowPrefabDLG('ClubUpdateScore', g_Lobby.node, function (Js) {
  245. Js.OnShowClubUser(obj.dwUserID, obj.lScore, obj.cbType);
  246. }.bind(this));
  247. }
  248. if (this._ClubSink) {
  249. this._ClubSink.OnUpdateScore(obj);
  250. }
  251. if (this._Sink) this._Sink.UpdateScore();
  252. this._Sink = null;
  253. return true;
  254. },
  255. onInviteUser: function (data, size) {
  256. var obj = new CMD_CS_S_InviteUser();
  257. if (gCByte.Bytes2Str(obj, data) != size) return false;
  258. obj.time = new Date().getTime();
  259. this._inviteInfor.push(obj);
  260. if (window.LOG_DEBUG) console.log(obj);
  261. //判断提示是否显示
  262. if (g_CurScene && g_CurScene['m_JsClubInviteAlter'] && g_CurScene['m_JsClubInviteAlter'].node.active) return;
  263. g_CurScene.ShowPrefabDLG('ClubInviteAlter', null, function (Js) {
  264. Js.OnSetInviteInfor(this._inviteInfor.shift());
  265. }.bind(this));
  266. return true;
  267. },
  268. onAndroidList: function (data, size) {
  269. var obj = new CMD_CS_S_AndroidInfo();
  270. if (gCByte.Bytes2Str(obj, data) != size) return false;
  271. if (this._Sink) this._Sink.onAndroidListRes(obj);
  272. return true;
  273. },
  274. onAndroidListFinish: function (data, size) {
  275. if (this._Sink) this._Sink.onAndroidListResFinish();
  276. this._Sink = null;
  277. return true;
  278. },
  279. onCreatAndroidRes: function () {
  280. g_Lobby.ShowTips('機器人創建成功');
  281. },
  282. onDelAndroidRes: function () {
  283. g_Lobby.ShowTips('機器人刪除成功');
  284. },
  285. onUpdateCard: function (data, size) {
  286. var obj = new CMD_CS_S_UpdateRoomCard();
  287. if (gCByte.Bytes2Str(obj, data) != size) return false;
  288. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  289. pGlobalUserData.llUserIngot -= obj.lRoomCard;
  290. if (this._ClubSink) {
  291. this._ClubSink.OnUpdateCard(obj);
  292. }
  293. if (g_Lobby) {
  294. g_Lobby.OnUpdateCard(obj);
  295. }
  296. return true;
  297. },
  298. onOperateFailure: function (data, size) {
  299. var obj = new CMD_CS_S_OperateFailure();
  300. gCByte.Bytes2Str(obj, data);
  301. g_CurScene.ShowAlert(obj.szDescribeString);
  302. return true;
  303. },
  304. onSocketQueryFailed: function (data, size) {
  305. var Res = new CMD_GP_S_Failed();
  306. if (size != gCByte.Bytes2Str(Res, data)) return false;
  307. if (this._Sink) this._Sink.OnQueryFailed(Res);
  308. this._Sink = null;
  309. return true;
  310. },
  311. onSocketQueryRes: function (data, size) {
  312. var Res = new CMD_GP_S_ReturnServer();
  313. if (size != gCByte.Bytes2Str(Res, data)) return false;
  314. if (this._Sink) this._Sink.OnQueryServerRes(Res);
  315. return true;
  316. },
  317. onSocketCreatRoomRes: function (data, size) {
  318. var Res = new CMD_GP_S_CreatSuccess();
  319. if (size != gCByte.Bytes2Str(Res, data)) return false;
  320. if (this._Sink) this._Sink.OnCreatRoomRes(Res);
  321. this._Sink = null;
  322. return true;
  323. },
  324. onSocketJoinRoomRes: function (data, size) {
  325. var Res = new CMD_GP_S_ReturnRoom();
  326. if (size != gCByte.Bytes2Str(Res, data)) return false;
  327. if (this._Sink) this._Sink.OnQueryRoomRes(Res);
  328. this._Sink = null;
  329. return true;
  330. },
  331. onSocketUpdateClubRoom: function (data, size) {
  332. var Res = new CMD_GP_S_ClubRoomInfo();
  333. gCByte.Bytes2Str(Res, data);
  334. if (Res.wRoomCnt > 0) {
  335. Res.RoomInfo = new Array();
  336. for (var i = 0; i < Res.wRoomCnt; i++) {
  337. Res.RoomInfo[i] = new ServerRoomInfo();
  338. }
  339. if (size != gCByte.Bytes2Str(Res, data)) return false;
  340. }
  341. if (this._ClubRoomSink) this._ClubRoomSink.LoadRoomInfo(Res);
  342. return true;
  343. },
  344. onSocketUpdateUserList: function (data, size) {
  345. //console.log("!---------------------onSocketUpdateUserList");
  346. var Res = new CMD_GP_S_ClubUserInfo();
  347. var len = gCByte.Bytes2Str(Res, data);
  348. var s1 = gCByte.GetSize(new ServerRoomUserInfo());
  349. Res.UserInfo = {};
  350. for (var i = 0; i < Res.wPlayerCnt; i++) {
  351. var tempObj = new ServerRoomUserInfo();
  352. gCByte.Bytes2Str(tempObj, data, len + s1 * i);
  353. Res.UserInfo[`${tempObj.dwUserID}`] = tempObj;
  354. }
  355. if (this._ClubRoomSink) this._ClubRoomSink.SetRoomUserInfo(Res);
  356. return true;
  357. },
  358. onSocketResMsg: function (data, size) {
  359. var Res = new CMD_GP_S_Msg();
  360. if (size != gCByte.Bytes2Str(Res, data)) return false;
  361. if (this._Sink && this._Sink.OnMsgRes) this._Sink.OnMsgRes(Res.szMsg);
  362. else if (g_Lobby) g_Lobby.ShowTips(Res.szMsg);
  363. this._Sink = null;
  364. return true;
  365. },
  366. onSocketCreateClubRes: function (data, size) {
  367. var Res = new CMD_GP_UserClubInfo();
  368. gCByte.Bytes2Str(Res, data);
  369. g_GlobalClubInfo.onInsertClubInfo(Res);
  370. if (g_Lobby) g_Lobby.OnChangeClub(Res);
  371. if (g_Lobby) {
  372. g_Lobby.ShowTips('創建成功');
  373. g_Lobby['m_JsClubFreeDLG'].ResetView();
  374. g_Lobby['m_JsClubFreeDLG'].node.active = false;
  375. g_Lobby.OnBtRefeshRoomCard();
  376. }
  377. return true;
  378. },
  379. onSocketJoinClubRes: function (data, size) {
  380. var Res = new CMD_CS_S_JoinClubRes();
  381. if (gCByte.Bytes2Str(Res, data) != size) return false;
  382. this._Sink && this._Sink.JoinClubRes(Res);
  383. this._Sink = null;
  384. return true;
  385. },
  386. onSocketExitClubRes: function (data, size) {
  387. var Res = new CMD_CS_S_EixtClubRes();
  388. if (gCByte.Bytes2Str(Res, data) != size) return false;
  389. g_GlobalClubInfo.onDeleteClubInfo(Res.dwClubID);
  390. if (g_Lobby) {
  391. g_Lobby['m_JsClubDLG'].HideView();
  392. g_Lobby.ShowTips('退出成功');
  393. }
  394. return true;
  395. },
  396. onSocketOnlineUserRes: function (data, size) {
  397. var ResSize = gCByte.GetSize(new CMD_CS_S_OnlineUserStatus());
  398. if (size % ResSize != 0) return false;
  399. var Cnt = size / ResSize;
  400. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  401. var tempArr = [];
  402. for (var i = 0; i < Cnt; i++) {
  403. var Res = new CMD_CS_S_OnlineUserStatus();
  404. gCByte.Bytes2Str(Res, data, ResSize * i);
  405. if (Res.dwUserID == pGlobalUserData.dwUserID) continue;
  406. if (this._inviteUser[`${Res.dwUserID}`]) {
  407. this._inviteUser[`${Res.dwUserID}`].cbUserStatus = Res.cbUserStatus;
  408. this._inviteUser[`${Res.dwUserID}`].cbInvite = Res.cbInvite;
  409. } else {
  410. this._inviteUser[`${Res.dwUserID}`] = Res;
  411. Res.inviteTime = 0;
  412. }
  413. tempArr.push(Res);
  414. }
  415. for (var i in this._inviteUser) {
  416. var vIn = false;
  417. for (var j in tempArr) {
  418. if (tempArr[j].dwUserID == i) vIn = true;
  419. }
  420. if (vIn == false) delete this._inviteUser[i];
  421. }
  422. return true;
  423. },
  424. onSocketOnlineUserResFinish: function (data, size) {
  425. this._Sink && this._Sink.onOnlineUserRes(this._inviteUser);
  426. this._Sink = null;
  427. return true;
  428. },
  429. onSocketAndroidCreatRes: function (data, size) {
  430. var Res = new CMD_CS_S_OperateAndroidGroupRes();
  431. if (gCByte.Bytes2Str(Res, data) != size) {
  432. return true;
  433. }
  434. if (this._Sink) this._Sink.onCreatAndroidRes(Res.cbResCode);
  435. //this._Sink = null;
  436. return true;
  437. },
  438. onSocketDelAndroidRes: function (data, size) {
  439. var Res = new CMD_CS_S_OperateAndroidGroupRes();
  440. if (gCByte.Bytes2Str(Res, data) != size) {
  441. return true;
  442. }
  443. if (this._Sink) this._Sink.onDelAndroidRes(Res.cbResCode);
  444. this._Sink = null;
  445. return true;
  446. },
  447. onSocketCreatAndroidGroupRes: function (data, size) {
  448. var Res = new CMD_CS_S_OperateAndroidGroupRes();
  449. if (gCByte.Bytes2Str(Res, data) != size) {
  450. return true;
  451. }
  452. if (this._Sink) this._Sink.onCreatRes(Res.cbResCode);
  453. this._Sink = null;
  454. return true;
  455. },
  456. onSocketDelAndroidGroupRes: function (data, size) {
  457. var Res = new CMD_CS_S_OperateAndroidGroupRes();
  458. if (gCByte.Bytes2Str(Res, data) != size) {
  459. return true;
  460. }
  461. if (this._Sink) this._Sink.onDelAndroidGroupRes(Res.cbResCode);
  462. this._Sink = null;
  463. return true;
  464. },
  465. onSocketAndroidGroupList: function (data, size) {
  466. var Res = new CMD_CS_S_AndroidGroupInfo();
  467. if (gCByte.Bytes2Str(Res, data) != size) {
  468. return true;
  469. }
  470. if (this._Sink) this._Sink.onAndroidGroupList(Res);
  471. return true;
  472. },
  473. onSocketAndroidGroupListEnd: function () {
  474. if (this._Sink) this._Sink.onAndroidGroupListEnd();
  475. this._Sink = null;
  476. return true;
  477. },
  478. onSocketAndroidCntInfo: function (data, size) {
  479. var Res = new CMD_CS_S_GetAndroidCnt();
  480. if (gCByte.Bytes2Str(Res, data) != size) {
  481. return true;
  482. }
  483. if (this._Sink) this._Sink.onAndroidCntInfo(Res);
  484. this._Sink = null;
  485. return true;
  486. },
  487. /////////////////////////////////////////////////////////////////////////////////////////
  488. //推送
  489. onSocketClubList: function (data, size) {
  490. var Res = new CMD_GP_UserClubInfo();
  491. var ResSize = gCByte.GetSize(Res);
  492. if ((size % ResSize) != 0) return false;
  493. var cnt = size / ResSize;
  494. for (var i = 0; i < cnt; i++) {
  495. var tempObj = new CMD_GP_UserClubInfo();
  496. gCByte.Bytes2Str(tempObj, data, i * ResSize);
  497. g_GlobalClubInfo.onInsertClubInfo(tempObj);
  498. }
  499. return true;
  500. },
  501. onSocketUserApply: function (data, size) {
  502. if (g_Lobby && g_Lobby['m_JsClubDLG']) {
  503. g_Lobby['m_JsClubDLG'].OnShowRedPoint(true);
  504. }
  505. return true;
  506. },
  507. onSocketDissClub: function (data, size) {
  508. var Res = new CMD_GP_S_DisClub();
  509. if (gCByte.Bytes2Str(Res, data) != size) return false;
  510. g_GlobalClubInfo.onDeleteClubInfo(Res.dwClubID);
  511. if (g_Lobby && g_Lobby['m_JsClubFreeDLG'] && g_Lobby['m_JsClubFreeDLG'].node.active) {
  512. g_Lobby['m_JsClubFreeDLG'].ShowKind();
  513. }
  514. if (g_Lobby && g_Lobby['m_JsClubDLG'] && g_Lobby['m_JsClubDLG'].m_SelClubInfo.dwClubID == Res.dwClubID) {
  515. g_Lobby['m_JsClubDLG'].node.active = false;
  516. g_Lobby.ShowTips('俱樂部已解散');
  517. }
  518. return true;
  519. },
  520. onSocketClubInfo: function (data, size) {
  521. var Res = new CMD_GP_UserClubInfo();
  522. if (gCByte.Bytes2Str(Res, data) != size) return false;
  523. g_GlobalClubInfo.onInsertClubInfo(Res);
  524. if (g_Lobby && g_Lobby['m_JsClubFreeDLG'] && g_Lobby['m_JsClubFreeDLG'].node.active) {
  525. g_Lobby['m_JsClubFreeDLG'].ShowKind();
  526. }
  527. return true;
  528. },
  529. onSocketSetMemLevel: function (data, size) {
  530. var Res = new CMD_CS_S_SetMemLevel();
  531. if (gCByte.Bytes2Str(Res, data) != size) return false;
  532. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  533. if (Res.dwUserID != pGlobalUserData.dwUserID) {
  534. if (g_Lobby && g_Lobby['m_JsClubDLG'] && g_Lobby['m_JsClubDLG']['m_JsClubUserList']) {
  535. g_Lobby['m_JsClubDLG']['m_JsClubUserList'].onUpdateUserList();
  536. }
  537. if (Res.cbOldLevel < Res.cbCurLevel && Res.cbCurLevel == 6) {
  538. g_Lobby && g_Lobby.ShowTips('合夥人添加成功');
  539. if (g_Lobby != null && g_Lobby['m_JsClubDLG'] != null && g_Lobby['m_JsClubDLG']['m_JsClubPartner'] != null) {
  540. g_Lobby['m_JsClubDLG']['m_JsClubPartner'].m_bNeedUpdate = true;
  541. }
  542. }
  543. if (Res.cbOldLevel == 6 && Res.cbCurLevel == 3) {
  544. g_Lobby && g_Lobby.ShowTips('合夥人删除成功');
  545. if (g_Lobby != null && g_Lobby['m_JsClubDLG'] != null && g_Lobby['m_JsClubDLG']['m_JsClubPartner'] != null) {
  546. g_Lobby['m_JsClubDLG']['m_JsClubPartner'].m_bNeedUpdate = true;
  547. }
  548. }
  549. if (Res.cbOldLevel == 2 && Res.cbCurLevel == 3) {
  550. g_Lobby && g_Lobby.ShowTips('操作成功');
  551. g_Lobby && g_Lobby['m_JsClubDLG'] && g_Lobby['m_JsClubDLG'].UpdateUserList();
  552. }
  553. if (Res.cbOldLevel == 0 && Res.cbCurLevel == 3) {
  554. g_Lobby && g_Lobby.ShowTips('邀請玩家成功');
  555. }
  556. } else {
  557. //更新等级
  558. g_GlobalClubInfo.onUpdateClubLevel(Res.dwClubID, Res.cbCurLevel);
  559. if (g_Table != null) return;
  560. if (Res.cbOldLevel == 2 && Res.cbCurLevel == 3) {
  561. g_Lobby && g_Lobby.ShowTips('申請被同意');
  562. } else if (Res.cbOldLevel == 2 && Res.cbCurLevel == 0) {
  563. g_Lobby && g_Lobby.ShowTips('申請被拒絕');
  564. } else if (Res.cbOldLevel >= 3 && Res.cbCurLevel == 0) {
  565. g_Lobby && g_Lobby.ShowTips('被踢出俱樂部');
  566. g_GlobalClubInfo.onDeleteClubInfo(Res.dwClubID);
  567. g_Lobby && g_Lobby['m_JsClubFreeDLG'] && g_Lobby['m_JsClubFreeDLG'].ShowKind();
  568. g_Lobby && g_Lobby['m_JsClubDLG'] && g_Lobby['m_JsClubDLG'].node.active && g_Lobby['m_JsClubDLG'].HideView();
  569. } else if (Res.cbOldLevel > Res.cbCurLevel && Res.cbCurLevel >= 3) {
  570. g_Lobby && g_Lobby.ShowTips('被降級為' + window.ClubLvStr[Res.cbCurLevel]);
  571. if (g_ShowClubInfo != null) {
  572. g_Lobby && g_Lobby['m_JsClubDLG'] && g_Lobby['m_JsClubDLG'].OnChangeClub(g_ShowClubInfo);
  573. }
  574. } else if (Res.cbOldLevel < Res.cbCurLevel && Res.cbOldLevel >= 3) {
  575. g_Lobby && g_Lobby.ShowTips('被提升為' + window.ClubLvStr[Res.cbCurLevel]);
  576. if (g_ShowClubInfo != null) {
  577. g_Lobby && g_Lobby['m_JsClubDLG'] && g_Lobby['m_JsClubDLG'].OnChangeClub(g_ShowClubInfo);
  578. }
  579. }
  580. }
  581. return true;
  582. },
  583. onSocketRoomInfor: function (data, size) {
  584. var obj = new ServerRoomInfo();
  585. if (gCByte.Bytes2Str(obj, data) != size) return false;
  586. window.g_GlobalClubInfo.onUpdateClubTableCnt(obj.dwClubID, 0);
  587. g_Lobby && g_Lobby['m_JsClubFreeDLG'] && g_Lobby['m_JsClubFreeDLG'].UpdateView(obj.dwClubID);
  588. if (window.LOG_DEBUG) console.log(obj)
  589. if (this._ClubRoomSink) this._ClubRoomSink.InsertRoomInfo(obj);
  590. return true;
  591. },
  592. onSocketDisRoom: function (data, size) {
  593. var obj = new CMD_CS_S_DisRoom();
  594. if (gCByte.Bytes2Str(obj, data) != size) return false;
  595. if (obj.dwClubID > 0) {
  596. window.g_GlobalClubInfo.onUpdateClubTableCnt(obj.dwClubID, 1);
  597. g_Lobby && g_Lobby['m_JsClubFreeDLG'] && g_Lobby['m_JsClubFreeDLG'].UpdateView(obj.dwClubID);
  598. if (window.LOG_DEBUG) console.log(obj)
  599. if (this._ClubRoomSink) this._ClubRoomSink.DisRoom(obj);
  600. } else {
  601. g_Lobby && g_Lobby['m_RoomList'] && g_Lobby['m_RoomList']['DeleteRoom'] && g_Lobby['m_RoomList'].DeleteRoom(obj.dwRoomID);
  602. }
  603. return true;
  604. },
  605. onSocketUserGameStatus: function (data, size) {
  606. var obj = new ServerRoomUserInfo();
  607. if (gCByte.Bytes2Str(obj, data) != size) return false;
  608. if (window.LOG_DEBUG) console.log(obj)
  609. if (this._ClubRoomSink) this._ClubRoomSink.UpdateUserState(obj);
  610. if (this._OnlineUser[`${obj.dwUserID}`]) this._OnlineUser[`${obj.dwUserID}`].cbUserStatus = obj.cbUserStatus;
  611. return true;
  612. },
  613. onSocketChangeClubInfo: function (data, size) {
  614. var obj = new CMD_GC_SaveClubSet();
  615. if (gCByte.Bytes2Str(obj, data) != size) return false;
  616. if (window.LOG_DEBUG) console.log(obj)
  617. //更新等级
  618. g_GlobalClubInfo.onModifyClubInfo(obj);
  619. if (g_ShowClubInfo.dwClubID == obj.dwClubID) {
  620. g_Lobby && g_Lobby['m_JsClubDLG'] && g_Lobby['m_JsClubDLG'].OnChangeClub(g_ShowClubInfo);
  621. }
  622. return true;
  623. },
  624. onSocketModifyTableRule: function (data, size) {
  625. var obj = new CMD_GC_ModifyRoom();
  626. if (gCByte.Bytes2Str(obj, data) != size) return false;
  627. if (this._ClubRoomSink) this._ClubRoomSink.ModifyRoomInfor(obj);
  628. return true;
  629. },
  630. onSocketOnlineUser: function (data, size) {
  631. var ObjSize = gCByte.GetSize(new CMD_CS_S_OnlineUser());
  632. if (size % ObjSize != 0) return false;
  633. var Cnt = size / ObjSize;
  634. for (var i = 0; i < Cnt; i++) {
  635. var obj = new CMD_CS_S_OnlineUser();
  636. gCByte.Bytes2Str(obj, data);
  637. this._OnlineUser[`${obj.dwUserID}`] = obj;
  638. }
  639. return true;
  640. },
  641. onSocketOfflineUser: function (data, size) {
  642. var obj = new CMD_CS_S_OfflineUser();
  643. if (gCByte.Bytes2Str(obj, data) != size) return false;
  644. if (this._OnlineUser[`${obj.dwUserID}`]) delete this._OnlineUser[`${obj.dwUserID}`];
  645. return true;
  646. },
  647. onSocketClubUserScore: function (data, size) {
  648. var obj = new CMD_CS_S_ClubUserScore();
  649. if (gCByte.Bytes2Str(obj, data) != size) return false;
  650. window.g_GlobalClubInfo.onUpdateClubScore(obj.dwClubID, obj.llScore);
  651. g_Lobby && g_Lobby['m_JsClubDLG'] && g_Lobby['m_JsClubDLG'].UpdateUserScore();
  652. return true;
  653. },
  654. onSocketClubRoomInfo: function (data, size) {
  655. var obj = new CMD_CS_S_ClubRoomInfo();
  656. if (gCByte.Bytes2Str(obj, data) != size) return false;
  657. //window.g_GlobalClubInfo.onUpdateClubScore(obj.dwClubID,obj.llScore);
  658. if (this._ClubRoomSink) this._ClubRoomSink.onUpdateRoomInfo(obj);
  659. return true;
  660. },
  661. onSocketKickUserRes: function (data, size) {
  662. var obj = new CMD_CS_S_KickUserRes();
  663. if (gCByte.Bytes2Str(obj, data) != size) return false;
  664. g_CurScene && g_CurScene.ShowTips(obj.bRes ? '踢出成功' : '踢出失敗');
  665. return true;
  666. },
  667. /////////////////////////////////////////////////////////////////////////////////////////
  668. //发送
  669. //注册玩家
  670. onSendRegisterUser: function () {
  671. var Obj = new CMD_GC_RegisterUser();
  672. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  673. Obj.dwUserID = pGlobalUserData.dwUserID;
  674. this.onSendSocketClass(MDM_GC_CLUB, SUB_CS_C_REGISTER_USER, Obj);
  675. },
  676. onSendCreatAndroid: function (sink, dwClubID, wCnt) {
  677. this._Sink = sink;
  678. var Obj = new CMD_C_CreatAndroid();
  679. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  680. Obj.dwUserID = pGlobalUserData.dwUserID;
  681. Obj.dwClubID = dwClubID;
  682. Obj.wCnt = wCnt;
  683. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_CREAT_ANDROID, Obj);
  684. },
  685. onSendDeleteAndroid: function (sink, dwClubID, dwTargetID) {
  686. this._Sink = sink;
  687. var Obj = new CMD_C_DeleteAndroid();
  688. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  689. Obj.dwUserID = pGlobalUserData.dwUserID;
  690. Obj.szPassWord = pGlobalUserData.szPassword;
  691. Obj.dwClubID = dwClubID;
  692. Obj.dwTargetID = dwTargetID;
  693. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_DELETE_ANDROID, Obj);
  694. },
  695. onSendGetAndroidCnt: function (sink, dwClubID) {
  696. this._Sink = sink;
  697. var Obj = new CMD_C_GetAndroidCnt();
  698. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  699. Obj.dwUserID = pGlobalUserData.dwUserID;
  700. Obj.dwClubID = dwClubID;
  701. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_GET_ANDROID_CNT, Obj);
  702. },
  703. onSendCreatAndroidGroup: function (sink, dwClubID, dwKindID, dwRoomID, WTotalTimes, wMaxPlayingTable, wMaxSitCnt) {
  704. this._Sink = sink;
  705. var Obj = new CMD_C_AndroidGroupInfo();
  706. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  707. Obj.dwUserID = pGlobalUserData.dwUserID;
  708. Obj.dwClubID = dwClubID; //俱乐部id
  709. Obj.dwKindID = dwKindID; //所在游戏类型
  710. Obj.dwRoomID = dwRoomID; //房间ID
  711. Obj.wTotalTimes = WTotalTimes; //总消耗桌数
  712. Obj.wMaxPlayingTable = wMaxPlayingTable; //同时开桌数
  713. Obj.wMaxSitCount = wMaxSitCnt; //每桌最大机器人数
  714. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_CREAT_ANDROID_GROUP, Obj);
  715. },
  716. onSendDelAndroidGroup: function (sink, dwClubID, dwGroupID) {
  717. this._Sink = sink;
  718. var Obj = new CMD_DeleteAndroidGroup();
  719. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  720. Obj.dwUserID = pGlobalUserData.dwUserID;
  721. Obj.dwClubID = dwClubID; //俱乐部id
  722. Obj.dwGroupID = dwGroupID;
  723. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_DELETE_ANDROID_GROUP, Obj);
  724. },
  725. onSendGetAndroidList: function (sink, dwClubID) {
  726. this._Sink = sink;
  727. var Obj = new CMD_AndroidGroupList();
  728. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  729. Obj.dwUserID = pGlobalUserData.dwUserID;
  730. Obj.dwClubID = dwClubID; //俱乐部id
  731. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_ANDROID_GROUP_LIST, Obj);
  732. },
  733. //创建俱乐部
  734. onSendCreateClub: function (clubID, clubName, kindID, Rules,) {
  735. var Obj = new CMD_GC_CreateClub();
  736. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  737. Obj.dwUserID = pGlobalUserData.dwUserID;
  738. Obj.szPassWord = pGlobalUserData.szPassword;
  739. Obj.dwClubID = clubID;
  740. Obj.szClubName = clubName;
  741. Obj.wKindID = kindID;
  742. Obj.dwRules = Rules;
  743. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_CREATE_CLUB, Obj);
  744. },
  745. //加入俱乐部
  746. onSendJoinClub: function (sink, AllianceID) {
  747. this._Sink = sink;
  748. var Obj = new CMD_GC_JoinClub();
  749. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  750. Obj.dwUserID = pGlobalUserData.dwUserID;
  751. Obj.szPassWord = pGlobalUserData.szPassword;
  752. Obj.dwAllianceID = AllianceID;
  753. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_JOIN_CLUB, Obj);
  754. },
  755. //设置成员等级
  756. onSendSetClubUserLvL: function (dwTargetUserID, dwClubID, cbLevel) {
  757. var Obj = new CMD_GC_SetClubUesrLvl();
  758. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  759. Obj.dwOperateUserID = pGlobalUserData.dwUserID;
  760. Obj.szPassWord = pGlobalUserData.szPassword;
  761. Obj.dwTargetUserID = dwTargetUserID;
  762. Obj.dwClubID = dwClubID;
  763. Obj.cbLevel = cbLevel;
  764. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_SET_CLUB_USER_LVL, Obj);
  765. },
  766. //一键操作
  767. onSendSetAllJoin: function (dwClubID, cbLevel) {
  768. var Obj = new CMD_GC_SetAllJoin();
  769. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  770. Obj.dwUserID = pGlobalUserData.dwUserID;
  771. Obj.szPassWord = pGlobalUserData.szPassword;
  772. Obj.dwClubID = dwClubID;
  773. Obj.cbLevel = cbLevel;
  774. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_SET_ALL_JOIN, Obj);
  775. },
  776. //解散俱乐部
  777. onSendDissClub: function (sink, Obj) {
  778. this._Sink = sink;
  779. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_EXIT_CLUB, Obj);
  780. },
  781. //保存俱乐部信息
  782. onSendSaveClubSet: function (sink, Obj) {
  783. //this._Sink = sink;
  784. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_SAVE_CLUB_SET, Obj);
  785. },
  786. OnSendCreateRoom: function (sink, Obj) {
  787. this._Sink = sink;
  788. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_CREATE_ROOM, Obj);
  789. },
  790. OnSendJoinRoom: function (sink, Obj) {
  791. this._Sink = sink;
  792. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_JOIN_ROOM, Obj);
  793. },
  794. OnSendJoinRoom2: function (sink, Obj) {
  795. this._Sink = sink;
  796. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_JOIN_ROOM2, Obj);
  797. },
  798. OnSendDissClubRoom: function (sink, Obj) {
  799. this._Sink = sink;
  800. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_DISS_CLUB_ROOM, Obj);
  801. },
  802. OnSendModifyTableRule: function (sink, Obj) {
  803. this._Sink = sink;
  804. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_MODIFY_TABLE_RULE, Obj);
  805. },
  806. OnSendGiveScore: function (sink, Obj) {
  807. this._Sink = sink;
  808. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_GIVE_SCORE, Obj);
  809. },
  810. OnSendTakeScore: function (sink, Obj) {
  811. this._Sink = sink;
  812. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_TAKE_SCORE, Obj);
  813. },
  814. OnSendGetOnlineUser: function (sink, Obj) {
  815. this._Sink = sink;
  816. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_GET_ONLINE_USER, Obj);
  817. },
  818. OnSendKickUser: function (targetID, roomID) {
  819. var Obj = new CMD_KickRoomUser();
  820. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  821. Obj.dwUserID = pGlobalUserData.dwUserID;
  822. Obj.dwTargetID = targetID;
  823. Obj.dwRoomID = roomID;
  824. this.onSendSocketClass(MDM_GC_QUERY, SUB_GP_KICK_ROOM_USER, Obj);
  825. },
  826. ////进入俱乐部////离开俱乐部
  827. onSendEnetrOrLeave: function (isEnterClub, dwClubID, cbClubLevel) {
  828. var Obj = new CMD_GC_EnterClub();
  829. var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
  830. Obj.dwUserID = pGlobalUserData.dwUserID;
  831. Obj.dwClubID = dwClubID;
  832. Obj.cbClubLevel = cbClubLevel;
  833. if (isEnterClub) {
  834. this.onSendSocketClass(MDM_GC_CLUB, SUB_CS_C_ENTER_CLUB, Obj);
  835. } else {
  836. this.onSendSocketClass(MDM_GC_CLUB, SUB_CS_C_EXIT_CLUB, Obj);
  837. }
  838. },
  839. OnSendInviteUser: function (clubID, targetID, userID, KindID, RoomID, dwGameRuleArr) {
  840. var Obj = new CMD_GC_InviteUser();
  841. Obj.dwClubID = clubID;
  842. Obj.dwTargetID = targetID;
  843. Obj.dwUserID = userID;
  844. Obj.dwKindID = KindID;
  845. Obj.dwRoomID = RoomID;
  846. this.onSendSocketClass(MDM_GC_CLUB, SUB_CS_C_USER_INVITE, Obj);
  847. },
  848. /////////////////////////////////////////////////////////////////////////////////////////
  849. //辅助函数
  850. OnGetInviteUser: function (dwUserID) {
  851. if (this._inviteUser.length == 0) return null;
  852. for (var i in this._inviteUser) {
  853. if (this._inviteUser[i].dwUserID == dwUserID) return this._inviteUser[i];
  854. }
  855. return null;
  856. },
  857. OnGetInviteInfor: function () {
  858. if (this._inviteInfor.length == 0) return null;
  859. return this._inviteInfor.shift();
  860. },
  861. OnGetOnlineUser: function (dwUserID) {
  862. return this._OnlineUser[`${dwUserID}`];
  863. },
  864. });
  865. window.gClubClientKernel = new ClubClientKernel()