Пример #1
0
        /// <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;
            }
        }
Пример #2
0
        /// <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);
        }