void _auto_login( ) { CScanner s; if( TRUE == s.Load( "autologin.ini" ) ) { while( s.tok != FINISHED ) { s.GetToken(); if( "Account" == s.Token ) { s.GetToken(); g_Console._strAccount = s.Token; } else if( "Password" == s.Token ) { s.GetToken(); g_Console._StrPassword = s.Token; } else if( "n2ndPassword" == s.Token ) { g_Console._nPasswordReal = s.GetNumber(); } else if( "nServer" == s.Token ) { g_Console._nServer = s.GetNumber(); } else if( "nCharacter" == s.Token ) { g_Console._nCharacter = s.GetNumber(); } } } }
BOOL Script( LPCSTR lpszFileName ) { CScanner s; if( s.Load( lpszFileName ) ) { s.GetToken(); while( s.tok != FINISHED ) { if( s.Token == "Core" ) { s.GetToken(); strcpy( g_szCoreAddr, s.Token ); } else if( s.Token == "Port" ) { g_uPort = s.GetNumber(); } s.GetToken(); } return TRUE; } Error( "Can't open file, %s.\n", lpszFileName ); return FALSE; };
void LoadResAuth( LPCTSTR lpszFileName ) { CScanner s; if( s.Load( lpszFileName ) ) { s.GetToken(); lstrcpy( g_dpSrvr.m_szResVer, s.Token ); } }
BOOL Script( LPCSTR lpszFileName ) { g_eLocal.SetState( EVE_RESPAWN, 1 ); CScanner s; if( s.Load( lpszFileName ) == FALSE) { Error("Fail to open file - %s", lpszFileName ); return FALSE; } s.GetToken(); while( s.tok != FINISHED ) { if( s.Token == "ResourceFolder" ) { s.GetToken(); if( !SetCurrentDirectory( s.Token ) ) { Error( "Folder not found, %s", s.Token ); return FALSE; } } else if( s.Token == "Key" ) { g_uKey = (DWORD)s.GetNumber(); #ifdef __S8_SERVER_PORT g_uIdofMulti = g_uKey % 100; #else // __S8_SERVER_PORT g_uIdofMulti = g_uKey / 100; #endif // __S8_SERVER_PORT } else if( s.Token == "Core" ) { s.GetToken(); strcpy( g_szCoreAddr, s.Token ); } else if( s.Token == "DB" ) { s.GetToken(); strcpy( g_szDBAddr, s.Token ); } else if( s.Token == "Account" ) { s.GetToken(); /* #ifdef __GIFTBOX0213 lstrcpy( s_szAccountAddr, s.Token ); #endif // __GIFTBOX0213 */ } else if( s.Token == "Heartbeat" ) { s.GetToken(); strcpy( g_sHeartbeat, s.Token ); } else if( s.Token == "18" ) { g_eLocal.SetState( EVE_18, 1 ); // 18세 서버 } else if( s.Token == "PK" ) { g_eLocal.SetState( EVE_PK, 1 ); } else if( s.Token == "PKCOST" ) { g_eLocal.SetState( EVE_PKCOST, 1 ); } else if( s.Token == "STEAL" ) { g_eLocal.SetState( EVE_STEAL, 1 ); } else if (s.Token == "GUILDBANK") { g_eLocal.SetState( ENABLE_GUILD_INVENTORY, 1 ); } else if( s.Token == "GUILDWAR" ) { g_eLocal.SetState( EVE_GUILDWAR, 1 ); } else if( s.Token == "DROPITEM_REMOVE" ) { g_eLocal.SetState( EVE_DROPITEMREMOVE, 1 ); } else if( s.Token == "SCHOOL" ) { //g_eLocal.SetState( EVE_SCHOOL, 1 ); } else if( s.Token == "GUILDCOMBAT") { g_eLocal.SetState( EVE_GUILDCOMBAT, 1 ); } else if( s.Token == "WORMON" ) { g_eLocal.SetState( EVE_WORMON, 1 ); } else if( s.Token == "respawn" ) { g_eLocal.SetState( EVE_RESPAWN, (BYTE)s.GetNumber() ); } #ifdef __S_RECOMMEND_EVE else if( s.Token == "RECOMMEND" ) { g_eLocal.SetState( EVE_RECOMMEND, 1 ); } #endif // __S_RECOMMEND_EVE #if __VER >= 11 // __GUILD_COMBAT_1TO1 else if( s.Token == "GUILDCOMBAT1TO1" ) { g_eLocal.SetState( EVE_GUILDCOMBAT1TO1, 1 ); } #endif // __GUILD_COMBAT_1TO1 #ifdef __JEFF_11_4 else if( s.Token == "ARENA" ) { g_eLocal.SetState( EVE_ARENA, 1 ); } #endif // __JEFF_11_4 #if __VER >= 12 // __SECRET_ROOM else if( s.Token == "SECRETROOM" ) { g_eLocal.SetState( EVE_SECRETROOM, 1 ); } #endif // __SECRET_ROOM #if __VER >= 13 // __RAINBOW_RACE else if( s.Token == "RAINBOWRACE" ) { g_eLocal.SetState( EVE_RAINBOWRACE, 1 ); } #endif // __RAINBOW_RACE s.GetToken(); } return TRUE; }
void CDialogMsg::AddMessage( CObj* pObj, LPCTSTR lpszMessage, DWORD RGB, int nKind, DWORD dwPStyle ) { if( pObj->GetType() == OT_MOVER ) { CScanner scanner; scanner.SetProg( (LPVOID)lpszMessage ); scanner.GetToken(); // 이모티콘 명령 /* if( scanner.Token == "/" ) { scanner.GetToken(); CString strstr = scanner.token; for( int j=0; j < MAX_EMOTICON_NUM; j++ ) { CString strstr2 = m_EmiticonCmd[ j ].m_szCommand; if( strstr == strstr2 ) { AddEmoticonUser( pObj, m_EmiticonCmd[ j ].m_dwIndex ); return; } } } */ if( scanner.Token == "/" ) { CString strstr = lpszMessage; scanner.GetToken(); for( int j=0; j < MAX_EMOTICON_NUM; j++ ) { CString strstr2 = "/"; strstr2+=m_EmiticonCmd[ j ].m_szCommand; if( strstr.GetLength() > 0 && strstr == strstr2 ) { AddEmoticonUser( pObj, m_EmiticonCmd[ j ].m_dwIndex ); return; } } } else if( scanner.Token == "!" ) { int nEmoticonIdx = scanner.GetNumber(); AddEmoticon( pObj, nEmoticonIdx ); return; } for( int i = 0; i < m_textArray.GetSize(); i++ ) { LPCUSTOMTEXT lpCustomText = (LPCUSTOMTEXT) m_textArray.GetAt( i ); if( lpCustomText->m_pObj == pObj ) { safe_delete( lpCustomText ); m_textArray.RemoveAt( i ); break; } } } LPCUSTOMTEXT lpCustomText = new CUSTOMTEXT; lpCustomText->m_dwRGB = RGB; lpCustomText->m_pFont = CWndBase::m_Theme.m_pFontText; //ect ? m_pFontEffect : m_pFont; lpCustomText->m_pObj = pObj; lpCustomText->m_timer.Set( 5000 ); lpCustomText->m_bInfinite = FALSE;//( pObj->GetType() == OT_MOVER && ( (CMover*)pObj )->m_vtInfo.IsVendorOpen() ); lpCustomText->m_pTexture = NULL; lpCustomText->m_nKind = nKind; // Mover라면 대사 출력 시간 동안 퀘스트 이모티콘을 감춘다. if( pObj->GetType() == OT_MOVER ) ((CMover*)pObj)->m_bShowQuestEmoticon = FALSE; if( lpCustomText->m_bInfinite ) { DWORD dwColor = 0; dwColor = 0xff008000; lpCustomText->m_string.SetParsingString( lpszMessage, dwColor, 0x00000000, 0, dwPStyle ); } else lpCustomText->m_string.SetParsingString( lpszMessage, 0xff000000, 0x00000000, 0, dwPStyle ); int nMaxHeight = lpCustomText->m_pFont->GetMaxHeight(); CSize size = lpCustomText->m_pFont->GetTextExtent( lpszMessage ); int cx, cy; // 기본 사이즈 계산 if( size.cx >= 160 ) { cx = 160; cy = 160; // 이 수치는 의미가 없음. Reset 이후에 줄수로 재 계산 됨 lpCustomText->m_string.Init( lpCustomText->m_pFont, &CRect( 0, 0, cx - 16, cy - 16) ); } else { cx = size.cx + 16; cx = ( ( cx / 16 ) * 16 ) + ( ( cx % 16 ) ? 16 : 0 ); cy = size.cy;// 이 수치는 의미가 없음. Reset 이후에 줄수로 재 계산 됨 lpCustomText->m_string.Init( lpCustomText->m_pFont, &CRect( 0, 0, cx - 16, cy - 16) ); } cy = lpCustomText->m_string.GetLineCount() * nMaxHeight + 16; // 라인 줄수로 세로 길이를 구함 cy = ( ( cy / 16 ) * 16 ) + ( ( cy % 16 ) ? 16 : 0 ); lpCustomText->m_rect = CRect( 0, 0, cx, cy ); m_textArray.Add( lpCustomText ); }
BOOL Script( LPCTSTR lpszFileName ) { #ifdef __INTERNALSERVER strcpy( g_DbManager.m_szLoginPWD, "#^#^account" ); strcpy( g_DbManager.m_szLogPWD, "#^#^log" ); #endif /* AddTail( -1, 1, "TEST", "192.168.0.103" ); AddTail( 1, 1, "1", "" ); */ CScanner s; BOOL bSkipTracking = FALSE; if( s.Load( lpszFileName ) ) { s.GetToken(); while( s.tok != FINISHED ) { if( s.Token == ";" ) { s.GetToken(); continue; } else if( s.Token == "TEST" ) { HMENU hMenu = GetMenu( hMainWnd ); CheckMenuItem( hMenu, IDM_OPT_EXTERNAL, MF_CHECKED ); EnableMenuItem( hMenu, IDM_OPT_EXTERNAL, MF_DISABLED | MF_GRAYED ); CheckMenuItem( hMenu, IDM_OPT_INTERNAL, MF_UNCHECKED ); EnableMenuItem( hMenu, IDM_OPT_INTERNAL, MF_ENABLED ); g_dpSrvr.m_bCheckAddr = false; char lpString[MAX_LOADSTRING]; #ifdef _DEBUG sprintf( lpString, "%s - debug", szTitle ); #else // _DEBUG sprintf( lpString, "%s - release", szTitle ); #endif // _DEBUG SetWindowText( hMainWnd, lpString ); } else if( s.Token == "AddTail" ) { LPSERVER_DESC pServer = g_dpSrvr.m_aServerset + g_dpSrvr.m_dwSizeofServerset++; s.GetToken(); // ( pServer->dwParent = s.GetNumber(); s.GetToken(); // , pServer->dwID = s.GetNumber(); s.GetToken(); // , s.GetToken(); strcpy( pServer->lpName, s.Token ); s.GetToken(); // , s.GetToken(); strcpy( pServer->lpAddr, s.Token ); s.GetToken(); // , pServer->b18 = (BOOL)s.GetNumber(); s.GetToken(); // , pServer->lEnable = (long)s.GetNumber(); #ifdef __SERVERLIST0911 pServer->lEnable = 0L; #endif // __SERVERLIST0911 s.GetToken(); // , pServer->lMax = (long)s.GetNumber(); s.GetToken(); // ) // if( pServer->dwParent != NULL_ID ) { u_long uId = pServer->dwParent * 100 + pServer->dwID; g_dpSrvr.m_2ServersetPtr.insert( map<u_long, LPSERVER_DESC>::value_type( uId, pServer ) ); } } else if( s.Token == "MAX" ) { g_dpSrvr.m_nMaxConn = s.GetNumber(); } else if( s.Token == "BillingIP" ) { s.GetToken(); GetBillingMgr()->SetConfig( BID_IP, (DWORD)(LPCTSTR)s.Token ); } else if( s.Token == "BillingPort" ) { GetBillingMgr()->SetConfig( BID_PORT, s.GetNumber() ); } else if( s.Token == "BillingFreePass" ) { GetBillingMgr()->SetConfig( BID_FREEPASS, s.GetNumber() ); } else if( s.Token == "BillingPWD" ) { // 디비패스워드는 암호화 되어 있다. 암호 시키는 프로그램은 외부실행파일이다. s.GetToken(); char* szPWD = GetBillingPWD(); ::GetPWDFromToken( s.Token, szPWD ); // from query.cpp } else if( s.Token == "MSG_VER" ) { s.GetToken(); lstrcpy( g_dpSrvr.m_szVer, s.Token ); } else if( s.Token == "SKIP_TRACKING" ) // login logout로그를 남기지 않는다. { bSkipTracking = TRUE; g_DbManager.SetTracking( FALSE ); } else if( s.Token == "DSN_NAME_LOGIN" ) { s.GetToken(); strcpy( DSN_NAME_LOGIN, s.Token ); if( bSkipTracking == FALSE ) g_DbManager.SetTracking( TRUE ); } else if( s.Token == "DB_ADMIN_ID_LOGIN" ) { s.GetToken(); strcpy( DB_ADMIN_ID_LOGIN, s.Token ); } else if( s.Token == "DSN_NAME_LOG" ) { s.GetToken(); strcpy( DSN_NAME_LOG, s.Token ); } else if( s.Token == "DB_ADMIN_ID_LOG" ) { s.GetToken(); strcpy( DB_ADMIN_ID_LOG, s.Token ); } else if( s.Token == "DSN_NAME_BILLING" ) { s.GetToken(); strcpy( DSN_NAME_BILLING, s.Token ); } else if( s.Token == "DB_ADMIN_ID_BILLING" ) { s.GetToken(); strcpy( DB_ADMIN_ID_BILLING, s.Token ); } else if( s.Token == "NOT_RELOADPRO" ) { g_dpSrvr.m_bReloadPro = FALSE; } else if( s.Token == "NOLOG" ) { g_DbManager.SetLogging( FALSE ); // 상용화 아이템 로그를 남기지 않는다. } else if( s.Token == "DB_PWD_LOGIN" ) { s.GetToken(); ::GetPWDFromToken( s.Token, g_DbManager.m_szLoginPWD ); TRACE("%s\n", g_DbManager.m_szLoginPWD ); } else if( s.Token == "DB_PWD_LOG" ) { s.GetToken(); ::GetPWDFromToken( s.Token, g_DbManager.m_szLogPWD ); TRACE("%s\n", g_DbManager.m_szLogPWD ); } #ifdef __LOG_PLAYERCOUNT_CHANNEL else if( s.Token == "AddChannel" ) { s.GetToken(); g_dpDbSrvr.m_vecstrChannelAccount.push_back( s.Token ); } #endif // __LOG_PLAYERCOUNT_CHANNEL s.GetToken(); } return TRUE; } Error( "Can't open file %s\n", lpszFileName ); return FALSE; }
BOOL CLangMan::Load( LPCTSTR lpszFileName ) { CScanner s; if( !s.Load( lpszFileName, TRUE ) ) return FALSE; DWORD dwLang = s.GetNumber(); // dwLang DWORD a, r, g, b; while( s.tok != FINISHED ) { ASSERT( dwLang < LANG_MAX ); PLANG_DATA pData = &m_aLangData[dwLang]; s.GetToken(); s.GetToken(); // szPath lstrcpy( pData->szPath, s.token ); s.GetToken(); s.GetToken(); // szFileName lstrcpy( pData->szFileName, s.token ); s.GetToken(); // szTitle lstrcpy( pData->szTitle, s.token ); s.GetToken(); s.GetToken(); // szFontFirst lstrcpy( pData->font.lfCaption.szFontFirst, s.token ); s.GetToken(); s.GetToken(); s.GetToken(); // szFontSecond lstrcpy( pData->font.lfCaption.szFontSecond, s.token ); s.GetToken(); pData->font.lfCaption.nDivTitle = s.GetNumber(); // nDivTitle pData->font.lfCaption.nDivCaption = s.GetNumber(); // nDivCaption pData->font.fdLang.charset = s.GetNumber(); // charset pData->font.fdLang.wCodePage = s.GetNumber(); // wCodePage s.GetToken(); s.GetToken(); lstrcpy( pData->font.fdLang.faceNT, s.token ); // faceNT s.GetToken(); s.GetToken(); s.GetToken(); lstrcpy( pData->font.fdLang.face9x, s.token ); // face9x s.GetToken(); s.GetToken(); s.GetToken(); // szFont0 lstrcpy( pData->font.afi[0].szFont, s.token ); s.GetToken(); s.GetToken(); s.GetToken(); // szFont1 lstrcpy( pData->font.afi[1].szFont, s.token ); s.GetToken(); s.GetToken(); s.GetToken(); // szFont2 lstrcpy( pData->font.afi[2].szFont, s.token ); s.GetToken(); s.GetToken(); s.GetToken(); // szFont3 lstrcpy( pData->font.afi[3].szFont, s.token ); s.GetToken(); a = s.GetNumber(); // dwBgColor3_a r = s.GetNumber(); // dwBgColor3_r g = s.GetNumber(); // dwBgColor3_g b = s.GetNumber(); // dwBgColor3_b pData->font.afi[3].dwBgColor = D3DCOLOR_ARGB( a, r, g, b ); pData->font.afi[3].nOutLine = s.GetNumber(); // nOutLine3 pData->font.afi[3].dwFlags = s.GetNumber(); // dwFlags3 s.GetToken(); s.GetToken(); // szFont4 lstrcpy( pData->font.afi[4].szFont, s.token ); s.GetToken(); a = s.GetNumber(); // dwBgColor4_a r = s.GetNumber(); // dwBgColor4_r g = s.GetNumber(); // dwBgColor4_g b = s.GetNumber(); // dwBgColor4_b pData->font.afi[4].dwBgColor = D3DCOLOR_ARGB( a, r, g, b ); pData->font.afi[4].nOutLine = s.GetNumber(); // nOutLine4 pData->font.afi[4].dwFlags = s.GetNumber(); // dwFlags4 s.GetToken(); s.GetToken(); // szFont5 lstrcpy( pData->font.afi[5].szFont, s.token ); s.GetToken(); a = s.GetNumber(); // dwBgColor5_a r = s.GetNumber(); // dwBgColor5_r g = s.GetNumber(); // dwBgColor5_g b = s.GetNumber(); // dwBgColor5_b pData->font.afi[5].dwBgColor = D3DCOLOR_ARGB( a, r, g, b ); pData->font.afi[5].nOutLine = s.GetNumber(); // nOutLine5 pData->font.afi[5].dwFlags = s.GetNumber(); // dwFlags5 //#ifdef __NO_SUB_LANG s.GetNumber(); // dwFontSize //#endif // __NO_SUB_LANG dwLang = s.GetNumber(); // dwLang } return TRUE; }
BOOL CProcessLauncher::Init() { bool bStartWait, bHeartbeat; bStartWait = bHeartbeat = false; CScanner s; if( s.Load( "launcher.ini" ) == FALSE) return FALSE; s.GetToken(); while( s.tok != FINISHED ) { if( s.Token == "lpAddr" ) { s.GetToken(); // = s.GetToken(); strcpy( m_lpAddr, s.Token ); } else if( s.Token == "lpApplicationName" ) { s.GetToken(); // = s.GetToken(); strcpy( m_lpApplicationName, s.Token ); SetConsoleTitle( m_lpApplicationName ); } else if( s.Token == "lpCurrentDirectory" ) { s.GetToken(); // = s.GetToken(); strcpy( m_lpCurrentDirectory, s.Token ); } else if( s.Token == "dwId" ) { s.GetToken(); // = m_dwId = (DWORD)s.GetNumber(); } else if( s.Token == "DeadlockCheck" ) { s.GetToken(); // = m_dwMilliseconds = (DWORD)s.GetNumber(); bHeartbeat = true; } else if( s.Token == "bWait" ) { s.GetToken(); // = bStartWait = (bool)(s.GetNumber() != 0); } else if( s.Token == "lpDownDirectory" ) { s.GetToken(); // = s.GetToken(); //m_uploader.SetDownDirectory( s.Token ); strcpy( m_lpDownDirectory, s.Token ); } s.GetToken(); } if( bStartWait && bHeartbeat ) { AfxMessageBox( "INVALID CONDITION - bWait AND bHeartbeat must be exclusive" ); return FALSE; } m_bStartWait = bStartWait; if( bStartWait || bHeartbeat ) { char lpName[32]; sprintf( lpName, "%d", GetAppID() ); m_hEvent = CreateEvent( NULL, FALSE, FALSE, lpName ) ; if( m_hEvent == FALSE ) { char szBuffer[128]; sprintf( szBuffer, "CreateEvent ERROR:%d", GetLastError() ); AfxMessageBox( szBuffer ); return FALSE; } } return TRUE; }
BOOL Script( LPCSTR lpszFileName ) { CScanner s; CServerDesc* pServer; POINT topLeft; SIZE size; if( s.Load( lpszFileName ) ) { g_MyTrace.AddLine( '-' ); s.GetToken(); while( s.tok != FINISHED ) { if( s.Token == "Sys" ) { g_dwSys = s.GetNumber(); } else if( s.Token == "dwId" ) { g_dwId = s.GetNumber(); } else if( s.Token == "Database" ) { s.GetToken(); strcpy( szDataBaseAddr, s.Token ); } else if( s.Token == "Certifier" ) { s.GetToken(); strcpy( szCertifierAddr, s.Token ); } else if( s.Token == "TEST" ) { s_bTest = TRUE; } else if( s.Token == "PartyExpRate" ) { s_fPartyExpRate = s.GetFloat(); } else { pServer = new CServerDesc; u_long uKey = (u_long)_ttoi( s.Token ); pServer->SetKey( uKey ); if( s.GetToken() == DELIMITER ) { while( s.GetToken() != DELIMITER ) { CJurisdiction* pJurisdiction = new CJurisdiction; pJurisdiction->m_dwWorldID = (DWORD)_ttoi( s.Token ); topLeft.x = s.GetNumber(); topLeft.y = s.GetNumber(); size.cx = s.GetNumber(); size.cy = s.GetNumber(); pJurisdiction->m_rect.SetRect( topLeft.x, topLeft.y, topLeft.x + size.cx, topLeft.y + size.cy ); pJurisdiction->m_wLeft = s.GetNumber(); pJurisdiction->m_wRight = s.GetNumber(); pServer->m_lspJurisdiction.push_back( pJurisdiction ); } } #ifdef __STL_0402 bool bResult = g_dpCoreSrvr.m_apSleepServer.insert( CServerDescArray::value_type( pServer->GetKey(), pServer ) ).second; ASSERT( bResult ); #else // __STL_0402 g_dpCoreSrvr.m_apSleepServer.SetAt( pServer->GetKey(), pServer ); #endif // __STL_0402 g_MyTrace.Add( pServer->GetKey(), TRUE, "%04d", pServer->GetKey() ); } s.GetToken(); } g_MyTrace.AddLine( '-' ); return TRUE; } Error( "Can't open file, %s.\n", lpszFileName ); return FALSE; }