📄 serverdlg.cpp
字号:
EndDialog(IDCANCEL);
return FALSE;
}
if(!OpenMailQueue() )
{
EndDialog(IDCANCEL);
return FALSE;
}
TCHAR strConnect[256];
wsprintf(strConnect, _T("ODBC;DSN=%s;UID=%s;PWD=%s"), "drgame", "drgame", "drgame");
// wsprintf(strConnect, _T("ODBC;DSN=%s;UID=%s;PWD=%s"), "drgame", "drgame", "drgame");
for ( i = 0; i < AUTOMATA_THREAD+1;i++)
{
// g_DB[i].Init(5);
g_DB[i].Init(10);
g_DB[i].DBConnect(strConnect);
}
wsprintf(strConnect, _T("ODBC;DSN=%s;UID=%s;PWD=%s"), "drgamenew", "drgame", "drgame");
// wsprintf(strConnect, _T("ODBC;DSN=%s;UID=%s;PWD=%s"), "drgamenew", "drgame", "drgame");
for ( i = 0; i < AUTOMATA_THREAD+1;i++)
{
// g_DBNew[i].Init(2);
g_DBNew[i].Init(10);
g_DBNew[i].DBConnect(strConnect);
}
TCHAR strConnect2[256];
wsprintf(strConnect2, _T("ODBC;DSN=%s;UID=%s;PWD=%s"), "Droiyan", "droiyan", "droiyan");
// wsprintf(strConnect, _T("ODBC;DSN=%s;UID=%s;PWD=%s"), "Droiyan", "droiyan", "droiyan");
for ( i = 0; i < AUTOMATA_THREAD+1;i++)
{
// g_DBSession[i].Init(2);
g_DBSession[i].Init(5);
g_DBSession[i].DBConnect(strConnect2);
}
CheckRollBack();
// Error Log Init
g_ErrorLog.OpenFile();
// Speed Hack File
g_fpSpeedHack.Open( "SpeedHackList.txt", CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate | CFile::shareDenyNone );
g_fpSpeedHack.SeekToEnd();
g_fpBackServer.Open( "BackServerLog.txt", CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate | CFile::shareDenyNone );
g_fpBackServer.SeekToEnd();
g_fpGuildHouseRank.Open( "GuildHouseRankLog.txt", CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate | CFile::shareDenyNone );
g_fpGuildHouseRank.SeekToEnd();
g_fpEventItem.Open( "EventItemLog.txt", CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate | CFile::shareDenyNone );
g_fpEventItem.SeekToEnd();
// Read Ini File ...
TCHAR strPath[_MAX_PATH + 1];
::GetCurrentDirectory(_MAX_PATH, strPath);
CString szIni = strPath;
szIni += _T("\\DrOnline.ini");
int nSID = GetPrivateProfileInt(_T("INDEX"), _T("ME"), 0, (LPCTSTR)szIni);
g_ItemSerialIndex = GetPrivateProfileInt( _T("INDEX"), _T("SERIAL"), 0, (LPCTSTR)szIni );
int nCount = GetPrivateProfileInt(_T("SERVERS"), _T("COUNT"), 0, (LPCTSTR)szIni);
GetPrivateProfileString( _T("BRIDGE"), _T("IP"), "192.168.2.100", m_strBridgeIP, (DWORD)sizeof(m_strBridgeIP), (LPCTSTR)szIni );
m_nBridgePort = GetPrivateProfileInt( _T("BRIDGE"), _T("PORT"), 11000, (LPCTSTR)szIni );
TCHAR strSID[10];
int iServerIndex = -1;
int* newServer = NULL;
for( i = 1; i <= nCount; i++ )
{
sprintf( strSID, "%02d", i );
iServerIndex = GetPrivateProfileInt( _T("SERVERS"), strSID, 0, (LPCTSTR)szIni );
if( iServerIndex >= 0 && iServerIndex <= 12 )
{
newServer = new int;
memcpy( newServer, &iServerIndex, sizeof(int) );
g_arMyServer.Add( newServer );
}
}
g_byMyServerIndex = nSID;
//----------------------------------------------------------------------
// Sets a random number starting point.
//----------------------------------------------------------------------
srand( time(NULL) );
for(i = 0; i < 10; i++) myrand(1, 10000); // don't delete
//----------------------------------------------------------------------
// Server Information DB Open & Load ...
//----------------------------------------------------------------------
if(!GetServerInfoData())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Zone(TownPotal) Information DB Open & Load ...
//----------------------------------------------------------------------
if(!GetZoneInfoData())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetTownPotalTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Find Server Index in Server Information
//----------------------------------------------------------------------
int nServerIndex = -1;
for( i = 0; i < g_server.GetSize(); i++)
{
if(g_server[i]->m_sid == nSID)
{
nServerIndex = i;
break;
}
}
if(nServerIndex == -1)
{
AfxMessageBox( IDS_SERVERDLG_SERVERINFOERROR );
EndDialog(IDCANCEL);
}
//----------------------------------------------------------------------
// Load Zone Size
//----------------------------------------------------------------------
MAP* pNewMapSize = NULL;
int nZoneNumberSize;
BOOL bFoundDBIndex = FALSE;
for( i = 0; i < g_server.GetSize(); i++ )
{
bFoundDBIndex = FALSE;
if( g_server[i] )
{
if( g_server[i]->m_sDBIndex != -1 ) // -1捞搁 葛电 蜡历甫 罐阑 荐 乐绰 辑滚捞骨肺 沥焊 佬绢敌促, 酒聪扼搁...
{
for( j = 0; j < g_arMyServer.GetSize(); j++ )
{
if( *(g_arMyServer[j]) == g_server[i]->m_sDBIndex ) // 郴啊 佬绢具 窍绰 沥焊老 版快 佬霸 茄促.
{
bFoundDBIndex = TRUE;
}
}
if( !bFoundDBIndex ) continue;
}
}
for( j = 0; j < g_server[i]->m_zone.GetSize(); j++ )
{
pNewMapSize = new MAP;
nZoneNumberSize = *(g_server[i]->m_zone[j]);
if( !pNewMapSize->LoadMapSizeByNum( nZoneNumberSize ) )
{
delete pNewMapSize;
AfxMessageBox( "Error in load zone size" );
return FALSE;
}
g_zonesize.Add( pNewMapSize );
}
}
//----------------------------------------------------------------------
// Load Zone & Event...
//----------------------------------------------------------------------
MAP* pNewMap = NULL;
CELL* pNewCell = NULL;
EVENT* pNewEvent = NULL;
CString szZone = _T(""), szTemp = _T("");
int nZoneSize = g_server[nServerIndex]->m_zone.GetSize();
int nZoneNumber;
BOOL bRet = TRUE;
for( i = 0; i < nZoneSize; i++)
{
// Map
pNewMap = new MAP;
nZoneNumber = *(g_server[nServerIndex]->m_zone[i]);
if(!pNewMap->LoadMapByNum(nZoneNumber))
{
bRet = FALSE;
delete pNewMap;
continue;
}
g_zone.Add( pNewMap );
// Cell
pNewCell = new CELL(pNewMap->m_sizeMap, pNewMap->m_Zone, &m_Com);
g_cell.Add(pNewCell);
// Event
pNewEvent = new EVENT;
if(!pNewEvent->LoadEvent(nZoneNumber))
{
bRet = FALSE;
delete pNewEvent;
continue;
}
g_event.Add( pNewEvent );
szTemp.Format( "%d ", nZoneNumber );
szZone += szTemp;
}
if(bRet == FALSE)
{
szTemp.Format("[ %d ] Map, Event Information Loding Fail!!!!", nZoneNumber);
AfxMessageBox(szTemp);
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Communication Part Initialize ...
//----------------------------------------------------------------------
m_Com.Init(g_server[nServerIndex]->m_nPort);
//----------------------------------------------------------------------
// Load Item & Skill & PSI
//----------------------------------------------------------------------
if( !GetItemTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
// AfxMessageBox("8");
if( !GetMagicItemTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if( !GetEBodyTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if( !GetEBodyUpgradeTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if( !GetEBodyIdentifyTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if( !GetSkillTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if( !GetPsiTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
// AfxMessageBox("9");
//----------------------------------------------------------------------
// Load 荤侩磊俊霸 临 檬扁 酒捞袍 Table
//----------------------------------------------------------------------
if( !GetIntiItemTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load Remodeling Table
//----------------------------------------------------------------------
if(!GetRemodelingTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load BoxEvent Table
//----------------------------------------------------------------------
if(!GetBoxEventTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Guild Data甫 佬绢甸牢促.
//----------------------------------------------------------------------
if(!GetGuildTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetGuildUserData())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load Level Up Table
//----------------------------------------------------------------------
if(!GetLevelUpTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetPAMAExpTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load HP,SP,PP Recover Table
//----------------------------------------------------------------------
if(!GetUserRecoverTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetUserRecoverRateTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load Guild House Rank Table...
//----------------------------------------------------------------------
if(!GetGuildHouseRankTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetVirtualRoomTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetGuildHouseTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load Store Table
//----------------------------------------------------------------------
if(!GetStoreTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetPsiStoreTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetGuildStoreTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetGuildMapInfoTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetGuildFortressTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetGuildFortressTaxTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load NPC Item Table
//----------------------------------------------------------------------
if(!GetNpcItemTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load NPC Chat Table
//----------------------------------------------------------------------
if(!GetNpcChatTable())
{
AfxMessageBox("### Fail To Read NPC_CHAT!! ###");
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load NPC_SAY_EVENT Table
//----------------------------------------------------------------------
if(!GetNpcSayEventTable())
{
AfxMessageBox("### Fail To Read NPC_SAY_EVENT!! ###");
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load NPC Data & Activate NPC
//----------------------------------------------------------------------
if(!GetNpcTableData()) // NPC 漂己摹 抛捞喉 Load
{
EndDialog(IDCANCEL);
return FALSE;
}
//AfxMessageBox("1");
if(!GetCityNpcTableData()) // NPC 漂己摹 抛捞喉 Load
{
EndDialog(IDCANCEL);
return FALSE;
}
//AfxMessageBox("2");
if(!CreateNpcThread())
{
EndDialog(IDCANCEL);
return FALSE;
}
// AfxMessageBox("3");
//----------------------------------------------------------------------
// Load NPC DN Table
//----------------------------------------------------------------------
if(!GetMonHaveDNTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load NPC VAL_ITEM Table
//----------------------------------------------------------------------
if(!GetValItemTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load Monster Psi Table
//----------------------------------------------------------------------
if(!GetMonsterPsiTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Load Dressing Table
//----------------------------------------------------------------------
if(!GetDressingTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// Add Point User_Level Table
//----------------------------------------------------------------------
if(!GetUserLevelUpTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
//----------------------------------------------------------------------
// 捞亥飘 抛捞喉
//----------------------------------------------------------------------
if(!GetEventItemTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
if(!GetAddEventItemTable())
{
EndDialog(IDCANCEL);
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -