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

📄 basedata.cpp

📁 韩国英雄王座倒闭后流出来部分源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
						if( pBaseNPC->wTYPE >= 100 ) continue ; 

						for( int i=0; i < MAX_ITEMLEVEL; ++i )
						{
							if(	tbBaseItem.BASE_ITEM.nLEVELNEED <= i )		//	Level 3 捞惑 积己 矫糯
							{
								_ITEM_LOOTS[iMonsterSeq][ i ].nItemIndex[ _ITEM_LOOTS[iMonsterSeq][ i ].nItemCount ] = dwItemIndex;
								_ITEM_LOOTS[iMonsterSeq][ i ].nItemCount ++;
							}
						}					
					}
				}   // if(tbBaseItem.BASE_ITEM.nMonsterLoot != 0 || tbBaseItem.BASE_ITEM.nMonsterLoot2 != 0)
			}
		}
	}

#ifdef DEF_KUMA_GAMBLE
	// 白喉捞 叼颇牢 登绢 乐绰单 白喉 瞒飘啊 绝栏搁 辑滚啊 角青捞 臼等促.
	if ( m_GambleItemChart.IsEmpty() ) 
	{
		ErrorMsg("(X) GamebleItemChart is NULL") ;
		return false ;
	}
#endif

	//	--------------------------------------------------------------------------------
	//	葛电 酒捞袍阑 促 笼绢 持篮 版快 
	//	促矫 痢八 秦辑 酒捞袍 备埃捞 140 逞瘤 臼档废 茄促.
	//	--------------------------------------------------------------------------------

	// 格钎摹 70 
#ifdef CHINESE_VERSION
	// 亮篮 酒捞袍捞 唱棵 犬伏阑 临牢促.
	int iMaxItemCount = 80 ;
#else
	int iMaxItemCount = 70 ;
#endif

	for( int iMonsterSeq=0; iMonsterSeq <= m_iMaxNpc; ++iMonsterSeq )
	{
		// 粮犁窍瘤 臼绰 阁胶磐搁 扒呈 囤促.
		if(NULL == (pBaseNPC  =(_BASE_NPC_ *) m_BaseNPC.Find( iMonsterSeq )))	continue;

		// 阁胶磐啊 酒囱 NPC搁 公矫茄促.
		if( pBaseNPC->wTYPE >= 100 ) continue ; 

		for(int i=0 ; i < MAX_ITEMLEVEL ; i++)
		{
			if (_ITEM_LOOTS[iMonsterSeq][ i ].nItemCount > iMaxItemCount) 
			{
				int iSpace = _ITEM_LOOTS[iMonsterSeq][ i ].nItemCount - iMaxItemCount  ;
				for(int j = 0 ; j < iMaxItemCount ; j++)
				{
					_ITEM_LOOTS [iMonsterSeq][ i ].nItemIndex[j] =  _ITEM_LOOTS[iMonsterSeq][ i ].nItemIndex[j+iSpace] ;
				}
				_ITEM_LOOTS[iMonsterSeq][ i ].nItemCount = iMaxItemCount ;
			}
		}
	}


	
#ifdef DEF_MONSTERDROPITEM

	Table_MonsterDropChart tbMonsterDrop ;

	if(tbMonsterDrop.Open( &g_AccountDB) )
	{
		while(tbMonsterDrop.Fetch())
		{	
			pBaseNPC  =  (_BASE_NPC_ *)m_BaseNPC.Find( tbMonsterDrop.MONSTERDROPCHART.dwMonsterSEQ );

			if(!baseitem)
			{
				ErrorMsg( "(X) ItemDropchart : NPC (%d) (%d)",tbMonsterDrop.MONSTERDROPCHART.dwMonsterSEQ, tbMonsterDrop.MONSTERDROPCHART.wITEMIDX); ;
				continue ;
			}
			
			for(int i= 0 ; i < tbMonsterDrop.MONSTERDROPCHART.wITEMDROPPECENT ; ++i )
			{
				if(pBaseNPC->lpMonsterItemDrop->nItemCount+i >= 10000)
				{
					ErrorMsg( "(X) ItemDropchart : NPC (%d) (%d)",tbMonsterDrop.MONSTERDROPCHART.dwMonsterSEQ, tbMonsterDrop.MONSTERDROPCHART.wITEMIDX); ;
					break;
				}

				pBaseNPC->lpMonsterItemDrop->nItemIndex[pBaseNPC->lpMonsterItemDrop->nItemCount+i] = tbMonsterDrop.MONSTERDROPCHART.wITEMIDX  ;
			}

			if(tbMonsterDrop.MONSTERDROPCHART.wITEMCONSUME)
				pBaseNPC->lpMonsterItemDrop->nConSumItemCount += tbMonsterDrop.MONSTERDROPCHART.wITEMDROPPECENT ;
			
			pBaseNPC->lpMonsterItemDrop->nItemCount += tbMonsterDrop.MONSTERDROPCHART.wITEMDROPPECENT ;
		}
	}
#endif
	
//	for( iMonsterSeq=0; iMonsterSeq <= m_iMaxNpc; ++iMonsterSeq )
//	{
//		// 粮犁窍瘤 臼绰 阁胶磐搁 扒呈 囤促.
//		if(NULL == (pBaseNPC  =(_BASE_NPC_ *) m_BaseNPC.Find( iMonsterSeq )))	continue;
//		
//		// NPC搁 公矫茄促.
//		if( pBaseNPC->wTYPE >= 100 ) continue ;
//		
//		for(int i=0 ; i < _ITEM_LOOTS[iMonsterSeq][ pBaseNPC->nLVL ].nItemCount ; ++i)
//		{
// 			int iSelect = _ITEM_LOOTS[iMonsterSeq][ pBaseNPC->nLVL ].nItemIndex[i] ;
//
//			_BASE_ITEM_	*pBaseItem	= (_BASE_ITEM_ *) m_BaseItem.Find( iSelect ); 
//
//			TRACE ( "%d,%s,%d,%d,%s\n",iMonsterSeq, pBaseNPC->strNAME,pBaseNPC->nLVL , iSelect,  pBaseItem->strITEMNAME ) ;
//		}
//	}	

	return true;
}




////////////////////////////////////////////////////////////////////////////////////////
//	Set Item沥焊甫 掘澜 
//
//	-	SetItem 沥焊甫 Array涝仿 矫糯 
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadSetItem()
{	
	//	--------------------------------------------------------------------------------
	//	SET ITME阑 Load矫糯
	//	--------------------------------------------------------------------------------
	Table_SetItemChart		tbSetitem;
	
	memset(&tbSetitem.SETITEMCHART, 0x0, sizeof(_SETITEMCHART_));

	if(tbSetitem.Open( &g_AccountDB ))
	{
		
		while(tbSetitem.Fetch())
		{	
			//	------------------------------------------------------------------------
			//	SETIMTE阑 Memory俊 涝仿矫糯
			//	------------------------------------------------------------------------
			_SETITEMCHART_* pSetItem = new _SETITEMCHART_;
			memset(pSetItem, 0x0, sizeof(_SETITEMCHART_));
					
			memcpy( pSetItem, &tbSetitem.SETITEMCHART, sizeof( _SETITEMCHART_ ) );
				
			m_SetItem.Insert(pSetItem->dwSET_SEQ, pSetItem );

			memset(&tbSetitem.SETITEMCHART, 0x0, sizeof(_SETITEMCHART_));
			
			//	------------------------------------------------------------------------
			//	SETITEM狼 FULL SET沥焊绰 力寇矫糯
			//	------------------------------------------------------------------------
			if( pSetItem->iSET_SLOTTYPE == 99 )		
			{
				continue;
			}
			
			

			
			m_LootSetItem.SetBaseSetItem( pSetItem->wSET_CLASS, pSetItem->iSET_LEVELNEED, pSetItem );
		}
	}

	//	--------------------------------------------------------------------------------
	//	99锅 Slot Type狼 酒捞袍 沥焊甫 茫酒 Setting矫糯
	//	
	//	--------------------------------------------------------------------------------
	void*	ListSetItem[10000]	=	{0, };
	int		nCount	= m_SetItem.CopyTmpList( ListSetItem );

	for( int i=0;  i< nCount; i ++ )
	{		
		_SETITEMCHART_* pSetItemChart	=	(_SETITEMCHART_*)ListSetItem[i];

		if( !pSetItemChart							)	continue;
		if( pSetItemChart->iSET_SLOTTYPE	!=	99	)	continue;
		
		
		//	----------------------------------------------------------------------------
		//	秦寸 浇吩俊 沥焊甫 涝仿矫糯
		//	----------------------------------------------------------------------------
		for( int j=0; j < nCount; j ++ )
		{
			_SETITEMCHART_* pSlotSetItemChart	=	(_SETITEMCHART_*)ListSetItem[j];			

			if( !pSlotSetItemChart						)	continue;
			if(	pSlotSetItemChart->iSET_SLOTTYPE == 99	)	continue;

			if( pSetItemChart->dwSET_SEQ != pSlotSetItemChart->wSET_FULLOPTSEQ )	continue;
			

			//	馆瘤啊 酒囱 版快 贸府
			if( pSlotSetItemChart->iSET_SLOTTYPE != 11 )
			{
				pSetItemChart->SlotType[pSlotSetItemChart->iSET_SLOTTYPE ] =	pSlotSetItemChart->dwSET_SEQ;
			}
			//	馆瘤牢 版快 2俺啊 吝汗 瞪荐 乐澜
			else
			{
				if(	pSetItemChart->SlotType[pSlotSetItemChart->iSET_SLOTTYPE ] == 0 )
				{
					pSetItemChart->SlotType[pSlotSetItemChart->iSET_SLOTTYPE ] =	pSlotSetItemChart->dwSET_SEQ;	
				}
				else
				{
					pSetItemChart->SlotType[12] =	pSlotSetItemChart->dwSET_SEQ;	
				}
			}
		}


	}

	//	--------------------------------------------------------------------------------
	//	BASE ITEM阑 Class
	//	--------------------------------------------------------------------------------
	for ( MAP_VOIDPTR::iterator it = m_BaseItem.Begin(); it != m_BaseItem.End(); it++)
	{
		_BASE_ITEM_ *pBaseItem = (_BASE_ITEM_ *)it->second;

		if( !pBaseItem )	continue;

		if (pBaseItem->nVISUAL		== 0	||		//  Visual 0 积己登瘤 臼绰 酒捞袍 
			pBaseItem->nSLOTTYPE	== 0	||		//	家葛前 
			pBaseItem->nTYPE		== ITEMTYPE_SCROLL_RETURN	||		//	蓖券 胶农费 
			pBaseItem->nTYPE		== ITEMTYPE_SCROLL_SKILL	||		//	胶懦 胶农费 
			pBaseItem->nTYPE		== ITEMTYPE_SCROLL_UPGRADE	||		//	诀弊饭捞靛 胶农费 
			pBaseItem->nTYPE		== ITEMTYPE_SCROLL_LOST	||		//	噶阿狼 胶农费 
			pBaseItem->nTYPE		== ITEMTYPE_EVENT			//	捞亥飘 埔带飘
		) continue ;

		//	----------------------------------------------------------------------------
		//	秦寸 ITEM狼 加己阑 涝仿矫糯
		//	----------------------------------------------------------------------------
		m_LootSetItem.SetBaseSubSetItem( pBaseItem->nCHARTYPE, pBaseItem->nSLOTTYPE, pBaseItem->dwIndex );
	}

	return true;
}


////////////////////////////////////////////////////////////////////////////////////////
//	Title Chart沥焊甫 掘澜 
//
//	-> Title 沥焊甫 Array涝仿 矫糯 
//  Jason 2004-05-08
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadTitleChart()
{
	Table_TitleChart		tbTitle;				
	
	memset(&tbTitle.TITLECHART, 0x0, sizeof(_TITLECHART_));

	if(tbTitle.Open( &g_AccountDB ))
	{
		
		while(tbTitle.Fetch())
		{	
			_TITLECHART_* pTitle = new _TITLECHART_;
			memset(pTitle, 0x0, sizeof(_TITLECHART_));
					
			memcpy( pTitle, &tbTitle.TITLECHART, sizeof( _TITLECHART_ ) );
				
			m_TitleChart.Insert(pTitle->dwTC_SEQ, pTitle );

			memset(&tbTitle.TITLECHART, 0x0, sizeof(_TITLECHART_));	
		}

		return true;
	}

	return false;
}

////////////////////////////////////////////////////////////////////////////////////////
//	Quest Item Chart沥焊甫 掘澜 
//
//  Jason 2004-06-08
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadQuestItemChart()
{
	Table_QuestItemChart	tbQuestItem;				
	
	memset(&tbQuestItem.QUESTITEMCHART, 0x0, sizeof(_QUESTITEMCHART_));

	if(tbQuestItem.Open( &g_AccountDB ))
	{
		
		while(tbQuestItem.Fetch())
		{	
			_QUESTITEMCHART_* pItem = new _QUESTITEMCHART_;
			memset(pItem, 0x0, sizeof(_QUESTITEMCHART_));
					
			memcpy( pItem, &tbQuestItem.QUESTITEMCHART, sizeof( _QUESTITEMCHART_ ) );
				
			m_QuestItemChart.Insert(pItem->wSeq, pItem );

			memset(&tbQuestItem.QUESTITEMCHART, 0x0, sizeof(_QUESTITEMCHART_));	
		}

		return true;
	}

	return false;
}

////////////////////////////////////////////////////////////////////////////////////////
//	NPC	魄概 ITEM沥焊甫 掘澜
//
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadNPCSellItem(	int pMapLayer, int pMapID )
{

	Table_NPCSellItem		tbNPCSellItem;				// NPC Sell Item

	tbNPCSellItem.m_nMapNum	= pMapID;					// Map 锅龋 涝仿

	memset(&tbNPCSellItem.SELLITEM,0x0,sizeof(_SELLITEM_));
	if(tbNPCSellItem.Open( &g_AccountDB ))
	{
		
		while(tbNPCSellItem.Fetch())
		{	
			_SELLITEM_ *sellitem = new  _SELLITEM_;
					
			memcpy( sellitem, &tbNPCSellItem.SELLITEM, sizeof( _SELLITEM_ ) );
	

			m_SellItem[pMapLayer].Insert( 	sellitem->_INVENTORY.dwSEQ, sellitem );

			memset(&tbNPCSellItem.SELLITEM,0x0,sizeof(_SELLITEM_));		
		}
	}

	return true;
}


////////////////////////////////////////////////////////////////////////////////////////
//	DB俊辑 Skill沥焊甫  Load
//
//	-	Skill Table狼 Field函版栏肺 荐沥 累诀 鞘夸 
//	-	DB Script 厚背饶 荐沥 累诀 
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadSkill()
{
	Clean_BaseSkill();			//	Delete DB俊辑 Skill沥焊	

	Table_BaseSkill		tbSkill;		// Skill DB

	if(tbSkill.Open( &g_AccountDB ))
	{
		while(tbSkill.Fetch())
		{	
			_SKILL_ *baseskill = new  _SKILL_;
			
			memcpy( baseskill, &tbSkill.SKILL, sizeof( _SKILL_ ));

			//	------------------------------------------------------------------------
			//	Enchant System
			//
			//	2003.12.04	Duke Kim 眠啊 
			//	Enchant Bit 1何磐 矫累 登骨肺 包访 Bit甫 荐沥窃
			//	------------------------------------------------------------------------
			baseskill->dwMagicValue	=	0;

			if( baseskill->dwMagicBit > 0 )
			{
				baseskill->dwMagicBit --;
				baseskill->dwMagicValue =	pow( 2, baseskill->dwMagicBit  );
			}	
			
			m_BaseSkill.Insert( tbSkill.SKILL.wSEQ,	baseskill	);
		}
	}
	else
	{
		ErrorMsg( "(X) Skill Chart Open Error" );
	}
	
	return true;
}




////////////////////////////////////////////////////////////////////////////////////////
//	Load BASE NPC	
//
//	
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadBaseNPC()
{
	Clean_BaseNPC();			//	Delete BASE NPC	

	Table_BaseMonster		tbMonster;		//	NPC	DB

	m_iMaxNpc = 0 ;

	_BASE_NPC_ *basenpc = NULL ;

	if(tbMonster.Open( &g_AccountDB) )
	{
		while(tbMonster.Fetch())
		{	
			basenpc = new  _BASE_NPC_;
			
			memcpy( basenpc, &tbMonster.BASE_MONSTER, sizeof( _BASE_NPC_ ));

#ifdef DEF_MONSTERDROPITEM
			basenpc->lpMonsterItemDrop = new _MONSTER_LOOTS ;

			memset(basenpc->lpMonsterItemDrop,0x0,sizeof(_MONSTER_LOOTS) ) ;
#endif
			m_BaseNPC.Insert( tbMonster.nSEQ, basenpc );
	
		
			if ( m_iMaxNpc < tbMonster.nSEQ)
				m_iMaxNpc = tbMonster.nSEQ ;
		}
	}


	return true;
}

////////////////////////////////////////////////////////////////////////////////////////
//	纳腐狼 扁檬	Data甫 Load矫糯
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadInitStat()
{
	Clean_InitStat();			//	檬扁 荐摹 蔼阑 昏力

	Table_InitStat		tbInitStat;		// 纳腐 檬扁 STAT

	if(tbInitStat.Open( &g_AccountDB ))
	{

		while(tbInitStat.Fetch())
		{	
			_INIT_STAT_ *pInitStat = new  _INIT_STAT_;
			
			memcpy( pInitStat, &tbInitStat.INIT_STAT , sizeof( _INIT_STAT_ ));
				
			m_InitStat.Insert( tbInitStat.INIT_STAT.wSEQ, pInitStat );
		}
	}

	return true;
}


////////////////////////////////////////////////////////////////////////////////////////
//	纳腐 Level Up俊 包拌等 Data甫 Load矫糯 
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadLevelUP()
{
	Clean_LevelUP();			//	Level UP Data甫 昏力

	Table_LevelUp		tbLevelUp;		// 纳腐 Level Up

	if(tbLevelUp.Open( &g_AccountDB ))
	{

		while(tbLevelUp.Fetch())
		{	
			_LEVEL_UP_ *pLeveUp = new  _LEVEL_UP_;
			
			memcpy( pLeveUp, &tbLevelUp.LEVEL_UP , sizeof( _LEVEL_UP_ ));
				
			m_LevelUp.Insert(	tbLevelUp.LEVEL_UP.wSEQ,	pLeveUp );
		}
	}

	return true;
}




////////////////////////////////////////////////////////////////////////////////////////
//	Lare Enchant Chart 单捞鸥甫 Load
////////////////////////////////////////////////////////////////////////////////////////
bool BaseData::LoadRareEnchant()
{
	Clean_LareEnchantChart();					//	Lare Enchant Chart 单捞鸥甫 秦力
	

	Table_LareEnchant		tbLareEnchant;		
	int iTmpSlot = 0 ;

	if( tbLareEnchant.Open( &g_AccountDB ) )
	{

		while( tbLareEnchant.Fetch() )
		{				
			_RARE_ENCHANT_ *pRareEnchant = new  _RARE_ENCHANT_;
			
			memcpy( pRareEnchant, &tbLareEnchant.RARE_ENCHANT, sizeof( _RARE_ENCHANT_ ));
				
			m_RareEnchant.Insert( pRareEnchant->dwSEQ,	pRareEnchant );	
			
			iTmpSlot = pRareEnchant->wSLOTTYPE - 1 ;

			////////////////////////////////////////////////////////////////////
			// NOTENOTE: 浇吩喊肺 饭绢甫 沥纺 窍看促. 
			// 
			////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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