DragonNest/Server/ServerCommon/DNStampSystem.h
2024-12-20 16:56:44 +08:00

46 lines
2.8 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#if defined( PRE_ADD_STAMPSYSTEM )
class CDNStampSystem : public TBoostMemoryPool<CDNStampSystem>
{
public:
CDNStampSystem( CDNUserSession * pUserSession );
~CDNStampSystem();
void LoadUserData();
void InitCompleteSlot( const StampSystem::StampCompleteInfo * pCompleteInfo );
void ResetDailyData( time_t tCurrentTime );
void ResetWeeklyData( time_t tCurrentTime );
void OnCompleteQuest( int nQuestID );
void OnCompleteDailyMission( int nArrayIndex );
void SendInitData();
// for cheat command
void ForceAddCompleteSlot( int nChallengeIndex, int nWeekDay );
void ForceClearCompleteSlot();
private:
INT64 _ConvertToStampTableTime( time_t tTime );
bool _CheckQuestAllComplete( const std::set<int> & rSetAssignmentID ) const;
bool _CheckMissionComplete( const std::set<int> & rSetAssignmentID, int nArrayIndex ) const;
bool _CheckAndInsertSlot( int nChallengeIndex, int nWeekDay );
void _CheckAndGiveReward( int nChallengeIndex, const StampSystem::TStampChallenge & rChallengeData ) const;
void _ClearCompleteSlot();
void _UpdateWeekDay( time_t tTime );
private:
typedef std::set<int>
SlotSet;
CDNUserSession * m_pUserSession;
std::map<int,SlotSet> m_MapCompleteSlotSet;
// 공통적으로 뺄 수 있는 녀석들..
const StampSystem::TStampTableData * m_pStampTableData;
int m_nCheckDailyTime;
int m_nWeekDay;
};
#endif // #if defined( PRE_ADD_STAMPSYSTEM )