#pragma once #include "DNGuildWar.h" //³­ºÀ²¨ ¿ç·ç ¿Å°Ü¼­ ¼öÁ¤...³­ºÀ²¨ ÃÖ´ëÇÑ »ì·Áº¸Àå class CDNVillageConnection; class CDNGuildWarManager { private: DWORD m_TickCheckGuildWar; char m_cStepIndex; // ÇöÀç ½ºÅÜ bool m_bWarEvent; // À̺¥Æ® ÁøÇà¿©ºÎ short m_wScheduleID; // Â÷¼ö short m_wWinersWeightRate; // ½Â¸®ÆÀ°¡ÁßÄ¡ __time64_t m_tRewardExpireDate; // º¸»ó(³óÀå, Á¦½ºÃÄ) ¸¸·á ±â°£ CDNGuildWar* m_pWarEventStep[GUILDWAR_STEP_END]; BYTE m_cSecretTeam; // ½ÃÅ©¸´ ¿©ºÎ int m_nSecretRandomSeed; // ½ÃÅ©¸´ ·£´ý½Ãµå int m_nFinalTeamCount; // º»¼± ÁøÃâÆÀ Ä«¿îÆ® bool m_bFinalTeamSetting; // º»¼± ÁøÃâÆÀ ¼ÂÆÃ ¿©ºÎ TGuildUID m_PreWinGuildUID; // Áö³­ Â÷¼öÀÇ ¿ì½Â ±æµåUID DWORD m_dwPreWinSkillCoolTime; // Áö³­ Â÷¼öÀÇ ¿ì½Â½ºÅ³ ÄðŸÀÓ // DB¿¡ ÀúÀåµÈ °¢Á¾ µ¥ÀÌÅ͵é.. //////////////////////////////////////////////////////////////////////////////////////// // ¿¹¼± LONG m_nBlueTeamPoint; // ºí·çÆÀ Æ÷ÀÎÆ® LONG m_nRedTeamPoint; // ·¹µåÆÀ Æ÷ÀÎÆ® // °¢ ȸÂ÷º° ±×·ì sTournamentGroup m_bTournamentGroup[GUILDWAR_TOURNAMENT_GROUP_MAX]; // Àüü ½ºÄÉÁì TGuildWarEventInfo m_sGuildWarSchedule[GUILDWAR_STEP_END]; // º»¼± ½ºÄÉÁì TGuildWarEventInfo m_sGuildWarFinalSchedule[GUILDWAR_FINALPART_MAX]; // º»¼± ´ëÁøÇ¥ SGuildTournamentInfo m_GuildWarFinalInfo[GUILDWAR_FINALS_TEAM_MAX]; // ´ëÁøÇ¥ ¼ø ±æµå Á¤·Ä int m_GuildWarOpeningPoints[GUILDWAR_FINALS_TEAM_MAX]; // °¢ ´ëÁøÇ¥¾ÖµéÀÇ ¿¹¼± ÇÕ°è Æ÷ÀÎÆ® //////////////////////////////////////////////////////////////////////////////////////// // ¿¹¼± 24À§±îÁöÀÇ ÇöȲ SGuildWarRankingInfo m_sGuildWarPointTrialRanking[GUILDWAR_TRIAL_POINT_TEAM_MAX]; short m_wPreWinScheduleID; // Áö³­ ¿ì½Â Â÷¼ö.. bool m_bFrinalProgress; // º»¼± ÁøÇà ¿©ºÎ bool m_bFinalStart; // º»¼±ÀÌ ½ÃÀÛÀÌ µÇ¾ú´ÂÁö.. // ¼ÂÆÃ¿©ºÎ eGuildWarSettingStep m_eSettingStep; // ½ÃÀ۽à Á¤º¸ ¼ÂÆÃ ´Ü°è. bool m_bSendGuildWarInfo; // ºô¸®Áö¿¡°Ô Á¤º¸ ¿äû ¿©ºÎ //DWORD m_dwSendVillageTick; // ºô¸®Áö¿¡°Ô Á¤º¸¸¦ ¿äûÇÑ Tick bool m_bCheatFlag; bool m_bFinalWinGuild; // ÃÖÁ¾ ¿ì½ÂÀÚ°¡ ¼ÂÆÃµÇ¾î ÀÖ´ÂÁö.(Á¦½ºÃÄ, ³óÀå º¸»ó ¿©ºÎ) bool m_bResetSchedule; // ½ºÄÉÁìÀ» ÃʱâÈ­ Çϰí ÀüºÎ ´Ù½Ã ·Îµù.. #if defined(PRE_FIX_75807) bool m_bFarmForceHarbest; // ¿ì½Â³óÀå ÃʱâÈ­ #endif //#if defined(PRE_FIX_75807) private: int FindWorldEventIndex(); bool CheckStep(char cType); bool RegisterScheduleGroup(short wScheduleID, const TGuildWarEventInfo vEventInfo[]); bool UpdateScheduleGroup(short wScheduleID, const TGuildWarEventInfo vEventInfo[]); void ResetStep(); void StartStep(); void NextStep(); void FinalStep(); void Clear(); public: CDNGuildWarManager(); virtual ~CDNGuildWarManager(); inline void SetSendGuildWarInfo(bool bSendGuildWarInfo) { m_bSendGuildWarInfo = bSendGuildWarInfo; }; inline void SetGuildWarSettingStep(eGuildWarSettingStep eSettingStep) { m_eSettingStep = eSettingStep; }; inline eGuildWarSettingStep GetGuildWarSettingStep() { return m_eSettingStep;}; inline short GetScheduleID() { return m_wScheduleID;}; inline int GetBlueTeamPoint() { return (int)m_nBlueTeamPoint; }; inline int GetRedTeamPoint() { return (int)m_nRedTeamPoint; }; inline TGuildWarEventInfo* GetGuildWarSchedule() { return m_sGuildWarSchedule;}; inline TGuildWarEventInfo* GetGuildWarFinalSchedule() { return m_sGuildWarFinalSchedule;}; inline short GetWinersWeightRate() { return m_wWinersWeightRate; }; int SetGuildTournamentInfo(SGuildTournamentInfo* pGuildTournamentInfo); inline SGuildTournamentInfo* GetGuildTournamentInfo() { return m_GuildWarFinalInfo;}; void SetGuildWarPointTrialRanking(const MASetGuildWarPointRunningTotal* pData); inline SGuildWarRankingInfo* GetGuildWarPointTrialRanking() { return m_sGuildWarPointTrialRanking;}; void SetGuildTournamentInfoWin(char cIndex, bool bWin); void SetGuildWarTournamentResult(GAMAPvPGuildWarResult* pGuildWarResult); void SendSetGuildWarFinalResult(char cWinGuildIndex=-1, char cLoseGuildIndex=-1 ); void SetGuildWarOpenningPoint(VIMASetGuildWarFinalTeam* pData ); void SetGuildWarTournamentPoint(GAMAPvPGuildWarScore* pGuildWarPoint); void SendSetGuildWarTournamentWin(char cWinGuildIndex, char cFinalPart); bool LoadScheduleInfo(const VIMASetGuildWarSchedule* pData); bool LoadFinalScheduleInfo(MASetGuildWarFinalSchedule* pData); void DoUpdate(DWORD CurTick); CDNGuildWar* GetWarEvent(char cStep); inline char GetStepIndex() { return m_cStepIndex;}; bool GetRestriction(int nSubCmd); void SendGuildWarInfoReq(); //ºô¸®Áö¿¡ °¢Á¾ Á¤º¸ ¿äû. void SetGuildWarPoint(int nBlueTeam, int nRedTeam); void AddGuildWarPoint(char cTeamType, int nAddPoint); void SetGuildWarPreWinGuild(TGuildUID GuildUID); inline void SetPreWinGuild(TGuildUID GuildUID) { m_PreWinGuildUID = GuildUID;}; inline TGuildUID GetPreWinGuild() { return m_PreWinGuildUID; }; // Áö³­ Â÷¼öÀÇ ¿ì½Â ±æµåUID // ¿ì½Â½ºÅ³ ÄðŸÀÓ inline DWORD GetPreWinSKillCoolTime() { return m_dwPreWinSkillCoolTime; }; inline void SetPreWinSKillCoolTime(DWORD dwCoolTime ) { m_dwPreWinSkillCoolTime = dwCoolTime;}; UINT GetGuildDBIDWithFinal(const UINT uiPvPIndex, const WCHAR * pGuildName); bool IsTrialStats(); void SetTrialStats(); // ´ëÁøÇ¥Â¥±â.. void CalcGuildWarTournament(VIMASetGuildWarFinalTeam* pData); // °¢ Â÷¼öº° ±æµåÀü¹æ ¼ÂÆÃ void SetGuildWarTournamentGroup(); // ±æµåÀü ¹æ »ý¼º void GuildWarCreateRoom(); // ±æµåÀü ¹æ Á¾·á void GuildWarEndRoom(); char GetCurFinalPart(); time_t GetCurFinalPartBeginTime(); inline int GetFinalTeamCount() { return m_nFinalTeamCount; }; inline bool IsFinalTeamSetting() { return m_bFinalTeamSetting; }; void CalcTeamSecret(); inline BYTE GetSecretTeam() {return m_cSecretTeam;} inline int GetSecretRandomSeed() {return m_nSecretRandomSeed;} bool GetCheatFlag () {return m_bCheatFlag;} void SetCheatFlag (bool bFlag) {m_bCheatFlag = bFlag;} // ¹æÀÌ »Ç»çÁö°Å³ª °ÔÀÓ¼­¹ö°¡ ƨ°åÀ»¶§ È£Ãâ¹Ù¶÷.. void SetDropTournament(UINT unPvPIndex); void CalcGuildWarTournamentWin(BYTE cGroupIndex); void SetDBJobSend(bool bSend); void SetDBJobSeq(int nJobSeq); void SetDBJobSuccess(bool bSuccess); bool GetDBJobSuccess(); void CalcGuildWarTournamentResult(); inline void SetFinalWinGuild(bool bFinalWin) { m_bFinalWinGuild = bFinalWin;}; inline void SetResetSchedule(bool bReset) { m_bResetSchedule = bReset;}; inline void SetFinalStart(bool bStart) { m_bFinalStart = bStart;}; inline bool GetFinalStart() { return m_bFinalStart;}; inline bool GetFinalWinGuildReward() { return m_bFinalWinGuild;}; inline void SetPreWinScheduleID(short wScheduleID) { m_wPreWinScheduleID = wScheduleID;}; inline short GetPreWinScheduleID() { return m_wPreWinScheduleID; }; inline void SetFinalProgress(bool bFinalProgress) { m_bFrinalProgress = bFinalProgress;}; inline bool GetFinalProgress() { return m_bFrinalProgress;}; }; extern CDNGuildWarManager * g_pGuildWarManager;