Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2243
Server/RylServerProject/RylDBAgentServer/GameTime/GameTimeDBMgr.cpp
Normal file
2243
Server/RylServerProject/RylDBAgentServer/GameTime/GameTimeDBMgr.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,179 @@
|
||||
#ifndef _RYL_DBAGENT_GAME_TIME_DB_MANAGER_H_
|
||||
#define _RYL_DBAGENT_GAME_TIME_DB_MANAGER_H_
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <GameTime/GameTimeConstants.h>
|
||||
#include <Network/Packet/PacketStruct/CastlePacket.h>
|
||||
#include <DataStorage/SessionData.h>
|
||||
|
||||
using namespace GameTime;
|
||||
using namespace DBAgent;
|
||||
|
||||
class CDBComponent;
|
||||
|
||||
class CDBComponent;
|
||||
|
||||
class CSessionData;
|
||||
|
||||
class CGameTimeDBMgr
|
||||
{
|
||||
public:
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD>ü
|
||||
struct sGameTime
|
||||
{
|
||||
unsigned long m_dwID;
|
||||
|
||||
TimeType m_eTimeType; // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> Ÿ<><C5B8> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
Cycle m_eTimeCycle; // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> <20>ֱ<EFBFBD> (<28><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>, <20>ſ<EFBFBD>, Ư<><C6AF><EFBFBD><EFBFBD>)
|
||||
Week m_eWeek; // Cycle <20><> Weekly <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
unsigned short m_wYear; // <20>
|
||||
unsigned char m_cMonth; // <20><>
|
||||
unsigned char m_cDay; // <20><>
|
||||
unsigned char m_cHour; // <20>ð<EFBFBD>
|
||||
unsigned char m_cMinute; // <20><>
|
||||
unsigned long m_dwDuration; // <20>÷<EFBFBD><C3B7><EFBFBD> Ÿ<><C5B8> (<28><>)
|
||||
|
||||
// edith 2009.07.21 <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20>۾<EFBFBD><DBBE><EFBFBD>
|
||||
unsigned long m_dwValue1; // <20><>Ÿ<EFBFBD>۾<EFBFBD><DBBE><EFBFBD>
|
||||
unsigned long m_dwValue2; // <20><>Ÿ<EFBFBD>۾<EFBFBD><DBBE><EFBFBD>
|
||||
|
||||
sGameTime::sGameTime()
|
||||
{
|
||||
m_dwID = 0;
|
||||
m_eTimeType = TYPE_NONE;
|
||||
m_eTimeCycle = CYCLE_NONE;
|
||||
m_eWeek = WEEK_NONE;
|
||||
m_wYear = 0;
|
||||
m_cMonth = 0;
|
||||
m_cDay = 0;
|
||||
m_cHour = 0;
|
||||
m_cMinute = 0;
|
||||
m_dwDuration = 0;
|
||||
|
||||
m_dwValue1 = 0;
|
||||
m_dwValue2 = 0;
|
||||
}
|
||||
};
|
||||
|
||||
typedef std::map<unsigned long, sGameTime> GameTimeTable;
|
||||
|
||||
|
||||
|
||||
// <20>Ľ<EFBFBD> <20><><EFBFBD><EFBFBD>ü
|
||||
struct ParseData
|
||||
{
|
||||
typedef bool(*ParseFunc) (sGameTime& gametime, const char* szValue);
|
||||
|
||||
const char* m_szColumnName;
|
||||
ParseFunc m_fnParseFunc;
|
||||
|
||||
ParseData(const char* szColumnName, ParseFunc fnParseFunc)
|
||||
: m_szColumnName(szColumnName), m_fnParseFunc(fnParseFunc) { }
|
||||
};
|
||||
|
||||
typedef std::vector<ParseData> ParseDataArray;
|
||||
|
||||
public:
|
||||
|
||||
bool LoadGameTimeScript(const char* szFileName);
|
||||
bool Initialize(CDBComponent& DBComponent);
|
||||
void InitGameTimeValue(unsigned char cGuildTime, unsigned char cRealmTime,
|
||||
unsigned char cSiegeTime, unsigned char cMiningTime,
|
||||
unsigned char cEnterTime, unsigned char cEventTime);
|
||||
|
||||
void Process();
|
||||
void CheckGameTime();
|
||||
void SendGameTimeInfo(unsigned char cType, bool bUpdateGuildTime, bool bUpdateRealmTime, bool bUpdateSiegeTime, bool bUpdateEnterTime, bool bUpdateEventTime);
|
||||
void SendGameTimeInfo(unsigned long dwCastleID); // Ư<><C6AF> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ɿ<EFBFBD><C9BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
unsigned char GetCurrentGameTime(unsigned char cTimeType) const;
|
||||
unsigned char GetCurrentGuildTime() const;
|
||||
unsigned char GetCurrentRealmTime() const;
|
||||
unsigned char GetCurrentSiegeTime() const;
|
||||
unsigned char GetCurrentEnterTime() const;
|
||||
unsigned char GetCurrentMiningTime() const;
|
||||
|
||||
// edith 2009.07.21 <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20>۾<EFBFBD><DBBE><EFBFBD>
|
||||
unsigned char GetCurrentEventTime() const;
|
||||
|
||||
|
||||
bool IsGuildWarTime() const;
|
||||
bool IsRealmWarTime() const;
|
||||
bool IsSiegeWarTime() const;
|
||||
bool IsEnterTime() const;
|
||||
bool IsMiningTime() const;
|
||||
|
||||
// edith 2009.07.21 <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20>۾<EFBFBD><DBBE><EFBFBD>
|
||||
bool IsEventTime() const;
|
||||
|
||||
bool IsGuildWarTime(unsigned char cTime) const;
|
||||
bool IsRealmWarTime(unsigned char cTime) const;
|
||||
bool IsSiegeWarTime(unsigned char cTime) const;
|
||||
bool IsEnterTime(unsigned char cTime) const;
|
||||
bool IsMiningTime(unsigned char cTime) const;
|
||||
|
||||
// edith 2009.07.21 <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20>۾<EFBFBD><DBBE><EFBFBD>
|
||||
bool IsEventTime(unsigned char cTime) const;
|
||||
|
||||
bool IsRealmWarReadyTime() const;
|
||||
bool IsRealmWarReadyTime(unsigned char cTime) const;
|
||||
|
||||
const GameTimeTable& GetGameTimeTable() const { return m_GameTimeTable; }
|
||||
|
||||
static CGameTimeDBMgr& GetInstance();
|
||||
|
||||
void CheckRealmCount(CTime& startTime, unsigned long* dwRealmCount_Out); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ƚ<><C8BD><EFBFBD><EFBFBD> üũ.
|
||||
|
||||
unsigned long GetRealmDuration(void) { return m_dwRealmTime; }
|
||||
|
||||
protected:
|
||||
|
||||
CGameTimeDBMgr();
|
||||
~CGameTimeDBMgr();
|
||||
|
||||
private:
|
||||
|
||||
bool SetGameTimeParseData(ParseDataArray& parseDataArray);
|
||||
|
||||
bool IntegrityCheck(); // <20><><EFBFBD>Ἲ <20>˻<EFBFBD>
|
||||
|
||||
CTime GetTimeByCycle(sGameTime* lpGameTime, CTime nowTime = 0);
|
||||
CTime GetWeeklyTime(sGameTime* lpGameTime, CTime nowTime = 0);
|
||||
CTime GetDailyTime(sGameTime* lpGameTime, CTime nowTime = 0);
|
||||
CTime GetMonthlyTime(sGameTime* lpGameTime, CTime nowTime = 0);
|
||||
CTime GetDateTime(sGameTime* lpGameTime, CTime nowTime = 0);
|
||||
|
||||
void GetTimeInfo(unsigned char cType, TimeInfo& timeInfo);
|
||||
|
||||
void GetNextMonth(CTime* pTime);
|
||||
|
||||
private:
|
||||
|
||||
unsigned char m_cNowGuildTime; // enum GuildTime
|
||||
unsigned char m_cNowRealmTime; // enum RealmTime
|
||||
unsigned char m_cNowSiegeTime; // enum SiegeTime
|
||||
unsigned char m_cNowEnterTime; // enum EnterTime. <20><EFBFBD><D7BC><EFBFBD> <20>ű<EFBFBD><C5B1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD>
|
||||
unsigned char m_cNowMiningTime; // enum MiningTime
|
||||
|
||||
// edith 2009.07.21 <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20>۾<EFBFBD><DBBE><EFBFBD>
|
||||
unsigned char m_cNowEventTime; // enum EventTime
|
||||
|
||||
GameTimeTable m_GameTimeTable;
|
||||
|
||||
CDBComponent* m_lpDBComponent;
|
||||
|
||||
unsigned long m_dwRealmTime; // <20><><EFBFBD>翡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ´<D6B4>.
|
||||
};
|
||||
|
||||
namespace RealmPoint
|
||||
{
|
||||
void AddRealmPoint(DBAgent::DataStorage::CSessionData* sessionData, unsigned char cRealmType);
|
||||
void InitRealmTime(DBAgent::DataStorage::CSessionData* sessionData, TIME* pTime);
|
||||
};
|
||||
|
||||
#endif // _RYL_DBAGENT_GAME_TIME_DB_MANAGER_H_
|
||||
Reference in New Issue
Block a user