Exemple #1
0
        /// <summary>
        /// 客户端断开连接
        /// </summary>
        protected override void OnDisconnect()
        {
            try
            {
                GamePlayer player = Interlocked.Exchange <GamePlayer>(ref m_player, null);
                if (player != null)
                {
                    player.FightBag.ClearBag();
                    resetStoreBag2(player);
                    LoginMgr.ClearLoginPlayer(player.PlayerCharacter.ID, this);
                    player.Quit();
                }

                byte[] temp = m_sendBuffer;
                m_sendBuffer = null;
                _srvr.ReleasePacketBuffer(temp);

                temp         = m_readBuffer;
                m_readBuffer = null;
                _srvr.ReleasePacketBuffer(temp);

                base.OnDisconnect();
            }
            catch (Exception e)
            {
                if (log.IsErrorEnabled)
                {
                    log.Error("OnDisconnect", e);
                }
            }
        }
Exemple #2
0
 protected override void OnDisconnect()
 {
     try
     {
         GamePlayer player = Interlocked.Exchange <GamePlayer>(ref this.m_player, null);
         if (player != null)
         {
             player.ClearFightBag();
             LoginMgr.ClearLoginPlayer(player.PlayerCharacter.ID, this);
             player.Quit();
         }
         byte[] temp = this.m_sendBuffer;
         this.m_sendBuffer = null;
         this._srvr.ReleasePacketBuffer(temp);
         temp = this.m_readBuffer;
         this.m_readBuffer = null;
         this._srvr.ReleasePacketBuffer(temp);
         base.OnDisconnect();
     }
     catch (Exception e)
     {
         //if (GameClient.log.IsErrorEnabled)
         {
             GameClient.log.Error("OnDisconnect", e);
         }
     }
 }
 protected override void OnDisconnect()
 {
     try
     {
         GamePlayer gamePlayer = Interlocked.Exchange <GamePlayer>(ref this.m_player, null);
         if (gamePlayer != null)
         {
             gamePlayer.FightBag.ClearBag();
             this.SaveBag(gamePlayer);
             LoginMgr.ClearLoginPlayer(gamePlayer.PlayerCharacter.ID, this);
             gamePlayer.Quit();
         }
         byte[] buf = this.m_sendBuffer;
         this.m_sendBuffer = null;
         this._srvr.ReleasePacketBuffer(buf);
         buf = this.m_readBuffer;
         this.m_readBuffer = null;
         this._srvr.ReleasePacketBuffer(buf);
         base.OnDisconnect();
     }
     catch (Exception exception)
     {
         if (GameClient.log.IsErrorEnabled)
         {
             GameClient.log.Error("OnDisconnect", exception);
         }
     }
 }
Exemple #4
0
        protected void HandleUserOnline(GSPacketIn packet)
        {
            int count = packet.ReadInt();

            for (int i = 0; i < count; i++)
            {
                int playerid    = packet.ReadInt();
                int consortiaID = packet.ReadInt();
                LoginMgr.ClearLoginPlayer(playerid);
                GamePlayer player = WorldMgr.GetPlayerById(playerid);
                if (player != null)
                {
                    GameServer.log.Error("Player hang in server!!!");
                    player.Out.SendKitoff(LanguageMgr.GetTranslation("Game.Server.LoginNext", new object[0]));
                    player.Client.Disconnect();
                }
                WorldMgr.OnPlayerOnline(playerid, consortiaID, 0, false);
            }
        }