⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverdlg.cpp

📁 决战帝王1.5武神降临对喜爱决战的玩家共享研究用
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		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 + -