#include "stdafx.h" #include #include "misc.h" #include ".\ServerGlobal.h" #define SERVER_STRING(serverType) #serverType static TCHAR* s_ServerNames[MAX_SERVER] = { SERVER_STRING("未知服务"), SERVER_STRING("代理服务"), SERVER_STRING("场景服务"), SERVER_STRING("战斗服务"), SERVER_STRING("游戏数据库代理服务"), SERVER_STRING("世界服务"), SERVER_STRING("主服务"), SERVER_STRING("帮会服务"), SERVER_STRING("账号数据库代理服务"), SERVER_STRING(TOURNAMENT_SERVER), SERVER_STRING("账号代理服务"), SERVER_STRING("门户服务"), SERVER_STRING(SOLARAUTH_SERVER), SERVER_STRING("商城服务"), NULL, //14 NULL, //15 NULL, //16 NULL, //17 NULL, //18 NULL, //19 NULL, //20 NULL, //21 NULL, //22 NULL, //23 NULL, //24 SERVER_STRING(OP_SERVER), SERVER_STRING("临时服务"), SERVER_STRING("游戏服务"), SERVER_STRING("验证服务"), SERVER_STRING("登录前端服务"), SERVER_STRING(BILLING_SERVER), SERVER_STRING(CLIENT_SERVER), //SERVER_STRING(UNKNOWN_SERVER), //SERVER_STRING(AGENT_SERVER), //SERVER_STRING(FIELD_SERVER), //SERVER_STRING(BATTLE_SERVER), //SERVER_STRING(GAME_DBPROXY), //SERVER_STRING(WORLD_SERVER), //SERVER_STRING(MASTER_SERVER), //SERVER_STRING(GUILD_SERVER), //SERVER_STRING(ACCOUNT_DBPROXY), //SERVER_STRING(TOURNAMENT_SERVER), //SERVER_STRING(AUTH_AGENT_SERVER), //SERVER_STRING(PORTAL_SERVER), //SERVER_STRING(SOLARAUTH_SERVER), //SERVER_STRING(SHOP_SERVER), //NULL, //14 //NULL, //15 //NULL, //16 //NULL, //17 //NULL, //18 //NULL, //19 //NULL, //20 //NULL, //21 //NULL, //22 //NULL, //23 //NULL, //24 //SERVER_STRING(OP_SERVER), //SERVER_STRING(TEMP_SERVER), //SERVER_STRING(GAME_SERVER), //SERVER_STRING(AUTH_SERVER), //SERVER_STRING(LOGIN_FRONT_SERVER), //SERVER_STRING(BILLING_SERVER), //SERVER_STRING(CLIENT_SERVER), }; //-------------------------------------------------------------------------------- // 辑滚鸥涝阑 巩磊凯肺 馆券窍绰 窃荐 //-------------------------------------------------------------------------------- TCHAR * GetServerType2String( eSERVER_TYPE eType ) { if( UNKNOWN_SERVER < eType && eType < MAX_SERVER ) return s_ServerNames[eType]; else return s_ServerNames[UNKNOWN_SERVER]; } VOID DisplayDebugInfo( eSERVER_TYPE ServerType, int iMode, BOOL bDebug, DWORD HighVerNo, DWORD MiddleVerNo, DWORD LowVerNo, DWORD BuildVer, WORD WorldNum, WORD ChannelNum, WORD ServerID ) { const int TITLE_LEN = 256; const int MODE_LEN = 10; TCHAR pszTitle[TITLE_LEN+1]; TCHAR tszDebug[MODE_LEN+1] = "RELEASE"; TCHAR tszMode[MODE_LEN+1] = "UNKNOWN"; switch(iMode) { case 1: _tcsncpy( tszMode, "DEV", MODE_LEN ); break; case 2: _tcsncpy( tszMode, "INTRAOFFICE", MODE_LEN ); break; case 3: _tcsncpy( tszMode, "LIVE", MODE_LEN ); break; case 4: _tcsncpy( tszMode, "TESTLIVE", MODE_LEN ); break; } if( bDebug ) _tcsncpy( tszDebug, "DEBUG", MODE_LEN ); tszDebug[MODE_LEN] = '\0'; tszMode[MODE_LEN] = '\0'; _sntprintf( pszTitle, TITLE_LEN, "%s-%s-%s-(Ver:%u-%u-%u),Build:(%u),World:%u,Channel:%u,ServerID:%u", GetServerType2String(ServerType), tszMode, tszDebug, HighVerNo, MiddleVerNo, LowVerNo, BuildVer, WorldNum, ChannelNum, ServerID ); pszTitle[TITLE_LEN] = '\0'; //if( NULL == hWnd ) { hWnd = GetConsoleWindow(); if( NULL == hWnd ) { hWnd = GetActiveWindow(); if( NULL == hWnd ) { hWnd = GetForegroundWindow(); } } } //SetWindowText( hWnd, pszTitle ); SetConsoleTitle(pszTitle); } BOOL GetCommandLineArg( int idx, char *szCommandLine, char *pszTargetBuf, int nMaxBufSize ) { char sep[] = " "; char line[255]; strncpy( line, szCommandLine, 255 ); char *token = strtok( line, sep ); while( token && idx ) { token = strtok( NULL, sep ); --idx; } if( token != NULL ) strncpy( pszTargetBuf, token, nMaxBufSize ); else { pszTargetBuf[0] = NULL; return FALSE; } return TRUE; } VOID SetApplicationDirectory() { TCHAR szPath[MAX_PATH], szDir[MAX_PATH]; GetModuleFileName( NULL, szPath, MAX_PATH ); char* pBackSlash = strrchr( szPath, '\\'); int nBackSlash = pBackSlash - szPath; strncpy( szDir, szPath, MAX_PATH ); szDir[nBackSlash] = '\0'; SetCurrentDirectory( szDir ); DISPMSG( "当前工作路径 = %s\n", szDir ); } BOOL ParseArguments( char *lpCmdLine ) { char szPath[255]; GetCommandLineArg( 0, lpCmdLine, szPath, 255 ); // (CHANGES) (100115) (WAVERIX) changes code block szPath[_countof(szPath) - 1] = '\0'; // 累诀叼泛配府 汲沥 if (szPath[0] == '\0') { SetApplicationDirectory(); } else { SetCurrentDirectory(szPath); } return TRUE; }