Esempio n. 1
0
        static void  GenerateProtobuf()
        {
            if (initpacket)
            {
                buildpacket = true;
                buf.Rollback(0);
                buildpacket = false;
                int len = buf.Readable();
                return;
            }
            for (int i = 1; i <= Packlen; i++)
            {
                ReqLogin req = new ReqLogin();
                req.Account  = "zxb-" + i;
                req.Passward = "123-456-" + i;
                byte[] data = req.ToByteArray();

                int len = sizeof(int) + sizeof(int) + ReqLogin.Descriptor.FullName.Length + data.Length;
                buf.AppendInt32(len);
                buf.AppendInt32(88);
                buf.AppendInt32(ReqLogin.Descriptor.FullName.Length);
                byte[] NameBytes = Encoding.UTF8.GetBytes(ReqLogin.Descriptor.FullName);
                buf.WriteBytes(NameBytes);
                buf.WriteBytes(data);
                initpacket = true;
            }
        }
        /*
         * 注册
         * 协议参数:str用户名,str密码
         * 返回协议:-1表示失败 0表示成功
         *
         * */
        public void MsgRegister(Session session, GameMessage message)
        {
            //获得数值
            ReqLogin req = ProtoTransfer.Deserialize <ReqLogin>(message.data);

            string strFormat = "[收到注册协议]" + session.GetAddress();

            Debug.Log(strFormat + " 用户名:" + req.account + " 密码:" + req.password);

            //构建返回协议
            int result = -1;

            //注册
            if (DataMgr.instance.Register(req.account, req.password))
            {
                result = 0;
            }

            byte[] bytes = BitConverter.GetBytes(result);
            //创建角色
            DataMgr.instance.CreatePlayer(req.account);
            GameMessage retMsg = new GameMessage();

            retMsg.type = BitConverter.GetBytes((int)Protocol.Regist);
            retMsg.data = BitConverter.GetBytes(result);

            //返回协议给客户端
            session.SendTcp(retMsg);
        }
Esempio n. 3
0
        public void Login(string username, string password, LoginCallback callback)
        {
            IsConnected          = false;
            _loginResultCallback = callback;

            ConnectDoneCallback connectComplete = delegate(bool succ, string msg)
            {
                if (succ)
                {
                    // keep async reading
                    StartReading();

                    // REAL log in
                    ReqLogin req = new ReqLogin();
                    req.client   = "Quick Arbitrage client";
                    req.ip       = "127.0.0.1";
                    req.username = username;
                    req.password = password;

                    RequestLogin(req);
                }
                else
                {
                    callback(false, msg);
                }
            };

            ConnectAsync(new ConnectDoneCallback(connectComplete));
        }
Esempio n. 4
0
        public ResLogin Login(ReqLogin req)
        {
            Member member = null;

            if (string.IsNullOrWhiteSpace(req.Password))
            {
                member =
                    Provider.Database.Read <Member>("Email={0} AND IsDeleted=0 AND (Password IS NULL OR Password='')",
                                                    req.Email);
            }
            else
            {
                member = Provider.Database.Read <Member>("Email={0} AND Password={1} AND IsDeleted=0", req.Email,
                                                         System.Utility.MD5(req.Password));
            }

            if (member == null)
            {
                throw new APIException(Provider.TR("Invalid email or password"));
            }

            switch (member.State)
            {
            case MemberStates.WaitingEmailConfirmation:
                throw new APIException(Provider.TR("Waiting e-mail confirmation"));

            case MemberStates.WaitingSMSConfirmation:
                throw new APIException(Provider.TR("Waiting SMS confirmation"));

            case MemberStates.Suspended:
                throw new APIException(Provider.TR("Membership suspended"));
            }

            return(doLoginForMember(member));
        }
Esempio n. 5
0
        public void ReqLogin(MsgPack pack)
        {
            ReqLogin data = pack.msg.reqLogin;
            GameMsg  msg  = new GameMsg
            {
                cmd = (int)CMD.RspLogin,
            };

            if (cacheSvc.IsAcctOnLine(data.acct))
            {
                msg.err = (int)ErrorCode.AcctIsOnline;
            }
            else
            {
                PlayerData playerData = cacheSvc.GetPlayerData(data.acct, data.pass);
                if (playerData == null)
                {
                    msg.err = (int)ErrorCode.WrongPass;
                }
                else
                {
                    msg.rspLogin = new RspLogin
                    {
                        playerData = playerData
                    };
                    cacheSvc.AcctOnline(data.acct, pack.session, playerData);
                }
            }

            pack.session.SendMsg(msg);
        }
Esempio n. 6
0
        public async Task <ActionResult> Validate(ReqLogin loginModel)
        {
            ViewBag.ErrorMessage = "";
            var existingUser = await _userRepository.GetUser(loginModel.Username);

            if (existingUser != null)
            {
                if (existingUser.Status == "Registered")
                {
                    ViewBag.ErrorMessage = "Account not yet activated.";
                    return(RedirectToAction("Index", new LoginModel {
                        Message = "Email not verified."
                    }));
                }
            }

            var isUserValid = Membership.ValidateUser(loginModel.Username, loginModel.Password);

            if (isUserValid)
            {
                FormsAuthentication.SetAuthCookie(loginModel.Username, false);
                return(RedirectToAction("Index", "Dashboard"));
            }
            else
            {
                return(RedirectToAction("Index", new LoginModel {
                    Message = "Invalid username or password."
                }));
            }
        }
Esempio n. 7
0
    public void ReqLogin(MessagePack messagePack)
    {
        ReqLogin data = messagePack.gameMessage.reqLogin;
        ///账号是否上线;
        GameMessage gameMessage = new GameMessage
        {
            cmd = (int)CMD.RspLogin, reqLogin = new ReqLogin {
            }
        };

        ///已经上线:返回错误消息;
        if (cacheSvc.IsAccountOnline(data.account))
        {
            gameMessage.err = (int)ErrorCode.AccountIsOnline;
        }
        else
        {
            ///未上线:账号存在,检测密码,不存在,创建账户;
            ///回应客户端;
            ///
        }



        messagePack.serverSession.SendMsg(gameMessage);
    }
Esempio n. 8
0
    public void ReqLogin(MsgPack pack)
    {
        ReqLogin data = pack.msg.reqLogin;
        // 当前账号是否已经上线
        GameMsg msg = new GameMsg
        {
            cmd = (int)CMD.RspLogin
        };

        if (cacheSvc.IsAcctOnLine(data.acct))
        {
            // 已上线:返回错误信息
            msg.err = (int)ErrorCode.AcctIsOnLine;
        }
        else
        {
            // 未上线:
            // 账号是否存在
            PlayerData pd = cacheSvc.GetPlayerData(data.acct, data.pass);
            if (pd == null)
            {
                // 存在,密码错误
                msg.err = (int)ErrorCode.WrongPass;
            }
            else
            {
                // 计算离线体力增长
                int  power        = pd.power;
                long now          = timerSvc.GetNowTime();
                long milliseconds = now - pd.time;
                int  addPower     = (int)(milliseconds / (1000 * 60 * PECommon.PowerAddSpace)) * PECommon.PowerAddCount;
                if (addPower > 0)
                {
                    int powerMax = PECommon.GetPowerLimit(pd.lv);
                    if (pd.power < powerMax)
                    {
                        pd.power += addPower;
                        if (pd.power > powerMax)
                        {
                            pd.power = powerMax;
                        }
                    }
                }

                if (power != pd.power)
                {
                    cacheSvc.UpdatePlayerData(pd.id, pd);
                }

                msg.rspLogin = new RspLogin
                {
                    playerData = pd
                };
                // 缓存账号数据
                cacheSvc.AcctOnLine(data.acct, pack.session, pd);
            }
        }
        // 回应客户端
        pack.session.SendMsg(msg);
    }
Esempio n. 9
0
    public void ReqLogin(MsgPack msgPack)
    {
        ReqLogin data = msgPack.msg.reqLogin;
        //当前账号是否已经上线
        NetMsg msg = new NetMsg();

        msg.cmd = (int)CMD.RspLogin;


        //已上线:返回错误信息
        if (cacheSvc.IsAcctOnLine(data.account))
        {
            msg.err = (int)ErrorCode.AcctIsOnline;
        }
        else
        {
            //未上线:
            //账号是否存在
            PlayerData playerData = cacheSvc.GetPlayerData(data.account, data.pass);
            if (playerData == null)
            {
                //存在密码错误
                msg.err = (int)ErrorCode.WrongPass;
            }
            else
            {
                msg.rspLogin            = new RspLogin();
                msg.rspLogin.playerData = playerData;
                cacheSvc.AcctOnline(data.account, msgPack.session, playerData);
            }
        }
        //回应客户端
        msgPack.session.SendMsg(msg);
    }
Esempio n. 10
0
    public ReqLogin ChooseInitShipAndName(string name, string shipCid)
    {
        ReqLogin component = new ReqLogin();

        component.ChooseInitShipAndName(name, shipCid);
        return(component);
    }
Esempio n. 11
0
    void RecvCallback(byte[] buf)
    {
        ushort buflen = 0;
        ushort appid  = 0;
        uint   numid  = 0;
        uint   xyid   = 0;

        if (ProtocolBase.getProtolHand(buf, out buflen, out appid, out numid, out xyid))
        {
            if (xyid == (uint)HANDTYPE.XYID_SRS_RESP_CONNECT)
            {
                RespConnect resp = new RespConnect();
                resp.make(buf);
                Debug.Log("连接回复:connid=" + resp.connid);

                ReqLogin req    = new ReqLogin(resp.connid, "test3003", "123456");
                byte[]   reqbuf = req.pack();
                m_socket.sendBuf(reqbuf);
            }
            else if (xyid == (uint)HANDTYPE.XYID_SRS_RESP_LOGIN)
            {
                RespLogin resp = new RespLogin();
                resp.make(buf);
                Debug.Log("登录回复:flag=" + resp.flag + ",numid=" + resp.numid);
            }
        }
        else
        {
            Debug.Log("解析协议头失败");
        }
    }
Esempio n. 12
0
    public void ReqLogin(MsgPack pack)
    {
        ReqLogin data = pack.msg.reqLogin;

        GameMsg msg = new GameMsg()
        {
            cmd = (int)CMD.RspLogin,
        };

        //如果账号已经登入
        if (cacheSvc.IsAcctOnline(data.acct))
        {
            msg.err = (int)ErrorCode.AcctIsOnline;
        }
        else
        {
            PlayerData pd = cacheSvc.GetPlayerData(data.acct, data.pass);
            if (pd == null)
            {
                //存在,密码错误
                msg.err = (int)ErrorCode.WrongPass;
            }
            else
            {
                //登入成功

                //计算体力最大值
                int power    = pd.power;
                int powerMax = PECommon.GetPowerLimit(pd.lv);
                if (pd.power < powerMax)
                {
                    long nowTime           = timerSvc.GetNowTime();
                    long millisecendsCount = nowTime - pd.time;
                    //计算玩家离线时间回复体力值
                    int addPower = (int)(millisecendsCount / (1000 * 60 * PECommon.PowerAddSpace)) * PECommon.PowerAddCount;
                    if (addPower > 0)
                    {
                        pd.power += addPower;
                        if (pd.power > powerMax)
                        {
                            pd.power = powerMax;
                        }
                    }
                }

                if (pd.power != power)
                {
                    cacheSvc.UpdataPlayerData(pd.id, pd);
                }

                msg.rspLogin = new RspLogin()
                {
                    playerData = pd
                };
                cacheSvc.AcctOnline(data.acct, pack.session, pd);
            }
        }

        pack.session.SendMsg(msg);
    }
        public async Task <UsuarioMin> EstablecerLogin(ReqLogin request)
        {
            var usuarioMin = await _repository.EstablecerLogin(request);

            usuarioMin.Usr_Token = usuarioMin.Usr_UsuarioID > 0 ?  TokenGenerator.GenerarJSONWebToken(Funciones.GetSHA256(usuarioMin.Usr_Nombre + usuarioMin.Usr_Password + DateTime.Now.Ticks.ToString())) : null;

            return(usuarioMin);
        }
Esempio n. 14
0
    // Use this for initialization
    void Start()
    {
        ReqLogin reqLogin = new ReqLogin();

        reqLogin.account  = "OneSitDown";
        reqLogin.password = "******";
        testByte          = Serialize(reqLogin);
    }
Esempio n. 15
0
        public ResLogin Login(ReqLogin req)
        {
            var res = Call <ResLogin, ReqLogin>(req, MethodBase.GetCurrentMethod().Name);

            HttpContext.Current.Session["Member"] = res.Member;
            this.SessionId = res.SessionId;
            return(res);
        }
Esempio n. 16
0
        public MemberInfo LoginSec(string email, string password)
        {
            ReqLogin request = new ReqLogin {
                Email = email, Password = password
            };

            return(this.Call <MemberInfo, ReqLogin>(request, "LoginSec"));
        }
Esempio n. 17
0
    public void HandleReqLogin(MsgPack pack)
    {
        //处理客户端登陆请求
        NetMsg newMsg = new NetMsg
        {
            cmd = (int)MsgType.RspLogin,
        };

        ReqLogin loginData = pack.msg.ReqLogin;
        string   acct      = loginData.account;
        string   password  = loginData.password;

        bool isOnline = CacheSvc.Instance.IsOnline(acct);

        if (isOnline)
        {
            newMsg.err = (int)ErrorCode.AlreadyOnline;
        }
        else
        {
            PlayerData pd = CacheSvc.Instance.GetPlayerData(acct, password);
            if (pd == null)
            {
                newMsg.err = (int)ErrorCode.InvalidPassword;
            }
            else
            {
                //计算玩家体力恢复
                long now          = TimerSvc.Instance.GetNowTime();
                int  timeInterval = (int)(now - pd.Time);

                int addPower = (timeInterval / (PECommonTool.AddPowerTimeSpan * 1000 * 60)) *
                               PECommonTool.AddPowerPerTimes;

                if (addPower > 0)
                {
                    pd.Power += (int)addPower;
                    if (pd.Power > PECommonTool.GetPowerLimit(pd.Level))
                    {
                        pd.Power = PECommonTool.GetPowerLimit(pd.Level);
                    }
                    if (!CacheSvc.Instance.UpdatePlayerDataToDB(pd.ID, pd))
                    {
                        PECommonTool.Log("update player time error when login", LogType.Error);
                    }
                }


                newMsg.RspLogin = new RspLogin
                {
                    data = pd,
                };

                CacheSvc.Instance.CachePlayerData(acct, pd, pack.session);
            }
        }
        pack.session.SendMsg(newMsg);
    }
Esempio n. 18
0
	public void DummyEntry()
	{
		ReqLogin req = new ReqLogin();
		req.UserName = "******";
		req.LoginPlatform = "facebook";
		req.DeviceDesc = "unknown device";

		msg.SendMessageToServer(JgC2S_Msgs.kLogin, req);
	}
Esempio n. 19
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetKeyDown(KeyCode.Space))
     {
         ReqLogin reqLogin = (ReqLogin)Deserialize <ReqLogin>(testByte);
         Debug.Log(reqLogin.account);
         Debug.Log(reqLogin.password);
     }
 }
Esempio n. 20
0
        public void OnReqLogin(byte[] msg, Socket socket)
        {
            ReqLogin reqLogin = ReqLogin.Parser.ParseFrom(msg, 0, msg.Length);

            Singleton <AccountConnectionManager> .Instance.AddNewConnectionInfo(reqLogin.AccountName, socket);

            //domo版,取消中间流程,直接进入游戏(随便建个房间)
            Singleton <RoomManager> .Instance.EnterRoom(100027, reqLogin.AccountName);
        }
Esempio n. 21
0
    public void ReqLogin(MsgPack pack)
    {
        ReqLogin data = pack.msg.reqLogin;
        //当前账号是否已经上线
        GameMsg msg = new GameMsg
        {
            cmd = (int)CMD.RspLogin,
        };

        if (CacheSvc.Instance.IsAcctOnline(data.acct))
        {
            //已上线:返回错误信息
            msg.err = (int)ErrorCode.AcctIsOnLine;
        }
        else
        {
            //未上线:
            PlayerData pd = CacheSvc.Instance.GetPlayerData(data.acct, data.pass);
            if (pd == null)
            {
                //存在:密码错误
                msg.err = (int)ErrorCode.WrongPass;
            }
            else
            {
                int  power     = pd.power;
                long nowtime   = TimeSvc.Instance.GetNowTime();
                long deltatime = nowtime - pd.time;
                int  addPower  = (int)(deltatime / (1000 * 60 * PECommon.PowerAddSpace)) * PECommon.PowerAddCount;
                if (addPower > 0)
                {
                    int powerMax = PECommon.GetPowerLimit(pd.lv);
                    if (pd.power < powerMax)
                    {
                        pd.power += addPower;
                        if (pd.power > powerMax)
                        {
                            pd.power = powerMax;
                        }
                    }
                }

                msg.rspLogin = new RspLogin
                {
                    playerData = pd
                };

                CacheSvc.Instance.AcctOnline(data.acct, pack.session, pd);
                CacheSvc.Instance.UpdatePlayerData(pd.id, pd, pack.session);
            }
        }


        //回应客户端

        pack.session.SendMsg(msg);
    }
Esempio n. 22
0
    public void ReqLogin(MsgPack pack)
    {
        ReqLogin data = (ReqLogin)pack.msg;
        //当前账号是否已经上线
        SCPacketBase msg = new RspLogin();

        if (cacheSvc.IsAcctOnLine(data.Acct))
        {
            //己上线:返回错误信息
            msg.error = (int)ErrorCode.AcctIsOnline;
        }
        else
        {
            //未上线:
            //账号是否存在
            PlayerData pd = cacheSvc.GetPlayerData(data.Acct, data.Pass);
            if (pd == null)
            {
                //存在,密码错误
                msg.error = (int)ErrorCode.WrongPass;
            }
            else
            {
                //计算离线体力增长
                int  power        = pd.Power;
                long now          = timerSvc.GetNowTime();
                long milliseconds = now - pd.Time;
                int  addPower     = (int)(milliseconds / (1000 * 60 * KDCommon.PowerAddSpace)) * KDCommon.PowerAddCount;
                if (addPower > 0)
                {
                    int powerMax = KDCommon.GetPowerLimit(pd.Lv);
                    if (pd.Power < powerMax)
                    {
                        pd.Power += addPower;
                        if (pd.Power > powerMax)
                        {
                            pd.Power = powerMax;
                        }
                    }
                }

                if (power != pd.Power)
                {
                    cacheSvc.UpdatePlayerData(pd.Id, pd);
                }

                msg = new RspLogin {
                    PlayerData = pd
                };
                //缓存账号数据
                cacheSvc.AcctOnline(data.Acct, pack.session, pd);
            }
        }
        //回应客户端
        pack.session.SendMsg(msg);
    }
    private void OnClickEnter(string acc, string pass)
    {
        //发送网络消息,请求登录
        CSPacketBase msg = new ReqLogin {
            Acct = acc,
            Pass = pass
        };

        GameEntry.Net.SendMsg(msg);
    }
Esempio n. 24
0
    private void OnBtnLoginClick()
    {
        ReqLogin req = new ReqLogin();


        //req.account = _account.text;
        //req.password = _pwd.text;
        //Debug.Log(string.Format("{0},{1}", req.account, req.password));
        //Net.instance.Send((int)MsgID.ACC_LOGIN_CREQ, req);
    }
Esempio n. 25
0
    void OnRequeseLogin()
    {
        ReqLogin msg = new ReqLogin
        {
            AccountName = Account.text
        };

        Singleton <AccountData> .Instance.AccountName = Account.text;
        Singleton <EventManager> .Instance.DispatchEvent(EventName.REQ_LOGIN, msg);
    }
Esempio n. 26
0
    /// <summary>
    /// 响应登录的请求
    /// </summary>
    /// <param name="pack">消息包</param>
    public void ReqLogin(MsgPack pack)
    {
        ReqLogin data = pack.msg.reqLogin;
        // 回应客户端
        GameMsg msg = new GameMsg {
            cmd = (int)CMD.RspLogin // 操作码
        };

        // 判断是否在线,并做相应的处理
        if (cacheSvc.IsAcctOnLine(data.acct))   // 已在线,返回错误信息
        {
            msg.err = (int)ErrorCode.AcctIsOnLine;
        }
        else                                                             // 不在线,尝试登录
        {
            PlayerData pd = cacheSvc.GetPlayerData(data.acct, data.pwd); // 获取玩家数据
            if (pd == null)                                              // 账号和密码不匹配
            {
                msg.err = (int)ErrorCode.WrongPwd;
            }
            else   // 登录成功
                   // 计算离线体力增长
            {
                int  power        = pd.power;                                                                            // 当前体力
                long now          = timerSvc.GetNowTime();
                long milliseconds = now - pd.time;                                                                       // 距离上一次下线的时间间隔
                int  addPower     = (int)(milliseconds / (1000 * 60 * PECommon.PowerAddSpace)) * PECommon.PowerAddCount; // 需要增加的体力值
                if (addPower > 0)
                {
                    int powerMax = PECommon.GetPowerLimit(pd.lv);
                    if (pd.power < powerMax)
                    {
                        pd.power += addPower;
                        if (pd.power > powerMax)
                        {
                            pd.power = powerMax;
                        }
                    }
                }

                if (power != pd.power)
                {
                    cacheSvc.UpdatePlayerData(pd.id, pd);
                }
                // 响应客户端的数据
                msg.rspLogin = new RspLogin {
                    playerData = pd // 返回玩家数据
                };
                // 缓存账号数据
                cacheSvc.AcctOnLine(data.acct, pack.session, pd);
            }
        }
        // 回应客户端
        pack.session.SendMsg(msg);
    }
Esempio n. 27
0
    public void ReqLogin(MsgPack pack)
    {
        ReqLogin data = pack.gameMsg.val as ReqLogin;

        GameMsg msg = new GameMsg
        {
            cmd = (int)CMD.RspLogin,
        };

        //已上线:返回错误信息
        if (cacheSvc.IsAcctOnLine(data.acct))
        {
            msg.err = (int)ErrorCode.AcctIsOnline;
        }
        else
        {
            PlayerData pd = cacheSvc.GetPlayerData(data.acct, data.pass);
            if (pd == null)
            {
                msg.err = (int)ErrorCode.WrongPass;
            }
            else
            {
                int powerMax = Common.GetPowerLimit(pd.lv);
                if (pd.power < powerMax)
                {
                    int addPower = PowerSys.GetAddPowerOffline(TimerSvc.Instance.GetNowTime() - pd.time);
                    if (addPower + pd.power >= powerMax)
                    {
                        pd.power = powerMax;
                    }
                    else
                    {
                        pd.power += addPower;
                    }
                }

                if (!cacheSvc.UpdatePlayerData(pd.id, pd))
                {
                    msg.err = (int)ErrorCode.UpdateDBError;
                }
                else
                {
                    msg.val = new RspLogin
                    {
                        playerData = pd
                    };
                    cacheSvc.AcctOnline(data.acct, pack.session, pd);
                }
            }
        }

        pack.session.SendMsg(msg);
    }
Esempio n. 28
0
    public void SendLogin(string name, string password)
    {
        ReqLogin login = new ReqLogin();

        login.account  = name;
        login.password = password;
        using (MemoryStream stream = new MemoryStream())
        {
            Serializer.Serialize(stream, login);
            Send(Protocol.ReqLogin, stream.ToArray());
        }
    }
Esempio n. 29
0
    // Use this for initialization
    void Start()
    {
        ReqLogin aa = new ReqLogin();

        aa.password = "******";
        aa.account  = "lxb";
        byte[]   myByte = Comman.Serialize <ReqLogin> (aa);
        ReqLogin bb     = Comman.DeSerialize <ReqLogin> (myByte);

        Debug.Log(bb.account);
        Debug.Log(bb.password);
    }
Esempio n. 30
0
    /// <summary>
    /// 处理登录注册请求
    /// </summary>
    /// <param name="msg"></param>
    public void ReqLogin(MsgPack pack)
    {
        ReqLogin data = pack.msg.reqLogin;
        //给客户端的回应消息
        GameMsg rspMsg = new GameMsg()
        {
            cmd      = (int)CMD.RspLogin,
            rspLogin = new RspLogin()
            {
            },
        };

        //当前账号已上线 产生错误码
        if (cacheSvc.IsAcctOnLine(data.acct))
        {
            rspMsg.err = (int)ErrorCode.AcctIsOnline;
        }
        //当前账号未上线
        else
        {
            PlayerData pd = cacheSvc.GetPlayerData(data.acct, data.pass);
            if (pd != null)//账密匹配 产生玩家数据(这里包含了创建账号)
            {
                //更新玩家体力值
                int  power = pd.power;
                long time  = pd.time;
                long now   = TimerSvc.Instance.GetNowTime();
                pd.time = now;
                long millSeconds = now - time;
                int  addPower    = (int)(millSeconds / (1000 * 1 * PECommon.PowerAddMinute) * PECommon.PowerAddCount);
                if (addPower > 0)
                {
                    int powerMax = PECommon.GetPowerLimit(pd);
                    pd.power = power + addPower > powerMax ? powerMax : power + addPower;
                }
                if (pd.power > power)
                {
                    cacheSvc.UpdatePlayerData(pd.id, pd);
                }
                //将此账号添加到字典中
                cacheSvc.AddAcctOnline(data.acct, pack.session, pd);
                rspMsg.rspLogin.playerData = pd;
            }
            else//账密不匹配 产生错误码
            {
                rspMsg.err = (int)ErrorCode.ErrorPass;
            }
        }

        //回应客户端
        pack.session.SendMsg(rspMsg);
    }
Esempio n. 31
0
        public void ReqLogin(MsgPack pack)
        {
            ReqLogin data = pack.msg.reqLogin;
            // 判断当前账号是否已经上线
            GameMsg msg = new GameMsg
            {
                cmd      = (int)CMD.RspLogin,
                rspLogin = new RspLogin()
            };

            // 已上线:返回错误信息
            if (cacheSev.IsAccountOnline(data.account))
            {
                msg.err = (int)ErrorCode.AccountIsOnline;
            }
            else // 未上线:
            {
                // 账号是否存在并检测密码
                PlayerData pd = cacheSev.GetPlayerData(data.account, data.pass);
                if (pd == null)
                {
                    msg.err = (int)ErrorCode.WrongPass;
                }
                else
                {
                    int  power        = pd.power;
                    long milliseconds = timeSev.GetNowTime() - pd.time;
                    int  addPower     = (int)(milliseconds / (1000 * 60 * NETCommon.PowerAddSpace)) * NETCommon.PowerAddCount;
                    if (addPower > 0)
                    {
                        int powerMax    = NETCommon.GetPowerLimit(pd.lv);
                        int targetPower = pd.power + addPower;
                        pd.power = pd.power < powerMax ? (targetPower > powerMax ? powerMax : targetPower) : powerMax;
                    }
                    if (power != pd.power)
                    {
                        cacheSev.UpdatePlayerData(pd);
                    }

                    msg.rspLogin = new RspLogin
                    {
                        playerData = pd
                    };

                    // 缓存账号数据
                    cacheSev.CacheAccountOnline(data.account, pack.session, pd);
                }
            }

            // 回应客户端
            pack.session.SendMsg(msg);
        }
Esempio n. 32
0
	public void LogIn()
	{
		Debug.Log("\n");
		Debug.Log("<color=magenta>------------------------------------------------------------\nAppClient trying to login</color>");

		if (JgRefs.ins_.appClient.IsBound() == false)
			return;

		ReqLogin req = new ReqLogin();
		req.UserName = "******";
		req.LoginPlatform = "facebook";
		req.DeviceDesc = "unknown device";

		JgRefs.ins_.msg.SendMessageToServer(JgC2S_Msgs.kLogin, req);
	}
Esempio n. 33
0
	void HandleMessage(JStateObject state, ReqLogin req)
	{
		Debug.Log(string.Format("<color=green>HandleMessage-ReqLogin : </color>",req.ToString()));
		AnsLogin ans = new AnsLogin();

		DummyUserInfo dummyUserInfo = JgRefs.ins_.dummyDb.GetUserInfo(req.UserName);

		bool isLoginOk = ans.Usn > 0;
		if (isLoginOk)
		{
			state.gsn = dummyUserInfo.gsn;
			state.name = dummyUserInfo.nickName;

			ans.NickName = dummyUserInfo.nickName;
			ans.Level = dummyUserInfo.gameLevel;
			ans.VictoryCount = dummyUserInfo.victoryCount;
			ans.DefeatCount = dummyUserInfo.defeatCount;
		}
		else
		{
			ans.NickName = string.Empty;
		}

		ans.Comment = "I'm a server.";

		if (isLoginOk) 
		{
			AddUser(state, dummyUserInfo);
		}

		Send(state.workSocket, (byte)JgS2C_Msgs.kLogin, ans);
	}
 public ReqLogin ChooseInitShipAndName(string name, string shipCid)
 {
     ReqLogin component = new ReqLogin();
     component.ChooseInitShipAndName(name, shipCid);
     return component;
 }