ClubClientKernel.js 42 KB

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