/* ========================================================================== * ÆÄ ÀÏ : DropScript.h * ¸ñ Àû : µå·Ó¿¡ °ü·ÃµÈ ½ºÅ©¸³Æ® ÆÄÀÏÀ» ÀÐ¾î ¿Â´Ù. * ÀÛ ¼º ÀÚ : ¹Ú°æÈñ * ÀÛ ¼º ÀÏ : 2007-01-12 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once struct sDropMoneyScript; struct sDropClassScript; struct sDropLevelTypeScript; struct sDropItemListScript; struct sPartyExp; const int DROP_MONSTER_TYPE_UNIT = 100000; class cDropScript { public: cDropScript(void); ~cDropScript(void){}; bool Init( bool dbInsertDataOnly = false ); void Release(); /// ¸ó½ºÅÍ sDropMoneyScript* GetDropMonMoney( unsigned long monsterIdx ) { return (sDropMoneyScript*)mDropMonMoney.GetAt( monsterIdx ); } tArray* GetDropMonClass( unsigned long monsterIdx ) { return (tArray*)mDropMonClass.GetAt( monsterIdx ); } tArray* GetDropMonLevelType( unsigned char monsterLevel, unsigned char type ); tArray* GetDropMonQuest( unsigned long monsterClassIdx, unsigned long questIdx ); sDropItemListScript* GetDropMonItem( unsigned long dropItemGroup ) { return (sDropItemListScript*)mDropMonItem.GetAt( dropItemGroup ); } unsigned long GetDropMonCantTime( unsigned long itemIdx ); void* GetItemDropLimit() { return &mDropMonCantTime; } /// äÁý sDropMoneyScript* GetDropGatherMoney( unsigned long gatherIdx ) { return (sDropMoneyScript*)mDropGatherMoney.GetAt( gatherIdx ); } tArray* GetDropGatherClass( unsigned long gatherIdx ) { return (tArray*)mDropGatherClass.GetAt( gatherIdx ); } tArray* GetDropGatherQuest( unsigned long classIdx, unsigned long questIdx ); sDropItemListScript* GetDropGatherItem( unsigned long dropItemGroup ) { return (sDropItemListScript*)mDropGatherItem.GetAt( dropItemGroup ); } unsigned long GetDropGatherCantTime( unsigned long itemIdx ); /// ·¹º§Â÷ ÆÐ³ÎƼ float GetDropExpIncrease( bool isTheme, char levelDifference ); float GetDropIncrease( bool isTheme, char levelDifference ); /// ÆÄƼ °æÇèÄ¡ float GetPartyCalcInfo( unsigned long idx ); private: /// ¸ó½ºÅÍ bool LoadDropMonMoney(); /// money Á¤º¸ ·Îµå bool LoadDropMonClass(); /// classº° Á¤º¸ ·Îµå bool LoadDropMonLevelType(); /// level/typeº° Á¤º¸ ·Îµå bool LoadDropMonQuest(); /// Äù½ºÆ®º° Á¤º¸ ·Îµå bool LoadDropMonItemGroup(); /// µå¶ø ¾ÆÀÌÅÛ ±×·ì Á¤º¸ ·Îµå bool LoadDropMonItemCantTime(); /// µå¶ø ¾ÆÀÌÅÛ ½Ã°£Á¦¾à /// äÁý bool LoadDropGatherMoney(); /// money Á¤º¸ ·Îµå bool LoadDropGatherClass(); /// classº° Á¤º¸ ·Îµå bool LoadDropGatherQuest(); /// Äù½ºÆ®º° Á¤º¸ ·Îµå bool LoadDropGatherItemGroup(); /// µå¶ø ¾ÆÀÌÅÛ ±×·ì Á¤º¸ ·Îµå bool LoadDropGatherItemCantTime(); /// µå¶ø ¾ÆÀÌÅÛ ½Ã°£Á¦¾à /// °æÇèÄ¡ ÆÐ³ÎƼ bool LoadDropExpIncrease(); bool LoadDropIncreadse(); /// ÆÄƼ °æÇèÄ¡ bool LoadPartyCalcInfo(); public: static cDropScript* mpDropScript; private: typedef tPointerHashMap cPointrHashMap; typedef tHashMap cHashMap; typedef tHashMap cLongHashMap; typedef tArray cAry; /// ¸ó½ºÅÍ /// cPointrHashMap mDropMonMoney; /// money µå¶ø Á¤º¸ /// pDropMonsterAry> cPointrHashMap mDropMonClass; /// ¸ó½ºÅÍ Á¾·ùº° µå¶ø Á¤º¸(ÀÏ¹Ýµå¶ø) /// pDropLevelType> cPointrHashMap mDropMonLevelType; /// ¸ó½ºÅÍ ·¹º§/ºÐ·ùº° µå¶ø Á¤º¸(¿ùµåµå¶ø) /// cAry mShutDownDeleteAry; /// ½Ã½ºÅÛ shutdown ½Ã sDropLevelTypeScript*¸¦ Áߺ¹ delete ¸¦ ÇÏÁö¾Ê±âÀ§ÇØ ¸¸µë /// cPointrHashMap mDropMonItem; /// µå¶ø ¾ÆÀÌÅÛ ¸ñ·Ï /// cLongHashMap mDropMonCantTime; /// µå¶ø ½Ã°£ Á¦ÇÑ /// äÁý /// cPointrHashMap mDropGatherMoney; /// money µå¶ø Á¤º¸ /// pDropGathering> cPointrHashMap mDropGatherClass; /// äÁý Á¾·ùº° µå¶ø Á¤º¸ /// cPointrHashMap mDropGatherItem; /// µå¶ø ¾ÆÀÌÅÛ ¸ñ·Ï /// cLongHashMap mDropGatherCantTime; /// µå¶ø ½Ã°£ Á¦ÇÑ /// ÀÏ¹Ý ÇÊµå °æÇèÄ¡ ÆÐ³ÎƼ typedef tPointerHashMap cDropExpIncrease; cDropExpIncrease mNormalDropExpIncreaseMap; char mNormalScriptMinLevelDifferent; /// ½ºÅ©¸³Æ®¿¡ Á¤ÀÇµÈ ÃÖ¼Ò ·¹º§Â÷ char mNormalScriptMaxLevelDifferent; /// ½ºÅ©¸³Æ®¿¡ Á¤ÀÇµÈ ÃÖ´ë ·¹º§Â÷ /// Å׸¶ °æÇèÄ¡ ÆÐ³ÎƼ cDropExpIncrease mThemeDropExpIncreaseMap; char mThemeScriptMinLevelDifferent; /// ½ºÅ©¸³Æ®¿¡ Á¤ÀÇµÈ ÃÖ¼Ò ·¹º§Â÷ char mThemeScriptMaxLevelDifferent; /// ½ºÅ©¸³Æ®¿¡ Á¤ÀÇµÈ ÃÖ´ë ·¹º§Â÷ /// ÀϹÝ/Å׸¶ ¾ÆÀÌÅÛ µå¶ø ÆÐ³ÎƼ typedef tPointerHashMap cDropIncrease; cDropIncrease mNormalDropIncreaseMap; char mNormalDropMinLevelDifferent; cDropIncrease mThemeDropIncreaseMap; char mThemeDropMinLevelDifferent; /// ÆÄƼ °æÇèÄ¡ cHashMap mPartyCalcMap; }; #define DROPSCRIPT cDropScript::mpDropScript