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>
675 lines
22 KiB
C++
675 lines
22 KiB
C++
#ifndef _RYL_DB_CHARACTER_PROCESS_COMMAND_H_
|
|
#define _RYL_DB_CHARACTER_PROCESS_COMMAND_H_
|
|
|
|
#include <atlstr.h>
|
|
#include <atldbcli.h>
|
|
#include <DB/DBdefine.h>
|
|
#include "RylDBCommand.h"
|
|
|
|
namespace RylDBCommand
|
|
{
|
|
|
|
class CCharData : public IRylDBCommand
|
|
{
|
|
public:
|
|
|
|
enum
|
|
{
|
|
MAX_COLUMN_NUM = 25,
|
|
MAX_EQUIP_DATA = 30
|
|
};
|
|
|
|
CCharData() { Init(); }
|
|
|
|
void Init(void);
|
|
void LogError(DBErrorType eErrorType, HRESULT hr);
|
|
|
|
unsigned long GetCID() const { return static_cast<unsigned long>(m_CID); }
|
|
const char* GetName() const { return m_Name; }
|
|
|
|
unsigned char GetSex() const { return m_Sex; }
|
|
unsigned char GetHair() const { return m_Hair; }
|
|
unsigned char GetFace() const { return m_Face; }
|
|
unsigned char GetRace() const { return m_Race; }
|
|
short GetClass() const { return m_Class; }
|
|
|
|
unsigned long GetFame() const { return static_cast<unsigned long>(m_Fame); }
|
|
unsigned long GetMileage() const { return static_cast<unsigned long>(m_Mileage); }
|
|
unsigned long GetGID() const { return static_cast<unsigned long>(m_GID); }
|
|
unsigned long GetPID() const { return static_cast<unsigned long>(m_PID); }
|
|
unsigned char GetLevel() const { return m_Level; }
|
|
|
|
unsigned long GetGold() const { return static_cast<unsigned long>(m_Gold); }
|
|
|
|
short GetIP() const { return m_IP; }
|
|
short GetSTR() const { return m_STR; }
|
|
short GetDEX() const { return m_DEX; }
|
|
short GetCON() const { return m_CON; }
|
|
short GetINT() const { return m_INT; }
|
|
short GetWIS() const { return m_WIS; }
|
|
|
|
short GetHP() const { return m_HP; }
|
|
short GetMP() const { return m_MP; }
|
|
|
|
unsigned __int64 GetEXP() const { return m_Exp; }
|
|
unsigned char GetChance() const { return m_Chance; }
|
|
|
|
|
|
// CID는 바꿀 수 없고, 이름은 가급적 바꾸지 않는다.
|
|
void SetGold(unsigned long Gold) { m_Gold = Gold; m_GoldStatus = DBSTATUS_S_OK; }
|
|
void SetFame(unsigned long Fame) { m_Fame = Fame; m_FameStatus = DBSTATUS_S_OK; }
|
|
void SetMileage(unsigned long Mileage) { m_Mileage = Mileage; m_MileageStatus = DBSTATUS_S_OK; }
|
|
|
|
bool operator == (const CCharData& rhs) const;
|
|
bool operator != (const CCharData& rhs) const { return !(*this == rhs); }
|
|
|
|
CString GetDBStatus();
|
|
|
|
BEGIN_ACCESSOR_MAP(CCharData, 2)
|
|
|
|
BEGIN_ACCESSOR(0, true)
|
|
COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Name, m_NameLen, m_NameStatus)
|
|
COLUMN_ENTRY_STATUS(3, m_Sex, m_SexStatus)
|
|
COLUMN_ENTRY_STATUS(4, m_Hair, m_HairStatus)
|
|
COLUMN_ENTRY_STATUS(5, m_Face, m_FaceStatus)
|
|
COLUMN_ENTRY_STATUS(6, m_Race, m_RaceStatus)
|
|
COLUMN_ENTRY_STATUS(7, m_Class, m_ClassStatus)
|
|
COLUMN_ENTRY_STATUS(8, m_Fame, m_FameStatus)
|
|
COLUMN_ENTRY_STATUS(9, m_Mileage, m_MileageStatus)
|
|
COLUMN_ENTRY_STATUS(10, m_GID, m_GIDStatus)
|
|
COLUMN_ENTRY_STATUS(11, m_PID, m_PIDStatus)
|
|
COLUMN_ENTRY_STATUS(12, m_Level, m_LevelStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(13, m_EquipData, m_EquipLen, m_EquipDataStatus)
|
|
COLUMN_ENTRY_STATUS(14, m_Gold, m_GoldStatus)
|
|
COLUMN_ENTRY_STATUS(15, m_IP, m_IPStatus)
|
|
COLUMN_ENTRY_STATUS(16, m_STR, m_STRStatus)
|
|
COLUMN_ENTRY_STATUS(17, m_DEX, m_DEXStatus)
|
|
COLUMN_ENTRY_STATUS(18, m_CON, m_CONStatus)
|
|
COLUMN_ENTRY_STATUS(19, m_INT, m_INTStatus)
|
|
COLUMN_ENTRY_STATUS(20, m_WIS, m_WISStatus)
|
|
COLUMN_ENTRY_STATUS(21, m_HP, m_HPStatus)
|
|
COLUMN_ENTRY_STATUS(22, m_MP, m_MPStatus)
|
|
COLUMN_ENTRY_STATUS(23, m_Exp, m_ExpStatus)
|
|
COLUMN_ENTRY_STATUS(24, m_Chance, m_ChanceStatus)
|
|
END_ACCESSOR()
|
|
|
|
BEGIN_ACCESSOR(1, true)
|
|
COLUMN_ENTRY_STATUS(3, m_Sex, m_SexStatus)
|
|
COLUMN_ENTRY_STATUS(4, m_Hair, m_HairStatus)
|
|
COLUMN_ENTRY_STATUS(5, m_Face, m_FaceStatus)
|
|
COLUMN_ENTRY_STATUS(6, m_Race, m_RaceStatus)
|
|
COLUMN_ENTRY_STATUS(7, m_Class, m_ClassStatus)
|
|
COLUMN_ENTRY_STATUS(8, m_Fame, m_FameStatus)
|
|
COLUMN_ENTRY_STATUS(9, m_Mileage, m_MileageStatus)
|
|
COLUMN_ENTRY_STATUS(10, m_GID, m_GIDStatus)
|
|
COLUMN_ENTRY_STATUS(11, m_PID, m_PIDStatus)
|
|
COLUMN_ENTRY_STATUS(12, m_Level, m_LevelStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(13, m_EquipData, m_EquipLen, m_EquipDataStatus)
|
|
COLUMN_ENTRY_STATUS(14, m_Gold, m_GoldStatus)
|
|
COLUMN_ENTRY_STATUS(15, m_IP, m_IPStatus)
|
|
COLUMN_ENTRY_STATUS(16, m_STR, m_STRStatus)
|
|
COLUMN_ENTRY_STATUS(17, m_DEX, m_DEXStatus)
|
|
COLUMN_ENTRY_STATUS(18, m_CON, m_CONStatus)
|
|
COLUMN_ENTRY_STATUS(19, m_INT, m_INTStatus)
|
|
COLUMN_ENTRY_STATUS(20, m_WIS, m_WISStatus)
|
|
COLUMN_ENTRY_STATUS(21, m_HP, m_HPStatus)
|
|
COLUMN_ENTRY_STATUS(22, m_MP, m_MPStatus)
|
|
COLUMN_ENTRY_STATUS(23, m_Exp, m_ExpStatus)
|
|
COLUMN_ENTRY_STATUS(24, m_Chance, m_ChanceStatus)
|
|
END_ACCESSOR()
|
|
|
|
END_ACCESSOR_MAP()
|
|
|
|
private:
|
|
|
|
int m_CID;
|
|
|
|
char m_Name[CHAR_INFOST::MAX_NAME_LEN]; // 캐릭터 이름
|
|
unsigned char m_Sex; // 캐릭터 성
|
|
unsigned char m_Hair; // 캐릭터 머리 모양
|
|
unsigned char m_Face; // 캐릭터 얼굴 모양
|
|
unsigned char m_Race; // 캐릭터 국가
|
|
short m_Class; // 캐릭터 클래스
|
|
|
|
int m_Fame; // 명성
|
|
int m_Mileage; // 마일리지
|
|
int m_GID; // 캐릭터 길드
|
|
int m_PID; // 캐릭터 파티
|
|
unsigned char m_Level; // 캐릭터 레벨
|
|
|
|
int m_Gold; // 돈
|
|
|
|
short m_IP; // 증가 포인트
|
|
short m_STR; // 캐릭터 STR
|
|
short m_DEX; // 캐릭터 DEX
|
|
short m_CON; // 캐릭터 CON
|
|
short m_INT; // 캐릭터 INT
|
|
short m_WIS; // 캐릭터 WIS
|
|
|
|
short m_HP; // 캐릭터 HP
|
|
short m_MP; // 캐릭터 MP
|
|
__int64 m_Exp; // 캐릭터 경험점
|
|
|
|
unsigned char m_Chance; // 캐릭터 찬스
|
|
|
|
BYTE m_EquipData[MAX_EQUIP_DATA];
|
|
|
|
DBLENGTH m_NameLen;
|
|
DBLENGTH m_EquipLen;
|
|
|
|
// Data Status
|
|
DBSTATUSENUM m_CIDStatus;
|
|
DBSTATUSENUM m_NameStatus;
|
|
DBSTATUSENUM m_SexStatus;
|
|
DBSTATUSENUM m_HairStatus;
|
|
DBSTATUSENUM m_FaceStatus;
|
|
DBSTATUSENUM m_RaceStatus;
|
|
DBSTATUSENUM m_ClassStatus;
|
|
DBSTATUSENUM m_FameStatus;
|
|
DBSTATUSENUM m_MileageStatus;
|
|
DBSTATUSENUM m_GIDStatus;
|
|
DBSTATUSENUM m_PIDStatus;
|
|
DBSTATUSENUM m_LevelStatus;
|
|
DBSTATUSENUM m_GoldStatus;
|
|
DBSTATUSENUM m_IPStatus;
|
|
DBSTATUSENUM m_STRStatus;
|
|
DBSTATUSENUM m_DEXStatus;
|
|
DBSTATUSENUM m_CONStatus;
|
|
DBSTATUSENUM m_INTStatus;
|
|
DBSTATUSENUM m_WISStatus;
|
|
DBSTATUSENUM m_HPStatus;
|
|
DBSTATUSENUM m_MPStatus;
|
|
DBSTATUSENUM m_ExpStatus;
|
|
DBSTATUSENUM m_ChanceStatus;
|
|
DBSTATUSENUM m_EquipDataStatus;
|
|
};
|
|
|
|
|
|
class CSkillData : public IRylDBCommand
|
|
{
|
|
public:
|
|
|
|
CSkillData() { Init(); }
|
|
|
|
void Init(void);
|
|
void LogError(DBErrorType eErrorType, HRESULT hr);
|
|
|
|
unsigned long GetCID() const { return static_cast<unsigned long>(m_CID); }
|
|
const SKILL& GetSkill() const { return reinterpret_cast<const SKILL&>(m_Skill); }
|
|
void SetSkill(const SKILL& skill)
|
|
{
|
|
memcpy(m_Skill, &skill, sizeof(SKILL));
|
|
m_SkillLength = sizeof(SKILL);
|
|
m_SkillStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
bool operator == (const CSkillData& rhs) const;
|
|
bool operator != (const CSkillData& rhs) const { return !(*this == rhs); }
|
|
|
|
CString GetDBStatus();
|
|
|
|
BEGIN_ACCESSOR_MAP(CSkillData, 2)
|
|
|
|
BEGIN_ACCESSOR(0, true)
|
|
COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Skill, m_SkillLength, m_SkillStatus)
|
|
END_ACCESSOR()
|
|
|
|
BEGIN_ACCESSOR(1, true)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Skill, m_SkillLength, m_SkillStatus)
|
|
END_ACCESSOR()
|
|
|
|
END_ACCESSOR_MAP()
|
|
|
|
private:
|
|
|
|
int m_CID;
|
|
BYTE m_Skill[sizeof(SKILL)];
|
|
|
|
DBLENGTH m_SkillLength;
|
|
DBSTATUSENUM m_CIDStatus;
|
|
DBSTATUSENUM m_SkillStatus;
|
|
};
|
|
|
|
|
|
class CCharItem : public IRylDBCommand
|
|
{
|
|
public:
|
|
|
|
CCharItem() { Init(); }
|
|
|
|
void Init();
|
|
void LogError(DBErrorType eErrorType, HRESULT hr);
|
|
void AdjustSize(bool bRestore);
|
|
|
|
unsigned long GetCID() const { return static_cast<unsigned long>(m_CID); }
|
|
|
|
const QUICK& GetQuick() const { return reinterpret_cast<const QUICK&>(m_Quick); }
|
|
const EQUIP& GetEquip() const { return reinterpret_cast<const EQUIP&>(m_Equip); }
|
|
const INVEN& GetInven() const { return reinterpret_cast<const INVEN&>(m_Inven); }
|
|
const EXTRA& GetExtra() const { return reinterpret_cast<const EXTRA&>(m_Extra); }
|
|
|
|
void SetQuick(const QUICK& quick)
|
|
{
|
|
memcpy(m_Quick, &quick, sizeof(QUICK));
|
|
m_QuickLen = sizeof(QUICK);
|
|
m_QuickStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
void SetEquip(const EQUIP& equip)
|
|
{
|
|
memcpy(m_Equip, &equip, sizeof(EQUIP));
|
|
m_EquipLen = sizeof(EQUIP);
|
|
m_EquipStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
void SetInven(const INVEN& inven)
|
|
{
|
|
memcpy(m_Inven, &inven, sizeof(INVEN));
|
|
m_InvenLen = sizeof(INVEN);
|
|
m_InvenStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
void SetExtra(const EXTRA& extra)
|
|
{
|
|
memcpy(m_Extra, &extra, sizeof(EXTRA));
|
|
m_ExtraLen = sizeof(EXTRA);
|
|
m_ExtraStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
bool operator == (const CCharItem& rhs) const;
|
|
bool operator != (const CCharItem& rhs) const { return !(*this == rhs); }
|
|
|
|
CString GetDBStatus();
|
|
|
|
BEGIN_ACCESSOR_MAP(CCharItem, 2)
|
|
|
|
BEGIN_ACCESSOR(0, true)
|
|
COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Quick, m_QuickLen, m_QuickStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(3, m_Equip, m_EquipLen, m_EquipStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(4, m_Inven, m_InvenLen, m_InvenStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(5, m_Extra, m_ExtraLen, m_ExtraStatus)
|
|
END_ACCESSOR()
|
|
|
|
BEGIN_ACCESSOR(1, true)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Quick, m_QuickLen, m_QuickStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(3, m_Equip, m_EquipLen, m_EquipStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(4, m_Inven, m_InvenLen, m_InvenStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(5, m_Extra, m_ExtraLen, m_ExtraStatus)
|
|
END_ACCESSOR()
|
|
|
|
END_ACCESSOR_MAP()
|
|
|
|
private:
|
|
|
|
int m_CID;
|
|
|
|
BYTE m_Quick[sizeof(QUICK)];
|
|
BYTE m_Equip[sizeof(EQUIP)];
|
|
BYTE m_Inven[sizeof(INVEN)];
|
|
BYTE m_Extra[sizeof(EXTRA)];
|
|
|
|
DBLENGTH m_QuickLen;
|
|
DBLENGTH m_EquipLen;
|
|
DBLENGTH m_InvenLen;
|
|
DBLENGTH m_ExtraLen;
|
|
|
|
DBSTATUSENUM m_CIDStatus;
|
|
DBSTATUSENUM m_QuickStatus;
|
|
DBSTATUSENUM m_EquipStatus;
|
|
DBSTATUSENUM m_InvenStatus;
|
|
DBSTATUSENUM m_ExtraStatus;
|
|
|
|
bool m_bAdjustSize;
|
|
};
|
|
|
|
|
|
class CCharItemEx : public IRylDBCommand
|
|
{
|
|
public:
|
|
|
|
CCharItemEx() { Init(); }
|
|
|
|
void Init();
|
|
void LogError(DBErrorType eErrorType, HRESULT hr);
|
|
void AdjustSize(bool bRestore);
|
|
|
|
unsigned long GetCID() const { return static_cast<unsigned long>(m_CID); }
|
|
|
|
const EXCHANGE& GetExchange() const { return reinterpret_cast<const EXCHANGE&>(m_Exchange); }
|
|
const TEMPINVEN& GetTempInven() const { return reinterpret_cast<const TEMPINVEN&>(m_TempInven); }
|
|
|
|
void SetExchange(const EXCHANGE& exchange)
|
|
{
|
|
memcpy(m_Exchange, &exchange, sizeof(EXCHANGE));
|
|
m_ExchangeLen = sizeof(EXCHANGE);
|
|
m_ExchangeStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
void SetTempInven(const TEMPINVEN& tempInven)
|
|
{
|
|
memcpy(m_TempInven, &tempInven, sizeof(TEMPINVEN));
|
|
m_TempInvenLen = sizeof(TEMPINVEN);
|
|
m_TempInvenStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
bool operator == (const CCharItemEx& rhs) const;
|
|
bool operator != (const CCharItemEx& rhs) const { return !(*this == rhs); }
|
|
|
|
CString GetDBStatus();
|
|
|
|
BEGIN_ACCESSOR_MAP(CCharItemEx, 2)
|
|
|
|
BEGIN_ACCESSOR(0, true)
|
|
COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Exchange, m_ExchangeLen, m_ExchangeStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(3, m_TempInven, m_TempInvenLen, m_TempInvenStatus)
|
|
END_ACCESSOR()
|
|
|
|
BEGIN_ACCESSOR(1, true)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Exchange, m_ExchangeLen, m_ExchangeStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(3, m_TempInven, m_TempInvenLen, m_TempInvenStatus)
|
|
END_ACCESSOR()
|
|
|
|
END_ACCESSOR_MAP()
|
|
|
|
|
|
private:
|
|
|
|
int m_CID;
|
|
|
|
BYTE m_Exchange[sizeof(EXCHANGE)];
|
|
BYTE m_TempInven[sizeof(TEMPINVEN)];
|
|
|
|
DBLENGTH m_ExchangeLen;
|
|
DBLENGTH m_TempInvenLen;
|
|
|
|
DBSTATUSENUM m_CIDStatus;
|
|
DBSTATUSENUM m_ExchangeStatus;
|
|
DBSTATUSENUM m_TempInvenStatus;
|
|
|
|
bool m_bAdjustSize;
|
|
};
|
|
|
|
class CCharQuest : public IRylDBCommand
|
|
{
|
|
public:
|
|
|
|
CCharQuest() { Init(); }
|
|
|
|
void Init();
|
|
void LogError(DBErrorType eErrorType, HRESULT hr);
|
|
void AdjustSize(bool bRestore);
|
|
|
|
unsigned long GetCID() const { return static_cast<unsigned long>(m_CID); }
|
|
const QUEST& GetQuest() const { return reinterpret_cast<const QUEST&>(m_Quest); }
|
|
const HISTORY& GetHistory() const { return reinterpret_cast<const HISTORY&>(m_History); }
|
|
|
|
void SetQuest(QUEST& quest)
|
|
{
|
|
memcpy(m_Quest, &quest, sizeof(QUEST));
|
|
m_QuestLen = sizeof(QUEST);
|
|
m_QuestStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
void SetHistory(HISTORY& history)
|
|
{
|
|
memcpy(m_History, &history, sizeof(HISTORY));
|
|
m_HistoryLen = sizeof(HISTORY);
|
|
m_HistoryStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
bool operator == (const CCharQuest& rhs) const;
|
|
bool operator != (const CCharQuest& rhs) const { return !(*this == rhs); }
|
|
|
|
CString GetDBStatus();
|
|
|
|
BEGIN_ACCESSOR_MAP(CCharQuest, 2)
|
|
|
|
BEGIN_ACCESSOR(0, true)
|
|
COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Quest, m_QuestLen, m_QuestStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(3, m_History, m_HistoryLen, m_HistoryStatus);
|
|
END_ACCESSOR()
|
|
|
|
BEGIN_ACCESSOR(1, true)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Quest, m_QuestLen, m_QuestStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(3, m_History, m_HistoryLen, m_HistoryStatus);
|
|
END_ACCESSOR()
|
|
|
|
END_ACCESSOR_MAP()
|
|
|
|
private:
|
|
|
|
int m_CID;
|
|
|
|
BYTE m_Quest[sizeof(QUEST)];
|
|
BYTE m_History[sizeof(HISTORY)];
|
|
|
|
DBLENGTH m_QuestLen;
|
|
DBLENGTH m_HistoryLen;
|
|
|
|
DBSTATUSENUM m_CIDStatus;
|
|
DBSTATUSENUM m_QuestStatus;
|
|
DBSTATUSENUM m_HistoryStatus;
|
|
|
|
bool m_bAdjustSize;
|
|
};
|
|
|
|
class CPartyData : public IRylDBCommand
|
|
{
|
|
public:
|
|
|
|
CPartyData() { Init(); }
|
|
|
|
void Init();
|
|
void LogError(DBErrorType eErrorType, HRESULT hr);
|
|
|
|
unsigned long GetPID() const { return static_cast<unsigned long>(m_PID); }
|
|
unsigned long GetGID() const { return static_cast<unsigned long>(m_GID); }
|
|
|
|
const PARTY_DB_INFO GetParty() const
|
|
{
|
|
PARTY_DB_INFO dbInfo;
|
|
|
|
memcpy(&dbInfo.PartyInfo, m_PartyInfo, sizeof(m_PartyInfo));
|
|
memcpy(&dbInfo.PartyUserInfo, m_UserInfo, sizeof(m_UserInfo));
|
|
//dbInfo.dwGID = m_GID;
|
|
|
|
return dbInfo;
|
|
}
|
|
|
|
void SetGID(unsigned long dwGID)
|
|
{
|
|
m_GID = dwGID;
|
|
m_GIDStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
void SetParty(const PARTY_INFO& partyInfo)
|
|
{
|
|
memcpy(m_PartyInfo, &partyInfo, sizeof(m_PartyInfo));
|
|
m_PartyLen = sizeof(m_PartyInfo);
|
|
m_PartyStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
void SetUserInfo(const PARTY_USER_INFO& userInfo)
|
|
{
|
|
memcpy(m_UserInfo, &userInfo, sizeof(PARTY_USER_INFO));
|
|
m_UserInfoLen = sizeof(PARTY_USER_INFO);
|
|
m_UserInfoStatus = DBSTATUS_S_OK;
|
|
}
|
|
|
|
bool operator == (const CPartyData& rhs) const;
|
|
bool operator != (const CPartyData& rhs) const { return !(*this == rhs); }
|
|
|
|
CString GetDBStatus();
|
|
|
|
BEGIN_ACCESSOR_MAP(CPartyData, 2)
|
|
|
|
BEGIN_ACCESSOR(0, true)
|
|
COLUMN_ENTRY_STATUS(1, m_PID, m_PIDStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_PartyInfo, m_PartyLen, m_PartyStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(3, m_UserInfo, m_UserInfoLen, m_UserInfoStatus);
|
|
COLUMN_ENTRY_STATUS(4, m_GID, m_GIDStatus)
|
|
END_ACCESSOR()
|
|
|
|
BEGIN_ACCESSOR(1, true)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_PartyInfo, m_PartyLen, m_PartyStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(3, m_UserInfo, m_UserInfoLen, m_UserInfoStatus);
|
|
COLUMN_ENTRY_STATUS(4, m_GID, m_GIDStatus)
|
|
END_ACCESSOR()
|
|
|
|
END_ACCESSOR_MAP()
|
|
|
|
private:
|
|
|
|
int m_PID;
|
|
int m_GID;
|
|
BYTE m_PartyInfo[sizeof(PARTY_INFO)];
|
|
BYTE m_UserInfo[sizeof(PARTY_USER_INFO)];
|
|
|
|
DBLENGTH m_PartyLen;
|
|
DBLENGTH m_UserInfoLen;
|
|
|
|
DBSTATUSENUM m_PIDStatus;
|
|
DBSTATUSENUM m_GIDStatus;
|
|
DBSTATUSENUM m_PartyStatus;
|
|
DBSTATUSENUM m_UserInfoStatus;
|
|
};
|
|
|
|
class CFriendData : public IRylDBCommand
|
|
{
|
|
public:
|
|
|
|
CFriendData() { Init(); }
|
|
|
|
void Init();
|
|
void AdjustSize(bool bRestore);
|
|
void LogError(DBErrorType eErrorType, HRESULT hr);
|
|
|
|
unsigned long GetCID() const { return static_cast<unsigned long>(m_CID); }
|
|
|
|
const FRIEND GetFriend() const;
|
|
const BAN GetBan() const;
|
|
|
|
void SetFriend(const FRIEND& friendData);
|
|
void SetBan(const BAN& banData);
|
|
|
|
bool operator == (const CFriendData& rhs) const;
|
|
bool operator != (const CFriendData& rhs) const { return !(*this == rhs); }
|
|
|
|
CString GetDBStatus();
|
|
|
|
BEGIN_ACCESSOR_MAP(CFriendData, 2)
|
|
|
|
BEGIN_ACCESSOR(0, true)
|
|
COLUMN_ENTRY_STATUS(1, m_CID, m_CIDStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Friend, m_FriendLen, m_FriendStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(3, m_Ban, m_BanLen, m_BanStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(4, m_FriendInfo, m_FriendInfoLen, m_FriendInfoStatus);
|
|
COLUMN_ENTRY_LENGTH_STATUS(5, m_BanInfo, m_BanInfoLen, m_BanInfoStatus);
|
|
END_ACCESSOR()
|
|
|
|
BEGIN_ACCESSOR(1, true)
|
|
COLUMN_ENTRY_LENGTH_STATUS(2, m_Friend, m_FriendLen, m_FriendStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(3, m_Ban, m_BanLen, m_BanStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(4, m_FriendInfo, m_FriendInfoLen, m_FriendInfoStatus);
|
|
COLUMN_ENTRY_LENGTH_STATUS(5, m_BanInfo, m_BanInfoLen, m_BanInfoStatus);
|
|
END_ACCESSOR()
|
|
|
|
END_ACCESSOR_MAP()
|
|
|
|
private:
|
|
|
|
int m_CID;
|
|
BYTE m_Friend[_FRIEND::MAX_FRIEND_SIZE + sizeof(unsigned long)];
|
|
BYTE m_Ban[_BAN::MAX_BAN_SIZE + sizeof(unsigned long)];
|
|
|
|
BYTE m_FriendInfo[_FRIEND::MAX_FRIENDINFO_SIZE + sizeof(unsigned long)];
|
|
BYTE m_BanInfo[_BAN::MAX_BANINFO_SIZE + sizeof(unsigned long)];
|
|
|
|
DBLENGTH m_FriendLen;
|
|
DBLENGTH m_BanLen;
|
|
DBLENGTH m_FriendInfoLen;
|
|
DBLENGTH m_BanInfoLen;
|
|
|
|
DBSTATUSENUM m_CIDStatus;
|
|
DBSTATUSENUM m_FriendStatus;
|
|
DBSTATUSENUM m_BanStatus;
|
|
DBSTATUSENUM m_FriendInfoStatus;
|
|
DBSTATUSENUM m_BanInfoStatus;
|
|
|
|
bool m_bAdjustSize;
|
|
};
|
|
|
|
|
|
class CUnifiedCharList : public IRylDBCommand
|
|
{
|
|
public:
|
|
|
|
enum
|
|
{
|
|
MAX_NAME_LEN = 20
|
|
};
|
|
|
|
CUnifiedCharList() { Init(); }
|
|
|
|
void Init();
|
|
void LogError(DBErrorType eErrorType, HRESULT hr);
|
|
|
|
CString GetDBStatus();
|
|
|
|
unsigned long GetUID() const { return static_cast<unsigned long>(m_UID); }
|
|
unsigned long GetBeforeCID() const { return static_cast<unsigned long>(m_BeforeCID); }
|
|
unsigned long GetNewCID() const { return static_cast<unsigned long>(m_NewCID); }
|
|
|
|
unsigned char GetOldServerGroupID() const { return m_OldServerGroupID; }
|
|
|
|
const char* GetBeforeCharName() const { return m_BeforeCharName; }
|
|
|
|
bool operator == (const CUnifiedCharList& rhs) const;
|
|
bool operator != (const CUnifiedCharList& rhs) const { return !(*this == rhs); }
|
|
|
|
BEGIN_ACCESSOR_MAP(CUnifiedCharList, 2)
|
|
|
|
BEGIN_ACCESSOR(0, true)
|
|
COLUMN_ENTRY_STATUS(1, m_UID, m_UIDStatus)
|
|
COLUMN_ENTRY_STATUS(2, m_OldServerGroupID, m_OldServerGroupIDStatus)
|
|
COLUMN_ENTRY_STATUS(3, m_BeforeCID, m_BeforeCIDStatus)
|
|
COLUMN_ENTRY_STATUS(4, m_NewCID, m_NewCIDStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(5, m_BeforeCharName, m_BeforeCharNameLen, m_BeforeCharNameStatus);
|
|
END_ACCESSOR()
|
|
|
|
BEGIN_ACCESSOR(1, true)
|
|
COLUMN_ENTRY_STATUS(2, m_OldServerGroupID, m_OldServerGroupIDStatus)
|
|
COLUMN_ENTRY_STATUS(3, m_BeforeCID, m_BeforeCIDStatus)
|
|
COLUMN_ENTRY_STATUS(4, m_NewCID, m_NewCIDStatus)
|
|
COLUMN_ENTRY_LENGTH_STATUS(5, m_BeforeCharName, m_BeforeCharNameLen, m_BeforeCharNameStatus);
|
|
END_ACCESSOR()
|
|
|
|
END_ACCESSOR_MAP()
|
|
|
|
private:
|
|
|
|
int m_UID;
|
|
int m_BeforeCID;
|
|
int m_NewCID;
|
|
char m_BeforeCharName[MAX_NAME_LEN];
|
|
|
|
BYTE m_OldServerGroupID;
|
|
|
|
DBLENGTH m_BeforeCharNameLen;
|
|
|
|
DBSTATUSENUM m_UIDStatus;
|
|
DBSTATUSENUM m_OldServerGroupIDStatus;
|
|
DBSTATUSENUM m_BeforeCIDStatus;
|
|
DBSTATUSENUM m_NewCIDStatus;
|
|
DBSTATUSENUM m_BeforeCharNameStatus;
|
|
};
|
|
|
|
|
|
};
|
|
|
|
#endif |