void MBMatchServer::WriteServerInfoLog() { mlog( "\n" ); mlog( "================================== Server configure info ==================================\n" ); char szTemp[256]; sprintf_safe(szTemp, "Release Date : %s", __DATE__); Log(LOG_ALL, szTemp); if( MC_KOREA == MGetLocale()->GetCountry() ) LOG( LOG_ALL, "Server Country : KOREA" ); else if( MC_US == MGetLocale()->GetCountry() ) LOG( LOG_ALL, "Server Country : US" ); else if( MC_JAPAN == MGetLocale()->GetCountry() ) LOG( LOG_ALL, "Server Country : JAPAN" ); else if( MC_BRAZIL == MGetLocale()->GetCountry() ) LOG( LOG_ALL, "Server Country : BRAZIL" ); else if( MC_INDIA == MGetLocale()->GetCountry() ) LOG( LOG_ALL, "Server Country : INDIA" ); else { ASSERT( 0 && "국가 설정을 해주세요." ); LOG( LOG_ALL, "!!!!!!!!!Not setted country code!!!!!!!!!!!!!" ); } LOG( LOG_ALL, "Command version : (%u)", MCOMMAND_VERSION ); LOG( LOG_ALL, "Event usable state : (%s)", MGetServerConfig()->IsUseEvent() ? "true" : "false" ); LOG( LOG_ALL, "Load event size : (%u)", MMatchEventFactoryManager::GetInstance().GetLoadEventSize() ); LOG( LOG_ALL, "FileCRCCheckSum usable state : (%s)", MGetServerConfig()->IsUseFileCrc() ? "true" : "false" ); LOG( LOG_ALL, "FileCRC size : (%u)", MMatchAntiHack::GetFielCRCSize() ); LOG( LOG_ALL, "Country Code Filter usalbe state : (%s)", MGetServerConfig()->IsUseFilter() ? "true" : "false" ); LOG( LOG_ALL, "Accept Invalied IP state : (%s)", MGetServerConfig()->IsAcceptInvalidIP() ? "true" : "false" ); LOG( LOG_ALL, "Keeper IP : (%s)", MGetServerConfig()->GetKeeperIP().c_str() ); mlog( "===========================================================================================\n" ); mlog( "\n" ); }
void MMatchServer::OnMatchLoginFromNetmarbleJP(const MUID& CommUID, const char* szLoginID, const char* szLoginPW, int nCmdVersion, unsigned long nChecksumPack) { bool bFreeLoginIP = false; string strCountryCode3; // 프로토콜, 최대인원 체크 if (!CheckOnLoginPre(CommUID, nCmdVersion, bFreeLoginIP, strCountryCode3)) return; // DBAgent에 먼저 보내고 응답을 받으면 로그인 프로세스를 진행한다. if (!MGetLocale()->PostLoginInfoToDBAgent(CommUID, szLoginID, szLoginPW, bFreeLoginIP, nChecksumPack, GetClientCount())) { mlog( "Server user full(DB agent error).\n" ); MCommand* pCmd = CreateCmdMatchResponseLoginFailed(CommUID, MERR_CLIENT_FULL_PLAYERS); Post(pCmd); return; } }
void MMatchEventFactoryManager::ParseLocale( MXmlElement& chrElement ) { EventData ed; char szAttrName[ 128 ]; char szAttrValue[ 256 ]; const int nAttrCnt = chrElement.GetAttributeCount(); for( int i = 0; i < nAttrCnt; ++i ) { chrElement.GetAttribute( i, szAttrName, szAttrValue ); if( 0 == stricmp(EL_COUNTRY, szAttrName) ) { /* // MBaseLocale.h // enum MCountry { MC_KOREA = 82, // 한국 MC_US = 1, // 미국(인터네셔날) MC_JAPAN = 81, // 일본 }; */ string strCountry; switch( MGetLocale()->GetCountry() ) { case MC_KOREA : { strCountry = "kor"; } break; case MC_US : { strCountry = "us"; } break; case MC_JAPAN : { strCountry = "jpn"; } break; case MC_BRAZIL : { strCountry = "brz"; } break; case MC_INDIA : { strCountry = "ind"; } break; default : { ASSERT( 0 ); } break; } // 현제 서버랑 같은 국가 타입만 파싱함. // if( 0 == stricmp(strCountry.c_str(), szAttrValue) ) // 국가코드 구분 안함. 이미 국가별로 나눠줘 있음. if( true ) { MXmlElement chrNode; char szTag[ 128 ]; const int nChrCnt = chrElement.GetChildNodeCount(); for( int j = 0; j < nChrCnt; ++j ) { chrNode = chrElement.GetChildNode( j ); chrNode.GetTagName( szTag ); if( 0 == stricmp(EL_EVENT, szTag) ) { ParseEvent( chrNode ); } } } } } }