Code:
void CDPDatabaseClient::OnBaseGameSetting( CAr & ar, DPID, DPID )
{
#ifdef __S1108_BACK_END_SYSTEM
BOOL bBaseGameSetting = FALSE;
BOOL bFirst = FALSE;
ar >> bFirst;
ar >> bBaseGameSetting;
if( bBaseGameSetting )
{
ar >> prj.m_fMonsterExpRate >> prj.m_fGoldDropRate >> prj.m_fItemDropRate >> prj.m_fMonsterHitRate;
ar >> prj.m_fShopCost >> prj.m_fMonsterRebirthRate >> prj.m_fMonsterHitpointRate >> prj.m_fMonsterAggressiveRate >> prj.m_fMonsterRespawnRate;
}
g_UserMng.AddGameRate( prj.m_fMonsterExpRate, GAME_RATE_MONSTEREXP );
g_UserMng.AddGameRate( prj.m_fGoldDropRate, GAME_RATE_GOLDDROP );
g_UserMng.AddGameRate( prj.m_fItemDropRate, GAME_RATE_ITEMDROP );
g_UserMng.AddGameRate( prj.m_fMonsterHitRate, GAME_RATE_MONSTERHIT );
g_UserMng.AddGameRate( prj.m_fShopCost, GAME_RATE_SHOPCOST );
g_UserMng.AddGameRate( prj.m_fMonsterRebirthRate, GAME_RATE_REBIRTH );
g_UserMng.AddGameRate( prj.m_fMonsterHitpointRate, GAME_RATE_HITPOINT );
g_UserMng.AddGameRate( prj.m_fMonsterAggressiveRate, GAME_RATE_AGGRESSIVE );
g_UserMng.AddGameRate( prj.m_fMonsterRespawnRate, GAME_RATE_RESPAWN );
if( bFirst )
{
CWorld* pWorld;
pWorld = g_WorldMng.GetFirstActive();
while( pWorld )
{
pWorld->LoadRegion();
#ifdef __EVENT_0117
#ifdef __LAYER_1021
CRespawner* pRespawner = pWorld->m_respawner.Proto();
#else // __LAYER_1021
CRespawner* pRespawner = &pWorld->m_respawner;
#endif // __LAYER_1021
[COLOR="red"] for( int i = 0; i < (int)( pRespawner->m_vRespawnInfo[RESPAWNTYPE_REGION].size() ); ++i )[/COLOR]
{
CRespawnInfo* pRespawnInfo = &( pRespawner->m_vRespawnInfo[RESPAWNTYPE_REGION][i] );
if( pRespawnInfo->m_dwType == OT_MOVER ) // ¸ó½ºÅÍ ¸®½ºÆù
{
MoverProp* pMoverProp = prj.GetMoverProp( pRespawnInfo->m_dwIndex );
#if __VER >= 10 // __LEGEND // 10Â÷ Àü½Â½Ã½ºÅÛ Neuz, World, Trans
#if __VER >= 15 // __HERO129_VER15 // 15Â÷ È÷¾î·Î ·¹º§È®Àå
if( pMoverProp && pMoverProp->dwFlying == 0 && pMoverProp->dwLevel > 0 && pMoverProp->dwLevel <= MAX_MONSTER_LEVEL )
#else // 15Â÷ È÷¾î·Î ·¹º§È®Àå
if( pMoverProp && pMoverProp->dwFlying == 0 && pMoverProp->dwLevel > 0 && pMoverProp->dwLevel <= MAX_LEGEND_LEVEL )
#endif // 15Â÷ È÷¾î·Î ·¹º§È®Àå
#else //__LEGEND // 10Â÷ Àü½Â½Ã½ºÅÛ Neuz, World, Trans
if( pMoverProp && pMoverProp->dwFlying == 0 && pMoverProp->dwLevel > 0 && pMoverProp->dwLevel <= MAX_GENERAL_LEVEL )
#endif //__LEGEND // 10Â÷ Àü½Â½Ã½ºÅÛ Neuz, World, Trans
{
#ifdef _DEBUG
TRACE( "%d, (%d, %d, %d, %d)\n", pRespawnInfo->m_dwIndex, pRespawnInfo->m_rect.left, pRespawnInfo->m_rect.top, pRespawnInfo->m_rect.right, pRespawnInfo->m_rect.bottom );
#endif // _DEBUG
CEventGeneric::GetInstance()->AddRegionGeneric( pMoverProp->dwLevel, pWorld->GetID(), pRespawnInfo );
#ifdef __EVENTLUA_SPAWN
if( pWorld->GetID() == WI_WORLD_MADRIGAL ) // ÇöÀç±îÁö´Â ¸¶µå¸®°¥ ´ë·ú¿¡¸¸ ÃâÇöÇÑ´Ù.
prj.m_EventLua.SetAddSpawnRegion( pWorld->GetID(), pRespawnInfo->m_rect );
#endif // __EVENTLUA_SPAWN
} // if
} // if
} // for
#endif // __EVENT_0117
pWorld = pWorld->nextptr;
} // while
#ifdef __EVENT_0117
CEventGeneric::GetInstance()->SortRegionGeneric();
#endif // __EVENT_0117
} // if
#endif // __S1108_BACK_END_SYSTEM
}