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

📄 basedata.cpp

📁 韩国英雄王座倒闭后流出来部分源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
			_RARE_ENCAHTS[iTmpSlot ].nRareIdx[ _RARE_ENCAHTS[iTmpSlot].nRareCount++] = pRareEnchant->dwSEQ ;  
			
		}
	}

	return true;
}


////////////////////////////////////////////////////////////////////////////////////////
//	捞悼且	MAP沥焊甫 掘澜
//
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadLinkMap( )
{
	Clean_LinkMap();			//	Delete Link Map

	Table_LinkMap	tbLinkMap;		

	if( tbLinkMap.Open( &g_AccountDB ) )
	{

		while( tbLinkMap.Fetch() )
		{				
			_MOVEMAP_ *pMoveMap = new  _MOVEMAP_;
			
			memcpy( pMoveMap, &tbLinkMap._MOVEMAP, sizeof( _MOVEMAP_ ));
				
			m_LinkMap.Insert( pMoveMap->wIndex,	pMoveMap );
		}
	}

	return true;
}

////////////////////////////////////////////////////////////////////////////////////////
//	檬扁 Setting蔼 沥焊甫 掘澜
//
////////////////////////////////////////////////////////////////////////////////////////
_INIT_STAT_ * BaseData::Find_InitStat(int pCharType)
{
	return  (_INIT_STAT_ *)m_InitStat.Find( pCharType  );	
}

////////////////////////////////////////////////////////////////////////////////////////
//	LEVEL UP沥焊甫 掘澜
//
////////////////////////////////////////////////////////////////////////////////////////
_LEVEL_UP_ * BaseData::Find_LevelUp(int pLevel)
{
	return	(_LEVEL_UP_ *)m_LevelUp.Find( pLevel );	
}


////////////////////////////////////////////////////////////////////////////////////////
//	甘牢器 昏力  昏力
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_MapInfor()
{

	for ( MAP_VOIDPTR::iterator it = m_MapServerInfo.Begin(); it != m_MapServerInfo.End(); it++)
	{
		_MAPSERVERINFO_ *pMapServerInfo = (_MAPSERVERINFO_ *)it->second;			

		if( pMapServerInfo )
		{		
			delete pMapServerInfo;
			pMapServerInfo = NULL;
		}
	}
}



////////////////////////////////////////////////////////////////////////////////////////
//	檬扁 荐摹 蔼阑 昏力
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_InitStat()
{

	for ( MAP_VOIDPTR::iterator it = m_InitStat.Begin(); it != m_InitStat.End(); it++)
	{
		_INIT_STAT_ *pInitStat = (_INIT_STAT_ *)it->second;			

		if( pInitStat )
		{		
			delete pInitStat;
			pInitStat = NULL;
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	Level Up Data甫 昏力
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_LevelUP()
{

	for ( MAP_VOIDPTR::iterator it = m_LevelUp.Begin(); it != m_LevelUp.End(); it++)
	{
		_LEVEL_UP_ *pLeveUp = (_LEVEL_UP_ *)it->second;

		if( pLeveUp )
		{		
			delete pLeveUp;
			pLeveUp = NULL;
		}
	}
}


////////////////////////////////////////////////////////////////////////////////////////
//	Delete Base Item阑 昏力 矫糯 
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_BaseItem()
{
	for ( MAP_VOIDPTR::iterator it = m_BaseItem.Begin(); it != m_BaseItem.End(); it++)
	{
		_BASE_ITEM_ *baseitem = (_BASE_ITEM_ *)it->second;

		if( baseitem )
		{		
			delete baseitem;
			baseitem = NULL;
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	Lare Enchant Chart 单捞鸥甫 秦力
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_LareEnchantChart()
{

	for ( MAP_VOIDPTR::iterator it = m_RareEnchant.Begin(); it != m_RareEnchant.End(); it++)
	{
		_RARE_ENCHANT_ *pRareEnchant = (_RARE_ENCHANT_ *)it->second;

		if( pRareEnchant )
		{		
			delete pRareEnchant;
			pRareEnchant = NULL;
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	Delete DB俊辑 Skill沥焊
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_BaseSkill()
{

	for ( MAP_VOIDPTR::iterator it = m_BaseSkill.Begin(); it != m_BaseSkill.End(); it++)
	{
		_SKILL_ *baseskill = (_SKILL_ *)it->second;

		if( baseskill  )
		{		
			delete baseskill;
			baseskill = NULL;
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	Delete BASE NPC	
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_BaseNPC()
{

	for ( MAP_VOIDPTR::iterator it = m_BaseNPC.Begin(); it != m_BaseNPC.End(); it++)
	{
		_BASE_NPC_ *basenpc = (_BASE_NPC_ *)it->second;

		if( basenpc  )
		{		
#ifdef DEF_MONSTERDROPITEM
			SAFE_DELETE <_MONSTER_LOOTS> ( &basenpc->lpMonsterItemDrop) ;
#endif
			delete basenpc;
			basenpc = NULL;
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	Delete NPC	魄概 ITEM沥焊
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_SellItem()
{

	for( int i=0; i< MAX_MAPLAYER; i ++)
	{	
		for ( MAP_VOIDPTR::iterator it = m_SellItem[i].Begin(); it != m_SellItem[i].End(); it++)
		{
			_SELLITEM_ *sellitem = (_SELLITEM_ *)it->second;

			if( sellitem )
			{		
				delete sellitem;
				sellitem = NULL;
			}
		}
	}

}

////////////////////////////////////////////////////////////////////////////////////////
//	Delete Link Map
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_LinkMap()
{

	for ( MAP_VOIDPTR::iterator it = m_LinkMap.Begin(); it != m_LinkMap.End(); it++)
	{
		_MOVEMAP_	*pMoveMap	= ( _MOVEMAP_ *)it->second;

		if( pMoveMap )
		{
			delete pMoveMap;
			pMoveMap = NULL;
		}

	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	Delete Setitem Map 
//	Jason 2004-05-08
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_Setitem()
{
	for ( MAP_VOIDPTR::iterator it = m_SetItem.Begin(); it != m_SetItem.End(); it++)
	{
		_SETITEMCHART_	*pSetitemMap = ( _SETITEMCHART_ *)it->second;

		if( pSetitemMap )
		{
			delete pSetitemMap;
			pSetitemMap = NULL;
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	Delete Title Map 
//	Jason 2004-05-08
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_TitleChart()
{
	for ( MAP_VOIDPTR::iterator it = m_TitleChart.Begin(); it != m_TitleChart.End(); it++)
	{
		_TITLECHART_	*pTitleMap = ( _TITLECHART_ *)it->second;

		if( pTitleMap )
		{
			delete pTitleMap;
			pTitleMap = NULL;
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	Delete Quest Item Map 
//	Jason 2004-06-08
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_QuestItemChart()
{
	for ( MAP_VOIDPTR::iterator it = m_QuestItemChart.Begin(); it != m_QuestItemChart.End(); it++)
	{
		_QUESTITEMCHART_	*pQuestIemMap = ( _QUESTITEMCHART_ *)it->second;

		if( pQuestIemMap )
		{
			delete pQuestIemMap;
			pQuestIemMap = NULL;
		}
	}
}



#ifdef DEF_SKILLDROP
////////////////////////////////////////////////////////////////////////////////////////
//	Clear SkillDropchart
//	badajoa 2004-07-23 
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_SkillDropChart()
{
	memset(m_nSkillScrollDrop,0x0, sizeof(m_nSkillScrollDrop)  ) ;
}
#endif


////////////////////////////////////////////////////////////////////////////////////////
//	UPGRADE SYSTEM	(Data Load)
//
//	2003.11.12 Duke Kim眠啊 
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadUpgradeChart()
{
	Clean_UpgradeChart();				//	Delete	UPGRADE CHART

	Table_UpgradeChart	tbUpgradeChart;

	if( tbUpgradeChart.Open( &g_AccountDB ) )
	{

		while( tbUpgradeChart.Fetch() )
		{				
			_UPGRADECHART_ *pUpgradeChart = new  _UPGRADECHART_;
			
			memcpy( pUpgradeChart, &tbUpgradeChart.UPGRADE, sizeof( _UPGRADECHART_ ));

			////////////////////////////////////////////////////////////////	
			//	八祸 加档 氢惑阑 困窍咯 咯矾俺狼 亲格栏肺 Key甫 积己窃 
			//
			//	-	ITEM INDEX + CLASS + SLOT TYPED栏肺 KEY积己 
			////////////////////////////////////////////////////////////////
			int nKey	=	pUpgradeChart->wITEMIDX * 1000	+		//	家胶 牢郸胶 (酒捞袍 诀弊饭捞靛矫 荤侩登绰 酒捞袍狼 Itemchart.ic_seq)
							//	pUpgradeChart->wTARGET;				//	鸥百 牢郸胶(父老 葛电 酒捞袍俊 加茄促搁 0, 酒囱 版快俊绰 酒捞袍 酒捞叼. 泅犁 0捞 叼弃飘捞促.)
							pUpgradeChart->wCLASS	* 100	+		//	努贰胶 (努贰胶. 阿 努贰胶喊肺 崔府 利侩茄促. 0捞搁 傈眉 努贰胶)
							pUpgradeChart->wSLOTTYPE;				//	浇吩鸥涝 (浇吩鸥涝. 措惑 酒捞袍狼 浇吩鸥涝)

			m_UpgradeChart.Insert( nKey,	pUpgradeChart );
		}
	}

	tbUpgradeChart.Cleanup();

	return true;
}



////////////////////////////////////////////////////////////////////////////////////////
//	UPGRADE SYSTEM	Clean
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_UpgradeChart()
{

	for ( MAP_VOIDPTR::iterator it = m_UpgradeChart.Begin(); it != m_UpgradeChart.End(); it++)
	{
		_UPGRADECHART_	*pUpgradeChart	= ( _UPGRADECHART_ *)it->second;

		if( pUpgradeChart )
		{
			delete pUpgradeChart;
			pUpgradeChart = NULL;
		}
	}
}



//////////////////////////////////////////////////////////////////////
// Purpose: Upgrade percent chart
//////////////////////////////////////////////////////////////////////
bool BaseData::LoadUpgradePercent()
{
	
	Clean_UpgradePercent();				//	Delete	UPGRADE CHART

	Table_UpgradePercentChart	tbUpgradePercent;

	if( tbUpgradePercent.Open( &g_AccountDB ) )
	{

		while( tbUpgradePercent.Fetch() )
		{				
			_LPUPGRADEPERCENTCHART_  lpUpgradePercent = new  _UPGRADEPERCENTCHART_;
			
			memcpy( lpUpgradePercent, &tbUpgradePercent.UPGRADEPERCENT, sizeof( _UPGRADEPERCENTCHART_ ));

			m_UpgradePercent.Insert(lpUpgradePercent->wOPTIONVALUE , lpUpgradePercent);
		}
	}


	return true ;
}

#ifdef DEF_SKILLDROP
//////////////////////////////////////////////////////////////////////
// Purpose: 
// Output : Returns true on success, false on failure.
//////////////////////////////////////////////////////////////////////
bool BaseData::LoadSkillDropChart()
{
	Clean_SkillDropChart();				//	Delete	UPGRADE CHART

	Table_SkillDropChart	tbSkillDropChart;

	int iMonsterIdx = 0 ;

	if( tbSkillDropChart.Open( &g_AccountDB ) )
	{
		while( tbSkillDropChart.Fetch() )
		{				
			memcpy( &m_nSkillScrollDrop[tbSkillDropChart.SKILLSCROLLDROPCHART.dwSEQ] , &tbSkillDropChart.SKILLSCROLLDROPCHART, sizeof( _SKILLSCROLLDROPCHART_ ));

 			if( tbSkillDropChart.SKILLSCROLLDROPCHART.nLOOTMONSTER1	== 0 &&
				tbSkillDropChart.SKILLSCROLLDROPCHART.nLOOTMONSTER2	== 0 &&
				tbSkillDropChart.SKILLSCROLLDROPCHART.nLOOTMONSTER3	== 0	)
			{
				continue;
			}
				
			iMonsterIdx = tbSkillDropChart.SKILLSCROLLDROPCHART.nLOOTMONSTER1 ; 

			if( iMonsterIdx != 0  )
			{
				_SKILLSCROLL_LOOTS[iMonsterIdx].pSkillScroll[ _SKILLSCROLL_LOOTS[iMonsterIdx].nItemCount ] = &m_nSkillScrollDrop[tbSkillDropChart.SKILLSCROLLDROPCHART.dwSEQ];
				++_SKILLSCROLL_LOOTS[iMonsterIdx].nItemCount;
			}

			iMonsterIdx = tbSkillDropChart.SKILLSCROLLDROPCHART.nLOOTMONSTER2 ; 

			if( iMonsterIdx != 0  )
			{
				_SKILLSCROLL_LOOTS[iMonsterIdx].pSkillScroll[ _SKILLSCROLL_LOOTS[iMonsterIdx].nItemCount ] = &m_nSkillScrollDrop[tbSkillDropChart.SKILLSCROLLDROPCHART.dwSEQ];
				++_SKILLSCROLL_LOOTS[iMonsterIdx].nItemCount;
			}

			iMonsterIdx = tbSkillDropChart.SKILLSCROLLDROPCHART.nLOOTMONSTER3 ; 

			if( iMonsterIdx != 0  )
			{
				_SKILLSCROLL_LOOTS[iMonsterIdx].pSkillScroll[ _SKILLSCROLL_LOOTS[iMonsterIdx].nItemCount ] = &m_nSkillScrollDrop[tbSkillDropChart.SKILLSCROLLDROPCHART.dwSEQ];
				++_SKILLSCROLL_LOOTS[iMonsterIdx].nItemCount;
			}
		}
	}

	return true ;
}
#endif

void BaseData::Clean_UpgradePercent()
{
	for ( MAP_VOIDPTR::iterator it = m_UpgradePercent.Begin(); it != m_UpgradePercent.End(); it++)
	{
		_LPUPGRADEPERCENTCHART_	 m_UpgradePercent	= ( _LPUPGRADEPERCENTCHART_ )it->second;

		SAFE_DELETE<_UPGRADEPERCENTCHART_> (& m_UpgradePercent) ;
	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	LOAD QUEST
//
//	-	Quest Folder俊辑 秦寸 Quest沥焊甫 Load矫糯
//	-	Quest狼 犬厘磊 瘤沥
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::Load_Quest()
{

	//	Quest File Folder沥焊甫 掘澜 
	char strQuestFolder[512];

#ifdef DEF_OPENCSC	//Jason 2004-07-08
	sprintf( strQuestFolder,"%s/%s/Down/*.csc",	_Module.m_szDrv, _Module.m_szPath	);
#else
	sprintf( strQuestFolder,"%s/%s/Down/*.txt",	_Module.m_szDrv, _Module.m_szPath	);
#endif

	CFileFind finder;

    BOOL bWorking = finder.FindFile(strQuestFolder);

	bool bIsLoad = false ;

    while(bWorking)
    {
        bWorking = finder.FindNextFile();

        if(finder.IsDots()		) continue;
		if(finder.IsDirectory() ) continue;

		bIsLoad = true ;
	
		//	秦寸 颇老狼 Quest甫 Load矫糯
		g_pQuestEngine->LoadScript( finder.GetFilePath() );

#if defined(_DEBUG) || defined(DEF_BUGTRACE)
		MessagePrint("(O) Quest Load (%s)",finder.GetFilePath()) ;
#endif
	}
	
	return bIsLoad;
}



////////////////////////////////////////////////////////////////////////////////////////
//	LOAD QUEST CHART
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadQuestChart()
{

	//	QUEST ITEM檬扁拳
	memset( _QUEST_LOOTS, 0x00, sizeof( _QUEST_LOOTS ));

	//	QUEST CHART LOAD
	Clean_QuestChart();

	Table_QuestChart	tbQuestChart;

	if( tbQuestChart.Open( &g_AccountDB ) )
	{
		while( tbQuestChart.Fetch() )
		{					
			_QUESTCHART_ *pQuestChart = new  _QUESTCHART_;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -