Exemple #1
0
        private void OnQueryIndividualResp(Packet packet)
        {
            ByteBuffer buffer = ByteBufferPool.PopPacket(packet.Data);

            //不需要只包含用户信息的数据包
            buffer.Position = Marshal.SizeOf(typeof(CMD_GP_UserIndividual));

            var info = new CMD_GH_UserInformation();

            info.dwLogoID = GameApp.GameData.UserInfo.HeadId;

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

                switch (type)
                {
                case CommonDefine.DTP_GP_UI_COMPELLATION:
                {
                    info.dwName = str;
                    break;
                }

                case CommonDefine.DTP_GP_UI_QQ:
                {
                    info.dwIM = str;
                    break;
                }

                case CommonDefine.DTP_GP_UI_USER_NOTE:
                {
                    info.dwIdentification = str;
                    break;
                }

                case CommonDefine.DTP_GP_UI_MOBILE_PHONE:
                {
                    info.dwCellPhone = str;
                    break;
                }
                }
            }

            ByteBufferPool.DropPacket(buffer);

            GameApp.Account.CallUserInformationEvent(
                info.dwName,
                info.dwIdentification,
                info.dwCellPhone,
                info.dwIM,
                info.dwLogoID);
        }
Exemple #2
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);
        }
Exemple #3
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);
        }
Exemple #4
0
        void OnLogonSuccess(Packet packet)
        {
            int dataStruct = Marshal.SizeOf(typeof(CMD_GP_LogonSuccess));

            com.QH.QPGame.GameUtils.Logger.Net.Log("logon success. size:" + packet.DataSize + "/" + dataStruct);
            if (packet.DataSize < dataStruct)
            {
                com.QH.QPGame.GameUtils.Logger.Net.LogError(" CMD_GP_LogonSuccess data error!");
                return;
            }

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

            byte[] descData = buffer.PopByteArray(Marshal.SizeOf(typeof(CMD_GP_LogonSuccess)));
            CMD_GP_LogonSuccess loginData = GameConvert.ByteToStruct <CMD_GP_LogonSuccess>(descData);

            GameApp.GameData.UserInfo = ProtoHelper.InitUserInfo(loginData);
            com.QH.QPGame.GameUtils.Logger.Net.Log("User:"******" Loged|Money:" + loginData.lUserScore + "|Bank:" + loginData.lUserInsure);
            while (true)
            {
                string str  = "";
                ushort type = ProtoHelper.ReadDescDataString(ref buffer, ref str);
                if (type == 0)
                {
                    break;
                }
                switch (type)
                {
                case CommonDefine.DTP_GP_UI_UNDER_WRITE:
                {
                    GameApp.GameData.UserInfo.UnderWrite = str;
                    break;
                }
                }
            }
            ByteBufferPool.DropPacket(buffer);

            GameApp.Account.CallLogonSuccessEvent();
        }