Пример #1
0
        private bool AnalysisSystemMessage(Packet packet)
        {
            int dataStruct = Marshal.SizeOf(typeof(CMD_CS_MarqueeMessage));

            if (packet.DataSize < dataStruct)
            {
                com.QH.QPGame.GameUtils.Logger.Net.LogError("CMD_CS_MarqueeMessage Data Error !");
                return(true);
            }

            ByteBuffer listDataBuff = ByteBufferPool.PopPacket(packet.Data);
            int        dataSzie     = Marshal.SizeOf(typeof(CMD_CS_MarqueeMessage));
            int        dataCount    = packet.DataSize / dataSzie;

            for (int i = 0; i < dataCount; i++)
            {
                byte[] tempData           = listDataBuff.PopByteArray(dataSzie);
                CMD_CS_MarqueeMessage msg = GameConvert.ByteToStruct <CMD_CS_MarqueeMessage>(tempData);
                GameApp.Account.CallMarqueeMessageEvent(msg.MsgType,
                                                        msg.MsgID,
                                                        msg.MsgPlayCount,
                                                        (float)msg.MsgInterval,
                                                        msg.szMessage,
                                                        msg.MsgStartTime,
                                                        msg.MsgNumberID,
                                                        msg.MsgPlayTime);
            }
            ByteBufferPool.DropPacket(listDataBuff);

            return(true);
        }
        // ============================ S - C ==============================.
        private bool DidReceiveGameStation(int wHandleCode, byte[] wByteBuffer, int wDataSize)
        {
            int dataLen = wByteBuffer.Length;

            if (dataLen < wDataSize)
            {
                Debug.LogError("Game Station Data Error !");
                return(false);
            }

            CMD_SC_GF_GAME_STATION gameStationS = GameConvert.ByteToStruct <CMD_SC_GF_GAME_STATION>(wByteBuffer, wByteBuffer.Length);


            if (onLoadGameStationSuccessEvent != null)
            {
                onLoadGameStationSuccessEvent(gameStationS);
            }



//			Debug.Log("****************************************");
//			Debug.Log("GAME_STATION_JI_TAI==========="+gameStationS.gsJiTaiLeiXing);
//			Debug.Log("GAME_STATION_GAME_RATE========"+gameStationS.gsGameRate);
//			Debug.Log("GAME_STATION_POWER_MIN========"+gameStationS.gsPowerMin);
//			Debug.Log("GAME_STATION_PEAK============="+gameStationS.gsPeak);
//			Debug.Log("GAME_STATION_SERVER_TIME======"+gameStationS.gsServerTime);
//			Debug.Log("GAME_STATION_MAP_ID==========="+gameStationS.gsMapID);
//			Debug.Log("GAME_STATION_SELF_VOUCHER====="+gameStationS.gsSelfVoucher);
//			Debug.Log("****************************************");

            return(true);
        }
Пример #3
0
        //游戏记录
        private bool AnalysisGameRecord(Packet packet)
        {
            //int dataStruct = Marshal.SizeOf(typeof(CMD_GH_GameRecord));
            //if (packet.DataSize < dataStruct)
            //{
            //    Debug.LogError("Game Record Data Error CMD_GH_GameRecord!");
            //    return false;
            //}

            List <GameRecordItem> gameRecordList = new List <GameRecordItem>();

            if (packet.DataSize > 0)
            {
                ByteBuffer listDataBuff = ByteBufferPool.PopPacket(packet.Data);
                int        dataSzie     = Marshal.SizeOf(typeof(CMD_GH_GameRecord));
                int        dataCount    = packet.DataSize / dataSzie;
                for (int i = 0; i < dataCount; i++)
                {
                    byte[]            tempData   = listDataBuff.PopByteArray(dataSzie);
                    CMD_GH_GameRecord gameRecord = GameConvert.ByteToStruct <CMD_GH_GameRecord>(tempData);
                    GameRecordItem    gameItem   = new GameRecordItem();
                    gameItem.dwAllCount = gameRecord.dwAllCount;
                    gameItem.dwAmount   = gameRecord.dwAmount;
                    gameItem.dwEndTime  = gameRecord.dwEndTime;
                    gameItem.dwGameKind = gameRecord.dwGameKind;
                    gameRecordList.Add(gameItem);
                }
                ByteBufferPool.DropPacket(listDataBuff);
            }
            GameApp.Account.CallGameRecordEvent(gameRecordList);

            return(true);
        }
Пример #4
0
        public static ushort ReadDescDataString(ref ByteBuffer buffer, ref string text)
        {
            int dataDescLen = Marshal.SizeOf(typeof(tagDataDescribe));

            if ((buffer.Length - buffer.Position) <= dataDescLen)
            {
                return(0);
            }

            byte[]          descData = buffer.PopByteArray(dataDescLen);
            tagDataDescribe desc     = GameConvert.ByteToStruct <tagDataDescribe>(descData);

            if (desc.wDataDescribe == CommonDefine.DTP_NULL)
            {
                return(0);
            }

            byte[] data = buffer.PopByteArray(desc.wDataSize);
            text = System.Text.Encoding.Unicode.GetString(data);
            if (text.Length > 0)
            {
                text = text.Substring(0, text.IndexOf((char)0));
            }
            return(desc.wDataDescribe);
        }
Пример #5
0
        private bool AnalysisLogonRecord(Packet packet)
        {
            int dataStruct = Marshal.SizeOf(typeof(CMD_GH_LogonRecord));

            if (packet.DataSize < dataStruct)
            {
                com.QH.QPGame.GameUtils.Logger.Net.LogError("LogonRecord Success Data Error  CMD_GH_LogonRecord!");
                return(false);
            }

            ByteBuffer listDataBuff = ByteBufferPool.PopPacket(packet.Data);
            int        dataSzie     = Marshal.SizeOf(typeof(CMD_GH_LogonRecord));
            int        dataCount    = packet.DataSize / dataSzie;

            List <LogonRecordItem> logonRecordList = new List <LogonRecordItem>();

            for (int i = 0; i < dataCount; i++)
            {
                byte[]             tempData    = listDataBuff.PopByteArray(dataSzie);
                CMD_GH_LogonRecord logonRecord = GameConvert.ByteToStruct <CMD_GH_LogonRecord>(tempData);
                LogonRecordItem    logonItem   = new LogonRecordItem();
                logonItem.dwLogonIP     = logonRecord.dwLogonIP;
                logonItem.dwTmlogonTime = logonRecord.dwTmlogonTime;
                logonRecordList.Add(logonItem);
            }
            ByteBufferPool.DropPacket(listDataBuff);
            GameApp.Account.CallLogonRecordEvent(logonRecordList);

            return(true);
        }
        private bool DidReceiveGeneratorNPC(int wHandleCode, byte[] wByteBuffer, int wDataSize)
        {
            int dataLen = wByteBuffer.Length;

            if (dataLen < wDataSize)
            {
                Debug.LogError("Generator NPC data Error!!");
                return(false);
            }
            CMD_SC_NPC_GENERATOR npcGenerator = GameConvert.ByteToStruct <CMD_SC_NPC_GENERATOR>(wByteBuffer, wByteBuffer.Length);

            //			Debug.Log("****************************************");
            //			Debug.Log("NPC_GENERATOR_ServerTime==========="+npcGenerator.gsServerTime);
            //			Debug.Log("NPC_GENERATOR_ServerId============="+npcGenerator.gsServerId);
            //			Debug.Log("NPC_GENERATOR_ActorId=============="+npcGenerator.gsActorId);
            //			Debug.Log("NPC_GENERATOR_NavigId=============="+npcGenerator.gsNavigId);
            //			Debug.Log("NPC_GENERATOR_NavigRot============="+npcGenerator.gsNavigRot);
            //			Debug.Log("NPC_GENERATOR_Z===================="+npcGenerator.gsZ);
            //			Debug.Log("NPC_GENERATOR_Y===================="+npcGenerator.gsY);
            //			Debug.Log("****************************************");

            if (onReceiveGeneratorNPCEvent != null)
            {
                onReceiveGeneratorNPCEvent(npcGenerator);
            }

            return(true);
        }
Пример #7
0
        public static void WhatTheFuck()
        {
            GameConvert.ByteToStruct <STEnjoyGameAtt>(null, 0);
            GameConvert.StructToByteArray <STEnjoyGameAtt>(new STEnjoyGameAtt());
            typeof(GameConvert).MakeGenericType(typeof(STEnjoyGameAtt));

            GameConvert.ByteToStruct <CMD_S_ContinueJettons_temp>(null, 0);
            GameConvert.StructToByteArray <CMD_S_ContinueJettons_temp>(new CMD_S_ContinueJettons_temp());

            GameConvert.ByteToStruct <STAnimalInfo>(null, 0);
            GameConvert.StructToByteArray <STAnimalInfo>(new STAnimalInfo());

            GameConvert.ByteToStruct <STAnimalPrize>(null, 0);
            GameConvert.StructToByteArray <STAnimalPrize>(new STAnimalPrize());

            GameConvert.ByteToStruct <STEnjoyGamePrizeInfo>(null, 0);
            GameConvert.StructToByteArray <STEnjoyGamePrizeInfo>(new STEnjoyGamePrizeInfo());

            GameConvert.ByteToStruct <STAnimalAttArray>(null, 0);
            GameConvert.StructToByteArray <STAnimalAttArray>(new STAnimalAttArray());

            GameConvert.ByteToStruct <STAnimalAtt>(null, 0);
            GameConvert.StructToByteArray <STAnimalAtt>(new STAnimalAtt());

            GameConvert.ByteToStruct <STEnjoyGameAtt>(null, 0);
            GameConvert.StructToByteArray <STEnjoyGameAtt>(new STEnjoyGameAtt());

            GameConvert.ByteToStruct <GamePrizeRecord>(null, 0);
            GameConvert.StructToByteArray <GamePrizeRecord>(new GamePrizeRecord());
        }
Пример #8
0
        /// <summary>
        /// 下注返回
        /// </summary>
        /// <param name="packet"></param>
        public void UserBetReturn(NPacket packet)
        {
            packet.BeginRead();

            //去掉包头
            byte[] _buffer = new byte[SocketSetting.SOCKET_PACKAGE];
            int    len     = Marshal.SizeOf(typeof(CMD_S_PlayBet));

            packet.GetBytes(ref _buffer, len);

            CMD_S_PlayBet _cPlayBet;

            _cPlayBet = GameConvert.ByteToStruct <CMD_S_PlayBet>(_buffer);

            if (_cPlayBet.wChairID == CGameEngine.Instance.MySelf.DeskStation)
            {
                CBETManger._instance.BetReturnSet(_cPlayBet.nAnimalIndex, _cPlayBet.lBetChip, _cPlayBet.lBetChip);
                CBETManger._instance.m_cBetTop.m_cGameGold.m_iNum -= _cPlayBet.lBetChip;
                if (CBETManger._instance.m_cBetTop.m_cGameGold.m_iNum < 0)
                {
                    CBETManger._instance.m_cBetTop.m_cGameGold.m_iNum = 0;
                }
                CBackGroundManger._instance.m_bIsGameStatus = true;
            }
            else
            {
                CBETManger._instance.BetReturnSet(_cPlayBet.nAnimalIndex, _cPlayBet.lBetChip, 0);
            }
        }
Пример #9
0
        private void OnConfigServerResp(Packet packet)
        {
            int dataStruct = Marshal.SizeOf(typeof(CMD_GR_ConfigServer));

            if (packet.DataSize < dataStruct)
            {
                Debug.LogWarning("data error!");
                return;
            }

            CMD_GR_ConfigServer config = GameConvert.ByteToStruct <CMD_GR_ConfigServer>(packet.Data);


            SGameRoomItem item = GameApp.GameListMgr.FindRoomItem(GameApp.GameData.EnterRoomID);

            if (item != null)
            {
                item.GameRule   = config.dwServerRule;
                item.DeskCount  = config.wTableCount;
                item.DeskPeople = config.wChairCount;

                if ((config.dwServerRule & (uint)CommonDefine.SR_ALLOW_AVERT_CHEAT_MODE) > 0)
                {
                    item.AutoSit = true;
                }

                if ((config.wServerType & (uint)CommonDefine.GAME_GENRE_EDUCATE) > 0)
                {
                    item.IsEducate = true;
                }
            }
        }
Пример #10
0
        private void OnUserScoreResp(Packet packet)
        {
            int dataStruct = Marshal.SizeOf(typeof(CMD_GR_UserScore));

            if (packet.DataSize < dataStruct)
            {
                Debug.LogWarning("data error!");
                return;
            }

            CMD_GR_UserScore score  = GameConvert.ByteToStruct <CMD_GR_UserScore>(packet.Data);
            PlayerInfo       player = GameApp.GameSrv.FindPlayer(score.dwUserID);

            if (player == null)
            {
                Debug.LogWarning("player is not exists!");
                return;
            }
            player.Money     = score.lScore;
            player.BankMoney = score.lInsure;
            player.DrawCount = score.dwDrawCount;
            player.LostCount = score.dwLostCount;
            player.WinCount  = score.dwWinCount;

            bool isSelf = (score.dwUserID == GameApp.GameData.UserInfo.UserID);

            if (isSelf)
            {
                GameApp.GameData.UserInfo.CurMoney = score.lScore;
                GameApp.GameData.UserInfo.CurBank  = score.lInsure;
                GameApp.GameSrv.CallGameUserUpdatedEvent();
            }
        }
Пример #11
0
        private bool AnalysisCheckFailure(Packet packet)
        {
            CMD_GP_UserInsureFailure CheckMoney = GameConvert.ByteToStruct <CMD_GP_UserInsureFailure>(packet.Data);

            GameApp.Account.CallCheckMoneyEvent(false, CheckMoney.szDescribeString);

            return(true);
        }
Пример #12
0
        private void OnGameMessageResp(Packet packet)
        {
            CMD_CM_SystemMessage mSystemMessage = GameConvert.ByteToStruct <CMD_CM_SystemMessage>(packet.Data);

            GameApp.GameSrv.CallSystemMessageEvent(mSystemMessage.wType, mSystemMessage.szString);

            Debug.Log("CMD_CM_SystemMessage : " + mSystemMessage.szString);
        }
Пример #13
0
        private bool RecevieSafetyBox(Packet packet)
        {
            CMD_GP_UserResult CheckCode = GameConvert.ByteToStruct <CMD_GP_UserResult>(packet.Data);

            GameApp.Account.CallSafetyBoxEvent(CheckCode.dwCheckCode);

            //保险柜解锁结果,直接发给UI
            return(true);
        }
Пример #14
0
        /// <summary>
        /// 游戏结果返回
        /// </summary>
        /// <param name="packet"></param>
        public void GameResualtReturn(NPacket packet)
        {
            packet.BeginRead();

            //去掉包头
            byte[] _buffer = new byte[SocketSetting.SOCKET_PACKAGE];
            int    len     = Marshal.SizeOf(typeof(CMD_S_GameEnd));

            packet.GetBytes(ref _buffer, len);

            for (int i = 0; i < CUIManger.Instance.m_cGameResualt.lPlayWin.Length; i++)
            {
                CUIManger.Instance.m_cGameResualt.lPlayWin[i] = 0;
            }
            CMD_S_GameEnd _sGameEnd = GameConvert.ByteToStruct <CMD_S_GameEnd>(_buffer);

            for (int i = 0; i < CUIManger.Instance.m_cGameResualt.bTurnTwoTime.Length; i++)
            {
                CUIManger.Instance.m_cGameResualt.bTurnTwoTime[i] = _sGameEnd.bTurnTwoTime[i];
            }

            CUIManger.Instance.m_cGameResualt.cbTimeLeave     = _sGameEnd.cbTimeLeave;
            CUIManger.Instance.m_cGameResualt.lPlayPrizes     = _sGameEnd.lPlayPrizes;
            CUIManger.Instance.m_cGameResualt.lPlayShowPrizes = _sGameEnd.lPlayShowPrizes;

            for (int i = 0; i < CUIManger.Instance.m_cGameResualt.lPlayWin.Length; i++)
            {
                CUIManger.Instance.m_cGameResualt.lPlayWin[i] = _sGameEnd.lPlayWin[i];
            }

            CUIManger.Instance.m_cGameResualt.nPrizesMultiple = _sGameEnd.nPrizesMultiple;

            for (int i = 0; i < CUIManger.Instance.m_cGameResualt.nTurnTableTarget.Length; i++)
            {
                CUIManger.Instance.m_cGameResualt.nTurnTableTarget[i] = _sGameEnd.nTurnTableTarget[i];
            }

            CTurnManger._instance.OpenAniamation(CUIManger.Instance.m_cGameResualt.nTurnTableTarget[0]);
            CBETManger._instance.m_cMoveBet.PackDown_Onclick();
            CMusicManger_JSYS._instance.PlayBgSound("Turn");
            CTurnManger._instance.m_lWinScore = CUIManger.Instance.m_cGameResualt.lPlayWin[0];

            //转两圈
            if (CUIManger.Instance.m_cGameResualt.bTurnTwoTime[0] == 1)
            {
                StartCoroutine(OpenSharkWaitTimeSecond(25));
            }

            CBETManger._instance.m_cTimer.transform.parent.gameObject.SetActive(false);
            CBETManger._instance.m_bIsBetTime = false;
            CBETManger._instance.m_cBetTop.m_bIsRandomPraize = true;
        }
Пример #15
0
        public Packet FromBytes(byte[] data, int len, bool encrypted)
        {
            if (len < CommonDefine.TCP_HEAD_8_SIZE)
            {
                return(null);
            }

            uint packetLength = (uint)BitConverter.ToUInt16(data, 2);

            if (packetLength < CommonDefine.TCP_HEAD_8_SIZE || len < packetLength)
            {
                return(null);
            }

            if (encrypted && EnableEncrypt)
            {
                byte[] decData = new byte[packetLength];
                Buffer.BlockCopy(data, 0, decData, 0, (int)packetLength);
                data = Decrypt(decData);
            }

            if (data == null)
            {
                return(null);
            }

            var head = GameConvert.ByteToStruct <CMD_Head_8>(data, CommonDefine.TCP_HEAD_8_SIZE);

            if (head.DataSize != packetLength)
            {
                return(null);
            }

            var packet = NetPacketPool.PopPacket(Packet.enPacketType.Network);

            packet.MainCmd   = head.MainCmdID;
            packet.SubCmd    = head.SubCmdID;
            packet.CheckCode = head.CheckCode;
            packet.Version   = head.MessageVer;
            packet.Size      = head.DataSize;
            packet.HeadSize  = (uint)CommonDefine.TCP_HEAD_8_SIZE;

            int dataLen = (int)packet.Size - CommonDefine.TCP_HEAD_8_SIZE;

            if (dataLen > 0)
            {
                packet.Data = new byte[dataLen];
                Buffer.BlockCopy(data, CommonDefine.TCP_HEAD_8_SIZE, packet.Data, 0, dataLen);
            }

            return(packet);
        }
Пример #16
0
        private bool AnalysisCheckSUC(Packet packet)
        {
            CMD_GP_UserInsureSuccess CheckMoney = GameConvert.ByteToStruct <CMD_GP_UserInsureSuccess>(packet.Data);

            if (CheckMoney.dwUserID == GameApp.GameData.UserInfo.UserID)
            {
                GameApp.GameData.UserInfo.CurMoney = CheckMoney.lUserScore;
                GameApp.GameData.UserInfo.CurBank  = CheckMoney.lUserInsure;

                GameApp.Account.CallCheckMoneyEvent(true, CheckMoney.szDescribeString);
            }
            return(true);
        }
Пример #17
0
        private bool AnalysisRefrashUserInfo(Packet packet)
        {
            int dataStruct = Marshal.SizeOf(typeof(CMD_GH_RefrashUserInfo));

            if (packet.DataSize < dataStruct)
            {
                com.QH.QPGame.GameUtils.Logger.Net.LogError("Exchange  Data Error CMD_GH_RefrashUserInfo!");
                return(false);
            }
            CMD_GH_RefrashUserInfo UserInfo = GameConvert.ByteToStruct <CMD_GH_RefrashUserInfo>(packet.Data);

            GameApp.GameData.UserInfo.CurMoney = UserInfo.dwUserScore;
            GameApp.Account.CallUserUpdatedEvent();
            return(true);
        }
Пример #18
0
        private bool AnalysisCancleMarqueeMsg(Packet packet)
        {
            int dataStruct = Marshal.SizeOf(typeof(CMD_CS_CancleMarqueeMsg));

            if (packet.DataSize < dataStruct)
            {
                com.QH.QPGame.GameUtils.Logger.Net.LogError("Exchange  Data Error CMD_GH_RefrashUserInfo!");
                return(false);
            }
            CMD_CS_CancleMarqueeMsg cancleMsg = GameConvert.ByteToStruct <CMD_CS_CancleMarqueeMsg>(packet.Data);

            GameApp.Account.CallCancleMarqueeMsgEvent(cancleMsg.dwMarqueeMsgID);

            return(true);
        }
Пример #19
0
        private bool AnalysisRechange(Packet packet)
        {
            int dataStruct = Marshal.SizeOf(typeof(CMD_GP_RechangeInfo));

            if (packet.DataSize < dataStruct)
            {
                com.QH.QPGame.GameUtils.Logger.Net.LogError("Rechange  Data Error CMD_GP_RechangeInfo!");
                return(false);
            }

            CMD_GP_RechangeInfo RechangeData = GameConvert.ByteToStruct <CMD_GP_RechangeInfo>(packet.Data);

            GameApp.Account.CallRechangeEvent(RechangeData.dwMinMoney, (int)RechangeData.dwChangeScale);
            return(true);
        }
Пример #20
0
        private void AnalysisVersionInfo(Packet packet)
        {
            ByteBuffer buffer = ByteBufferPool.PopPacket(packet.Data);

            //不需要只包含用户信息的数据包
            byte[] descData             = buffer.PopByteArray(Marshal.SizeOf(typeof(CMD_GP_ClientUpdate)));
            CMD_GP_ClientUpdate version = GameConvert.ByteToStruct <CMD_GP_ClientUpdate>(descData);

            while (true)
            {
                string str  = "";
                ushort type = ProtoHelper.ReadDescDataString(ref buffer, ref str);
                if (type == 0)
                {
                    break;
                }

                switch (type)
                {
                case CommonDefine.DTP_GP_CDN:
                {
                    GameApp.GameData.CDN = str;
                    break;
                }

                case CommonDefine.DTP_GP_OFFICESITE_URL:
                {
                    GameApp.GameData.OfficeSiteUrl = str;
                    break;
                }

                case CommonDefine.DTP_GP_BACK_STORGE_URL:
                {
                    GameApp.GameData.BackStorgeUrl = str;
                    break;
                }

                case CommonDefine.DTP_GP_MODULE_INFO:
                {
                    GameApp.ModuleMgr.ApplyDataFromStr(str);
                    break;
                }
                }
            }
            ByteBufferPool.DropPacket(buffer);

            GameApp.Account.CallVersionInfoEvent(version.dwVersion);
        }
Пример #21
0
        private bool AnalysisExcahnge(Packet packet)
        {
            int dataStruct = Marshal.SizeOf(typeof(CMD_GP_ExchangeInfo));

            if (packet.DataSize < dataStruct)
            {
                com.QH.QPGame.GameUtils.Logger.Net.LogError("Exchange  Data Error CMD_GP_ExchangeInfo!");
                return(false);
            }

            CMD_GP_ExchangeInfo ExchangeData = GameConvert.ByteToStruct <CMD_GP_ExchangeInfo>(packet.Data);

            GameApp.GameData.UserInfo.CurBank = ExchangeData.dwBankMoney;
            GameApp.Account.CallExchangeEvent(ExchangeData.dwMinMoney, (int)ExchangeData.dwChangeScale, ExchangeData.dwWithdrawals);
            return(true);
        }
Пример #22
0
        public void OnLogonResp(Packet packet)
        {
            switch (packet.SubCmd)
            {
            case SubCommand.SUB_GP_LOGON_ERROR:
            {
                var failure = GameConvert.ByteToStruct <CMD_GP_LogonFailure>(packet.Data);
                GameApp.Account.CallLogonErrorEvent((int)failure.lResultCode, failure.szDescribeString);

                return;
            }

            case SubCommand.SUB_GP_LOGON_SUCCESS:
            {
                OnLogonSuccess(packet);
                return;
            }

            case SubCommand.SUB_GP_LOGON_FINISH:
            {
                return;
            }

            case SubCommand.SUB_GP_COMMUNICATION_KEY:
            {
                var CommunicationKey = GameConvert.ByteToStruct <CMD_GP_CommunicationKey>(packet.Data);
                GameApp.Account.SetClientConfig((UInt64)CommunicationKey.dwServerTime, CommunicationKey.szToken);
                return;
            }

            case SubCommand.SUB_GP_UPDATE_NOTIFY:
            {
                GameApp.Account.CallLogonErrorEvent(12, "版本过低需要升级!!!!");
                return;
            }

            case SubCommand.SUB_GP_REPEAT_LOGON:
            {
                GameApp.Account.CallSocketCloseNotifyEvent(SubCommand.SUB_GP_REPEAT_LOGON);
                return;
            }

            default:
                return;
            }
        }
Пример #23
0
        private void OnUserEnterResp(Packet packet)
        {
            int dataStruct = Marshal.SizeOf(typeof(tagUserInfoHead));

            if (packet.DataSize < dataStruct)
            {
                Debug.LogWarning("data error!");
                return;
            }

            tagUserInfoHead userInfo = GameConvert.ByteToStruct <tagUserInfoHead>(packet.Data);
            PlayerInfo      player   = ProtoHelper.InitPlayerInfo(userInfo);

            if (player.ID == GameApp.GameData.UserInfo.UserID)
            {
                GameApp.GameData.UserInfo.SetSitInfo(player.DeskNO, player.DeskStation);
            }

            ByteBuffer buffer = ByteBufferPool.PopPacket(packet.Data);

            buffer.Position = dataStruct;

            while (true)
            {
                string str  = "";
                ushort type = ProtoHelper.ReadDescDataString(ref buffer, ref str);
                if (type == 0)
                {
                    break;
                }

                switch (type)
                {
                case CommonDefine.DTP_GR_NICK_NAME:
                {
                    player.NickName = str;
                    break;
                }
                }
            }
            ByteBufferPool.DropPacket(buffer);

            GameApp.GameSrv.AddPlayer(player);
            GameApp.GameSrv.CallUserEnterEvent(player);
        }
Пример #24
0
        private bool AnalysisUpOrDownPoint(byte[] wByteBuffer)
        {
            int dataStruct = Marshal.SizeOf(typeof(CMD_GH_WebUpOrDownPoint));

            if (wByteBuffer == null || wByteBuffer.Length < dataStruct)
            {
                com.QH.QPGame.GameUtils.Logger.Net.LogError("CMD_GH_WebUpOrDownPoint UpOrDownPoint Success Data Error !");
                return(false);
            }
            CMD_GH_WebUpOrDownPoint UserUpOrDownPoint = GameConvert.ByteToStruct <CMD_GH_WebUpOrDownPoint>(wByteBuffer);

            if (UserUpOrDownPoint.dwUserID == GameApp.GameData.UserInfo.UserID)
            {
                GameApp.GameData.UserInfo.AddBankMoney(UserUpOrDownPoint.dwMoney);
                GameApp.Account.CallUserUpdatedEvent();
            }
            return(true);
        }
Пример #25
0
        private bool DidRobotGunFire(int wHandleCode, byte[] wByteBuffer, int wDataSize)
        {
            int dataLen = wByteBuffer.Length;

            if (dataLen < wDataSize)
            {
                Debug.LogError("User join in data Error!!");
                return(false);
            }

            CMD_SC_Robot_GUN_FIRE robotGunFire = GameConvert.ByteToStruct <CMD_SC_Robot_GUN_FIRE>(wByteBuffer, wByteBuffer.Length);

            if (onRobotGunFireEvent != null)
            {
                onRobotGunFireEvent(robotGunFire);
            }
            return(true);
        }
Пример #26
0
        private bool DidGunPowerUp(int wHandleCode, byte[] wByteBuffer, int wDataSize)
        {
            int dataLen = wByteBuffer.Length;

            if (dataLen < wDataSize)
            {
                Debug.LogError("User join in data Error!!");
                return(false);
            }

            CMD_SC_GF_GUN_POWER_UP gunPowerUp = GameConvert.ByteToStruct <CMD_SC_GF_GUN_POWER_UP>(wByteBuffer, wByteBuffer.Length);

            if (onGunPowerUpEvent != null)
            {
                onGunPowerUpEvent(gunPowerUp);
            }
            return(true);
        }
Пример #27
0
        private bool DidBalance(int wHandleCode, byte[] wByteBuffer, int wDataSize)
        {
            int dataLen = wByteBuffer.Length;

            if (dataLen < wDataSize)
            {
                Debug.LogError("User join in data Error!!");
                return(false);
            }

            CMD_SC_BALANCE balance = GameConvert.ByteToStruct <CMD_SC_BALANCE>(wByteBuffer, wByteBuffer.Length);

            if (onBalanceEvent != null)
            {
                onBalanceEvent(balance);
            }


            return(true);
        }
Пример #28
0
        private bool DidWinFromCache(int wHandleCode, byte[] wByteBuffer, int wDataSize)
        {
            int dataLen = wByteBuffer.Length;

            if (dataLen < wDataSize)
            {
                Debug.LogError("User join in data Error!!");
                return(false);
            }

            CMD_SC_GF_WIN_FROM_CACHE winFromCache = GameConvert.ByteToStruct <CMD_SC_GF_WIN_FROM_CACHE>(wByteBuffer, wByteBuffer.Length);

            if (onWinFromCacheEvent != null)
            {
                onWinFromCacheEvent(winFromCache);
            }


            return(true);
        }
Пример #29
0
        private bool DidNPCKill(int wHandleCode, byte[] wByteBuffer, int wDataSize)
        {
            int dataLen = wByteBuffer.Length;

            if (dataLen < wDataSize)
            {
                Debug.LogError("User join in data Error!!");
                return(false);
            }

            CMD_SC_GF_NPC_KILL npcKill = GameConvert.ByteToStruct <CMD_SC_GF_NPC_KILL>(wByteBuffer, wByteBuffer.Length);

            if (onNPCKillEvent != null)
            {
                onNPCKillEvent(npcKill);
            }


            return(true);
        }
Пример #30
0
        private bool DidUserJoin(int wHandleCode, byte[] wByteBuffer, int wDataSize)
        {
            int dataLen = wByteBuffer.Length;

            if (dataLen < wDataSize)
            {
                Debug.LogError("User join in data Error!!");
                return(false);
            }

            CMD_SC_GF_USER_JOIN userJoin = GameConvert.ByteToStruct <CMD_SC_GF_USER_JOIN>(wByteBuffer, wByteBuffer.Length);

            if (onUserJoinEvent != null)
            {
                onUserJoinEvent(userJoin);
            }


            return(true);
        }