예제 #1
0
 public virtual void OnLoginFailed(ELoginResult result)
 {
     Log("Login failed reason " + result);
 }
예제 #2
0
 public void OnLoginFailed(ELoginResult result)
 {
     Log("Login failed reason " + result);
     EventHelper.Trigger(EEvent.OnLoginFailed, result);
 }
예제 #3
0
        void OnLogin(Client peer, C_Login_Login_0x0101 msg)
        {
            Singleton._log.InfoFormat("[{0}] 帐号 {1} 登录!", msg.GetMessageID().ToHex()
                                      , (msg == null ? "null" : msg._accountName));
            var          rs    = Singleton._sqlServer.CheckAccount(msg._accountName, msg._password);
            ELoginResult newRs = ELoginResult.Failed_AccountNotExist;

            switch (rs)
            {
            case Sql.EAccountResult.AccountNotExist:
                newRs = ELoginResult.Failed_AccountNotExist;
                break;

            case Sql.EAccountResult.PasswordNotCorrect:
                newRs = ELoginResult.Failed_Unknown;
                break;

            case Sql.EAccountResult.Success:
                newRs = ELoginResult.Success;
                break;
            }
            if (newRs == ELoginResult.Success)
            {
                if (Singleton._clients.ContainsKey(msg._accountName))
                {
                    // 如果同名则踢出前面登录客户端
                    var client = Singleton._clients[msg._accountName];
                    // 在Disconnect中会移除这个名字
                    Singleton._log.Info("connectId = " + peer.ConnectionId + ", 移除 " + msg._accountName);
                    Singleton._clients.Remove(msg._accountName);
                    client.Disconnect();
                }

                Singleton._log.Info("connectId = " + peer.ConnectionId + ", 添加 " + msg._accountName);
                Singleton._clients[msg._accountName] = peer;
                peer._accountName = msg._accountName;

                // 登录赠送金币1, 每天只限一次
                var p = Singleton._sqlServer.GetPlayerData(msg._accountName);
                // 设置登录时间
                p._lastLoginTime = Singleton._timeUtil.DateTimeToStamp(System.DateTime.Now);
                var time = Singleton._timeUtil.StampToDateTime(p._lastObtainGoldTime);
                var now  = System.DateTime.Now;
                Singleton._log.Info("now=" + now + ", last=" + time);
                if (Singleton._timeUtil.GetTimeGap(now, time) >= 24 * 3600 || // 如果时间间隔超过24小时
                    (time.Day - now.Day > 0))    // 或者在24小时以内但不在同一天登录的
                {
                    p._lastObtainGoldTime = Singleton._timeUtil.DateTimeToStamp(System.DateTime.Now);
                    Singleton._log.Info("增加金币数1!");
                    var a = Singleton._sqlServer.GetAssetData(msg._accountName);
                    a._gold += 1;
                    Singleton._sqlServer.ChangeAsset(a);
                }
                Singleton._sqlServer.SavePlayer(p);
            }

            // 返回数据
            Send(peer, new S_Login_Login_0x0101 {
                _rs = newRs
            });

            // 测试
            // System.Threading.Thread.Sleep(3000);
            // peer.Disconnect();
            // SendFromServer(peer, new S_Item_Gift_0x0401{ _itemId = 1, _count = 10});
        }
예제 #4
0
 // Token: 0x06000175 RID: 373 RVA: 0x00005AFE File Offset: 0x00003CFE
 public virtual void OnLoginFailed(ELoginResult result)
 {
     base.Log("Login failed reason " + result, Array.Empty <object>());
 }