| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246 |
- var GameExitCode_Normal = 0; //正常退出
- var GameExitCode_CreateFailed = 1; //创建失败
- var GameExitCode_Timeout = 2; //定时到时
- var GameExitCode_Shutdown = 3; //断开连接
- var CServerItem = cc.Class({
- extends: cc.Component,
- properties: {
- },
- ctor: function () {
- this.mReqTableID = INVALID_TABLE;
- this.mServiceStatus = ServiceStatus_Unknow;
- this.mGameServer = null;
- this.mServerAttribute = null;
- this.mSocketEngine = null;
- this.mIStringMessageSink = null;
- this.mUserManager = null;
- this.mMeUserItem = 0;
- this.mUserAttribute = null;
- this.mReconnecting = false;
- this.mInterval = null;
- this.mIntervalTime = 0;
- this.mServerHeartTime = 0;
- this.mHeartStatTime = 0;
- },
- //设置接口
- SetServerItemSink: function (pIServerItemSink) {
- this.mServerAttribute = new tagServerAttribute();
- this.mUserManager = new CPlazaUserManager(this);
- this.mUserAttribute = new tagUserAttribute();
- this.mIServerItemSink = pIServerItemSink;
- return true;
- },
- //设置接口
- SetStringMessageSink: function (pIStringMessageSink) {
- this.mIStringMessageSink = pIStringMessageSink;
- return true;
- },
- //比赛框架
- GetMatchViewFrame: function () {
- return this.mMatchViewFrame;
- },
- //房间属性
- GetServerAttribute: function () {
- return this.mServerAttribute;
- },
- //设置状态
- SetServiceStatus: function (ServiceStatus) {
- //设置变量
- this.mServiceStatus = ServiceStatus;
- console.log("状态--",this.mServiceStatus)
- },
- //是否服务状态
- IsService: function () {
- return this.mServiceStatus == ServiceStatus_ServiceIng;
- },
- //服务状态
- GetServiceStatus: function () {
- return this.mServiceStatus;
- },
- //自己位置
- GetMeUserItem: function () {
- return this.mMeUserItem;
- },
- //配置房间
- SetServerAttribute: function (pGameServerItem, wAVServerPort, dwAVServerAddr) {
- //房间属性
- this.mGameServer = pGameServerItem;
- this.mServerAttribute.wKindID = this.mGameServer.wKindID;
- this.mServerAttribute.wServerID = this.mGameServer.wServerID;
- this.mServerAttribute.wAVServerPort = this.mGameServer.wAVServerPort;
- this.mServerAttribute.dwAVServerAddr = this.mGameServer.dwAVServerAddr;
- this.mServerAttribute.szServerName = this.mGameServer.szServerName;
- return true;
- },
- //配置房间
- ConnectServer: function (pGameServerItem, wAVServerPort, dwAVServerAddr) {
- if (this.mServiceStatus != ServiceStatus_Unknow && this.mServiceStatus != ServiceStatus_NetworkDown) {
- if (this.mIStringMessageSink)
- this.mIStringMessageSink.InsertPromptString("很抱歉,此遊戲房間還未關閉,請先關閉!!" + this.mServiceStatus);
- return false;
- }
- //房间属性
- this.SetServerAttribute(pGameServerItem, wAVServerPort, dwAVServerAddr);
- //关闭判断
- if (this.mServerAttribute.wServerID == 0) {
- this.SetServiceStatus(ServiceStatus_Unknow);
- if (this.mIStringMessageSink)
- this.mIStringMessageSink.InsertPromptString("很抱歉,此遊戲房間已經關閉了,不允許繼續進入!");
- return false;
- }
- //创建组件
- this.mSocketEngine = new cc.CSocketEngine(this);
- let portadd = window.GAME_PORT_ADD + this.mGameServer.wServerPort;
- console.log("网络IP--2", this.mGameServer.szServerAddr, this.mGameServer.wServerPort, portadd)
- if (window.OPEN_DOMAIN_NET&&cc.sys.isNative!= cc.sys.os) {
- let addr = this.mGameServer.szServerAddr;
- let port = this.mGameServer.wServerPort;
- if (port == window.PORT_GAME_MJ1) {
- addr = window.DOMAIN_GAME_MJ1;
- } else if (port == window.PORT_GAME_MJ2) {
- addr = window.DOMAIN_GAME_MJ2;
- }
- this.mSocketEngine.connect(addr, 443);
- } else {
- this.mSocketEngine.connect(this.mGameServer.szServerAddr, portadd);
- }
- //设置状态
- this.SetServiceStatus(ServiceStatus_Entering);
- return true;
- },
- OnErr: function () {
- if (this.mIServerItemSink) return this.mIServerItemSink.OnGFServerReLink();
- },
- //发送登录
- SendLogonPacket: function () {
- //变量定义
- var LogonUserID = new CMD_GR_LogonUserID();
- //变量定义
- var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
- //登录信息
- LogonUserID.dwUserID = pGlobalUserData.dwUserID;
- LogonUserID.szPassword = pGlobalUserData.szDynamicPass;
- LogonUserID.szServerPasswd = LogonUserID.szServerPasswd;
- LogonUserID.wKindID = this.mServerAttribute.wKindID;
- LogonUserID.szMachineID = 'creator';
- //发送数据
- this.SendSocketClass(MDM_GR_LOGON, SUB_GR_LOGON_USERID, LogonUserID);
- return true;
- },
- //发送函数
- SendSocketData: function (wMainCmdID, wSubCmdID, data, dataSize) {
- return this.mSocketEngine.send(wMainCmdID, wSubCmdID, data, dataSize);
- },
- //发送函数
- SendSocketClass: function (wMainCmdID, wSubCmdID, Obj) {
- return this.mSocketEngine.sendClass(wMainCmdID, wSubCmdID, Obj);
- },
- //////////////////////////////////////////////////////////////////////////
- // Socket消息
- // 发送数据
- GFSendData: function (main, sub, data, size) {
- return this.SendSocketData(main, sub, data, size);
- },
- //中断连接
- IntermitConnect: function (bBackLobby) {
- if (this.mServiceStatus == ServiceStatus_Unknow || this.mServiceStatus == ServiceStatus_NetworkDown) return false;//
- if (this.IsService()) {
- var kernel = gClientKernel.get();
- if (kernel) kernel.Intermit(0);
- }
- this.mIServerItemSink = null;
- this.mIntervalTime = new Date().getTime();
- this.mInterval = bBackLobby;
- return true;
- },
- CloseSocket: function (dt) {
- //设置状态
- this.SetServiceStatus(ServiceStatus_NetworkDown);
- this.mSocketEngine.closesocket();
- this.mReqTableID = INVALID_TABLE;
- this.mReqChairID = INVALID_CHAIR;
- this.mIsGameReady = false;
- this.mMeUserItem = 0;
- this.mServerHeartTime = 0;
- this.mUserManager.ResetUserItem(true);
- var kernel = gClientKernel.get();
- if (kernel) kernel.ResetUserItem();
- },
- update: function (dt) {
- if (!this.mInterval) return;
- //检查锁屏
- var timestamp = new Date().getTime();
- if (timestamp - this.mIntervalTime >= 500) {
- this.mInterval = null;
- this.CloseSocket();
- gClientKernel.destory();
- ChangeScene('Lobby');
- }
- },
- //游戏已准备好
- OnGFGameReady: function () {
- //变量定义
- var wTableID = this.mMeUserItem.GetTableID();
- var wChairID = this.mMeUserItem.GetChairID();
- var dwMeUserID = this.mMeUserItem.GetUserID();
- var pClientKernel = gClientKernel.get();
- this.mUserAttribute.wChairID = wChairID;
- this.mUserAttribute.wTableID = wTableID;
- //房间信息
- pClientKernel.OnGFConfigServer(this.mUserAttribute, this.mServerAttribute);
- pClientKernel.OnGFUserEnter(this.mMeUserItem);
- //发送用户
- if ((wTableID != INVALID_TABLE) && (wChairID != INVALID_CHAIR)) {
- //变量定义
- var wEnumIndex = 0;
- //发送玩家
- while (true) {
- //获取用户
- var pIClientUserItem = this.mUserManager.EnumUserItem(wEnumIndex++);
- if (pIClientUserItem == 0) break;
- //发送判断
- if (pIClientUserItem.GetUserID() == dwMeUserID) continue;
- if (pIClientUserItem.GetTableID() != wTableID) continue;
- if (pIClientUserItem.GetUserStatus() == US_LOOKON) continue;
- //发送用户
- pClientKernel.OnGFUserEnter(pIClientUserItem);
- };
- //旁观用户
- wEnumIndex = 0;
- while (true) {
- //获取用户
- pIClientUserItem = this.mUserManager.EnumUserItem(wEnumIndex++);
- if (pIClientUserItem == 0) break;
- //发送判断
- if (pIClientUserItem.GetUserID() == dwMeUserID) continue;
- if (pIClientUserItem.GetTableID() != wTableID) continue;
- if (pIClientUserItem.GetUserStatus() != US_LOOKON) continue;
- //发送用户
- pClientKernel.OnGFUserEnter(pIClientUserItem);
- };
- }
- //配置完成
- pClientKernel.OnGFConfigFinish();
- this.mIsGameReady = true;
- },
- //游戏关闭
- OnGFGameClose: function (iExitCode) {
- //效验状态
- if (this.mMeUserItem == 0) return;
- this.mIsGameReady = false;
- //变量定义
- var wTableID = this.mMeUserItem.GetTableID();
- var wChairID = this.mMeUserItem.GetChairID();
- var cbUserStatus = this.mMeUserItem.GetUserStatus();
- this.mUserAttribute.wChairID = INVALID_CHAIR;
- this.mUserAttribute.wTableID = INVALID_TABLE;
- //退出游戏
- if ((wTableID != INVALID_TABLE) && (this.mServiceStatus == ServiceStatus_ServiceIng)) {
- console.log("起立1")
- this.SendStandUpPacket(wTableID, wChairID, 1);
- }
- this.mTableViewFrame.SetTableStatus1(false);
- },
- onEventTCPSocketLink: function () {
- this.mServerHeartTime = new Date().getTime();
- if (this.mIServerItemSink) this.mIServerItemSink.StopLoading();
- if (window.ReLinkTime != null) {
- if (window.LOG_NET_DATA) console.log("onEventTCPSocketLink " + window.ReLinkTime)
- window.ReLinkTime = null;
- var kernel = gClientKernel.get();
- kernel.mIClientKernelSink.OnClearScene();
- if (kernel.mIClientKernelSink.m_DisCtrl && kernel.mIClientKernelSink.m_DisCtrl.node.active) {
- kernel.mIClientKernelSink.m_DisCtrl.node.active = false;
- g_TimerEngine.UnPauseGameTimer();
- }
- }
- this.SendLogonPacket();
- },
- onEventTCPSocketShut: function () {
- //设置状态
- this.SetServiceStatus(ServiceStatus_NetworkDown);
- if (this.mIServerItemSink && this.mInterval != null) return this.mIServerItemSink.OnGFServerReLink();
- },
- onEventTCPSocketRead: function (main, sub, data, dataSize) {
- console.log("CServerItem消息", main, sub)
- //try {
- switch (main) {
- //登录消息
- case MDM_GR_LOGON: return this.OnSocketMainLogon(sub, data, dataSize);
- //配置信息
- case MDM_GR_CONFIG: return this.OnSocketMainConfig(sub, data, dataSize);
- //用户信息
- case MDM_GR_USER: return this.OnSocketMainUser(sub, data, dataSize);
- //状态信息
- case MDM_GR_STATUS: return this.OnSocketMainStatus(sub, data, dataSize);
- //银行消息
- case MDM_GR_INSURE: return OnSocketMainInsure(sub, data, dataSize);
- //管理消息
- case MDM_GR_MANAGE: return OnSocketMainManager(sub, data, dataSize);
- //管理消息
- case MDM_CM_SYSTEM: return this.OnSocketMainSystem(sub, data, dataSize);
- //游戏消息
- case MDM_GF_GAME:
- case MDM_GF_CARDROOM:
- case MDM_GF_FRAME: return this.OnSocketMainGameFrame(main, sub, data, dataSize);
- //比赛消息
- case MDM_GR_MATCH: return this.OnSocketMainMatch(sub, data, dataSize);
- }
- return true;
- /*} catch (error) {
- if(window.LOG_NET_DATA)console.log('onEventTCPSocketRead err!!! '+main+'-'+sub+' size:'+dataSize)
- if(window.LOG_NET_DATA)console.log(error)
- }*/
- },
- //登录消息
- OnSocketMainLogon: function (sub, data, dataSize) {
- switch (sub) {
- //登录成功
- case SUB_GR_LOGON_SUCCESS: return this.OnSocketSubLogonSuccess(data, dataSize);
- //登录失败
- case SUB_GR_LOGON_ERROR: return this.onSocketSubLogonFailure(data, dataSize);
- //登录完成
- case SUB_GR_LOGON_FINISH: return this.OnSocketSubLogonFinish(data, dataSize);
- //更新提示
- case SUB_GR_UPDATE_NOTIFY: return this.OnSocketSubUpdateNotify(data, dataSize);
- }
- return true;
- },
- //配置信息
- OnSocketMainConfig: function (sub, data, dataSize) {
- switch (sub) {
- //房间配置
- case SUB_GR_CONFIG_SERVER: return this.OnSocketSubConfigServer(data, dataSize);
- //列表配置
- case SUB_GR_CONFIG_COLUMN: return true;
- //道具配置
- case SUB_GR_CONFIG_PROPERTY: return true;
- //配置玩家权限
- case SUB_GR_CONFIG_USER_RIGHT: return true;
- //配置完成
- case SUB_GR_CONFIG_FINISH: return true;
- }
- return true;
- },
- //比赛消息
- OnSocketMainMatch: function (sub, data, dataSize) {
- switch (sub) {
- //费用查询
- case SUB_GR_MATCH_FEE: return this.OnSocketSubMatchFee(data, dataSize);
- //金币更新
- case SUB_GR_MATCH_GOLDUPDATE: return this.OnSocketSubMatchGold(data, dataSize);
- }
- return this.mMatchViewFrame.OnEventViewData(sub, data, dataSize);
- },
- //心跳消息
- OnSocketHeart: function () {
- if (this.mInterval != null) return true;
- //服务器端返回的心跳
- this.mServerHeartTime = new Date().getTime();
- window.g_NetResponseTime = this.mServerHeartTime - this.mHeartStatTime;
- return true;
- },
- //比赛费用
- OnSocketSubMatchFee: function (data, dataSize) {
- var pMatchFee = new CMD_GR_Match_Fee();
- //参数效验
- if (dataSize > pMatchFee.getSize()) return false;
- //提取数据
- pMatchFee.lMatchFee = gCByte.r4(data, pMatchFee.index_lMatchFee);
- pMatchFee.szNotifyContent = gCByte.rStr(data, pMatchFee.index_szNotifyContent);
- if (pMatchFee.lMatchFee > 0) {
- if (this.mIStringMessageSink) {
- this.mIStringMessageSink.InsertMatchJoinString(pMatchFee.lMatchFee);
- }
- }
- return true;
- },
- //更新金币
- OnSocketSubMatchGold: function (data, dataSize) {
- var pMatchGoldUpdate = new CMD_GR_MatchGoldUpdate();
- //参数校验
- if (pMatchGoldUpdate.getSize() != dataSize) return false;
- //提取数据
- pMatchGoldUpdate.lCurrGold = gCByte.r8(data, pMatchGoldUpdate.index_lCurrGold);
- pMatchGoldUpdate.lCurrIngot = gCByte.r8(data, pMatchGoldUpdate.index_lCurrIngot);
- pMatchGoldUpdate.dwCurrExprience = gCByte.r4(data, pMatchGoldUpdate.index_dwCurrExprience);
- //变量定义
- var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
- //设置变量
- pGlobalUserData.llUserScore = pMatchGoldUpdate.lCurrGold;
- pGlobalUserData.llUserIngot = pMatchGoldUpdate.lCurrIngot;
- pGlobalUserData.dwExperience = pMatchGoldUpdate.dwCurrExprience;
- return true;
- },
- //登录失败
- onSocketSubLogonFailure: function (data, size) {
- //变量定义
- var pLogonFailure = new CMD_GR_LogonFailure();
- gCByte.Bytes2Str(pLogonFailure, data);
- //显示消息
- if (this.mIStringMessageSink)
- this.mIStringMessageSink.InsertPromptStringAndClose(pLogonFailure.szErrorDescribe);
- return true;
- },
- //登录成功
- OnSocketSubLogonSuccess: function (data, dataSize) {
- this.mIsQuickSitDown = false;
- //设置状态
- this.SetServiceStatus(ServiceStatus_RecvInfo);
- //if (this.mIServerItemSink)
- // this.mIServerItemSink.OnGRLogonSuccess();
- return true;
- },
- //登录完成
- OnSocketSubLogonFinish: function (data, dataSize) {
- //设置状态
- this.SetServiceStatus(ServiceStatus_ServiceIng);
- this.mUserAttribute.dwUserID = this.mMeUserItem.GetUserID();
- this.mUserAttribute.wChairID = INVALID_CHAIR;
- this.mUserAttribute.wTableID = INVALID_TABLE;
- if (this.mIServerItemSink)
- this.mIServerItemSink.OnGRLogonFinish();
- return true;
- },
- //登录完成
- OnSocketSubUpdateNotify: function (data, dataSize) {
- if (this.mIServerItemSink)
- this.mIStringMessageSink.InsertPromptStringAndClose("遊戲版本不匹配");
- return true;
- },
- //房间配置
- OnSocketSubConfigServer: function (data, dataSize) {
- var pConfigServer = new CMD_GR_ConfigServer();
- //效验数据
- if (dataSize < gCByte.Bytes2Str(pConfigServer, data)) return false;
- //消息处理
- //房间属性
- this.mServerAttribute.wServerType = pConfigServer.wServerType;
- this.mServerAttribute.dwServerRule = pConfigServer.dwServerRule;
- this.mServerAttribute.wTableCount = pConfigServer.wTableCount;
- this.mServerAttribute.wChairCount = pConfigServer.wChairCount;
- if (!this.mTableViewFrame.ConfigTableFrame(
- this.mServerAttribute.wTableCount,
- this.mServerAttribute.wChairCount,
- this.mServerAttribute.dwServerRule,
- this.mServerAttribute.wServerType,
- this.mServerAttribute.wServerID)) {
- this.IntermitConnect(true);
- return false;
- }
- return true;
- },
- //用户处理
- OnSocketMainUser: function (sub, data, dataSize) {
- switch (sub) {
- //请求坐下失败
- case SUB_GR_REQUEST_FAILURE: return this.OnSocketSubRequestFailure(data, dataSize);
- //邀请玩家
- case SUB_GR_USER_INVITE: return OnSocketSubUserInvite(data, dataSize);
- //等待分配
- case SUB_GR_USER_WAIT_DISTRIBUTE: return OnSocketSubWaitDistribute(data, dataSize);
- //用户进入
- case SUB_GR_USER_ENTER: return this.OnSocketSubUserEnter(data, dataSize);
- //用户积分
- case SUB_GR_USER_SCORE: return this.OnSocketSubUserScore(data, dataSize);
- //用户状态
- case SUB_GR_USER_STATUS: return this.OnSocketSubUserStatus(data, dataSize);
- //道具成功
- case SUB_GR_PROPERTY_SUCCESS: return OnSocketSubPropertySuccess(data, dataSize);
- //道具失败
- case SUB_GR_PROPERTY_FAILURE: return OnSocketSubPropertyFailure(data, dataSize);
- //道具效应
- case SUB_GR_PROPERTY_EFFECT: return OnSocketSubPropertyEffect(data, dataSize);
- //礼物消息
- case SUB_GR_PROPERTY_MESSAGE: return OnSocketSubPropertyMessage(data, dataSize);
- //喇叭消息
- case SUB_GR_PROPERTY_TRUMPET: return OnSocketSubPropertyTrumpet(data, dataSize);
- case SUB_GR_USER_QUEUE_COM: return OnSocketSubQueueCom(data, dataSize);
- case SUB_GR_USER_GAME_DATA:
- if (window.LOG_NET_DATA) console.log("the fucking user game data!!!!!")
- return true;
- }
- return true;
- },
- //请求失败
- OnSocketSubRequestFailure: function (data, dataSize) {
- //变量定义
- var pRequestFailure = new CMD_GR_RequestFailure();
- gCByte.Bytes2Str(pRequestFailure, data);
- //变量定义
- var pITableUserItem = 0;
- var wMeTableID = this.mMeUserItem.GetTableID();
- var wMeChairID = this.mMeUserItem.GetChairID();
- //界面还原
- if ((this.mReqTableID != INVALID_TABLE) && (this.mReqChairID != INVALID_TABLE) && (this.mReqChairID != MAX_CHAIR)) {
- var pITableUserItem = this.mTableViewFrame.GetClientUserItem(this.mReqTableID, this.mReqChairID);
- if (pITableUserItem == this.mMeUserItem)
- this.mTableViewFrame.SetClientUserItem2(this.mReqTableID, this.mReqChairID, null);
- }
- //设置变量
- this.mReqTableID = INVALID_TABLE;
- this.mReqChairID = INVALID_CHAIR;
- if (this.mIsQuickSitDown) {
- this.mIsQuickSitDown = false;
- /*
- if (CServerRule::IsAllowQuickMode(mServerAttribute.dwServerRule))
- {//快速坐下,防作弊模式
- if (mIServerItemSink)
- {
- char szDescribeString[256*4];
- UtoA(pRequestFailure->szDescribeString, szDescribeString, sizeof(pRequestFailure->szDescribeString));
- mIServerItemSink->OnGFServerClose(szDescribeString);
- }
- }
- */
- } else {
- //提示消息
- if (this.mIServerItemSink)
- this.mIServerItemSink.onGRRequestFailure(pRequestFailure.szDescribeString);
- }
- return true;
- },
- //用户积分
- OnSocketSubUserScore: function (data, dataSize) {
- // 创建一个CMD_GR_UserScore对象实例
- var pUserScore = new CMD_GR_UserScore();
- // 校验接收到的数据大小是否与CMD_GR_UserScore对象解析后的数据大小一致
- // 使用gCByte.Bytes2Str方法将字节数据转换为字符串,并与dataSize进行比较
- // 如果不一致,返回false,表示数据校验失败
- if (dataSize != gCByte.Bytes2Str(pUserScore, data)) return false;
- console.log("用户积分--1", pUserScore);
- // 根据用户ID从用户管理器中搜索对应的用户项
- // pUserScore.dwUserID包含了要查找的用户ID
- var pIClientUserItem = this.mUserManager.SearchUserByUserID(pUserScore.dwUserID);
- // 判断用户项是否存在
- // 如果用户项不存在(返回0),则不需要进一步处理,直接返回true
- // 注意:这里的判断条件应该是pIClientUserItem === null 或 pIClientUserItem === undefined,
- // 根据实际代码逻辑,0可能是为了表示未找到用户,这在某些特定实现中可能是合理的
- if (pIClientUserItem == 0) return true;
- // 获取全局用户数据
- // pGlobalUserData是一个包含全局用户信息的对象
- var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
- // 更新全局用户数据中的用户分数和金币数
- // 首先检查全局用户数据中的dwUserID是否与接收到的用户ID一致
- if (pGlobalUserData.dwUserID == pUserScore.dwUserID) {
- // 如果服务器类型为GAME_GENRE_GOLD,则更新用户的分数
- // 注意:这里假设llUserScore是用户的分数,llIngot是用户的金币数
- if (this.mServerAttribute.wServerType == GAME_GENRE_GOLD) {
- pGlobalUserData.llUserScore = pUserScore.UserScore.llScore;
- }
- // 无论服务器类型如何,都更新用户的金币数
- pGlobalUserData.llUserIngot = pUserScore.UserScore.llIngot;
- }
- // 更新用户管理器中用户项的分数
- // this.mUserManager.UpdateUserItemScore方法用于更新用户项的分数
- this.mUserManager.UpdateUserItemScore(pIClientUserItem, pUserScore.UserScore);
- // 返回true,表示数据处理成功
- return true;
- },
- //用户进入
- OnSocketSubUserEnter: function (data, dataSize) {
- //消息处理
- var pUserInfoHead = new tagUserInfoHead();
- var readSize = gCByte.Bytes2Str(pUserInfoHead, data);
- //效验参数
- if (dataSize < readSize) return false;
- //变量定义
- var DataDescribe = new tagDataDescribe();
- var UserInfo = new tagUserInfo();
- var InfoObj = new Object();
- InfoObj.szStr = '';
- InfoObj.len_szStr = 0;
- //扩展信息
- while (readSize < dataSize) {
- readSize += gCByte.Bytes2Str(DataDescribe, data, readSize);
- if (DataDescribe.wDataDescribe == DTP_NULL) break;
- InfoObj.len_szStr = DataDescribe.wDataSize;
- readSize += gCByte.Bytes2Str(InfoObj, data, readSize);
- switch (DataDescribe.wDataDescribe) {
- case DTP_GR_NICK_NAME: //用户昵称
- {
- UserInfo.szNickName = InfoObj.szStr;
- break;
- }
- case DTP_GR_GROUP_NAME: //用户社团
- {
- UserInfo.szGroupName = InfoObj.szStr;
- break;
- }
- case DTP_GR_UNDER_WRITE: //个性签名
- {
- UserInfo.szUnderWrite = InfoObj.szStr;
- break;
- }
- case DTP_GR_MOBILE_PHONE: //个性签名
- {
- UserInfo.szMobilePhone = InfoObj.szStr;
- break;
- }
- case DTP_GR_IP: //个性签名
- {
- UserInfo.szClientIP = InfoObj.szStr;
- break;
- }
- }
- }
- //var CustomFaceInfo = new tagCustomFaceInfo();
- //用户属性
- gCByte.StrSameMemCopy(UserInfo, pUserInfoHead);
- //激活用户
- var pIClientUserItem = this.mUserManager.SearchUserByUserID(UserInfo.dwUserID);
- if (pIClientUserItem == 0) {
- pIClientUserItem = this.mUserManager.ActiveUserItem(UserInfo/*, CustomFaceInfo*/);
- }
- //获取对象
- var pServerListData = g_ServerListData;
- //人数更新
- //if (pServerListData)
- // pServerListData.SetServerOnLineCount(this.mServerAttribute.wServerID, this.mUserManager.GetActiveUserCount());
- console.log("用户进入OnSocketSubUserEnter", pUserInfoHead)
- return true;
- },
- OnUserItemAcitve: function (pIClientUserItem) {
- //判断自己
- var pGlobalUserData = g_GlobalUserInfo.GetGlobalUserData();
- if (pGlobalUserData.dwUserID == pIClientUserItem.m_UserInfo.dwUserID) {
- this.mMeUserItem = pIClientUserItem;
- // console.log("用户活跃",this.mMeUserItem)
- }
- //设置桌子
- var cbUserStatus = pIClientUserItem.GetUserStatus();
- if ((cbUserStatus >= US_SIT) && (cbUserStatus != US_LOOKON)) {
- var wTableID = pIClientUserItem.GetTableID();
- var wChairID = pIClientUserItem.GetChairID();
- this.mTableViewFrame.SetClientUserItem2(wTableID, wChairID, pIClientUserItem);
- }
- },
- //状态信息
- OnSocketMainStatus: function (sub, data, dataSize) {
- switch (sub) {
- //桌子信息
- case SUB_GR_TABLE_INFO: return this.OnSocketSubStatusTableInfo(data, dataSize);
- //桌子状态
- case SUB_GR_TABLE_STATUS: return this.OnSocketSubStatusTableStatus(data, dataSize);
- }
- return true;
- },
- //桌子信息
- OnSocketSubStatusTableInfo: function (data, dataSize) {
- //变量定义
- var pTableInfo = new CMD_GR_TableInfo();
- if (dataSize < gCByte.Bytes2Str(pTableInfo, data)) return false;
- pTableInfo.TableStatusArray = new Array();
- for (var i = 0; i < pTableInfo.wTableCount; i++) {
- pTableInfo.TableStatusArray[i] = new tagTableStatus();
- }
- if (dataSize != gCByte.Bytes2Str(pTableInfo, data)) return false;
- //桌子状态
- for (var i = 0; i < pTableInfo.wTableCount; i++) {
- var cbTableLock = pTableInfo.TableStatusArray[i].cbTableLock;
- var cbPlayStatus = pTableInfo.TableStatusArray[i].cbPlayStatus;
- this.mTableViewFrame.SetTableStatus(i, (cbPlayStatus == true), (cbTableLock == true));
- }
- return true;
- },
- //桌子状态
- OnSocketSubStatusTableStatus: function (data, dataSize) {
- var pTableStatus = new CMD_GR_TableStatus();
- //效验参数
- if (dataSize != gCByte.Bytes2Str(pTableStatus, data)) return false;
- //设置桌子
- var cbTableLock = pTableStatus.TableStatus.cbTableLock;
- var cbPlayStatus = pTableStatus.TableStatus.cbPlayStatus;
- this.mTableViewFrame.SetTableStatus(pTableStatus.wTableID, (cbPlayStatus == true), (cbTableLock == true));
- //设置桌子
- if (cbPlayStatus == true && this.mMeUserItem.GetTableID() == pTableStatus.wTableID) {
- this.mTableViewFrame.SetTableStatus1(false);
- }
- return true;
- },
- //系统消息
- OnSocketMainSystem: function (sub, data, dataSize) {
- switch (sub) {
- //系统消息
- case SUB_CM_SYSTEM_MESSAGE: return this.OnSocketSubSystemMessage(data, dataSize);
- //动作消息
- case SUB_CM_ACTION_MESSAGE: return OnSocketSubActionMessage(data, dataSize);
- }
- return true;
- },
- //系统消息
- OnSocketSubSystemMessage: function (data, dataSize) {
- var message = new CMD_CM_SystemMessage();
- gCByte.Bytes2Str(message, data);
- console.log("系统消息CServerItem", message)
- //关闭游戏
- if (message.wType & (SMT_CLOSE_ROOM | SMT_CLOSE_LINK | SMT_CLOSE_GAME)) {
- if (gClientKernel.get())
- gClientKernel.get().Intermit(GameExitCode_Shutdown);
- }
- //关闭游戏
- if (message.wType & (SMT_CLOSE_ROOM | SMT_CLOSE_LINK)) {
- //this.IntermitConnect(true);
- }
- //弹出消息
- if (message.wType & SMT_EJECT) {
- if (this.mIStringMessageSink)
- this.mIStringMessageSink.InsertPromptString(message.szString);
- }
- //关闭处理
- if ((message.wType & (SMT_CLOSE_ROOM | SMT_CLOSE_LINK)) != 0) {
- //时间延迟
- //if (this.mIServerItemSink)
- // this.mIServerItemSink.OnGFServerClose(sString);
- }
- return true;
- },
- //执行起立
- PerformStandUpAction: function (wTableID, wChairID) {
- if (!this.IsService())
- return false;
- //状态过滤
- if (this.mServiceStatus != ServiceStatus_ServiceIng) return false;
- if ((this.mReqTableID == wTableID) && (this.mReqChairID == wChairID)) return false;
- //设置变量
- this.mReqTableID = INVALID_TABLE;
- this.mReqChairID = INVALID_CHAIR;
- this.mFindTableID = INVALID_TABLE;
- //设置界面
- this.mTableViewFrame.VisibleTable(wTableID);
- var kernel = gClientKernel.get();
- if (kernel) {
- kernel.Intermit(false);
- } else {
- console.log("起立2")
- this.SendStandUpPacket(wTableID, wChairID, 0);
- }
- return true;
- },
- //执行坐下
- PerformSitDownAction: function (wTableID, wChairID, bEfficacyPass) {
- if (window.LOG_NET_DATA) console.log("執行坐下", wTableID, wChairID);
- if (!this.IsService()) return false;
- //状态过滤
- if (this.mServiceStatus != ServiceStatus_ServiceIng) return false;
- if ((this.mReqTableID != INVALID_TABLE) && (this.mReqTableID == wTableID)) return false;
- if ((this.mReqChairID != INVALID_CHAIR) && (this.mReqChairID == wChairID)) return false;
- if ((wTableID != INVALID_TABLE) && (wChairID != INVALID_CHAIR)) {
- var pINowUserItem = this.mTableViewFrame.GetClientUserItem(wTableID, wChairID);
- if (pINowUserItem != null) return true;
- }
- //自己状态
- if (this.mMeUserItem.GetUserStatus() >= US_PLAYING) {
- return true;
- //提示消息
- if (this.mIStringMessageSink)
- this.mIStringMessageSink.InsertPromptString("您正在遊戲中,暫時不能離開,請先結束當前遊戲!");
- return false;
- }
- //清理界面
- if ((this.mReqTableID != INVALID_TABLE) && (this.mReqChairID != INVALID_CHAIR) && (this.mReqChairID != MAX_CHAIR)) {
- pIClientUserItem = this.mTableViewFrame.GetClientUserItem(this.mReqTableID, this.mReqChairID);
- if (pIClientUserItem == this.mMeUserItem) this.mTableViewFrame.SetClientUserItem2(mReqTableID, mReqChairID, null);
- }
- //设置界面
- if ((wChairID != MAX_CHAIR) && (wTableID != INVALID_TABLE) && (wChairID != INVALID_CHAIR)) {
- this.mTableViewFrame.VisibleTable(wTableID);
- this.mTableViewFrame.SetClientUserItem2(wTableID, wChairID, this.mMeUserItem);
- }
- //设置变量
- this.mReqTableID = wTableID;
- this.mReqChairID = wChairID;
- this.mFindTableID = INVALID_TABLE;
- //发送命令
- this.SendSitDownPacket(wTableID, wChairID, "");
- return true;
- },
- //执行坐下
- PerformEnterRoom: function () {
- if (window.LOG_NET_DATA) console.log("进入房间 ", window.g_dwRoomID);
- if (!this.IsService()) return false;
- //状态过滤
- if (this.mServiceStatus != ServiceStatus_ServiceIng) return false;
- //自己状态
- if (this.mMeUserItem.GetUserStatus() >= US_PLAYING && this.mMeUserItem.GetTableID() != INVALID_CHAIR) {
- return true;
- //提示消息
- if (this.mIStringMessageSink)
- this.mIStringMessageSink.InsertPromptString("您正在遊戲中,暫時不能離開,請先結束當前遊戲!");
- return false;
- }
- /*
- //清理界面
- if ((this.mReqTableID!=INVALID_TABLE)&&(this.mReqChairID!=INVALID_CHAIR)&&(this.mReqChairID!=MAX_CHAIR)){
- pIClientUserItem = this.mTableViewFrame.GetClientUserItem(this.mReqTableID, this.mReqChairID);
- if (pIClientUserItem == this.mMeUserItem) this.mTableViewFrame.SetClientUserItem2(mReqTableID, mReqChairID, null);
- }
-
- //设置界面
- if ((wChairID!=MAX_CHAIR)&&(wTableID!=INVALID_TABLE)&&(wChairID!=INVALID_CHAIR)){
- this.mTableViewFrame.VisibleTable(wTableID);
- this.mTableViewFrame.SetClientUserItem2(wTableID, wChairID, this.mMeUserItem);
- }
- */
- //发送命令
- //if(g_ServerListDataLast.wServerType & (GAME_GENRE_PERSONAL|GAME_GENRE_CLUB)){
- if (window.g_dwRoomID > 0) {
- var UserSitDown = new CMD_GR_UserEnterRoom();
- UserSitDown.dwRoomID = window.g_dwRoomID;
- UserSitDown.dwClubID = window.g_dwClubID;
- console.log("进入房间 SUB_GR_USER_ENTER_ROOM")
- this.SendSocketClass(MDM_GR_USER, SUB_GR_USER_ENTER_ROOM, UserSitDown);
- } else {
- if (window.LOG_NET_DATA) console.log('PerformEnterRoom window.g_dwRoomID null')
- this.IntermitConnect(true);
- }
- //}
- return true;
- },
- OnUserItemDelete: function (pIClientUserItem) {
- //变量定义
- var wLastTableID = pIClientUserItem.GetTableID();
- var wLastChairID = pIClientUserItem.GetChairID();
- var dwLeaveUserID = pIClientUserItem.GetUserID();
- var pMeUserInfo = this.mMeUserItem.GetUserInfo();
- //离开处理
- if ((wLastTableID != INVALID_TABLE) && (wLastChairID != INVALID_CHAIR)) {
- //获取用户
- var pITableUserItem = this.mTableViewFrame.GetClientUserItem(wLastTableID, wLastChairID);
- if (pITableUserItem == pIClientUserItem) this.mTableViewFrame.SetClientUserItem2(wLastTableID, wLastChairID, null);
- //离开通知
- if ((pIClientUserItem == this.mMeUserItem) || (wLastTableID == pMeUserInfo.wTableID)) {
- var UserStatus = new tagUserStatus();
- UserStatus.cbUserStatus = US_NULL;
- UserStatus.wTableID = INVALID_TABLE;
- UserStatus.wChairID = INVALID_CHAIR;
- if (gClientKernel.get())
- gClientKernel.get().OnGFUserStatus(pIClientUserItem.GetUserID(), UserStatus);
- }
- }
- },
- OnUserItemUpdate2: function (pIClientUserItem, tLastScore) {
- //变量定义
- var pUserInfo = pIClientUserItem.GetUserInfo();
- var pMeUserInfo = this.mMeUserItem.GetUserInfo();
- var wNowTableID = pIClientUserItem.GetTableID();
- var wLastTableID = tLastScore.wTableID;
- var wNowChairID = pIClientUserItem.GetChairID();
- var wLastChairID = tLastScore.wChairID;
- var cbNowStatus = pIClientUserItem.GetUserStatus();
- var cbLastStatus = tLastScore.cbUserStatus;
- var pClientKernel = gClientKernel.get();
- //桌子离开
- if ((wLastTableID != INVALID_TABLE) && ((wLastTableID != wNowTableID) || (wLastChairID != wNowChairID))) {
- var pITableUserItem = this.mTableViewFrame.GetClientUserItem(wLastTableID, wLastChairID);
- if (pITableUserItem == pIClientUserItem) this.mTableViewFrame.SetClientUserItem2(wLastTableID, wLastChairID, null);
- }
- //桌子加入
- if ((wNowTableID != INVALID_TABLE) && (cbNowStatus != US_LOOKON) && ((wNowTableID != wLastTableID) || (wNowChairID != wLastChairID))) {
- this.mTableViewFrame.SetClientUserItem2(wNowTableID, wNowChairID, pIClientUserItem);
- }
- //桌子状态
- if ((this.mTableViewFrame.GetChairCount() < MAX_CHAIR) && (wNowTableID != INVALID_TABLE) && (wNowTableID == wLastTableID) && (wNowChairID == wLastChairID)) {
- this.mTableViewFrame.UpdateTableView(wNowTableID);
- }
- //离开通知
- if ((wLastTableID != INVALID_TABLE) && ((wNowTableID != wLastTableID) || (wNowChairID != wLastChairID))) {
- //游戏通知
- if ((pIClientUserItem == this.mMeUserItem) || (wLastTableID == pMeUserInfo.wTableID)) {
- var UserStatus = new tagUserStatus();
- UserStatus.wTableID = wNowTableID;
- UserStatus.wChairID = wNowChairID;
- UserStatus.cbUserStatus = cbNowStatus;
- if (pClientKernel) pClientKernel.OnGFUserStatus(pUserInfo.dwUserID, UserStatus);
- }
- if (pIClientUserItem == this.mMeUserItem) {
- //设置变量
- mReqTableID = INVALID_TABLE;
- mReqChairID = INVALID_CHAIR;
- //快速模式的
- this.IntermitConnect(true);
- //TODO:
- //if (this.mIServerItemSink)
- // this.mIServerItemSink.OnGFServerClose("");
- }
- return;
- }
- //加入处理
- if ((wNowTableID != INVALID_TABLE) && ((wNowTableID != wLastTableID) || (wNowChairID != wLastChairID))) {
- //自己判断
- if (this.mMeUserItem == pIClientUserItem) {
- //设置变量
- this.mReqTableID = INVALID_TABLE;
- this.mReqChairID = INVALID_CHAIR;
- if (pClientKernel == 0) {
- //启动进程
- if (!this.mIServerItemSink || !this.mIServerItemSink.CreateKernel()) {
- this.OnGFGameClose(GameExitCode_CreateFailed);
- return;
- }
- } else {
- this.mMeUserItem = pIClientUserItem;
- //console.log("用户活跃2",this.mMeUserItem)
- IServerItem.get().OnGFGameReady();
- }
- }
- //游戏通知
- if ((this.mMeUserItem != pIClientUserItem || this.mMeUserItem.GetUserStatus() == US_LOOKON) && pMeUserInfo.wTableID == wNowTableID) {
- if (pClientKernel) pClientKernel.OnGFUserEnter(pIClientUserItem);
- }
- return;
- }
- //状态改变
- if ((wNowTableID != INVALID_TABLE) && (wNowTableID == wLastTableID) && (pMeUserInfo.wTableID == wNowTableID)) {
- //游戏通知
- UserStatus = new tagUserStatus();
- UserStatus.wTableID = wNowTableID;
- UserStatus.wChairID = wNowChairID;
- UserStatus.cbUserStatus = cbNowStatus;
- if (pClientKernel) pClientKernel.OnGFUserStatus(pUserInfo.dwUserID, UserStatus);
- }
- },
- OnUserScoreUpdate: function (pIClientUserItem, UserScore) {
- // 获取客户端内核对象
- var pClientKernel = gClientKernel.get();
- // 如果客户端内核对象存在,则调用其OnGFUserScore方法更新用户分数
- if (pClientKernel) pClientKernel.OnGFUserScore(pIClientUserItem.GetUserID(), UserScore);
- },
- OnUserFlowerUpdate: function (pIClientUserItem, UserFlower) {
- // 获取客户端内核对象
- var pClientKernel = gClientKernel.get();
- // 如果客户端内核对象存在,则调用其OnGFUserFlower方法更新用户鲜花
- if (pClientKernel) pClientKernel.OnGFUserFlower(pIClientUserItem.GetUserID(), UserFlower);
- },
- OnUserItemUpdate: function (pIClientUserItem, LastStatus) {
- //变量定义
- var pUserInfo = pIClientUserItem.GetUserInfo();
- var pMeUserInfo = this.mMeUserItem.GetUserInfo();
- var wNowTableID = pIClientUserItem.GetTableID();
- var wLastTableID = LastStatus.wTableID;
- var wNowChairID = pIClientUserItem.GetChairID();
- var wLastChairID = LastStatus.wChairID;
- var cbNowStatus = pIClientUserItem.GetUserStatus();
- var cbLastStatus = LastStatus.cbUserStatus;
- var pClientKernel = gClientKernel.get();
- if (this.mIServerItemSink)
- this.mIServerItemSink.OnGRUserUpdate(pIClientUserItem);
- //桌子离开
- if ((wLastTableID != INVALID_TABLE) && ((wLastTableID != wNowTableID) || (wLastChairID != wNowChairID))) {
- var pITableUserItem = this.mTableViewFrame.GetClientUserItem(wLastTableID, wLastChairID);
- if (pITableUserItem == pIClientUserItem) this.mTableViewFrame.SetClientUserItem2(wLastTableID, wLastChairID, null);
- }
- //桌子加入
- if ((wNowTableID != INVALID_TABLE) && (cbNowStatus != US_LOOKON) && ((wNowTableID != wLastTableID) || (wNowChairID != wLastChairID))) {
- this.mTableViewFrame.SetClientUserItem2(wNowTableID, wNowChairID, pIClientUserItem);
- }
- //桌子状态
- if ((this.mTableViewFrame.GetChairCount() < MAX_CHAIR) && (wNowTableID != INVALID_TABLE) && (wNowTableID == wLastTableID) && (wNowChairID == wLastChairID)) {
- this.mTableViewFrame.UpdateTableView(wNowTableID);
- }
- //离开通知
- if ((wLastTableID != INVALID_TABLE) && ((wNowTableID != wLastTableID) || (wNowChairID != wLastChairID))) {
- //游戏通知
- if ((pIClientUserItem == this.mMeUserItem) || (wLastTableID == pMeUserInfo.wTableID)) {
- var UserStatus = new tagUserStatus();
- UserStatus.wTableID = wNowTableID;
- UserStatus.wChairID = wNowChairID;
- UserStatus.cbUserStatus = cbNowStatus;
- if (pClientKernel) pClientKernel.OnGFUserStatus(pUserInfo.dwUserID, UserStatus);
- }
- if (pIClientUserItem == this.mMeUserItem) { //设置变量
- this.mReqTableID = INVALID_TABLE;
- this.mReqChairID = INVALID_CHAIR;
- }
- return;
- }
- //加入处理
- if ((wNowTableID != INVALID_TABLE) && ((wNowTableID != wLastTableID) || (wNowChairID != wLastChairID))) {
- //自己判断
- if (this.mMeUserItem == pIClientUserItem) {
- //设置变量
- this.mReqTableID = INVALID_TABLE;
- this.mReqChairID = INVALID_CHAIR;
- if (!pClientKernel) {
- //启动进程
- if (!this.mIServerItemSink || !this.mIServerItemSink.CreateKernel()) {
- this.OnGFGameClose(GameExitCode_CreateFailed);
- return;
- }
- } else {
- this.mMeUserItem = pIClientUserItem;
- // console.log("用户活跃3",this.mMeUserItem)
- this.OnGFGameReady();
- }
- }
- //游戏通知
- if ((this.mMeUserItem != pIClientUserItem || this.mMeUserItem.GetUserStatus() == US_LOOKON) && (pMeUserInfo.wTableID == wNowTableID)) {
- if (pClientKernel) pClientKernel.OnGFUserEnter(pIClientUserItem);
- }
- return;
- }
- //状态改变
- if ((wNowTableID != INVALID_TABLE) && (wNowTableID == wLastTableID) && (pMeUserInfo.wTableID == wNowTableID)) {
- //游戏通知
- var UserStatus = new tagUserStatus();
- UserStatus.wTableID = wNowTableID;
- UserStatus.wChairID = wNowChairID;
- UserStatus.cbUserStatus = cbNowStatus;
- if (pClientKernel) pClientKernel.OnGFUserStatus(pUserInfo.dwUserID, UserStatus);
- return;
- }
- return;
- },
- //用户状态
- OnSocketSubUserStatus: function (data, dataSize) {
- var pUserStatus = new CMD_GR_UserStatus();
- //效验参数
- if (dataSize < gCByte.Bytes2Str(pUserStatus, data)) return false;
- //寻找用户
- var pIClientUserItem = this.mUserManager.SearchUserByUserID(pUserStatus.dwUserID);
- //用户判断
- if (pIClientUserItem == 0) return true;
- //设置状态
- if (pUserStatus.UserStatus.cbUserStatus == US_NULL) {
- //删除用户
- this.mUserManager.DeleteUserItem(pIClientUserItem);
- if (this.mMeUserItem == pIClientUserItem) {//xiao
- this.IntermitConnect(true);
- }
- } else {
- //更新用户
- this.mUserManager.UpdateUserItemStatus(pIClientUserItem, pUserStatus.UserStatus);
- }
- return true;
- },
- //发送坐下
- SendSitDownPacket: function (wTableID, wChairID) {
- var UserSitDown = new CMD_GR_UserSitDown();
- //构造数据
- UserSitDown.wTableID = wTableID;
- UserSitDown.wChairID = wChairID;
- UserSitDown.szPassword = "";
- console.log("坐下--SUB_GR_USER_SITDOWN")
- this.SendSocketClass(MDM_GR_USER, SUB_GR_USER_SITDOWN, UserSitDown);
- return true;
- },
- //游戏消息
- //框架消息
- OnSocketMainGameFrame: function (main, sub, data, dataSize) {
- if (!gClientKernel.get() || !this.mIsGameReady) return true;
- return gClientKernel.get().OnGFEventSocket(main, sub, data, dataSize);
- },
- //发送起立
- SendStandUpPacket: function (wTableID, wChairID, cbForceLeave) {
- //变量定义
- var UserStandUp = new CMD_GR_UserStandUp();
- //构造数据
- UserStandUp.wTableID = wTableID;
- UserStandUp.wChairID = wChairID;
- UserStandUp.cbForceLeave = parseInt(cbForceLeave);
- console.log("发送起立==");
- //发送数据
- this.SendSocketClass(MDM_GR_USER, SUB_GR_USER_STANDUP, UserStandUp);
- return true;
- },
- ChangeTable: function () {
- console.log("发送==换桌子");
- this.IntermitConnect(true);
- window.isJoinGame = true;
- return;
- // var UserStandUp = new CMD_GR_UserStandUp();
- // this.SendSocketClass(MDM_GR_USER, SUB_GR_USER_CHAIR_REQ, UserStandUp);
- }
- });
|