ClubClientKernel.js 40 KB

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