#ifndef SUN_GAMESERVER_ACCUMULATEPOINT_H_ #define SUN_GAMESERVER_ACCUMULATEPOINT_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 AccumulatePoint : 2010.03.03 by ³²±âºÀ - PlayerManager::Update() ¿¡¼­ AccumulatePoint::Calculate_Current_Year()¸¦ È£ÃâÇÔÀ¸·Î ÇØ¼­ Àû¸³³âµµÀÇ ÃʱâÈ­¸¦ ´ã´çÇÑ´Ù. - Player::Update()¿¡¼­ AccumulatePoint::Update() È£ÃâÇÔÀ¸·Î ÇØ¼­ ÇØ´ç Ç÷¹À̾îÀÇ ÀÏÁ¤ ÁÖ±â·Î Àû¸³ Æ÷ÀÎÆ®¸¦ ´©ÀûÇÑ´Ù. - class AccumulatePointParser¸¦ ÀÌ¿ëÇØ º¸»ó±×·ìÄÚµå ¿Í ÇÊ¿ä Æ÷ÀÎÆ®¸¦ ¾Ë¾Æ³½´Ù. */ class Player; class AccumulatePointParser; class AccumulatePoint { public: // ÇØ´ç ³âµµ ¹× Áõ°¡ ½Ã°£(ÃÊ ´ÜÀ§)À» ÃøÁ¤ÇÑ´Ù. static void Calculate_Current_Year(uint delta_tick_count); static void SyncMatchDate(ushort year, ushort dayofweek, uint secondofday); public: AccumulatePoint(Player* player); virtual ~AccumulatePoint(); // PlayerÀÇ Á¢¼Ó½Ã°£À» (ÃÊ ´ÜÀ§)·Î Áõ°¡ ½Ã۸ç, ƯÁ¤ ½Ã°£ ¸¶´Ù ¸¶Àϸ®Áö ÄÚÀÎÀ» 1 Áõ°¡ ½ÃŲ´Ù. void Update(); void Init(Player* player); void Release(); void SendPacketAccumulatePoint(); bool GenerateReward(bool first); void ResetReward(); uint get_reward_code() const; uchar get_require_point() const; ushort get_accumulate_point() const; uint get_accumulate_time() const; bool PlusAccumulatePoint(ushort accumulate_point); void MinusAccumulatePoint(ushort accumulate_point); private: Player* player_; BASE_PLAYERINFO* playerinfo_; struct Value { uint reward_code; uchar require_point; ushort dayofweek; bool event_time; }; Value current_data_; Value reserved_data_; bool generated_; }; inline uchar AccumulatePoint::get_require_point() const { return current_data_.require_point; } inline uint AccumulatePoint::get_reward_code() const { return current_data_.reward_code; } #endif //_NA_1419_20100121_ACCUMULATE_POINT #endif //SUN_GAMESERVER_ACCUMULATEPOINT_H_