示例#1
0
    /// <summary>
    /// 登录请求
    /// </summary>
    /// <param name="msg"></param>
    public void ReqLogin(PackMsg pack)
    {
        ReqLogin req = pack.gameMsg.reqLogin;
        //当前账号是否上线
        //已经上线  返回错误提示
        //未上线
        //账号是否存在
        //存在  检测密码
        //不存在 创建默认账号密码(应该是存入数据库之类的)
        //回应客户端
        GameMsg msg = new GameMsg
        {
            cmd = (int)CMD.RspLogin,
        };

        //当前账号是否上线
        if (cacheService.isAccountOnLine(req.account))
        {
            //已经上线  返回错误提示
            msg.err = (int)ErrorCode.AccIsOnLine;
        }
        else
        {
            //未上线
            PlayerData _playdata = cacheService.GetPlayData(req.account, req.password);
            //账号是否存在
            if (_playdata == null)
            {
                //为空 说明密码错误
                msg.err = (int)ErrorCode.PassError;
            }
            else
            {
                msg.rspLogin = new RspLogin
                {
                    playerData = _playdata
                };
            }
            //缓存账号数据
            cacheService.CachePlayerInfo(req.account, pack.serverSession, _playdata);
        }
        //回应客户端
        pack.serverSession.SendMsg(msg);
    }