Пример #1
0
        public bool OnSetRevivableAttReq(NetCommand command)
        {
            string strServerName;
            bool   bRevivable;

            if (command.ReadString(out strServerName) == false)
            {
                return(false);
            }
            if (command.ReadBoolean(out bRevivable) == false)
            {
                return(false);
            }

            m_refServerMonitor.SetServerRevivable(strServerName, bRevivable);

            TRANS_SERVERINFONODE[] serverInfo = new TRANS_SERVERINFONODE[1];
            if (m_refServerMonitor.refServerInfoMgr.GetTRANS_SERVERINFONODE(strServerName, ref serverInfo[0]) == false)
            {
                return(false);
            }

            if (m_refCommandSender.SendGetServerInfoRes(command.SessionID, ref serverInfo) == false)
            {
                return(false);
            }

            return(true);
        }
Пример #2
0
        public bool OnTerminateServerReq(NetCommand command)
        {
            string strServerName;

            if (command.ReadString(out strServerName) == false)
            {
                return(false);
            }


            if (null == m_refServerMonitor.refServerInfoMgr.Find(strServerName))
            {
                return(true);
            }

            m_refServerMonitor.TerminateServer(strServerName);


            TRANS_SERVERINFONODE[] serverInfo = new TRANS_SERVERINFONODE[1];
            if (m_refServerMonitor.refServerInfoMgr.GetTRANS_SERVERINFONODE(strServerName, ref serverInfo[0]) == false)
            {
                return(false);
            }

            if (m_refCommandSender.SendGetServerInfoRes(command.SessionID, ref serverInfo) == false)
            {
                return(false);
            }

            return(true);
        }
Пример #3
0
        private bool OnGetServerInfoRes(NetCommand command)
        {
            byte nServerCount;

            if (command.ReadByte(out nServerCount) == false)
            {
                return(false);
            }

            TRANS_SERVERINFONODE[] arrServerInfo = new TRANS_SERVERINFONODE[nServerCount];
            for (int i = 0; i < nServerCount; ++i)
            {
                if (command.ReadString(out arrServerInfo[i].strServerName) == false)
                {
                    return(false);
                }
                if (command.ReadByte(out arrServerInfo[i].nProcessState) == false)
                {
                    return(false);
                }
                if (command.ReadByte(out arrServerInfo[i].nServableState) == false)
                {
                    return(false);
                }
                if (command.ReadBoolean(out arrServerInfo[i].bRevivable) == false)
                {
                    return(false);
                }
                if (command.ReadInt32(out arrServerInfo[i].nCurServerPlayerCount) == false)
                {
                    return(false);
                }
            }

            UInt64 nSessionID = command.SessionID;

            MachineInfo refMachineInfo = m_refServerMonitorClient.refMachineInfoMgr.Find(nSessionID);

            if (null == refMachineInfo)
            {
                return(false);
            }

            for (int i = 0; i < nServerCount; ++i)
            {
                string         strServerName         = arrServerInfo[i].strServerName;
                PROCESS_STATE  eProcessState         = (PROCESS_STATE)arrServerInfo[i].nProcessState;
                SERVABLE_STATE eServableState        = (SERVABLE_STATE)arrServerInfo[i].nServableState;
                bool           bRevivable            = arrServerInfo[i].bRevivable;
                int            nCurServerPlayerCount = arrServerInfo[i].nCurServerPlayerCount;

                m_refServerMonitorClient.UpdateServerInfo(refMachineInfo.GetName(), strServerName, eProcessState, eServableState, bRevivable, nCurServerPlayerCount);
            }

            m_refServerMonitorClient.UpdateMachinePlayerCount(refMachineInfo.GetName());

            return(true);
        }
Пример #4
0
        public void TestGetTRANS_SERVERINFO()
        {
            m_serverInfoMgr.AddServerInfo(TEST_SERVER_TYPE, TEST_SERVER_NAME1, TEST_SERVER_EXE_PATH1, WORLD_ID1, SERVER_ID1);

            TRANS_SERVERINFONODE serverInfo = new TRANS_SERVERINFONODE();

            m_serverInfoMgr.GetTRANS_SERVERINFONODE(TEST_SERVER_NAME1, ref serverInfo);

            Assert.AreEqual(false, serverInfo.bRevivable);
            Assert.AreEqual(PROCESS_STATE.TERMINATED, (PROCESS_STATE)serverInfo.nProcessState);
            Assert.AreEqual(TEST_SERVER_NAME1, serverInfo.strServerName);
        }
Пример #5
0
        private bool OnTerminatetAllServerReq(NetCommand command)
        {
            m_refServerMonitor.TerminateAllServer();

            TRANS_SERVERINFONODE[] serverInfo = new TRANS_SERVERINFONODE[m_refServerMonitor.refServerInfoMgr.ServerInfoCount];
            m_refServerMonitor.refServerInfoMgr.GetTRANS_SERVERINFONODE(ref serverInfo);

            if (m_refCommandSender.SendGetServerInfoRes(command.SessionID, ref serverInfo) == false)
            {
                return(false);
            }

            return(true);
        }
Пример #6
0
        public bool GetTRANS_SERVERINFONODE(string strServerName, ref TRANS_SERVERINFONODE refTransServerInfo)
        {
            ServerInfo serverInfo = Find(strServerName);

            if (null == serverInfo)
            {
                return(false);
            }

            refTransServerInfo.strServerName         = serverInfo.ServerName;
            refTransServerInfo.nProcessState         = (byte)serverInfo.ProcessState;
            refTransServerInfo.nServableState        = (byte)serverInfo.ServableState;
            refTransServerInfo.bRevivable            = serverInfo.IsRevivable;
            refTransServerInfo.nCurServerPlayerCount = serverInfo.CurPlayerCount;
            return(true);
        }
Пример #7
0
        public bool OnGetServerInfoReq(NetCommand command)
        {
            byte nServerNameCount;

            string[] arrServerNames;

            if (command.ReadByte(out nServerNameCount) == false)
            {
                return(false);
            }

            arrServerNames = new string[nServerNameCount];
            for (int i = 0; i < nServerNameCount; ++i)
            {
                if (command.ReadString(out arrServerNames[i]) == false)
                {
                    return(false);
                }
            }


            TRANS_SERVERINFONODE        serverInfo     = new TRANS_SERVERINFONODE();
            List <TRANS_SERVERINFONODE> listServerInfo = new List <TRANS_SERVERINFONODE>();

            for (int i = 0; i < nServerNameCount; ++i)
            {
                if (m_refServerMonitor.refServerInfoMgr.GetTRANS_SERVERINFONODE(arrServerNames[i], ref serverInfo) == false)
                {
                    continue;
                }

                listServerInfo.Add(serverInfo);
            }

            TRANS_SERVERINFONODE[] arrServerInfo = new TRANS_SERVERINFONODE[listServerInfo.Count];
            listServerInfo.CopyTo(arrServerInfo);

            if (m_refCommandSender.SendGetServerInfoRes(command.SessionID, ref arrServerInfo) == false)
            {
                return(false);
            }

            return(true);
        }