// 서버에서 메뉴로만 쓰는 명령어.. void MMatchServer::OnAdminServerHalt() { LOG(LOG_PROG, "OnAdminServerHalt() Called"); // Shutdown 시작 m_MatchShutdown.Start(GetGlobalClockCount()); }
void MMatchServer::OnAdminServerHalt(const MUID& uidAdmin) { LOG(LOG_PROG, "OnAdminServerHalt(...) Called"); MMatchObject* pObj = GetObject(uidAdmin); if (pObj == NULL) return; MMatchUserGradeID nGrade = pObj->GetAccountInfo()->m_nUGrade; // 관리자 권한을 가진 사람이 아니면 무시. if ((nGrade != MMUG_ADMIN) && (nGrade != MMUG_DEVELOPER)) return; // Shutdown 시작 m_MatchShutdown.Start(GetGlobalClockCount()); }
void MMatchServer::OnAdminPingToAll(const MUID& uidAdmin) { MMatchObject* pObj = GetObject(uidAdmin); if (pObj == NULL) return; // 관리자 권한을 가진 사람이 아니면 연결을 끊는다. if (!IsAdminGrade(pObj)) { // DisconnectObject(uidAdmin); return; } MCommand* pNew = CreateCommand(MC_NET_PING, MUID(0,0)); pNew->AddParameter(new MCmdParamUInt(GetGlobalClockCount())); RouteToAllConnection(pNew); }
void MBMatchServer::OnPrepareCommand(MCommand* pCommand) { #if defined(_DEBUG) && defined(MFC) #ifndef _DEBUG_PUBLISH // 커맨드 로그 남기기 if(m_pCmdLogView==NULL) return; CMatchServerApp* pApp = (CMatchServerApp*)AfxGetApp(); if (pApp->CheckOutputLog() == false) return; CCommandLogView::CCommandType t; if(pCommand->m_pCommandDesc->IsFlag(MCDT_LOCAL)==true) t = CCommandLogView::CCT_LOCAL; else if(pCommand->m_Sender==m_This) t = CCommandLogView::CCT_SEND; else if(pCommand->m_Receiver==m_This) t = CCommandLogView::CCT_RECEIVE; else _ASSERT(FALSE); m_pCmdLogView->AddCommand(GetGlobalClockCount(), t, pCommand); #endif #endif }