📄 basedata.cpp
字号:
_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 + -