ClubClientKernel.js 40 KB

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