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