コード例 #1
0
ファイル: LoginWindow.cs プロジェクト: mumujingyou/mobaClient
        /// <summary>
        /// 返回了注册结果
        /// </summary>
        /// <param name="obj"></param>
        private void HandleUserRegisterS2C(BufferEntity p)
        {
            UserRegisterS2C s2cMSG = ProtobufHelper.FromBytes <UserRegisterS2C>(p.proto);

            switch (s2cMSG.Result)
            {
            case 0:
                Debug.Log("注册成功!");
                //打开提示窗体 提示
                WindowManager.Instance.ShowTips("注册成功!");
                break;

            case 1:
                break;

            case 2:
                break;

            case 3:
                Debug.Log("帐号已被注册!");
                WindowManager.Instance.ShowTips("帐号已被注册!");
                //打开提示窗体
                break;

            default:
                break;
            }
        }
コード例 #2
0
        /// <summary>
        /// 选择召唤师技能的协议
        /// </summary>
        /// <param name="response"></param>
        private void HandleRoomSelectHeroSkillS2C(BufferEntity response)
        {
            RoomSelectHeroSkillS2C s2cMSG = ProtobufHelper.FromBytes <RoomSelectHeroSkillS2C>(response.proto);

            if (s2cMSG.GridID == 0)
            {
                rolesDIC[s2cMSG.RolesID].transform.Find("Hero_SkillA").GetComponent <Image>().sprite
                    = ResManager.Instance.LoadGeneralSkill(s2cMSG.SkillID);

                if (RoomCtrl.Instance.CheckIsSelfRoles(s2cMSG.RolesID))
                {
                    SkillA.sprite = ResManager.Instance.LoadGeneralSkill(s2cMSG.SkillID);
                    SkillInfo.gameObject.SetActive(false);
                }
            }
            else
            {
                rolesDIC[s2cMSG.RolesID].transform.Find("Hero_SkillB").GetComponent <Image>().sprite
                    = ResManager.Instance.LoadGeneralSkill(s2cMSG.SkillID);

                if (RoomCtrl.Instance.CheckIsSelfRoles(s2cMSG.RolesID))
                {
                    SkillB.sprite = ResManager.Instance.LoadGeneralSkill(s2cMSG.SkillID);
                    //关闭技能选择面板
                    SkillInfo.gameObject.SetActive(false);
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// 发送聊天信息
        /// </summary>
        /// <param name="response"></param>
        private void HandleRoomSendMsgS2C(BufferEntity response)
        {
            RoomSendMsgS2C s2cMSG = ProtobufHelper.FromBytes <RoomSendMsgS2C>(response.proto);

            ChatText.text     += $"{RoomCtrl.Instance.GetNickName(s2cMSG.RolesID)}:{s2cMSG.Text}\n";
            ChatVertical.value = 0;
        }
コード例 #4
0
        /// <summary>
        /// 加载进度
        /// </summary>
        /// <param name="response"></param>
        private void HandleRoomLoadProgressS2C(BufferEntity response)
        {
            RoomLoadProgressS2C s2cMSG = ProtobufHelper.FromBytes <RoomLoadProgressS2C>(response.proto);

            //更新界面
            if (s2cMSG.IsBattleStart == true)
            {
                ct.Cancel();
                for (int i = 0; i < s2cMSG.RolesID.Count; i++)
                {
                    playerLoadDIC[s2cMSG.RolesID[i]].transform.Find("Progress")
                    .GetComponent <Text>().text
                        = "100%";
                }
                async.allowSceneActivation = true;
                Close();
            }
            else
            {
                //如果还不能进入战斗场景
                for (int i = 0; i < s2cMSG.RolesID.Count; i++)
                {
                    playerLoadDIC[s2cMSG.RolesID[i]].transform.Find("Progress")
                    .GetComponent <Text>().text
                        = $"{s2cMSG.LoadProgress[i]}%";
                }
            }
        }
コード例 #5
0
ファイル: UserModule.cs プロジェクト: mumujingyou/mobaServer
        /// <summary>
        /// 注册功能
        /// </summary>
        /// <param name="request"></param>
        private void HandleUserRegisterC2S(BufferEntity request)
        {
            UserRegisterC2S c2sMSG = ProtobufHelper.FromBytes <UserRegisterC2S>(request.proto);

            UserRegisterS2C s2cMSG = new UserRegisterS2C();

            if (DBUserInfo.Instance.Select(MySqlCMD.Where("Account", c2sMSG.UserInfo.Account)) != null)
            {
                Debug.Log("帐号已被注册");
                s2cMSG.Result = 3;
            }
            else
            {
                bool result = DBUserInfo.Instance.Insert(c2sMSG.UserInfo);
                if (result == true)
                {
                    s2cMSG.Result = 0;//注册成功
                }
                else
                {
                    s2cMSG.Result = 4;//未知原因导致的失败
                }
            }

            //返回结果
            BufferFactory.CreqateAndSendPackage(request, s2cMSG);
        }
コード例 #6
0
 /////////////////////////////////////////////有效時間性Buffer////////////////////////////////////////////////////////
 /// <summary>
 /// 腳色取得Buffer,傳入Buffer
 /// </summary>
 public virtual void ReceiveBuffer(Buffer _buffer)
 {
     if (BufferDic == null)
     {
         Debug.LogWarning("BufferDic為null");
         return;
     }
     //尚未擁有此BufferID
     if (!BufferDic.ContainsKey(_buffer.ID))
     {
         Go_BufferEntity = Instantiate(Prefab_BufferEntity, Vector2.zero, Quaternion.identity) as GameObject;
         Go_BufferEntity.transform.parent = Trans_BufferList;
         Com_BufferEntity = Go_BufferEntity.GetComponent <BufferEntity>();
         Com_BufferEntity.IniBuffer(_buffer, this);
         List <BufferEntity> TmpBufferEntityList = new List <BufferEntity>();
         TmpBufferEntityList.Add(Com_BufferEntity);
         BufferDic.Add(_buffer.ID, TmpBufferEntityList);//加入BufferDIc字典
     }
     else//已經擁有此BufferID
     {
         //如果此狀態是可疊加的
         if (_buffer.Stackable)
         {
             Go_BufferEntity = Instantiate(Prefab_BufferEntity, Vector2.zero, Quaternion.identity) as GameObject;
             Go_BufferEntity.transform.parent = Trans_BufferList;
             Com_BufferEntity = Go_BufferEntity.GetComponent <BufferEntity>();
             Com_BufferEntity.IniBuffer(_buffer, this);
             BufferDic[_buffer.ID].Add(Com_BufferEntity);
         }
         else//如果此狀態不可疊加
         {
             BufferDic[_buffer.ID][0].IniBuffer(_buffer, this);
         }
     }
 }
コード例 #7
0
ファイル: LoginWindow.cs プロジェクト: mumujingyou/mobaClient
        /// <summary>
        /// 返回了登录的结果
        /// </summary>
        /// <param name="obj"></param>
        private void HandleUserLoginS2C(BufferEntity p)
        {
            UserLoginS2C s2cMSG = ProtobufHelper.FromBytes <UserLoginS2C>(p.proto);

            switch (s2cMSG.Result)
            {
            case 0:
                Debug.Log("登录成功!");
                //保存数据
                if (s2cMSG.RolesInfo != null)
                {
                    //保存数据
                    LoginCtrl.Instance.SaveRolesInfo(s2cMSG.RolesInfo);
                    //打开大厅界面
                    WindowManager.Instance.OpenWindow(WindowType.LobbyWindow);
                }
                else
                {
                    //跳转到角色界面
                    WindowManager.Instance.OpenWindow(WindowType.RolesWindow);
                }
                Close();    //关闭自己
                break;

            case 2:
                Debug.Log("帐号密码不匹配!");
                WindowManager.Instance.ShowTips("帐号密码不匹配!");
                //打开提示窗体
                break;

            default:
                break;
            }
        }
コード例 #8
0
ファイル: Buffer.cs プロジェクト: scozirge/AVentureCapital
 /////////////////////////////////////////////有效時間性Buffer////////////////////////////////////////////////////////
 /// <summary>
 /// 腳色取得Buffer,傳入Buffer
 /// </summary>
 public virtual void ReceiveBuffer(Buffer _buffer)
 {
     if (BufferDic == null)
     {
         Debug.LogWarning("BufferDic為null");
         return;
     }
     //尚未擁有此BufferID
     if (!BufferDic.ContainsKey(_buffer.ID))
     {
         Go_BufferEntity = Instantiate(Prefab_BufferEntity, Vector2.zero, Quaternion.identity) as GameObject;
         Go_BufferEntity.transform.parent = Trans_BufferList;
         Com_BufferEntity = Go_BufferEntity.GetComponent<BufferEntity>();
         Com_BufferEntity.IniBuffer(_buffer, this);
         List<BufferEntity> TmpBufferEntityList = new List<BufferEntity>();
         TmpBufferEntityList.Add(Com_BufferEntity);
         BufferDic.Add(_buffer.ID, TmpBufferEntityList);//加入BufferDIc字典
     }
     else//已經擁有此BufferID
     {
         //如果此狀態是可疊加的
         if (_buffer.Stackable)
         {
             Go_BufferEntity = Instantiate(Prefab_BufferEntity, Vector2.zero, Quaternion.identity) as GameObject;
             Go_BufferEntity.transform.parent = Trans_BufferList;
             Com_BufferEntity = Go_BufferEntity.GetComponent<BufferEntity>();
             Com_BufferEntity.IniBuffer(_buffer, this);
             BufferDic[_buffer.ID].Add(Com_BufferEntity);
         }
         else//如果此狀態不可疊加
         {
             BufferDic[_buffer.ID][0].IniBuffer(_buffer, this);
         }
     }
 }
コード例 #9
0
ファイル: ProtocolParseUpload.cs プロジェクト: chironn/Test2
        protected override void OnConvert(BufferEntity cEntity, BaseLogicEntity <BaseEntity> lEntity)
        {
            var msg    = OnConvert(lEntity.Entity);//lEntity.Entity;
            var caches = ProtoBufSerialize.Serialize(msg);

            // 创建通信实体
            InitilizeBuffer(cEntity, caches);
        }
コード例 #10
0
        /// <summary>
        /// 解散房间
        /// </summary>
        /// <param name="response"></param>
        private void HandleRoomCloseS2C(BufferEntity response)
        {
            RoomCloseS2C s2cMSG = ProtobufHelper.FromBytes <RoomCloseS2C>(response.proto);

            Close();
            RoomCtrl.Instance.RemoveRoomInfo();

            WindowManager.Instance.OpenWindow(WindowType.LobbyWindow);
        }
コード例 #11
0
        protected override void OnConvert(BufferEntity cEntity, BaseLogicEntity <FromIncomBufferEntity> lEntity)
        {
            // 转换字节数据
            var msg = OnConvert(lEntity.Entity);

            //var caches = ProtoBufSerialize.Serialize(msg);
            // 创建通信实体
            InitilizeBuffer(cEntity, msg);
        }
コード例 #12
0
        /// <summary>
        /// 处理用户传输过来的输入
        /// </summary>
        /// <param name="obj"></param>
        private void HandleBattleUserInputC2S(BufferEntity request)
        {
            BattleUserInputC2S c2sMSG     = ProtobufHelper.FromBytes <BattleUserInputC2S>(request.proto);
            RoomEntity         roomEntity = RoomManager.Instance.Get(c2sMSG.RoomID);

            if (roomEntity != null)
            {
                roomEntity.HandleBattleUserInputC2S(c2sMSG);
            }
        }
コード例 #13
0
        /// <summary>
        /// 锁定英雄
        /// </summary>
        /// <param name="response"></param>
        private void HandleRoomLockHeroS2C(BufferEntity response)
        {
            RoomLockHeroS2C s2cMSG = ProtobufHelper.FromBytes <RoomLockHeroS2C>(response.proto);

            rolesDIC[s2cMSG.RolesID].transform.Find("Hero_State").GetComponent <Text>().text
                = "已锁定";

            if (RoomCtrl.Instance.CheckIsSelfRoles(s2cMSG.RolesID))
            {
                isLock = true;//已锁定英雄 shift+f12
            }
        }
コード例 #14
0
ファイル: ProtoTest.cs プロジェクト: mumujingyou/mobaClient
    private static void TestSend()
    {
        UserInfo userInfo = new UserInfo();

        userInfo.Account  = "11111";
        userInfo.Password = "******";

        UserRegisterC2S userRegisterC2S = new UserRegisterC2S();

        userRegisterC2S.UserInfo = userInfo;
        BufferEntity bufferEntity = BufferFactory.CreateAndSendPackage(1001, userInfo);
    }
コード例 #15
0
        /// <summary>
        /// 用户选择英雄
        /// </summary>
        /// <param name="request"></param>
        private void HandleRoomSelectHeroC2S(BufferEntity request)
        {
            RoomSelectHeroC2S c2sMSG = ProtobufHelper.FromBytes <RoomSelectHeroC2S>(request.proto);
            RoomSelectHeroS2C s2cMSG = new RoomSelectHeroS2C();

            s2cMSG.HeroID = c2sMSG.HeroID;
            PlayerEntity p = PlayerManager.GetPlayerEntityFromSession(request.session);

            s2cMSG.RolesID = p.rolesInfo.RolesID;

            p.roomEntity.Broadcast(request.messageID, s2cMSG);
        }
コード例 #16
0
        /// <summary>
        /// 选择了英雄,更新头像
        /// </summary>
        /// <param name="response"></param>
        private void HandleRoomSelectHeroS2C(BufferEntity response)
        {
            RoomSelectHeroS2C s2cMSG = ProtobufHelper.FromBytes <RoomSelectHeroS2C>(response.proto);

            rolesDIC[s2cMSG.RolesID].transform.Find("Hero_Head").GetComponent <Image>().sprite
                = ResManager.Instance.LoadRoundHead(s2cMSG.HeroID.ToString());

            if (RoomCtrl.Instance.CheckIsSelfRoles(s2cMSG.RolesID))
            {
                //lockHeroID 缓存当前选择的英雄ID
                lockHeroID = s2cMSG.HeroID;
            }
        }
コード例 #17
0
ファイル: LobbyWindow.cs プロジェクト: mumujingyou/mobaClient
        /// <summary>
        /// 退出匹配的结果
        /// </summary>
        /// <param name="obj"></param>
        private void HandleLobbyQuitMatchS2C(BufferEntity response)
        {
            LobbyQuitMatchS2C s2cMSG = ProtobufHelper.FromBytes <LobbyQuitMatchS2C>(response.proto);

            if (s2cMSG.Result == 0)
            {
                //匹配和排位 激活
                MatchModeBtn.gameObject.SetActive(true);
                QualifyingBtn.gameObject.SetActive(true);
                //停止匹配和匹配提示的物体隐藏掉
                StopMatchBtn.gameObject.SetActive(false);
                MatchTips.gameObject.SetActive(false);
            }
        }
コード例 #18
0
        /// <summary>
        /// 发送聊天信息
        /// </summary>
        /// <param name="request"></param>
        private void HandleRoomSendMsgC2S(BufferEntity request)
        {
            RoomSendMsgC2S c2sMSG = ProtobufHelper.FromBytes <RoomSendMsgC2S>(request.proto);
            RoomSendMsgS2C s2cMSG = new RoomSendMsgS2C();
            PlayerEntity   p      = PlayerManager.GetPlayerEntityFromSession(request.session);

            s2cMSG.RolesID = p.rolesInfo.RolesID;
            s2cMSG.Text    = c2sMSG.Text;

            //指向广播给同个阵营的玩家
            //p.roomEntity.Broadcast(p.TeamID, request.messageID, s2cMSG);

            p.roomEntity.Broadcast(request.messageID, s2cMSG);
        }
コード例 #19
0
        /// <summary>
        /// 加载进入战斗
        /// </summary>
        /// <param name="response"></param>
        private void HandleRoomToBattleS2C(BufferEntity response)
        {
            RoomToBattleS2C s2cMSG = ProtobufHelper.FromBytes <RoomToBattleS2C>(response.proto);

            RoomCtrl.Instance.SavePlayerList(s2cMSG.PlayerList);

            transform.Find("LoadBG").gameObject.SetActive(true);
            HeroA_item = transform.Find("LoadBG/L_TeamA/HeroA_item");
            HeroB_item = transform.Find("LoadBG/L_TeamB/HeroB_item");

            for (int i = 0; i < s2cMSG.PlayerList.Count; i++)
            {
                GameObject go;
                //A队伍
                if (s2cMSG.PlayerList[i].TeamID == 0)
                {
                    go = GameObject.Instantiate(HeroA_item.gameObject, HeroA_item.parent, false);
                }
                //B队伍
                else
                {
                    go = GameObject.Instantiate(HeroB_item.gameObject, HeroB_item.parent, false);
                }
                go.transform.GetComponent <Image>().sprite
                    = ResManager.Instance.LoadHeroTexture(s2cMSG.PlayerList[i].HeroID);

                go.transform.Find("NickName").GetComponent <Text>().text
                    = s2cMSG.PlayerList[i].RolesInfo.NickName;

                go.transform.Find("SkillA").GetComponent <Image>().sprite
                    = ResManager.Instance.LoadGeneralSkill(s2cMSG.PlayerList[i].SkillA);

                go.transform.Find("SkillB").GetComponent <Image>().sprite
                    = ResManager.Instance.LoadGeneralSkill(s2cMSG.PlayerList[i].SkillB);

                go.transform.Find("Progress").GetComponent <Text>().text
                    = "0%";

                go.gameObject.SetActive(true);
                //缓存克隆出来的游戏物体 更新进度
                playerLoadDIC[s2cMSG.PlayerList[i].RolesInfo.RolesID] = go;
            }

            async = SceneManager.LoadSceneAsync("Level01");
            async.allowSceneActivation = false;//不要激活场景

            //定时的去发送加载进度
            SendProgeress();
        }
コード例 #20
0
        /// <summary>
        /// 选择英雄
        /// </summary>
        /// <param name="request"></param>
        private void HandleRoomSelectHeroSkillC2S(BufferEntity request)
        {
            RoomSelectHeroSkillC2S c2sMSG = ProtobufHelper.FromBytes <RoomSelectHeroSkillC2S>(request.proto);
            RoomSelectHeroSkillS2C s2cMSG = new RoomSelectHeroSkillS2C();

            s2cMSG.SkillID = c2sMSG.SkillID;
            s2cMSG.GridID  = c2sMSG.GridID;
            PlayerEntity p = PlayerManager.GetPlayerEntityFromSession(request.session);

            s2cMSG.RolesID = p.rolesInfo.RolesID;

            //缓存角色技能
            p.roomEntity.UpdateSKill(s2cMSG.RolesID, s2cMSG.SkillID, s2cMSG.GridID);

            p.roomEntity.Broadcast(request.messageID, s2cMSG);
        }
コード例 #21
0
ファイル: LobbyWindow.cs プロジェクト: mumujingyou/mobaClient
        /// <summary>
        /// 进入匹配的结果
        /// </summary>
        /// <param name="obj"></param>
        private void HandleLobbyToMatchS2C(BufferEntity response)
        {
            LobbyToMatchS2C s2cMSG = ProtobufHelper.FromBytes <LobbyToMatchS2C>(response.proto);

            if (s2cMSG.Result == 0)
            {
                MatchModeBtn.gameObject.SetActive(false);
                QualifyingBtn.gameObject.SetActive(false);
                StopMatchBtn.gameObject.SetActive(true);
                MatchTips.gameObject.SetActive(true);
            }
            else
            {
                //无法进行匹配 可能是被惩罚 需要等待
            }
        }
コード例 #22
0
ファイル: UserModule.cs プロジェクト: mumujingyou/mobaServer
        /// <summary>
        /// 登录功能
        /// </summary>
        /// <param name="request"></param>
        private void HandleUserLoginC2S(BufferEntity request)
        {
            //反序列化 得到客户端 发送的数据

            UserLoginC2S c2sMSG = ProtobufHelper.FromBytes <UserLoginC2S>(request.proto);
            //主要是看反序列化的功能 是否正常
            //Debug.Log("登录:"+ JsonHelper.SerializeObject(c2sMSG));

            //匹配记录:相同的账号 相同的密码
            string sqlCMD = MySqlCMD.Where("Account", c2sMSG.UserInfo.Account) +
                            MySqlCMD.And("Password", c2sMSG.UserInfo.Password);

            UserLoginS2C s2cMSG   = new UserLoginS2C();
            UserInfo     userInfo = DBUserInfo.Instance.Select(sqlCMD);

            if (userInfo != null)
            {
                s2cMSG.UserInfo = userInfo;
                s2cMSG.Result   = 0;//登录成功

                //保存角色信息到服务器本地
                PlayerManager.Add(request.session, s2cMSG.UserInfo.ID, new PlayerEntity()
                {
                    userInfo = s2cMSG.UserInfo,
                    session  = request.session,
                });

                RolesInfo rolesInfo = DBRolesInfo.Instance.Select(MySqlCMD.Where("ID", s2cMSG.UserInfo.ID));

                if (rolesInfo != null)
                {
                    s2cMSG.RolesInfo = rolesInfo;
                    //获取到了角色信息 缓存起来
                    PlayerEntity playerEntity = PlayerManager.GetPlayerEntityFromSession(request.session);
                    playerEntity.rolesInfo = rolesInfo;
                }
            }
            else
            {
                s2cMSG.Result = 2;//帐号和密码不匹配
            }

            //返回结果
            BufferFactory.CreqateAndSendPackage(request, s2cMSG);
        }
コード例 #23
0
ファイル: LobbyWindow.cs プロジェクト: mumujingyou/mobaClient
        /// <summary>
        /// 更新匹配的状态
        /// </summary>
        /// <param name="obj"></param>
        private void HandleLobbyUpdateMatchStateS2C(BufferEntity response)
        {
            LobbyUpdateMatchStateS2C s2cMSG = ProtobufHelper.FromBytes <LobbyUpdateMatchStateS2C>(response.proto);

            if (s2cMSG.Result == 0)
            {
                MatchModeBtn.gameObject.SetActive(true);
                QualifyingBtn.gameObject.SetActive(true);
                StopMatchBtn.gameObject.SetActive(false);
                MatchTips.gameObject.SetActive(false);

                //房间信息
                RolesCtrl.Instance.SaveRoomInfo(s2cMSG.RoomInfo);

                Close();
                WindowManager.Instance.OpenWindow(WindowType.RoomWindow);
            }
        }
コード例 #24
0
        /// <summary>
        /// 发送了加载进度过来
        /// </summary>
        /// <param name="request"></param>
        private void HandleRoomLoadProgressC2S(BufferEntity request)
        {
            RoomLoadProgressC2S c2sMSG = ProtobufHelper.FromBytes <RoomLoadProgressC2S>(request.proto);
            RoomLoadProgressS2C s2cMSG = new RoomLoadProgressS2C();

            s2cMSG.IsBattleStart = false;

            PlayerEntity p      = PlayerManager.GetPlayerEntityFromSession(request.session);
            bool         result = p.roomEntity.UpdateLoadProgress(p.rolesInfo.RolesID, c2sMSG.LoadProgress);

            if (result == true)
            {
                //所有玩家都已经加载完成了
            }
            else
            {
                p.roomEntity.GetLoadProgress(ref s2cMSG);
                BufferFactory.CreqateAndSendPackage(request, s2cMSG);
            }
        }
コード例 #25
0
ファイル: RolesWindow.cs プロジェクト: mumujingyou/mobaClient
        private void HandleRolesCreateS2C(BufferEntity response)
        {
            //处理角色是否创建成功的逻辑
            RolesCreateS2C s2cMSG = ProtobufHelper.FromBytes <RolesCreateS2C>(response.proto);

            if (s2cMSG.Result == 0)
            {
                //缓存角色
                RolesCtrl.Instance.SaveRolesInfo(s2cMSG.RolesInfo);
                //关闭掉当前这个窗口
                Close();
                //打开大厅窗口
                WindowManager.Instance.OpenWindow(WindowType.LobbyWindow);
            }
            else
            {
                //角色已经存在 创建失败
                Debug.Log("角色已经存在 创建失败");
                WindowManager.Instance.ShowTips("已经存在相同的角色名,创建失败!");
            }
        }
コード例 #26
0
ファイル: LobbyModule.cs プロジェクト: mumujingyou/mobaServer
        //进入匹配
        private void HandleLobbyToMatchC2S(BufferEntity request)
        {
            LobbyToMatchC2S c2sMSG = ProtobufHelper.FromBytes <LobbyToMatchC2S>(request.proto);
            LobbyToMatchS2C s2cMSG = new LobbyToMatchS2C();

            s2cMSG.Result = 0;

            MatchEntity  matchEntity = new MatchEntity();
            PlayerEntity player      = PlayerManager.GetPlayerEntityFromSession(request.session);

            //缓存匹配信息
            player.matchEntity = matchEntity;

            matchEntity.TeamID = player.rolesInfo.RolesID;
            matchEntity.player = player;

            BufferFactory.CreqateAndSendPackage(request, s2cMSG);

            //让角色进入匹配状态
            MatchManager.Instance.Add(matchEntity);
        }
コード例 #27
0
ファイル: ProtocolParseUpload.cs プロジェクト: chironn/Test2
        protected void InitilizeBuffer(BufferEntity buffer, byte[] caches)
        {
            if (buffer == null)
            {
                return;
            }

            buffer.FindKey = FindKey;


            if (buffer.Bytes == null)
            {
                buffer.Bytes = new byte[caches.Length];
            }
            else if (buffer.Bytes.Length < caches.Length)
            {
                Array.Resize(ref buffer.Bytes, caches.Length);
            }
            Array.Copy(caches, 0, buffer.Bytes, 0, caches.Length);

            buffer.BytesLength = caches.Length;
        }
コード例 #28
0
ファイル: LobbyModule.cs プロジェクト: mumujingyou/mobaServer
        //退出匹配
        private void HandleLobbyQuitMatchC2S(BufferEntity request)
        {
            LobbyQuitMatchC2S c2sMSG = ProtobufHelper.FromBytes <LobbyQuitMatchC2S>(request.proto);
            LobbyQuitMatchS2C s2cMSG = new LobbyQuitMatchS2C();

            PlayerEntity player = PlayerManager.GetPlayerEntityFromSession(request.session);

            if (player != null)
            {
                bool result = MatchManager.Instance.Remove(player.matchEntity);
                if (result == true)
                {
                    player.matchEntity = null;
                    s2cMSG.Result      = 0;//移除成功
                }
                else
                {
                    s2cMSG.Result = 1;//不在匹配状态
                }
            }
            BufferFactory.CreqateAndSendPackage(request, s2cMSG);
        }
コード例 #29
0
        private void HandleRolesCreateC2S(BufferEntity request)
        {
            //去数据库查询下角色表有没有存在相同名称的

            RolesCreateC2S c2sMSG = ProtobufHelper.FromBytes <RolesCreateC2S>(request.proto);

            RolesCreateS2C s2cMSG = new RolesCreateS2C();

            //数据库查询 结果为空 说明没有存在该角色名称
            if (DBRolesInfo.Instance.Select(MySqlCMD.Where("NickName", c2sMSG.NickName)) == null)
            {
                //用户ID
                PlayerEntity player = PlayerManager.GetPlayerEntityFromSession(request.session);

                RolesInfo rolesInfo = new RolesInfo();
                rolesInfo.NickName = c2sMSG.NickName;
                rolesInfo.ID       = player.userInfo.ID;
                rolesInfo.RolesID  = player.userInfo.ID;

                bool result = DBRolesInfo.Instance.Insert(rolesInfo);
                if (result == true)
                {
                    s2cMSG.Result    = 0;
                    s2cMSG.RolesInfo = rolesInfo;
                    //缓存角色的信息到服务器本地
                    player.rolesInfo = rolesInfo;
                }
                else
                {
                    s2cMSG.Result = 2;//未知的异常 等待排查
                    Debug.Log($"插入角色数据存在异常,昵称:{c2sMSG.NickName}!");
                }
            }
            else
            {
                s2cMSG.Result = 1;//创建结果是1
            }
            BufferFactory.CreqateAndSendPackage(request, s2cMSG);
        }
コード例 #30
0
ファイル: ProtocolParseUpload.cs プロジェクト: chironn/Test2
        protected override void SetRouteing(BufferEntity cEntity, BaseLogicEntity <BaseEntity> lEntity)
        {
            var routeingString = GetRouteingString(lEntity.Entity);

            cEntity.SetRouteing(routeingString);
        }
コード例 #31
0
ファイル: GameManager.cs プロジェクト: mumujingyou/mobaClient
 void DispatchNetEvent(BufferEntity buffer)
 {
     //进行报文分发
     NetEvent.Instance.Dispatch(buffer.messageID, buffer);
 }