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

📄 basedata.cpp

📁 韩国英雄王座倒闭后流出来部分源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
			
			memcpy( pQuestChart, &tbQuestChart.QUESTCHART, sizeof( _QUESTCHART_ ));

			m_QuestChart.Insert( pQuestChart->dwQUESTID,	pQuestChart );

			if( pQuestChart->nLOOTMONSTER1	== 0 &&
				pQuestChart->nLOOTMONSTER2	== 0 &&
				pQuestChart->nLOOTMONSTER3	== 0	)
			{
				continue;
			}
				
			for( int i=1; i < DEF_MAXNPC; i++	)
			{
				if( pQuestChart->nLOOTMONSTER1 ==i )
				{
					_QUEST_LOOTS[i].pQuest[ _QUEST_LOOTS[i].nItemCount ] = pQuestChart;
					++_QUEST_LOOTS[i].nItemCount;
				}

				if( pQuestChart->nLOOTMONSTER2 ==i )
				{
					_QUEST_LOOTS[i].pQuest[ _QUEST_LOOTS[i].nItemCount ] = pQuestChart;

					++_QUEST_LOOTS[i].nItemCount;
				}

				if( pQuestChart->nLOOTMONSTER3 ==i )
				{
					_QUEST_LOOTS[i].pQuest[ _QUEST_LOOTS[i].nItemCount ] = pQuestChart;
					++_QUEST_LOOTS[i].nItemCount;
				}

			}
			
		}
	}

	tbQuestChart.Cleanup();

	return true;
}




////////////////////////////////////////////////////////////////////////////////////////
//	CLEAR QUEST CHART MAP
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_QuestChart()
{
	for ( MAP_VOIDPTR::iterator it = m_QuestChart.Begin(); it != m_QuestChart.End(); it++)
	{
		_QUESTCHART_ *pQuestChart = (_QUESTCHART_ *)it->second;

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

	m_QuestChart.Clear();
}


////////////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////////////
CLootSetItem::CLootSetItem()
{
	memset( _SETITEM_LOOTS		,0x00, sizeof(_SETITEM_LOOTS	) );
	memset( _SETITEM_SUBLOOTS	,0x00, sizeof(_SETITEM_SUBLOOTS ) );
}

CLootSetItem::~CLootSetItem()
{

}

////////////////////////////////////////////////////////////////////////////////////////
//	SETITEM狼 扁夯 沥焊甫 涝仿矫糯
////////////////////////////////////////////////////////////////////////////////////////
void CLootSetItem::SetBaseSetItem( int pClass, int pLevel,	_SETITEMCHART_* pSetItem )
{	
	if( !pSetItem->iSET_ENABLE )	return;					//	SET ITEM狼 荤侩 咯何 犬牢		

	for( int i=0; i < MAX_ITEMLEVEL; i ++ )
	{	
		if( pLevel <= i )
		{
			_SETITEM_LOOTS[i].SetItem[ _SETITEM_LOOTS[i].nCount ] = pSetItem;
			_SETITEM_LOOTS[i].nCount	++;
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	SETITEM狼 技何 酒捞袍阑 涝仿矫糯
////////////////////////////////////////////////////////////////////////////////////////
void CLootSetItem::SetBaseSubSetItem(int pClass, int pSlotType, int pBaseItem )
{
	int	nCount = _SETITEM_SUBLOOTS[pSlotType].nCount;
	
	_SETITEM_SUBLOOTS[pSlotType].nItem[ nCount ] = pBaseItem;
	_SETITEM_SUBLOOTS[pSlotType].nCount	++;
}

////////////////////////////////////////////////////////////////////////////////////////
//	SETITME阑 掘澜
//
//	-	眠饶 Function iHeavyWeightSegementRandom(int iSpan) 楷悼
//	-	ITEM ID啊 0牢 版快 Base Item狼 Class / Slot Type阑 厚背窍咯 酒捞袍阑 急琶窃
////////////////////////////////////////////////////////////////////////////////////////
void* CLootSetItem::GetBaseSetItem(	int &pBaseItem, int pLevel, int pClass )
{
	if( _SETITEM_LOOTS[pLevel].nCount == 0 )
		return NULL;
	
	int	nSelect = iHeavyWeightSegementRandom( _SETITEM_LOOTS[pLevel].nCount -1 );
	_SETITEMCHART_* pSetItem = (_SETITEMCHART_*)_SETITEM_LOOTS[pLevel].SetItem[ nSelect ];

	
	//	--------------------------------------------------------------------------------
	//	秦寸 Class俊 加茄 Base Item阑 掘澜
	//	--------------------------------------------------------------------------------
	pBaseItem	=	pSetItem->wSET_ITEMID;

	int nCount = 0;

	//	--------------------------------------------------------------------------------
	//	馆瘤唱 酒鼓捞搁	(Jason 2004-05-29)
	//	--------------------------------------------------------------------------------
	if( pSetItem->wSET_ITEMID	==	0 && (pSetItem->iSET_SLOTTYPE == 11 || pSetItem->iSET_SLOTTYPE == 10))
	{
		nCount = _SETITEM_SUBLOOTS[pSetItem->iSET_SLOTTYPE ].nCount;

		if( nCount == 0 )	return NULL;

		pBaseItem	=	_SETITEM_SUBLOOTS[pSetItem->iSET_SLOTTYPE ].nItem[ iHeavyWeightSegementRandom(nCount-1) ];
	}
	else if( pSetItem->wSET_ITEMID	==	0	)
	{
		nCount = _SETITEM_SUBLOOTS[pSetItem->iSET_SLOTTYPE ].nCount;

		if( nCount == 0 )	return NULL;

		pBaseItem	=	_SETITEM_SUBLOOTS[pSetItem->iSET_SLOTTYPE ].nItem[ iHeavyWeightSegementRandom(nCount-1) ];
	}
	
	return pSetItem;
}

////////////////////////////////////////////////////////////////////////////////////////
//	PK Chao Chart狼 蔼阑 昏力 矫糯
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_PKChaoChart()
{
	for ( MAP_VOIDPTR::iterator it = m_PKChaoChart.Begin(); it != m_PKChaoChart.End(); it++)
	{
		_PKCHAOCHART_	*pPKCahoChartmMap = ( _PKCHAOCHART_ *)it->second;

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



////////////////////////////////////////////////////////////////////////////////////////
//	Guild Skill Chart狼 蔼阑 昏力 矫糯
//	Jason 2004-06-21
////////////////////////////////////////////////////////////////////////////////////////
void BaseData::Clean_GuildSkillChart()
{
	for ( MAP_VOIDPTR::iterator it = m_GuildSkillChart.Begin(); it != m_GuildSkillChart.End(); ++it)
	{
		_LP_GUILDSKILL_	pGuildSkillChartMap = ( _LP_GUILDSKILL_ )it->second;

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

	

#if defined(DEF_SPEEDHACK) || defined(DEF_KORSPEEDHACK)
////////////////////////////////////////////////////////////////////////////////////////
//	Hacking Chart狼 蔼阑 昏力 矫糯
//
//	-	Jason 2004-09-20-china
////////////////////////////////////////////////////////////////////////////////////////	
void BaseData::Clean_HackingChart()
{
	
}
#endif

#ifdef DEF_PRODUCTION_DECOMPOSITON
	////////////////////////////////////////////////////////////////////////////////////////
	//	Halcon Chart狼 蔼阑 昏力 矫糯
	//
	//	-	Jason 2004-10-13
	////////////////////////////////////////////////////////////////////////////////////////	
	void BaseData::Clean_HalconChart()
	{
		for ( MAP_VOIDPTR::iterator it = m_HalconChart.Begin(); it != m_HalconChart.End(); ++it)
		{
			_HALCONCHART_	*pHalcon = ( _HALCONCHART_ *)it->second;

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

#endif

#if defined(DEF_PRODUCTION_DECOMPOSITON) || defined(DEF_KUMA_GAMBLE)

	////////////////////////////////////////////////////////////////////////////////////////
	//	Production Chart狼 蔼阑 昏力 矫糯
	//
	//	-	Jason 2004-10-13
	////////////////////////////////////////////////////////////////////////////////////////	
	void BaseData::Clean_ProductionChart()
	{
		for ( MAP_VOIDPTR::iterator it = m_ProductionChart.Begin(); it != m_ProductionChart.End(); ++it)
		{
			_PRODUCTIONCHART_	*p = ( _PRODUCTIONCHART_ *)it->second;

			if( p )
			{
				delete p;
				p = NULL;
			}
		}
	}
#endif

#ifdef DEF_KUMA_GAMBLE

	void BaseData::Clean_GambleNormalItemChart()
	{
		if ( !m_GambleNormalItemChart.IsEmpty() )
			m_GambleNormalItemChart.Clear();
	}

	void BaseData::Clean_GambleItemChart()
	{	
		if ( !m_GambleItemChart.IsEmpty() )
			m_GambleItemChart.Clear();
	}
#endif

////////////////////////////////////////////////////////////////////////////////////////
//	Load PK Chao Chart
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadPKChaoChart()
{
	Clean_PKChaoChart();

	Table_PKChaoChart		tbPKChaoChart;				
	
	if( tbPKChaoChart.Open( &g_AccountDB ) )
	{
		while( tbPKChaoChart.Fetch() )
		{					
			_PKCHAOCHART_ *pPKChaoChart	= new  _PKCHAOCHART_;
			
			memcpy( pPKChaoChart, &tbPKChaoChart.PKCHAOCHART, sizeof( _PKCHAOCHART_ ));

			m_PKChaoChart.Insert(	tbPKChaoChart.PKCHAOCHART.nSEQ, pPKChaoChart );
			
		}
	}
	
	if (m_PKChaoChart.GetCountInt() == 0)
	{
		ErrorMsg("(XXX) Critical Problem Don't Load PKCHAOCHART") ;
		return false;
	}

	tbPKChaoChart.Cleanup();

	return true;
}




////////////////////////////////////////////////////////////////////////////////////////
//	Load Guild Skill Chart
//	Jason 2004-06-21
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadGuildSkillChart()
{
	Clean_GuildSkillChart();

	Table_GuildSkillChart		tbGuildSkillChart;				
	
	if( tbGuildSkillChart.Open( &g_AccountDB ) )
	{
		while( tbGuildSkillChart.Fetch() )
		{					
			_LP_GUILDSKILL_ pGuildSkill		= new  _GUILDSKILL_;
			
			memcpy( pGuildSkill, &tbGuildSkillChart.GUILDSKILL, sizeof( _GUILDSKILL_ ));

			m_GuildSkillChart.Insert(	tbGuildSkillChart.GUILDSKILL.dwSEQ, pGuildSkill );
		}
	}

	if (m_GuildSkillChart.GetCountInt() == 0)
	{
		ErrorMsg("(XXX) Critical Problem Don't Load m_GuildSkillChart") ;
		return false ;
	}


	tbGuildSkillChart.Cleanup();

	return true;
}




////////////////////////////////////////////////////////////////////////////////////////
//	Load Quest 
//
//	-	眠饶 努扼捞攫飘 PATH沥焊甫 涝仿矫糯
////////////////////////////////////////////////////////////////////////////////////////	
bool BaseData::LoadQuestLinkChart()
{
	memset( _EVETMAP_PATH_, 0x00, sizeof( _EVETMAP_PATH_ ) );
	
	Table_QuestLinkChart	tbQuestLinkChart;				

	if( tbQuestLinkChart.Open( &g_AccountDB ) )
	{
		while( tbQuestLinkChart.Fetch() )
		{	
			int	nBase		=	tbQuestLinkChart.m_nBase;
			int	nPath		=	tbQuestLinkChart.m_nPath;
			int	nPathSeq	=	tbQuestLinkChart.m_nPathSeq;
			
			_EVETMAP_PATH_[nBase][nPath]._PATH_[nPathSeq].nRoom		=	tbQuestLinkChart.m_nRoom;
			_EVETMAP_PATH_[nBase][nPath]._PATH_[nPathSeq].nGate1	=	tbQuestLinkChart.m_nGate1;
			_EVETMAP_PATH_[nBase][nPath]._PATH_[nPathSeq].nGate2	=	tbQuestLinkChart.m_nGate2;
			
			_EVETMAP_PATH_[nBase][nPath]._PATH_[nPathSeq].nQuest	=	tbQuestLinkChart.m_nQuest;
			
			//	_EVETMAP_PATH_[nBase][nPath].nPathCount ++;
				
		}
	}

	return true;
}




#if defined(DEF_SPEEDHACK) || defined(DEF_KORSPEEDHACK)

////////////////////////////////////////////////////////////////////////////////////////
//	Load Hacking 
//
//	-	Jason 2004-09-20-china
////////////////////////////////////////////////////////////////////////////////////////	
bool BaseData::LoadHackingChart()
{
	Clean_HackingChart();

	Table_HackingChart		tbHackingChart;				
	
	if( tbHackingChart.Open( &g_AccountDB ) )
	{
		while( tbHackingChart.Fetch() )
		{					
			//	叼厚俊辑 鸥涝狼 鉴辑绰 馆靛矫 家胶俊 乐绰 enum 鉴辑肺 登绢具 茄促.
			_Module.m_dwIntervalTick	[tbHackingChart.HACKINGCHART.dwType]	= tbHackingChart.HACKINGCHART.dwIntervalTick;
			_Module.m_wPacketCount		[tbHackingChart.HACKINGCHART.dwType]	= tbHackingChart.HACKINGCHART.fFilteringCount;
			_Module.m_dwInitIntervalTick[tbHackingChart.HACKINGCHART.dwType]	= tbHackingChart.HACKINGCHART.dwInitTick;
			_Module.m_wAllowedHackCount	[tbHackingChart.HACKINGCHART.dwType]	= tbHackingChart.HACKINGCHART.dwMaxHackCount;	
		}
	}

	tbHackingChart.Cleanup();

	return true;
}
#endif

#ifdef DEF_PRODUCTION_DECOMPOSITON
	////////////////////////////////////////////////////////////////////////////////////////
	//	Load Halcon Chart
	//
	//	-	Jason 2004-10-13
	////////////////////////////////////////////////////////////////////////////////////////	
	bool BaseData::LoadHalconChart()
	{
		Clean_HalconChart();

		Table_HalconChart		tbHalconChart;		
		
		if( tbHalconChart.Open( &g_AccountDB ) )
		{
			while( tbHalconChart.Fetch() )
			{					
				_HALCONCHART_ *pHalconChart	= new  _HALCONCHART_;
				
				memcpy( pHalconChart, &tbHalconChart.HALCONCHART, sizeof( _HALCONCHART_ ));

				m_HalconChart.Insert(	tbHalconChart.HALCONCHART.wIndex, pHalconChart );
			}
		}

		tbHalconChart.Cleanup();

		return true;
	}

#endif

#if defined(DEF_PRODUCTION_DECOMPOSITON) || defined(DEF_KUMA_GAMBLE)

	////////////////////////////////////////////////////////////////////////////////////////
	//	Load Production Chart
	//
	//	-	Jason 2004-10-13
	////////////////////////////////////////////////////////////////////////////////////////	
	bool BaseData::LoadProductionChart()
	{
		Clean_ProductionChart();

		Table_ProductionChart		tbProductionChart;		
		
		if( tbProductionChart.Open( &g_AccountDB ) )
		{
			while( tbProductionChart.Fetch() )
			{					
				_PRODUCTIONCHART_ *pChart	= new  _PRODUCTIONCHART_;
				
				memcpy( pChart, &tbProductionChart.PRODUCTIONCHART, sizeof( _PRODUCTIONCHART_ ));

				m_ProductionChart.Insert(	tbProductionChart.PRODUCTIONCHART.wSeq, pChart );
			}
		}

		tbProductionChart.Cleanup();

		return true;
	}
#endif



#ifdef DEF_KUMA_GAMBLE

////////////////////////////////////////////////////////////////////////////////////////
//	白喉傅 沥焊甫 掘澜
//
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadGambleNormalItemChart()
{
	Clean_GambleNormalItemChart();

	Table_GambleItemChart	tbGambleItemChart;

	if( tbGambleItemChart.Open( &g_AccountDB ) )
	{
		while( tbGambleItemChart.Fetch() )
		{	
			_BASE_ITEM_* baseitem = (_BASE_ITEM_*)m_BaseItem.Find( tbGambleItemChart.iGCSeq );	
			if ( baseitem)
				m_GambleNormalItemChart.Insert( baseitem );
		}
	}

	tbGambleItemChart.Cleanup();

	return true;
}



#endif


////////////////////////////////////////////////////////////////////////////////////////
//	BASE ITEM变夯 沥焊甫 掘澜
//
////////////////////////////////////////////////////////////////////////////////////////
_BASE_ITEM_ * BaseData::GetBaseItem( int  pItemIndex )
{ 
	_BASE_ITEM_ *pBaseItem	= (_BASE_ITEM_ *)m_BaseItem.Find( pItemIndex );	

	return	pBaseItem;	
}

⌨️ 快捷键说明

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