BOOL CRunObject::Init( void ) { if( LoadAIScript() == FALSE ) return FALSE; // m_hClose = CreateEvent( NULL, FALSE, FALSE, NULL ); DWORD dwThreadId; m_hRunObject = chBEGINTHREADEX( NULL, 0, _Run, (LPVOID)this, 0, &dwThreadId ); // /* #ifdef __GIFTBOX0213 if( !CDPAccountClient::GetInstance()->ConnectToServer( s_szAccountAddr, PN_ACCOUNTSRVR_2, TRUE ) ) { OutputDebugString( "Can't connect to account server." ); return FALSE; } CGiftboxMan::GetInstance()->Upload( CDPAccountClient::GetInstance() ); #endif // __GIFTBOX0213 */ if( !g_DPSrvr.StartServer( (u_short)( g_uKey + PN_WORLDSRVR ), TRUE ) ) { OutputDebugString( "Can't start server." ); return FALSE; } if( !g_DPCoreClient.Run( g_szCoreAddr, PN_CORESRVR + 0, g_uKey ) ) { OutputDebugString( "Can't connect to core server." ); return FALSE; } if( !g_dpDBClient.ConnectToServer( g_szDBAddr, PN_DBSRVR_1, TRUE ) ) { OutputDebugString( "Can't connect to database server." ); return FALSE; } if ( g_eLocal.GetState( ENABLE_GUILD_INVENTORY ) ) g_dpDBClient.SendQueryGuildBank(); if( g_eLocal.GetState( EVE_WORMON ) ) g_dpDBClient.SendQueryGuildQuest(); #if __VER >= 13 // __RAINBOW_RACE if( g_eLocal.GetState( EVE_RAINBOWRACE ) ) g_dpDBClient.SendRainbowRaceReqLoad(); #endif // __RAINBOW_RACE #ifdef __INVALID_LOGIN_0320 g_dpDBClient.CalluspXXXMultiServer( g_uIdofMulti, NULL ); #else // __INVALID_LOGIN_0320 g_dpDBClient.CalluspXXXMultiServer( g_uIdofMulti, 0 ); #endif // __INVALID_LOGIN_0320 if( !CXMasEvent::GetInstance()->LoadScript( "spevent.txt" ) ) { OutputDebugString( "can't read spevent.txt" ); return FALSE; } if( g_eLocal.GetState( EVE_SCHOOL ) ) { #ifdef __IDC if( !CEveSchool::GetInstance()->LoadPos( "..\\script\\school.txt" ) ) // #else // __IDC if( !CEveSchool::GetInstance()->LoadPos( "school.txt" ) ) #endif // __IDC { OutputDebugString( "school.txt not found" ); return FALSE; } } if( g_eLocal.GetState( EVE_GUILDCOMBAT ) && !g_GuildCombatMng.LoadScript( "GuildCombat.txt" ) ) { OutputDebugString( "GuildCombat.txt not found" ); return FALSE; } #if __VER >= 12 // __ITEMCREATEMON_S0602 #if __VER < 12 // __NEW_ITEMCREATEMON_SERVER if( !g_CreateMonster.LoadScript( "CreateMonster.txt" ) ) { OutputDebugString( "CreateMonster.txt Not Found!" ); return FALSE; } #endif // __NEW_ITEMCREATEMON_SERVER #endif // __ITEMCREATEMON_S0602 return TRUE; }
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { #ifndef _DEBUG // InitEH(); #endif // _DEBUG #ifdef __BILLING0712 if( ::CreateBillingMgr() == FALSE ) // CreateWindow전에 호출되어야 한다. return FALSE; #endif HWND hWnd; hInst = hInstance; // Store instance handle in our global variable hMainWnd = hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if( !hWnd ) return FALSE; HMENU hMenu = GetMenu( hWnd ); CheckMenuItem( hMenu, IDM_OPT_INTERNAL, MF_CHECKED ); EnableMenuItem( hMenu, IDM_OPT_INTERNAL, MF_DISABLED | MF_GRAYED ); g_dpSrvr.m_bCheckAddr = true; int x = 400, y = 416; SetWindowPos( hWnd, NULL, x, y, 400, 416, SWP_SHOWWINDOW ); LOAD_WS2_32_DLL; ::srand( timeGetTime() ); // Script함수의 호출순서가 중요하다. (menu -> script -> createdbworker) if( Script( "AccountServer.ini" ) == FALSE ) return FALSE; #ifdef __SECURITY_0628 LoadResAuth( "Flyff.b" ); #endif // __SECURITY_0628 // if( CQuery::EnableConnectionPooling() ) // OutputDebugString( "EnableConnectionPooling\n" ); g_DbManager.CreateDbWorkers(); if( g_dpSrvr.LoadAddrPmttd( "pmttd.ini" ) == false ) { TRACE("LoadAddrPmttd false\n"); } if( g_dpSrvr.LoadIPCut( "IPCut.ini" ) == FALSE ) { TRACE( "LoadIPCut FALSE\n" ); } g_MyTrace.Initialize( hWnd, "SquireD", RGB( 0x00, 0x00, 0x00 ), RGB( 0xff, 0xff, 0xff ) ); CTime time = CTime::GetCurrentTime(); g_MyTrace.Add( 0, FALSE, "%s", time.Format( "%Y/%m/%d %H:%M:%S" ) ); g_MyTrace.AddLine( '\0' ); if( FALSE == g_dpSrvr.StartServer( PN_ACCOUNTSRVR_0 ) || FALSE == g_dpDbSrvr.StartServer( PN_ACCOUNTSRVR_1 ) || FALSE == CDPAdbill::GetInstance()->StartServer( PN_ADBILL ) /* #ifdef __GIFTBOX0213 || FALSE == CDPWldSrvr::GetInstance()->StartServer( PN_ACCOUNTSRVR_2 ) #endif // __GIFTBOX0213 */ ) { AfxMessageBox( "Unable to start server" ); return FALSE; } #ifdef __BILLING0712 if( GetBillingMgr()->Init( hWnd ) == false ) return FALSE; #endif SetTimer( hWnd, IDT_SENDPLAYERCOUNT, 1000 * 60, NULL ); SetTimer( hWnd, IDT_TIME_CHECKADDR, 1000 * 30, NULL ); if( ::GetLanguage() == LANG_THA ) SetTimer( hWnd, IDT_PREVENT_EXCESS, 1000 * 60, NULL ); /* #ifdef __S0114_RELOADPRO SetTimer( hWnd, IDT_RELOAD_PROJECT, 1000 * 30, NULL ); #endif // __S0114_RELOADPRO */ SetTimer( hWnd, IDT_BUYING_INFO, 500, NULL ); if( FALSE == g_DbManager.AllOff() ) return FALSE; ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE; }