示例#1
0
        public bool Update(float fDelta)
        {
            if (m_timeRegulatorToUpdate.IsReady(fDelta) == false)
            {
                return(false);
            }

            bool bTryRevive = false;

            LinkedListNode <ServerInfo> node = m_refServerInfoMgr.ServerInfoList.First;

            for (; node != null; node = node.Next)
            {
                if (node.Value.ProcessState != PROCESS_STATE.DIED ||
                    node.Value.IsRevivable == false)
                {
                    continue;
                }

                if (m_refServerController.StartServer(node.Value.ServerName) == false)
                {
                    continue;
                }

                bTryRevive = true;
            }

            return(bTryRevive);
        }
示例#2
0
        public void StartServer(string strServerName)
        {
            PROCESS_STATE eProcessState;

            m_serverInfoMgr.GetProcessState(strServerName, out eProcessState);
            if (eProcessState == PROCESS_STATE.RUNNING || eProcessState == PROCESS_STATE.STARTING)
            {
                return;
            }

            if (m_serverController.StartServer(strServerName) == false)
            {
                return;
            }

            m_updaterServerListView.UpdateServerListInfo(strServerName);
        }