示例#1
0
 public override void Stop()
 {
     if (this.IsRunning == 1)
     {
         this.IsRunning = -1;
         if (!MarryRoomMgr.UpdateBreakTimeWhereServerStop())
         {
             Console.WriteLine("Update Marry BreakTime failed");
         }
         if (!SpaRoomMgr.UpdateBreakTimeWhereSpaServerStop())
         {
             Console.WriteLine("Update Spa BreakTime failed");
         }
         RoomMgr.Stop();
         GameMgr.Stop();
         BattleMgr.Stop();
         if (this._loginServer != null)
         {
             this._loginServer.Disconnected -= new ClientEventHandle(this.loginServer_Disconnected);
             this._loginServer.Disconnect();
         }
         if (this.m_pingCheckTimer != null)
         {
             this.m_pingCheckTimer.Change(-1, -1);
             this.m_pingCheckTimer.Dispose();
             this.m_pingCheckTimer = null;
         }
         if (this.m_saveDbTimer != null)
         {
             this.m_saveDbTimer.Change(-1, -1);
             this.m_saveDbTimer.Dispose();
             this.m_saveDbTimer = null;
         }
         if (this.m_saveRecordTimer != null)
         {
             this.m_saveRecordTimer.Change(-1, -1);
             this.m_saveRecordTimer.Dispose();
             this.m_saveRecordTimer = null;
             this.SaveRecordProc(null);
         }
         if (this.m_buffScanTimer != null)
         {
             this.m_buffScanTimer.Change(-1, -1);
             this.m_buffScanTimer.Dispose();
             this.m_buffScanTimer = null;
         }
         if (this.m_limitItemRefreshTimer != null)
         {
             this.m_limitItemRefreshTimer.Change(-1, -1);
             this.m_limitItemRefreshTimer.Dispose();
             this.m_limitItemRefreshTimer = null;
         }
         this.SaveTimerProc(null);
         base.Stop();
         Thread.CurrentThread.Priority = ThreadPriority.BelowNormal;
         GameServer.log.Warn("Server Stopped!");
     }
 }
示例#2
0
        /// <summary>
        /// Stops the server, disconnects all clients, and writes the database to disk
        /// </summary>
        public override void Stop()
        {
            if (m_isRunning)
            {
                m_isRunning = false;

                //记录礼堂使用情况
                if (!MarryRoomMgr.UpdateBreakTimeWhereServerStop())
                {
                    Console.WriteLine("Update BreakTime failed");
                }

                RoomMgr.Stop();
                GameMgr.Stop();

                if (_loginServer != null)
                {
                    _loginServer.Disconnected -= new ClientEventHandle(loginServer_Disconnected);
                    _loginServer.Disconnect();
                }

                //ping check timer
                if (m_pingCheckTimer != null)
                {
                    m_pingCheckTimer.Change(Timeout.Infinite, Timeout.Infinite);
                    m_pingCheckTimer.Dispose();
                    m_pingCheckTimer = null;
                }

                //Stop the World Save timer
                if (m_saveDbTimer != null)
                {
                    m_saveDbTimer.Change(Timeout.Infinite, Timeout.Infinite);
                    m_saveDbTimer.Dispose();
                    m_saveDbTimer = null;
                }

                if (m_saveRecordTimer != null)
                {
                    m_saveRecordTimer.Change(Timeout.Infinite, Timeout.Infinite);
                    m_saveRecordTimer.Dispose();
                    m_saveRecordTimer = null;
                    SaveRecordProc(null);
                }

                if (m_buffScanTimer != null)
                {
                    m_buffScanTimer.Change(Timeout.Infinite, Timeout.Infinite);
                    m_buffScanTimer.Dispose();
                    m_buffScanTimer = null;
                }

                SaveTimerProc(null);

                //Stop the base server
                base.Stop();

                Thread.CurrentThread.Priority = ThreadPriority.BelowNormal;

                log.Info("Server Stopped!");
                //LogManager.Shutdown();


                Console.WriteLine("Server Stopped!");
            }
        }