/// <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); } } }
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); } } }
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); } }