#ifndef SUN_GAMESERVER_ACCUMULATEPOINTPARSER_H_ #define SUN_GAMESERVER_ACCUMULATEPOINTPARSER_H_ #if _MSC_VER > 1000 #pragma once #endif #ifdef _NA_1419_20100121_ACCUMULATE_POINT /* Ŭ·¡½º ´ÙÀ̾î±×·¥ : 2010.03.03 by ³²±âºÀ GameScriptParserManager <*>--------------> AccumulatePointParser A | | Player <*>----------> AccumulatePoint <>-----------| A | | PlayerManager <>--------------| | | AccumulatePointImplement --| A | | <*> CG_ITEM_QUERY_ACCUMULATE_POINT_ITEM_SYN or CG_ITEM_USE_ACCUMULATE_POINT_SYN */ /* class AccumulatePointParser : 2010.03.03 by ³²±âºÀ - Àû¸³ Æ÷ÀÎÆ® ½ºÅ©¸³Æ®(AccumulatePoint.txt) ÆÄ¼­. - ½ºÅ©¸³Æ®¿¡´Â ¿äÀϺ° <º¸»ó±×·ìÄÚµå, Àû¸³½Ã°£, Àû¸³Æ÷ÀÎÆ®,...>°¡ ÀÖ´Ù. - ÇöÀç ¿äÀÏ¿¡ ÇØ´çÇÏ´Â º¸»ó±×·ìÄڵ带 ·£´ýÇÏ°Ô ÃßÃâÇÑ´Ù. */ #include #include #include #include #include class AccumulatePointParser : public util::Singleton, public IParser { public: struct RewardGroup { enum { Max_Reward = 5, }; struct Reward { uint reward_code; char reward_ratio; }; #ifdef _NA_0_20100528_ACCUMULATE_POINT_EVENT struct RewardEvent { uint start_time; uint end_time; uint reward_code; }; RewardEvent reward_event; #endif #ifdef _NA_0_20101011_ACCUMULATE_POINT_LIMIT_OPTION struct LimitOption { uchar receptible_min_level; uchar receptible_max_level; uint limit_max_point; }; LimitOption limit_option; #endif uchar day_flag; // ÀÏ, ¿ù, È­... uchar require_point; // º¸»ó ¹Þ±â À§ÇØ ÇÊ¿äÇÑ Æ÷ÀÎÆ® uchar generate_point; // ¹ß»ý Æ÷ÀÎÆ® uint generate_time; // ¹ß»ý ½Ã°£ Reward reward_array[Max_Reward]; }; enum DayFlag { Min_Day = 0, Max_Day = 7, }; public: AccumulatePointParser(void); virtual ~AccumulatePointParser(void); VOID Init(); VOID Init( char * pszPackFileName ); VOID Release(); virtual BOOL LoadScript( eSCRIPT_CODE scriptCode, BOOL bReload ); const RewardGroup& get_reward_group(ushort dayofweek) const; private: BOOL _Load( BOOL bReload ); RewardGroup reward_group_array_[Max_Day]; }; inline const AccumulatePointParser::RewardGroup& AccumulatePointParser::get_reward_group(ushort dayofweek) const { return (dayofweek < Max_Day) ? reward_group_array_[dayofweek] : reward_group_array_[Min_Day]; } #endif //_NA_1419_20100121_ACCUMULATE_POINT #endif //SUN_GAMESERVER_ACCUMULATEPOINTPARSER_H_