DragonNest/Server/ServerCommon/DNServerPacketDB.h

6696 lines
148 KiB
C
Raw Normal View History

2024-12-19 09:48:26 +08:00
#pragma once
#include "DNServerPacketCash.h"
#include "Util.h"
#pragma pack(push, 1)
struct TQHeader
{
BYTE cThreadID;
char cWorldSetID;
UINT nAccountDBID;
};
struct TAHeader
{
UINT nAccountDBID;
int nRetCode;
};
//--------------------------------------------------------------
// DB Packet
//--------------------------------------------------------------
namespace DBPacket
{
struct TSkillCoolTime
{
int nSkillID;
int nCoolTime;
};
struct TItemCoolTime
{
INT64 biItemSerial;
int nCoolTime;
};
struct TDurabilityInfo
{
INT64 biSerial;
USHORT wDur;
};
struct TItemCountInfo
{
INT64 biSerial;
short wCount;
};
struct TExchangeItem
{
BYTE cSlotIndex;
int nItemID;
INT64 biSerial;
INT64 biNewSerial;
short wCount;
};
struct TSendMailItem: public TItemInfo
{
INT64 biNewSerial;
};
struct TAttachMail
{
int nMailDBID;
char cItemAttachCount; // ÷<>ξ<EFBFBD><CEBE><EFBFBD><EFBFBD>۰<EFBFBD><DBB0><EFBFBD>
INT64 biAttachCoin; // ÷<><C3B7><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD>
#ifdef PRE_ADD_JOINGUILD_SUPPORT
BYTE cMailType;
#endif //#ifdef PRE_ADD_JOINGUILD_SUPPORT
TItem Item[MAILATTACHITEMMAX];
};
struct TRequestTakeAttachInfo
{
int nMailDBID;
char cAttachSlotIndex; // -1: 5ĭ <20><><EFBFBD><EFBFBD> <20>ޱ<EFBFBD>, 0 - 4: <20><><EFBFBD><EFBFBD><EFBFBD>ޱ<EFBFBD>
bool bAttachCoin;
INT64 biSerial[MAILATTACHITEMMAX];
BYTE cSlotIndex[MAILATTACHITEMMAX];
};
struct TTakeAttachInfo
{
int nMailDBID;
INT64 biAttachCoin; // ÷<><C3B7><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD>
#ifdef PRE_ADD_JOINGUILD_SUPPORT
bool bAddGuildWare;
#endif //#ifdef PRE_ADD_JOINGUILD_SUPPORT
TItemInfo TakeItem[MAILATTACHITEMMAX];
};
struct TPetalInfo
{
char cSlotIndex;
int nItemSN;
INT64 biSerial;
int nItemID;
int nPetal;
};
struct TPetalInfoEx: TPetalInfo
{
int nFKey;
};
struct TCashFailItem
{
INT64 biPurchaseOrderID;
INT64 biSenderCharacterDBID;
bool bGift;
int nItemSN;
int nItemID;
char cItemOption;
int nPaidCashAmount;
};
struct TModCashFailItemEx: TCashItemBase
{
INT64 biPurchaseOrderID;
INT64 biSenderCharacterDBID;
bool bGift;
};
struct TMaterialItemInfo
{
DBDNWorldDef::ItemLocation::eCode Code;
TItemInfo ItemInfo;
};
struct TVehicleInfo: public TVehicleItem, TVehicleBase
{
int nPetIndex;
__time64_t tLastHungerModifyDate;
};
struct TAddMaterializedPet
{
BYTE cSlotIndex;
int nItemID;
INT64 biItemSerial;
};
struct TItemIndexSerial
{
BYTE cSlotIndex;
INT64 biItemSerial;
};
struct TItemIDOption
{
int nItemID;
char cOption;
};
struct TItemSNIDOption
{
int nItemSN;
int nItemID;
char cOption;
};
struct TReceiveGift
{
TReceiveGiftData GiftData;
int nItemSN;
DBPacket::TItemIDOption ItemIDOptions[PACKAGEITEMMAX];
bool bFail;
};
};
struct TDBListCharData
{
#if defined(PRE_MOD_SELECT_CHAR)
BYTE cWorldID;
#endif // #if defined(PRE_MOD_SELECT_CHAR)
INT64 biCharacterDBID;
#if !defined(PRE_MOD_SELECT_CHAR)
BYTE cCharIndex;
#endif // #if defined(PRE_MOD_SELECT_CHAR)
WCHAR wszCharacterName[NAMELENMAX];
BYTE cLevel;
BYTE cJob;
int nLastVillageMapID;
int nLastSubVillageMapID;
int nMapID;
int nDefaultBody; // ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> equip
int nDefaultLeg;
int nDefaultHand;
int nDefaultFoot;
DWORD dwHairColor;
DWORD dwEyeColor;
DWORD dwSkinColor;
bool bVillageFirstVisit;
int nChecksum;
int nEquipArray[EQUIPMAX];
int nCashEquipArray[CASHEQUIPMAX];
bool bDeleteFlag;
__time64_t DeleteDate;
__time64_t LastLoginDate;
__time64_t CreateDate;
#if defined( PRE_ADD_NEWCOMEBACK )
bool bCombackEffectItem;
#endif
#if defined( PRE_ADD_DWC )
BYTE cAccountLevel;
#endif // #if defined( PRE_ADD_DWC )
};
struct TCreateCharacterItem
{
int nItemID;
BYTE cCount;
USHORT wDur;
};
struct TRestraintForAccountAndCharacter
{
char cLevelCode;
__time64_t _tStartDate;
__time64_t _tEndDate;
WCHAR wszRestraintReason[RESTRAINTREASONMAX];
int iReasonID;
};
//#########################################################################################################################################
// MAINCMD_ETC
//#########################################################################################################################################
// Query-Queue
struct TDBQueryData : public DNTPacketHeader
{
public:
void Set(const int iMainCmd, const int iSubCmd, const char *cBuf, const unsigned short uLen)
{
DN_ASSERT(iMainCmd < 255, "Invalid!");
DN_ASSERT(iSubCmd < 255, "Invalid!");
DN_ASSERT(NULL != cBuf, "Invalid!");
DN_ASSERT(uLen > 0, "Invalid!");
iLen = uLen;
cMainCmd = iMainCmd;
cSubCmd = iSubCmd;
::memcpy(buf, cBuf, uLen);
}
void Reset()
{
iLen = 0;
cMainCmd = 0;
cSubCmd = 0;
}
public:
char buf[1]; // TDBQueryData <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DNTPacket <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߱<EFBFBD> <20><><EFBFBD><EFBFBD> DNTPacket::buf <20><> <20>Ϻη<CFBA> <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>Ͽ<EFBFBD><CFBF><EFBFBD>, <20><><EFBFBD><EFBFBD> ũ<><C5A9><EFBFBD><EFBFBD> <20>ּ<EFBFBD> 1 <20><> <20><><EFBFBD><EFBFBD>
};
struct TDBQueryQueue
{
public:
TDBQueryQueue() {
Reset();
}
bool IsEmpty() const
{
return(0 >= m_nSize);
}
bool IsFull() const
{
return(sizeof(m_Buffer) <= m_nSize);
}
bool CheckIntegrity() const
{
if (IsEmpty()) {
return false;
}
if (GetSize() > sizeof(*this)) {
return false;
}
return true;
}
void Reset()
{
m_nCheckSum = DBQUERYAUTOCHKSUM; // 20091022 <20><>Ŷ ó<><C3B3> <20><> <20><><EFBFBD>Ἲ üũ<C3BC><C5A9> <20><><EFBFBD><EFBFBD> <20>ӽ<EFBFBD> <20>߰<EFBFBD> ??? (b4nfter)
m_nSize = 0;
/*
// P.S.> IsEmpty() <20><> <20><><EFBFBD><EFBFBD>üũ<C3BC><C5A9> ö<><C3B6><EFBFBD><EFBFBD> <20>ؾ<EFBFBD><D8BE><EFBFBD>
for (int iIndex = 0 ; _countof(m_Queue) > iIndex ; ++iIndex) {
m_Queue[iIndex].Reset();
}
*/
}
bool Add(const int iMainCmd, const int iSubCmd, const char *cBuf, const unsigned short uLen)
{
DN_ASSERT(iMainCmd < 255, "Invalid!");
DN_ASSERT(iSubCmd < 255, "Invalid!");
DN_ASSERT(NULL != cBuf, "Invalid!");
if (MAINCMD_ETC == iMainCmd && DB::QUERY_UPDATEQUERYQUEUE == iSubCmd) {
DN_ASSERT(0, "Invalid!"); // <20><> <20><>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DB <20>۾<EFBFBD><DBBE><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD>Ǿ<C7BE><EEBCAD> <20>ʵ<EFBFBD>
}
if (IsFull() || static_cast<int>(sizeof(DNTPacketHeader) + uLen) > GetFreeBufferSize()) {
DN_RETURN(false);
}
TDBQueryData* pQueryData = reinterpret_cast<TDBQueryData*>(&m_Buffer[m_nSize]);
DN_ASSERT(NULL != pQueryData, "Invalid!");
pQueryData->Set(iMainCmd, iSubCmd, cBuf, uLen);
m_nSize += (sizeof(DNTPacketHeader) + uLen);
DN_ASSERT(GetTotalBufferSize() >= m_nSize, "Invalid!");
return true;
}
TDBQueryData* At(const int nCurPtr)
{
DN_ASSERT(GetTotalBufferSize() >= m_nSize, "Invalid!");
DN_ASSERT(m_nSize > static_cast<int>(nCurPtr + sizeof(TDBQueryData)), "Invalid!");
return(reinterpret_cast<TDBQueryData*>(&m_Buffer[nCurPtr]));
}
const TDBQueryData* At(const int nCurPtr) const
{
return(const_cast<TDBQueryQueue*>(this)->At(nCurPtr));
}
int GetTotalBufferSize() const
{
return(sizeof(m_Buffer));
}
int GetFreeBufferSize() const
{
return(sizeof(m_Buffer) - m_nSize);
}
int GetSize() const
{
return(static_cast<int>((sizeof(*this) - (sizeof(this->m_Buffer[0]) * (_countof(m_Buffer) - m_nSize)))&ULONG_MAX));
}
public:
unsigned int m_nCheckSum; // <20>ӽ<EFBFBD> ???
int m_nSize;
char m_Buffer[DBQUERYSTREAMDATAMAX];
};
//QUERY_EVENTLIST
struct TQEventList:public TQHeader
{
};
struct TEventInfo
{
int EventID;
int WroldID;
#if defined(PRE_ADD_WORLD_EVENT)
#else
WCHAR wszMapIndex[EVENTMAPSTRMAX];
#endif //#if defined(PRE_ADD_WORLD_EVENT)
time_t _tBeginTime;
time_t _tEndTime;
union
{
struct
{
int EventType1;
int EventType2;
int EventType3;
};
int EventType[3];
};
union
{
struct
{
int Att1;
int Att2;
int Att3;
int Att4;
int Att5;
};
int Att[5];
};
};
struct TAEventList: public TAHeader
{
char cWorldSetID;
BYTE cCount;
TEventInfo EventList[EVENTLISTMAX];
};
#ifdef PRE_MOD_RESTRICT_IDENTITY_IP
struct TQSimpleConfig : public TQHeader
{
};
struct TASimpleConfig : public TAHeader
{
BYTE cCount;
SimpleConfig::ConfigData Configs[SimpleConfig::ConfigDataCountMax];
};
#endif //#ifdef PRE_MOD_RESTRICT_IDENTITY_IP
struct TQGetDBSID : public TQHeader
{
};
struct TAGetDBSID : public TAHeader
{
int nServerID;
};
// QUERY_LOGOUT
struct TQLogout:public TQHeader
{
UINT nSessionID;
#if defined (_KR)
BYTE szMachineID[MACHINEIDMAX];
#endif
};
// QUERY_LOGINCHARACTER
struct TQLoginCharacter:public TQHeader
{
INT64 biCharacterDBID;
UINT uiSessionID;
WCHAR wszIP[IPLENMAX];
};
// QUERY_LOGOUTCHARACTER
struct TQLogoutCharacter:public TQHeader
{
INT64 biCharacterDBID;
UINT uiSessionID;
char cViewCashEquipBitmap[VIEWCASHEQUIPMAX_BITSIZE]; // <20>Ϲ<EFBFBD><><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> bitmap<61><70><EFBFBD><EFBFBD> ó<><C3B3>
};
// GameOption ----------------------------------------------------------------------
// QUERY_GETGAMEOPTION
struct TQGetGameOption:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetGameOption: public TAHeader
{
INT64 biCharacterDBID;
TGameOptions Option;
};
//QUERY_SETGAMEOPTION
struct TQSetGameOption:public TQHeader
{
INT64 biCharacterDBID;
TGameOptions Option;
};
struct TQUpdateSecondAuthPassword:public TQHeader
{
WCHAR wszOldPW[SecondAuth::Common::PWMaxLength+1];
WCHAR wszNewPW[SecondAuth::Common::PWMaxLength+1];
};
struct TAUpdateSecondAuthPassword: public TAHeader
{
char cFailCount;
};
struct TQUpdateSecondAuthLock:public TQHeader
{
bool bIsLock;
WCHAR wszPW[SecondAuth::Common::PWMaxLength+1]; // UnLock <20>ϰ<EFBFBD><CFB0><EFBFBD> Password
};
struct TAUpdateSecondAuthLock: public TAHeader
{
bool bIsLock;
char cFailCount;
};
struct TQInitSecondAuth:public TQHeader
{
};
struct TQValidateSecondAuth:public TQHeader
{
int nAuthCheckType;
WCHAR wszPW[SecondAuth::Common::PWMaxLength+1];
};
struct TAValidateSecondAuth:public TAHeader
{
int nAuthCheckType;
BYTE cFailCount;
};
// Restraint ----------------------------------------------------------------------
struct TQRestraint:public TQHeader //QUERY_RESTRAINT
{
};
struct TARestraint: public TAHeader
{
BYTE cCount;
TRestraint restraint[RESTRAINTMAX];
};
struct TQSetRestraint : public TQHeader //QUERY_SETRESTRAINT
{
BYTE cTargetCode; //DBDNWorldDef::RestraintTargetCode::eCode
BYTE cRestraintCode; //DBDNWorldDef::RestraintTypeCode::eCode
INT64 biCharacterDBID; //if target code "character"
WCHAR wszRestraintreason[RESTRAINTREASONMAX]; //Reason String
WCHAR wszRestraintreasonForDolis[RESTRAINTREASONFORDOLISMAX];
USHORT nDurationDays; //duration
int nDolisReasonCode; //<2F><EFBFBD><E2BABB> 110 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>α׿<CEB1> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 111 <20>ڵ<EFBFBD> <20><>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD> <20>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ǹٶ<C7B9>)
};
// QUERY_GET_KEYSETTINGOPTION
struct TQGetKeySettingOption:public TQHeader
{
};
struct TAGetKeySettingOption: public TAHeader
{
TKeySetting sKeySetting;
};
// QUERY_MOD_KEYSETTINGOPTION
struct TQModKeySettingOption:public TQHeader
{
bool bUseDefault;
TKeySetting sKeySetting;
};
struct TAModKeySettingOption: public TAHeader
{
};
// QUERY_GET_PADSETTINGOPTION
struct TQGetPadSettingOption:public TQHeader
{
};
struct TAGetPadSettingOption: public TAHeader
{
TPadSetting sPadSetting;
};
// QUERY_MOD_PADSETTINGOPTION
struct TQModPadSettingOption:public TQHeader
{
bool bUseDefault;
TPadSetting sPadSetting;
};
struct TAModPadSettingOption: public TAHeader
{
};
struct TQGetProfile : public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetProfile : public TAHeader
{
TProfile sProfile;
};
struct TQSetProfile : public TQHeader
{
INT64 biCharacterDBID;
TProfile sProfile;
};
struct TASetProfile : public TAHeader
{
TProfile sProfile;
};
struct TQAddAbuseLog : public TQHeader
{
BYTE cAbuseCode;
INT64 biCharacterDBID;
USHORT unLen;
WCHAR wszBuf[1024];
};
struct TQAddAbuseMonitor:public TQHeader
{
INT64 biCharacterDBID;
int iCount;
#if defined(PRE_ADD_ANTI_CHAT_SPAM)
int iCount2; // ä<><C3A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
};
struct TQDelAbuseMonitor:public TQHeader
{
INT64 biCharacterDBID;
#if defined(PRE_ADD_ANTI_CHAT_SPAM)
char cType; // 1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¡, 2-ä<>þ<EFBFBD><C3BE><EFBFBD>¡, 3-<2D>Ѵ<EFBFBD> <20><><EFBFBD><EFBFBD>
#endif
};
struct TQGetAbuseMonitor:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetAbuseMonitor:public TAHeader
{
int iAbuseCount;
int iCallCount;
int iPlayRestraintValue;
int iDBResetRestraintValue;
};
struct TQGetWholeAbuseMonitor:public TQHeader
{
UINT nAccountDBID;
#if defined(PRE_ADD_MULTILANGUAGE)
char cSelectedLang;
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
};
struct TAbuseMonitor
{
INT64 biCharacterDBID;
int iAbuseCount;
int iCallCount;
int iPlayRestraintValue;
int iDBResetRestraintValue;
};
struct TAGetWholeAbuseMonitor:public TAHeader
{
#if defined(PRE_ADD_MULTILANGUAGE)
char cSelectedLang;
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
BYTE cCount;
TAbuseMonitor Abuse[CHARCOUNTMAX];
};
// QUERY_DBRESULTERROR
struct TADBResultError: public TAHeader
{
char cMainCmd;
char cSubCmd;
};
#if defined( _US )
struct TQKeepAlive:public TQHeader
{
};
#endif // #if defined( _US )
// QUERY_CHANGECHARACTERNAME // ij<><C4B3><EFBFBD>͸<EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQChangeCharacterName : public TQHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
WCHAR wszOriginName[NAMELENMAX]; // <20><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD>͸<EFBFBD>
WCHAR wszCharacterName[NAMELENMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD>͸<EFBFBD>
BYTE btChangeCode; // 1 = <20><><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD>, 2 = ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD><EFBFBD><EFBFBD>
int nReservedPeriodDay; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20>
INT64 biItemSerial; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
int nNextPeriodDay; // <20>ֱ<EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڷκ<DAB7><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> : day
};
struct TAChangeCharacterName : public TAHeader
{
char cWorldSetID;
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
INT64 biItemSerial;
WCHAR wszOriginName[NAMELENMAX]; // <20><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD>͸<EFBFBD>
WCHAR wszCharacterName[NAMELENMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD>͸<EFBFBD>
__time64_t tNextChangeDate;
};
// QUERY_GETLIST_ETCPOINT
struct TQGetListEtcPoint : public TQHeader
{
INT64 nCharacterDBID;
};
struct TAGetListEtcPoint : public TAHeader
{
INT64 nCharacterDBID;
INT64 biEtcPoint[DBDNWorldDef::EtcPointCode::Max];
};
struct TQAddEtcPoint :public TQHeader
{
INT64 biCharacterDBID;
BYTE cType;
INT64 biAddPoint;
int nMapID;
WCHAR wszIP[IPLENMAX];
};
struct TAAddEtcPoint:public TAHeader
{
BYTE cType;
INT64 biLeftPoint;
};
struct TQUseEtcPoint :public TQHeader
{
INT64 biCharacterDBID;
BYTE cType;
INT64 biUsePoint;
int nMapID;
WCHAR wszIP[IPLENMAX];
};
struct TAUseEtcPoint:public TAHeader
{
BYTE cType;
INT64 biLeftPoint;
};
struct TQSaveConnectDurationTime: public TQHeader
{
INT64 biCharacterDBID;
char cCount;
TTimeEvent Event[TIMEEVENTMAX];
};
struct TQModTimeEventDate:public TQHeader
{
INT64 biCharacterDBID;
};
struct TQChangeJobCode : public TQHeader
{
INT64 biCharacterDBID;
int nFirstJobIDBefore;
int nFirstJobIDAfter;
int nSecondJobIDBefore;
int nSecondJobIDAfter;
int nChannelID;
int nMapID;
char cSkillPage;
};
struct TAChangeJobCode : public TAHeader
{
USHORT wSkillPoint; // <20><>ų <20><><EFBFBD><EFBFBD> <20><> <20><>ų <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
USHORT wTotalSkillPoint; // <20><>ų <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ų <20><><EFBFBD><EFBFBD>Ʈ.
};
struct TQGetListVariableReset:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListVariableReset:public TAHeader
{
BYTE cCount;
CommonVariable::Data Data[CommonVariable::Type::Max];
};
struct TQModVariableReset:public TQHeader
{
INT64 biCharacterDBID;
CommonVariable::Type::eCode Type;
INT64 biValue;
__time64_t tResetTime;
};
#if defined(PRE_ADD_GAMEQUIT_REWARD)
struct TQModNewbieRewardFlag:public TQHeader
{
bool bRewardFlag;
};
#endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
#if defined(PRE_ADD_CP_RANK)
struct TQAddStageClearBest : public TQHeader
{
int nMapID;
INT64 biCharacterDBID;
DBDNWorldDef::ClearGradeCode::eCode Code;
int nClearPoint;
int nLimitLevel;
};
struct TQGetStageClearBest : public TQHeader
{
int nMapID;
};
struct TAGetStageClearBest : public TAHeader
{
TStageClearBest sLegendClearBest;
TStageClearBest sMonthlyClearBest;
};
struct TQGetStageClearPersonalBest : public TQHeader
{
int nMapID;
INT64 biCharacterDBID;
};
struct TAGetStageClearPersonalBest : public TAHeader
{
DBDNWorldDef::ClearGradeCode::eCode Code;
int nClearPoint;
};
struct TQInitStageCP : public TQHeader
{
char cInitType;
};
#endif //#if defined(PRE_ADD_CP_RANK)
// QUERY_MODCHARACTERSLOTCOUNT
struct TQModCharacterSlotCount: public TQHeader
{
INT64 biCharacterDBID;
};
//#########################################################################################################################################
// MAINCMD_STATUS
//#########################################################################################################################################
// QUERY_SELECTCHARACTER
struct TQSelectCharacter:public TQHeader
{
INT64 biCharacterDBID;
#if !defined( PRE_PARTY_DB )
TPARTYID PartyID;
#endif
UINT nLastServerType;
WCHAR wszAccountName[IDLENMAX];
};
const int nItemListMaxCount = EQUIPMAX + INVENTORYMAX + WAREHOUSEMAX + QUESTINVENTORYMAX + CASHEQUIPMAX + GLYPHMAX + TALISMAN_MAX + PERIODINVENTORYMAX + PERIODWAREHOUSEMAX;
struct TASelectCharacter:public TAHeader
{
INT64 biCharacterDBID;
TRestraintData RestraintData; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Ÿ
TKeySetting KeySetting; // Ű<><C5B0><EFBFBD>ð<EFBFBD><C3B0><EFBFBD>
TPadSetting PadSetting;
#if !defined( PRE_PARTY_DB )
TPARTYID PartyID;
#endif
TGuildSelfView GuildSelfView; // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
bool bIsSetSecondAuthPW; // 2<><32> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>й<EFBFBD>ȣ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool bIsSetSecondAuthLock; // 2<><32> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Lock <20><><EFBFBD><EFBFBD>
#if defined(PRE_ADD_VIP)
int nVIPTotalPoint; // <20><> VIP <20><><EFBFBD><EFBFBD>Ʈ
__time64_t tVIPEndDate; // VIP <20><20><> <20><><EFBFBD><EFBFBD>
bool bAutoPay; // 0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1=<3D>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
#endif // #if defined(PRE_ADD_VIP)
#if defined(_CH)
bool bIntroducer; // <20>߱<EFBFBD> <20><><EFBFBD>θ<EFBFBD><CEB8><EFBFBD> <20><>õ<EFBFBD><C3B5>
#endif // #if defined(_CH)
TVehicleCompact VehicleEquip;
TVehicleCompact PetEquip;
TUserData UserData;
#ifdef PRE_ADD_JOINGUILD_SUPPORT
BYTE cGuildJoinLevel; //<2F><><EFBFBD><EFBFBD><E5B0A1> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD>)
bool bWasRewardedGuildMaxLevel; //<2F><><EFBFBD><EFBFBD><E5BFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޾Ҵ<DEBE><D2B4><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD>
#endif //#ifdef PRE_ADD_JOINGUILD_SUPPORT
#if defined(PRE_ADD_TALISMAN_SYSTEM)
int nTalismanOpenFlag;
#endif
#if defined( PRE_ADD_CHARACTERCHECKSUM )
__time64_t tLastLoginDate;
__time64_t tLastLogoutDate;
UINT uiCheckSum;
#endif // #if defined( PRE_ADD_CHARACTERCHECKSUM )
int nItemListCount;
DBPacket::TMaterialItemInfo ItemList[nItemListMaxCount]; // <20><><EFBFBD><EFBFBD> <20>ؿ<EFBFBD><D8BF>־<EFBFBD><D6BE><EFBFBD><EFBFBD>Դ<EFBFBD>~
};
// QUERY_UPDATEUSERDATA, QUERY_CHANGESERVERUSERDATA, QUERY_LASTUPDATEUSERDATA
struct TQUpdateCharacter:public TQHeader
{
UINT uiDBRandomSeed;
INT64 biCharacterDBID;
int nMapIndex; // <20><><EFBFBD><EFBFBD> <20>ʹ<EFBFBD>ȣ
int nLastVillageMapIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʹ<EFBFBD>ȣ
int nLastSubVillageMapIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Sub<75><62><EFBFBD><EFBFBD> <20>ʹ<EFBFBD>ȣ
char cLastVillageGateNo; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>ȣ
int nPosX; // <20><><EFBFBD><EFBFBD> X<><58>ǥ
int nPosY; // <20><><EFBFBD><EFBFBD> Y<><59>ǥ
int nPosZ; // <20><><EFBFBD><EFBFBD> Z<><5A>ǥ
float fRotate; // Rotate
int nGlyphDelayTime;
int nGlyphRemainTime;
bool bExecuteScheduleedTask;
char cViewCashEquipBitmap[VIEWCASHEQUIPMAX_BITSIZE]; // <20>Ϲ<EFBFBD><><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> bitmap<61><70><EFBFBD><EFBFBD> ó<><C3B3>
TQuickSlot QuickSlot[QUICKSLOTMAX]; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>â (10<31><30><EFBFBD><EFBFBD> 2<><32>)
DBPacket::TSkillCoolTime SkillCoolTime[SKILLMAX]; // <20><>ų
DBPacket::TSkillCoolTime SkillCoolTime2[SKILLMAX]; // <20><>ų2
DBPacket::TItemCoolTime Equip[EQUIPMAX]; // <20><><EFBFBD><EFBFBD>â
#if defined(PRE_PERIOD_INVENTORY)
DBPacket::TItemCoolTime Inventory[INVENTORYTOTALMAX]; // <20>κ<EFBFBD>â
DBPacket::TItemCoolTime Warehouse[WAREHOUSETOTALMAX]; // â<><C3A2>â
#else // #if defined(PRE_PERIOD_INVENTORY)
DBPacket::TItemCoolTime Inventory[INVENTORYMAX]; // <20>κ<EFBFBD>â
DBPacket::TItemCoolTime Warehouse[WAREHOUSEMAX]; // â<><C3A2>â
#endif // #if defined(PRE_PERIOD_INVENTORY)
DBPacket::TItemCoolTime CashEquip[CASHEQUIPMAX]; // <20><><EFBFBD><EFBFBD>â (ij<><C4B3>)
DBPacket::TItemCoolTime CashInventory[CASHINVENTORYDBMAX]; // <20>κ<EFBFBD>â (ij<><C4B3>)
#if defined( PRE_ITEMBUFF_COOLTIME )
DBPacket::TItemCoolTime ServerWare[WAREHOUSEMAX]; // <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2>
DBPacket::TItemCoolTime ServerWareCash[WAREHOUSEMAX]; // <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2><><C4B3>)
#endif
};
struct TAUpdateCharacter:public TAHeader
{
};
struct TQMWTest:public TQHeader
{
int iCount;
};
// QUERY_CHANGESTAGEUSERDATA
struct TQChangeStageUserData:public TQHeader
{
INT64 biCharacterDBID;
int nChannelID;
int nMapID;
TPARTYID PartyID;
int nExp;
INT64 biCoin;
BYTE cRebirthCoin; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD> <20><>Ȱ <20><><EFBFBD><EFBFBD>
BYTE cPCBangRebirthCoin; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC<50><43> <20><>Ȱ <20><><EFBFBD><EFBFBD>
short nCount;
short nDeathCount; // <20><><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>
BYTE cDifficult; // <20><><EFBFBD>̵<EFBFBD>
INT64 biPetItemSerial;
int nPetExp;
INT64 biPickUpCoin;
DBPacket::TDurabilityInfo ItemDurArr[INVENTORYMAX + EQUIPMAX];
};
struct TAChangeStageUserData:public TAHeader
{
BYTE cRebirthCoin; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD> <20><>Ȱ <20><><EFBFBD><EFBFBD>
BYTE cPCBangRebirthCoin; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC<50><43> <20><>Ȱ <20><><EFBFBD><EFBFBD>
};
// QUERY_GETCHARACTERPARTIALYBYNAME,
struct TQGetCharacterPartialyByName:public TQHeader
{
WCHAR wszName[NAMELENMAX];
BYTE cReqType; //eReqCharacterPartialy
};
// QUERY_GETCHARACTERPARTIALYBYDBID
struct TQGetCharacterPartialyByDBID:public TQHeader
{
INT64 biCharacterDBID;
BYTE cReqType; //eReqCharacterPartialy
};
struct TAGetCharacterPartialy:public TAHeader
{
INT64 biCharacterDBID;
BYTE cClass;
BYTE cLevel;
BYTE cJob;
BYTE cReqType; //eReqCharacterPartialy
};
// QUERY_CHECKFIRSTVILLAGE
struct TQCheckFirstVillage:public TQHeader
{
INT64 biCharacterDBID;
};
// QUERY_LEVEL, // <20><><EFBFBD><EFBFBD>
struct TQLevel:public TQHeader
{
INT64 biCharacterDBID;
BYTE cLevel;
char cChangeCode; // CharacterLevelChangeCode
int nChannelID;
int nMapID;
WCHAR wszCharName[NAMELENMAX];
};
// QUERY_EXP, // exp
struct TQExp:public TQHeader
{
INT64 biCharacterDBID;
int nExp;
char cChangeCode; // eCharacterExpChangeCode
int nChannelID;
int nMapID;
INT64 biFKey; // CharacterExpChangeCode<64><65> <20><><EFBFBD><EFBFBD> Ű. 1:QuestID, 2:PartyID or NULL, 3:NULL, 4:AuditLogID 5:ItemSerial
};
// QUERY_COIN
struct TQCoin:public TQHeader
{
INT64 biCharacterDBID;
char cCoinChangeCode; // CoinChangeCode
INT64 biChangeKey; // <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD>̵<EFBFBD>
INT64 nChangeCoin; // <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>ġ<EFBFBD><C4A1> (+/-)
int nChannelID;
int nMapID;
INT64 nTotalCoin; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD><CFB0>̶<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
};
// QUERY_WAREHOUSECOIN
struct TQWarehouseCoin:public TQHeader
{
INT64 biCharacterDBID;
char cCoinChangeCode; // CoinChangeCode
INT64 nChangeCoin; // <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>ġ<EFBFBD><C4A1> (+/-)
int nChannelID;
int nMapID;
INT64 nTotalCoin; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD><CFB0>̶<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
INT64 nTotalWarehouseCoin; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD><CFB0>̶<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
};
// QUERY_MAPINFO
struct TQMapInfo:public TQHeader
{
INT64 biCharacterDBID;
char cLastVillageGateNo; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>ȣ
int nLastVillageMapIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʹ<EFBFBD>ȣ
int nLastSubVillageMapIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Sub<75><62><EFBFBD><EFBFBD> <20>ʹ<EFBFBD>ȣ
int nMapIndex; // <20><><EFBFBD><EFBFBD> <20>ʹ<EFBFBD>ȣ
};
// QUERY_ADDCASHREBIRTHCOIN
struct TQAddCashRebirthCoin: public TQHeader
{
INT64 biCharacterDBID;
int nRebirthCount;
int nRebirthPrice;
int nRebirthCode;
int nRebirthKey;
};
// QUERY_CASHREBIRTHCOIN
struct TQCashRebirthCoin:public TQHeader
{
INT64 biCharacterDBID;
int nChannelID;
int nMapID;
WCHAR wszIP[IPLENMAX];
};
// QUERY_FATIGUE
struct TQFatigue:public TQHeader
{
INT64 biCharacterDBID;
char cFatigueTypeCode; // FatigueTypeCode
int nChangeFatigue; // <20><><EFBFBD><EFBFBD>ġ
int nChannelID;
int nMapID;
};
// QUERY_EVENTFATIGUE
struct TQEventFatigue:public TQHeader
{
INT64 biCharacterDBID;
int nChangeFatigue; // <20><><EFBFBD><EFBFBD>ġ
bool bReset; // <20>̺<EFBFBD>Ʈ <20>Ƿε<C7B7> <20>ʱ<EFBFBD>ȭ <20><><EFBFBD><EFBFBD>. 0=<3D>ʱ<EFBFBD>ȭ <20>ƴ<EFBFBD>, 1=<3D>ʱ<EFBFBD>ȭ
char cInitTime; // <20>̺<EFBFBD>Ʈ <20>Ƿε<C7B7><CEB5><EFBFBD> <20>ʱ<EFBFBD>ȭ<EFBFBD>Ǵ<EFBFBD> <20>ð<EFBFBD>. 0 ~ 23
int nChannelID;
int nMapID;
};
// QUERY_JOB
struct TQJob:public TQHeader
{
INT64 biCharacterDBID;
BYTE cJob;
};
// QUERY_GLYPHDELAYTIME
// QUERY_GLYPHREMAINTIME
struct TQGlyphAttributeTime: public TQHeader
{
INT64 biCharacterDBID;
int nTime;
};
// QUERY_NOTIFIER
struct TQNotifier:public TQHeader
{
INT64 biCharacterDBID;
char cNotifierSlot; // Notifier_
char cNotifierType; // DNNotifier::Type <20><>
int nID;
};
// QUERY_DUNGEONCLEAR
struct TQDungeonClear:public TQHeader
{
INT64 biCharacterDBID;
char cType;
int nMapIndex;
};
// QUERY_ETERNITYITEM
struct TQEternityItem:public TQHeader
{
INT64 biCharacterDBID;
char cEternityCode; // eEternityItem
int nEternityValue;
};
// QUERY_COLOR
struct TQColor: public TQHeader
{
INT64 biCharacterDBID;
char cItemType;
DWORD dwColor;
};
#ifdef PRE_FIX_63822
struct TAColor : public TAHeader
{
};
#endif //#ifdef PRE_FIX_63822
// QUERY_REBIRTHCOIN
struct TQRebirthCoin: public TQHeader
{
INT64 biCharacterDBID;
BYTE cRebirthCoin;
BYTE cPCBangRebirthCoin;
};
struct TAEffectItem:public TAHeader
{
int iOffset;
TEffectItemInfo ItemInfo;
};
// QUERY_NESTCLEARCOUNT, // NEST Ŭ<><C5AC><EFBFBD><EFBFBD> Ƚ<><C8BD> UPSERT
struct TQNestClearCount: public TQHeader
{
INT64 biCharacterDBID;
int nMapIndex;
char cClearType; // eNestClearType
};
// QUERY_INITNESTCLEARCOUNT, // NEST <20>ְ<EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> Ƚ<><C8BD> <20>ʱ<EFBFBD>ȭ
struct TQInitNestClearCount: public TQHeader
{
INT64 biCharacterDBID;
};
struct TAOwnChracterLevel : public TAHeader //MAINCMD_STATUS / QUERY_OWNCHRACTERLEVEL
{
BYTE cCount;
TChracterLevel Level[CHARCOUNTMAX];
};
struct TQChangeSkillPage : public TQHeader
{
INT64 biCharacterDBID;
char cSkillPage;
};
#if defined( PRE_ADD_TOTAL_LEVEL_SKILL )
struct TQGetTotalLevelSkill : public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetTotalLevelSkill : public TAHeader
{
int nTotalSkillLevel;
TotalLevelSkill::TTotalLevelSkillData TotalSkill[TotalLevelSkill::Common::MAXSLOTCOUNT];
};
struct TQAddTotalLevelSkill : public TQHeader
{
INT64 biCharacterDBID;
int nSlotIndex;
int nSkillID;
};
#endif
#ifdef PRE_ADD_PRESET_SKILLTREE
struct TQGetSKillPreSetList : public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetSKillPreSetList : public TAHeader
{
TSkillSetIndexData SKillIndex[SKILLPRESETMAX];
TSkillSetPartialData SKills[SKILLMAX * SKILLPRESETMAX];
};
struct TQAddSkillPreSet : public TQHeader
{
INT64 biCharacterDBID;
BYTE cIndex;
WCHAR wszName[SKILLPRESETNAMEMAX];
BYTE cCount;
TSkillSetPartialData SKill[SKILLMAX];
};
struct TAAddSkillPreSet : public TAHeader
{
};
struct TQDelSkillPreSet : public TQHeader
{
INT64 biCharacterDBID;
BYTE cIndex;
};
struct TADelSkillPreSet : public TAHeader
{
};
#endif //#ifdef PRE_ADD_PRESET_SKILLTREE
//#########################################################################################################################################
// MAINCMD_MISSION
//#########################################################################################################################################
// QUERY_MISSIONGAIN
struct TQMissionGain:public TQHeader
{
INT64 biCharacterDBID;
char MissionGain[MISSIONMAX_BITSIZE]; // ȹ<><EFBFBD><E6BFA9>
};
// QUERY_MISSIONACHIEVE
struct TQMissionAchieve:public TQHeader
{
INT64 biCharacterDBID;
int nMissionID;
char cMissionType; // eMissionType
char MissionAchieve[MISSIONMAX_BITSIZE]; // <20><>ǥ<EFBFBD>޼<EFBFBD>(on/off)
};
// QUERY_SETDAILYMISSION, // <20><><EFBFBD><EFBFBD> <20>̼<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><><C3B3> <20><>~ <20>־<EFBFBD><D6BE>ٶ<EFBFBD>)
struct TQSetDailyMission:public TQHeader
{
INT64 biCharacterDBID;
int nMissionIDs[DAILYMISSIONMAX];
};
// QUERY_SETWEEKLYMISSION, // <20>ְ<EFBFBD> <20>̼<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><><C3B3> <20><>~ <20>־<EFBFBD><D6BE>ٶ<EFBFBD>)
struct TQSetWeeklyMission:public TQHeader
{
INT64 biCharacterDBID;
int nMissionIDs[WEEKLYMISSIONMAX];
};
#if defined(PRE_ADD_MONTHLY_MISSION)
// QUERY_SETMONTHLYMISSION, // <20><><EFBFBD><EFBFBD> <20>̺<EFBFBD>Ʈ <20>̼<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><><C3B3> <20><>~ <20>־<EFBFBD><D6BE>ٶ<EFBFBD>)
struct TQSetMonthlyMission:public TQHeader
{
INT64 biCharacterDBID;
int nMissionIDs[MONTHLYMISSIONMAX];
};
#endif // #if defined(PRE_ADD_MONTHLY_MISSION)
// QUERY_SETWEEKENDEVENTMISSION, // <20>ָ<EFBFBD> <20>̺<EFBFBD>Ʈ <20>̼<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><><C3B3> <20><>~ <20>־<EFBFBD><D6BE>ٶ<EFBFBD>)
struct TQSetWeekendEventMission:public TQHeader
{
INT64 biCharacterDBID;
int nMissionIDs[WEEKENDEVENTMISSIONMAX];
};
// QUERY_SETGUILDWARMISSION, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
struct TQSetGuildWarMission:public TQHeader
{
INT64 biCharacterDBID;
int nMissionIDs[GUILDWARMISSIONMAX];
};
// QUERY_SETGUILDCOMMONMISSION, // <20><><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD> <20>̼<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
struct TQSetGuildCommonMission:public TQHeader
{
INT64 biCharacterDBID;
int nMissionIDs[GUILDCOMMONMISSIONMAX];
};
struct TQSetWeekendRepeatMission:public TQHeader
{
INT64 biCharacterDBID;
int nMissionIDs[WEEKENDREPEATMISSIONMAX];
};
// QUERY_SETPCBANGMISSION, // <20><><EFBFBD><EFBFBD> <20>̼<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><><C3B3> <20><>~ <20>־<EFBFBD><D6BE>ٶ<EFBFBD>)
struct TQSetPCBangMission:public TQHeader
{
INT64 biCharacterDBID;
int nMissionIDs[PCBangMissionMax]; // 0: silver, 1: gold
};
// QUERY_MODDAILYWEEKLYMISSION, // <20><><EFBFBD><EFBFBD>/<2F>ְ<EFBFBD> <20>̼<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
struct TQModDailyWeeklyMission:public TQHeader
{
INT64 biCharacterDBID;
char cDailyMissionType; // eDailyMissionType
char cMissionIndex;
TDailyMission Mission;
int nMissionScore;
};
struct TQClearMission : public TQHeader
{
INT64 biCharacterDBID;
};
//#########################################################################################################################################
// MAINCMD_APPELLATION
//#########################################################################################################################################
// QUERY_ADDAPPELLATION
struct TQAddAppellation:public TQHeader
{
INT64 biCharacterDBID;
int nAppellationID;
char Appellation[APPELLATIONMAX_BITSIZE]; // ȣĪ
};
// QUERY_SELECTAPPELLATION
struct TQSelectAppellation:public TQHeader
{
INT64 biCharacterDBID;
int nSelectAppellation;
char cAppellationKind; // DBDNWorldDef::AppellationKind
};
// QUERY_DELAPPELLATION
struct TQDelAppellation:public TQHeader
{
INT64 biCharacterDBID;
int nDelAppellation; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Īȣ(<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
};
//#########################################################################################################################################
// MAINCMD_SKILL
//#########################################################################################################################################
// QUERY_ADDSKILL, // <20><>ų <20>߰<EFBFBD>
struct TQAddSkill:public TQHeader
{
INT64 biCharacterDBID;
int nSkillID; // <20><>ų<EFBFBD><C5B3><EFBFBD>̵<EFBFBD>
char cSkillLevel;
int nCoolTime; // <20><>Ÿ<EFBFBD><C5B8>
char cSkillChangeCode; // SkillChangeCode
INT64 biCoin; // <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20>ƴϸ<C6B4> 0<><30> <20>Է<EFBFBD><D4B7>մϴ<D5B4>.
int nChannelID;
int nMapID;
char cSkillPage; // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ų<EFBFBD>ڵ<EFBFBD>)
INT64 biCurrentCoin;
INT64 biPickUpCoin;
};
// QUERY_MODSKILLLEVEL, // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct TQModSkillLevel:public TQHeader
{
INT64 biCharacterDBID;
int nSkillID; // <20><>ų<EFBFBD><C5B3><EFBFBD>̵<EFBFBD>
BYTE cSkillLevel; // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>
int nCoolTime; // <20><>Ÿ<EFBFBD><C5B8>
USHORT wUsedSkillPoint; // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><C3B8>µ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>Ʈ
char cSkillChangeCode; // SkillChangeCode (2=<3D><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> & <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>, 13=<3D><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (by <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>))
int nChannelID;
int nMapID;
char cSkillPage;
};
// QUERY_INCREASESKILLPOINT, // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
struct TQIncreaseSkillPoint:public TQHeader
{
INT64 biCharacterDBID;
USHORT wSkillPoint;
int nChannelID;
int nMapID;
char cSkillPointChangeCode;
char cSkillPage;
};
// QUERY_DELSKILL
struct TQDelSkill:public TQHeader
{
INT64 biCharacterDBID;
int nSkillID; // <20><>ų<EFBFBD><C5B3><EFBFBD>̵<EFBFBD>
char cSkillChangeCode; // SkillChangeCode (9=<3D><>ų <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>), 10=<3D><>ų <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>Ʈ), 11=<3D><>ų <20><><EFBFBD><EFBFBD> (<28>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>), 12=<3D><>ų <20><><EFBFBD><EFBFBD> (by <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>))
bool bSkillPointBack; // <20><>ų <20><><EFBFBD><EFBFBD> <20><> <20><>ų <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. 0=<3D><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 1=<3D><>ų <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nChannelID;
int nMapID;
char cSkillPage; // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ų<EFBFBD>ڵ<EFBFBD>)
};
// QUERY_RESETSKILL
struct TQResetSkill:public TQHeader
{
INT64 biCharacterDBID;
int nChannelID;
int nMapID;
char cSkillPage; // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ų<EFBFBD>ڵ<EFBFBD>)
};
struct TAResetSkill: public TAHeader
{
USHORT wSkillPoint; // <20><>ų <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ų <20><><EFBFBD><EFBFBD>Ʈ
USHORT wTotalSkillPoint; // <20><>ų <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ų <20><><EFBFBD><EFBFBD>Ʈ
char cSkillPage; // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ų<EFBFBD>ڵ<EFBFBD>)
};
// QUERY_RESETSKILLBYSKILLIDS
struct TQResetSkillBySkillIDS:public TQHeader
{
INT64 biCharacterDBID;
int iSkillIDs[SKILLMAX];
int iChannelID;
int iMapID;
char cSkillPage;
};
struct TAResetSkillBySkillIDS:public TAHeader
{
short nSkillPoint;
short nTotalSkillPoint;
char cSkillPage;
};
struct TQDecreaseSkillPoint:public TQHeader
{
INT64 biCharacterDBID;
short nDecreaseSkillPoint;
int iChannelID;
int iMapID;
char cSkillPage;
};
struct TQUseExpandSkillPage:public TQHeader
{
INT64 biCharacterDBID;
int nSkillArray[DEFAULTSKILLMAX];
short wSkillPoint;
};
struct TAUseExpandSkillPage:public TAHeader
{
};
struct TQSetSkillPoint:public TQHeader
{
INT64 biCharacterDBID;
short nSkillPoint;
char cSkillPage;
};
//#########################################################################################################################################
// MAINCMD_ITEM
//#########################################################################################################################################
struct TQAddMaterializedItem:public TQHeader
{
INT64 biCharacterDBID;
BYTE cItemLocationIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20>ε<EFBFBD><CEB5><EFBFBD> <20><>
DBDNWorldDef::AddMaterializedItem::eCode Code;
INT64 biFKey;
TItem AddItem;
bool bStackableFlag;
INT64 biItemPrice; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 0<><30> <20>Է<EFBFBD><D4B7>մϴ<D5B4>. <20><>, <20><>Ű<EFBFBD><C5B0> <20><>ǰ<EFBFBD><C7B0> <20><><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><>ǰ<EFBFBD><C7B0> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǰ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1/n<><6E> <20>Է<EFBFBD><D4B7>մϴ<D5B4>
INT64 biSenderCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> ID
BYTE cItemLocationCode; // 2=<3D>κ<EFBFBD><CEBA>丮, 4=<3D><><EFBFBD><EFBFBD>Ʈ <20>κ<EFBFBD><CEBA>丮, 5=ij<><C4B3> <20>κ<EFBFBD><CEBA>丮, 6=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 7=ij<><C4B3> <20><>Ţ<EFBFBD><C5A2>Ʈ
BYTE cPayMethodCode; // NULL=<3D><><EFBFBD>Ծƴ<D4BE>, 1=<3D><><EFBFBD><EFBFBD>, 2=ij<><C4B3>, 3=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 4=DNA<4E><41><EFBFBD><EFBFBD>Ʈ
int iChannelID;
int iMapIndex;
WCHAR wszIP[IPLENMAX];
bool bMerge; // 0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> merge<67><65><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 1=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> merge<67><65>
INT64 biMergeTargetItemSerial; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> merge<67>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD>, target <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD>
DWORD dwPetPartsColor1;
DWORD dwPetPartsColor2;
int nPetSkillID1;
int nPetSkillID2;
char cPetCount; // <20><>, Ż<><C5BB> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBPacket::TAddMaterializedPet PetList[Pet::Slot::Max];
};
struct TQUseItem:public TQHeader
{
DBDNWorldDef::UseItem::eUseItemCode Code;
INT64 biItemSerial;
short nUsedItemCount;
int iChannelID;
int iMapID;
WCHAR wszIP[IPLENMAX];
bool bAllFlag;
int iTargetLogItemID;
char cTargetLogItemLevel;
};
struct TQResellItem:public TQHeader
{
INT64 biCharacterDBID;
INT64 biItemSerial;
short nItemCount;
INT64 biResellPrice;
int iNpcID;
int iChannelID;
int iMapID;
WCHAR wszIP[IPLENMAX];
bool bAllFlag;
bool bRebuyFlag;
#ifdef PRE_MOD_SELL_SEALEDITEM
bool bBelongFlag;
#endif //#ifdef PRE_MOD_SELL_SEALEDITEM
};
struct TQEnchantItem:public TQHeader
{
INT64 biItemSerial;
INT64 biCoin; // <20><>ȭ <20><><EFBFBD><EFBFBD>
bool bEnchantSuccessFlag; // 0=<3D><><EFBFBD><EFBFBD>, 1=<3D><><EFBFBD><EFBFBD>
bool bItemDestroyFlag; // <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ı<EFBFBD><C4B1>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. 0=<3D>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 1=<3D>ı<EFBFBD><C4B1><EFBFBD>
BYTE cCurrentItemLevel; // <20><>ȭ <20><> <20><><EFBFBD><EFBFBD>
char cCurrentItemPotential; // <20><>ȭ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int iChannelID;
int iMapID;
int iNpcID;
//Optional
TItem NewItem; // <20><>ȭ <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cMaterialCount;
INT64 biCharacterDBID; // <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nSupportItemID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ItemID(<28><>..<2E><>ȭ<EFBFBD><C8AD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>)
#if defined(PRE_ADD_EXCHANGE_ENCHANT)
INT64 biExtractItemSerial; // <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DB<44><42><EFBFBD><EFBFBD> <20>˾Ƽ<CBBE> <20><>ȭ <20><><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD> <20>ٲ<EFBFBD><D9B2><EFBFBD>)
#endif
DBPacket::TItemCountInfo MaterialArray[INVENTORYMAX];
};
struct TQChangeItemLocation:public TQHeader
{
INT64 biCharacterDBID;
INT64 biItemSerial; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȣ
INT64 biNewItemSerial; // (optional) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ϻ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȣ.
int iItemID; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
DBDNWorldDef::ItemLocation::eCode Code; // <20>̵<EFBFBD> <20><> ItemLocationCode 1=<3D><>Ţ<EFBFBD><C5A2>Ʈ, 2=<3D>κ<EFBFBD><CEBA>丮, 3=â<><C3A2>, 4=<3D><><EFBFBD><EFBFBD>Ʈ <20>κ<EFBFBD><CEBA>丮, 5=ij<><C4B3> <20>κ<EFBFBD><CEBA>丮, 6=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 7=ij<><C4B3> <20><>Ţ<EFBFBD><C5A2>Ʈ
BYTE cItemLocationIndex; // <20>̵<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ <20>ε<EFBFBD><CEB5><EFBFBD>
short nItemCount; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
int iChannelID;
int iMapID;
bool bVehicleParts; // <20>̵<EFBFBD><CCB5>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C5BB> or <20><20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. 0=false, 1=true -> <20><>ì<EFBFBD><C3AC>(?)<29><> true<75><65>!
INT64 biVehicleSerial; // Ż<><C5BB> or <20><20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> -> Ż<><C5BB> or <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȣ
char cVehicleSlotIndex; // Ż<><C5BB> or <20><20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> -> <20><><EFBFBD><EFBFBD> <20><>ġ
bool bMerge; // 0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> merge<67><65><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 1=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> merge<67><65>
INT64 biMergeTargetItemSerial; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> merge<67>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD>, target <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD>
bool bMergeAll; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> merge<67>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD>. 0=merge<67>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> original<61><6C> <20><>ü <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD>, 1= merge<67>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> original<61><6C> <20><>ü <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#if defined(PRE_ADD_SERVER_WAREHOUSE)
int nGoldFee; // <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
};
struct TQSwitchItemLocation: public TQHeader
{
INT64 biCharacterDBID;
DBDNWorldDef::ItemLocation::eCode SrcCode; // <20>̵<EFBFBD> <20><> ItemLocationCode 1=<3D><>Ţ<EFBFBD><C5A2>Ʈ, 2=<3D>κ<EFBFBD><CEBA>丮, 3=â<><C3A2>, 4=<3D><><EFBFBD><EFBFBD>Ʈ <20>κ<EFBFBD><CEBA>丮, 5=ij<><C4B3> <20>κ<EFBFBD><CEBA>丮, 6=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 7=ij<><C4B3> <20><>Ţ<EFBFBD><C5A2>Ʈ
BYTE cSrcSlotIndex;
INT64 biDestItemSerial;
DBDNWorldDef::ItemLocation::eCode DestCode; // <20>̵<EFBFBD> <20><> ItemLocationCode 1=<3D><>Ţ<EFBFBD><C5A2>Ʈ, 2=<3D>κ<EFBFBD><CEBA>丮, 3=â<><C3A2>, 4=<3D><><EFBFBD><EFBFBD>Ʈ <20>κ<EFBFBD><CEBA>丮, 5=ij<><C4B3> <20>κ<EFBFBD><CEBA>丮, 6=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 7=ij<><C4B3> <20><>Ţ<EFBFBD><C5A2>Ʈ
BYTE cDestSlotIndex;
INT64 biSrcItemSerial;
};
struct TQModItemDurability:public TQHeader
{
INT64 biCharacterDBID;
INT64 biTax; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
int iChannelID;
int iMapID;
short nCount;
INT64 biCurrentCoin;
INT64 biPickUpCoin;
DBPacket::TDurabilityInfo ItemDurArr[INVENTORYMAX + EQUIPMAX];
};
struct TQModMaterializedItem:public TQHeader
{
INT64 biItemSerial;
int iChannelID;
int iMapID;
int iModFieldBitmap;
USHORT nItemDurability;
BYTE cItemLevel;
char cItemPotential;
bool bSoudBoundFlag;
BYTE cSealCount;
BYTE cItemOption;
WCHAR wszIP[IPLENMAX];
int nEnchantJewelID; // <20><>ȭ<EFBFBD>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD><DBBE>̵<EFBFBD>
#if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
char cItemPotentialMoveCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ƚ<><C8BD>
#endif // #if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
};
struct TQGetListMaterializedItem:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListMaterializedItem:public TAHeader
{
short nItemCount;
DBPacket::TMaterialItemInfo MaterialItemInfoArr[256]; // <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ӽ÷<D3BD> 256 <20>־<EFBFBD><D6BE>д<EFBFBD>.
};
struct TQExchangeProperty: public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> ID
DBPacket::TExchangeItem ExchangeItem[EXCHANGEMAX];
INT64 biExchangeCoin; // <20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD>
int nExchangeTax; // <20><>ȯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT64 biTargetCharacterDBID;
DBPacket::TExchangeItem TargetExchangeItem[EXCHANGEMAX];
INT64 biTargetExchangeCoin;
int nTargetExchangeTax; // <20><>ȯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nChannelID;
int nMapID;
UINT uiTargetAccountDBID;
};
// QUERY_GETPAGEMATERIALIZEDITEM
struct TQGetPageMaterializedItem: public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> ID
int nPageNumber; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ.
int nPageSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
};
struct TAGetPageMaterializedItem: public TAHeader
{
short wPageNumber; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ.
int nTotalListCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ 1<><31><EFBFBD>϶<EFBFBD><CFB6><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> (<28><>ü <20><><EFBFBD><EFBFBD>)
char cCount;
TItem CashItem[CASHINVENTORYMAX];
};
// QUERY_UPSEQUIP
struct TQUpsEquip: public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> ID
char cItemLocation;
char cEquipSlotIndex;
INT64 biSerial;
};
// QUERY_PUTONEPIECEON, // <20><><EFBFBD>ǽ<EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQPutOnepieceOn: public TQHeader
{
INT64 biCharacterDBID;
INT64 biOnepieceItemSerial;
char cOnepieceCashEquipIndex;
char cCashEquipTotalCount;
BYTE cSubCashEquipIndexArray[CASHEQUIPMAX];
};
// QUERY_TAKECASHEQUIPMENTOFF, // <20>Ѳ<EFBFBD><D1B2><EFBFBD><EFBFBD><EFBFBD> Ż<><C5BB> (cashequip -> cashinven)
struct TQTakeCashEquipmentOff: public TQHeader
{
INT64 biCharacterDBID;
char cCashEquipTotalCount;
BYTE cCashEquipIndexArray[CASHEQUIPMAX];
};
// QUERY_GETPAGEVEHICLE
struct TQGetPageVehicle: public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> ID
int nPageNumber; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ.
int nPageSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
};
struct TAGetPageVehicle: public TAHeader
{
short wPageNumber; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ.
int nTotalListCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ 1<><31><EFBFBD>϶<EFBFBD><CFB6><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> (<28><>ü <20><><EFBFBD><EFBFBD>)
char cCount;
TVehicleCompact VehicleItem[VEHICLEINVENTORYPAGEMAX];
};
// QUERY_DELPETEQUIPMENT
struct TQDelPetEquipment: public TQHeader
{
INT64 biBodySerial;
INT64 biPartsSerial;
WCHAR wszIp[IPLENMAX];
};
struct TADelPetEquipment: public TAHeader
{
};
// QUERY_MODPETSKINCOLOR
struct TQModPetSkinColor: public TQHeader
{
INT64 biBodySerial;
DWORD dwSkinColor;
DWORD dwSkinColor2;
};
struct TAModPetSkinColor: public TAHeader
{
};
// QUERY_MISSINGITEMLIST,
struct TAMissingItemList: public TAHeader
{
char cCount;
TItem MissingList[MISSINGITEMMAX];
};
// QUERY_RECOVERMISSINGITEM,
struct TQRecoverMissingItem: public TQHeader
{
INT64 biCharacterDBID;
//INT64 biItemSerial;
char cItemLocationCode;
BYTE cSlotIndex;
TItem RecoverItem;
};
struct TARecoverMissingItem: public TAHeader
{
char cItemLocationCode;
BYTE cSlotIndex;
TItem RecoverItem;
};
struct TQGetListRepurchaseItem:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListRepurchaseItem:public TAHeader
{
BYTE cCount;
TRepurchaseItemInfo ItemList[Shop::Repurchase::MaxList];
};
struct TQDelExpiritem:public TQHeader
{
INT64 biCharacterDBID;
};
struct TADelExpiritem:public TAHeader
{
BYTE cCount;
INT64 biItemSerial[MAXDELEXPIREITEM];
};
struct TQDelCashItem: public TQHeader // QUERY_DELCASHITEM,
{
INT64 biItemSerial;
short wCount;
int nWatingTime; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ⱓ. <20><><EFBFBD><EFBFBD> : <20><>
};
struct TADelCashItem: public TAHeader
{
INT64 biItemSerial;
__time64_t tExpireDate;
};
struct TQRecoverCashItem: public TQHeader // QUERY_RECOVERCASHITEM,
{
INT64 biItemSerial;
short wCount;
};
struct TARecoverCashItem: public TAHeader
{
INT64 biItemSerial;
bool bEternity;
__time64_t tExpireDate;
};
#if defined( PRE_ADD_NAMEDITEM_SYSTEM )
struct TQCheckNamedItemCount: public TQHeader // QUERY_CHECK_NAMEDITEMCOUNT
{
int nItemID;
BYTE cIndex;
};
struct TACheckNamedItemCount: public TAHeader
{
int nItemID;
int nCount;
BYTE cIndex;
};
#endif
#if defined (PRE_ADD_EXCHANGE_POTENTIAL)
struct TQMovePotential : public TQHeader
{
INT64 biCharacterDBID;
INT64 biExtractSerial;
char cExtractPotential;
INT64 biInjectSerial;
char cInjectPotential;
char cMoveableLimitCount;
int nMapID;
};
struct TAMovePotential : public TAHeader
{
};
#endif //#if defined (PRE_ADD_EXCHANGE_POTENTIAL)
// QUERY_MODDEGREEOFHUNGER
struct TQModDegreeOfHunger : public TQHeader
{
INT64 biBodySerial;
DWORD nDegreeOfHunger;
};
struct TQItemExpire : public TQHeader
{
INT64 biCharacterDBID;
INT64 biSerial;
};
struct TAItemExpire : public TAHeader
{
INT64 biSerial;
};
struct TQChangePetName : public TQHeader
{
INT64 itemSerial;
INT64 petSerial;
WCHAR name[NAMELENMAX];
};
struct TAChangePetName : public TAHeader
{
INT64 itemSerial;
INT64 petSerial;
WCHAR name[NAMELENMAX];
};
struct TQClearPetVehicleInven : public TQHeader
{
INT64 biCharacterDBID;
};
struct TAClearPetVehicleInven : public TAHeader
{
};
struct TQModItemExpireDate : public TQHeader
{
int iMapID;
WCHAR wszIP[IPLENMAX];
INT64 biItemSerial;
INT64 biExpireDateItemSerial;
INT64 biCharacterDBID;
int nMin;
};
struct TAModItemExpireDate : public TAHeader
{
INT64 biCharacterDBID;
INT64 biItemSerial;
int nMin;
};
struct TQModPetExp : public TQHeader
{
INT64 biPetSerial;
int nExp;
};
struct TAModPetExp : public TAHeader
{
};
struct TQModPetSkill : public TQHeader
{
INT64 biItemSerial;
char cSkillSlot;
int nSkillID;
};
struct TQModPetSkillExpand : public TQHeader
{
INT64 biItemSerial;
};
struct TQModAdditiveItem:public TQHeader
{
INT64 biCharacterDBID;
int nAdditiveItemID;
INT64 biItemSerial; // <20>ɷ<EFBFBD>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT64 biAdditiveSerial; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT64 biMixItemSerial; // <20>ռ<EFBFBD><D5BC><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ſ<EFBFBD> <20><><EFBFBD><EFBFBD>
int nMapID;
WCHAR wszIP[IPLENMAX];
};
struct TAModAdditiveItem:public TAHeader
{
INT64 biItemSerial;
int nAdditiveItemID;
int nInvenIndex;
INT64 biAdditiveSerial;
};
#if defined (PRE_ADD_COSRANDMIX)
struct TQModRandomItem:public TQHeader
{
INT64 biCharacterDBID;
INT64 biStuffSerialA;
INT64 biStuffSerialB;
INT64 biMixItemSerial; // <20>ռ<EFBFBD><D5BC><EFBFBD>
short wMixItemCount;
INT64 biFee;
DBDNWorldDef::AddMaterializedItem::eCode Code;
TItem RandomItem;
BYTE cItemLocationCode;
int nChannelID;
int nMapIndex;
WCHAR wszIP[IPLENMAX];
};
struct TAModRandomItem:public TAHeader
{
INT64 biStuffSerialA;
INT64 biStuffSerialB;
INT64 biMixItemSerial; // <20>ռ<EFBFBD><D5BC><EFBFBD>
INT64 biFee;
TItem RandomItem;
};
#endif
// QUERY_SAVEITEMLOCATIONINDEX, // P_SaveItemLocationIndex
struct TQSaveItemLocationIndex: public TQHeader
{
INT64 biCharacterDBID;
int nTotalInvenWareCount; // <20>κ<EFBFBD><><C3A2> <20><><EFBFBD>о<EFBFBD><D0BE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ѽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȴ<EFBFBD>.
DBPacket::TItemIndexSerial SaveList[INVENTORYMAX + WAREHOUSEMAX];
};
#if defined( PRE_ADD_LIMITED_SHOP )
struct TQGetLimitedShopItem: public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetLimitedShopItem:public TAHeader
{
int nCount;
LimitedShop::LimitedItemData ItemData[INVENTORYMAX + WAREHOUSEMAX];
};
struct TQAddLimitedShopItem: public TQHeader
{
INT64 biCharacterDBID;
int nBuyCount;
LimitedShop::LimitedItemData ItemData;
};
struct TQResetLimitedShopItem: public TQHeader
{
INT64 biCharacterDBID;
int nResetCycle;
};
#endif
struct TQDelEffectItem: public TQHeader
{
INT64 biCharacterDBID;
INT64 nItemSerial;
};
#if defined(PRE_ADD_TALISMAN_SYSTEM)
struct TQModTalismanSlotOpenFlag: public TQHeader
{
INT64 biCharacterDBID;
int nTalismanOpenflag;
};
#endif
#if defined(PRE_ADD_CHNC2C)
struct TQGetGameMoney : public TQHeader
{
INT64 biCharacterDBID;
char szSeqID[64];
};
struct TAGetGameMoney : public TAHeader
{
INT64 biCharacterDBID;
INT64 biCoinBalance;
char szSeqID[64];
};
struct TQKeepGameMoney : public TQHeader
{
INT64 biCharacterDBID;
INT64 biReduceCoin;
char szBookID[50];
char szSeqID[64];
};
struct TAKeepGameMoney : public TAHeader
{
char cWorldSetID;
INT64 biCharacterDBID;
INT64 biReduceCoin;
char szSeqID[64];
};
struct TQTransferGameMoney : public TQHeader
{
INT64 biCharacterDBID;
INT64 biAddCoin;
char szBookID[50];
char szSeqID[64];
};
struct TATransferGameMoney : public TAHeader
{
char cWorldSetID;
INT64 biCharacterDBID;
INT64 biAddCoin;
char szSeqID[64];
};
#endif //#if defined(PRE_ADD_CHNC2C)
#if defined(PRE_ADD_EQUIPLOCK)
struct TQLockItemInfo: public TQHeader //<2F><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
INT64 biCharacterDBID;
DBDNWorldDef::ItemLocation::eCode Code;
BYTE cItemSlotIndex;
int nItemID;
INT64 biItemSerial;
};
struct TALockItemInfo: public TAHeader //<2F><><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
DBDNWorldDef::ItemLocation::eCode Code;
BYTE cItemSlotIndex;
__time64_t tLockDate;
};
struct TQUnLockRequsetItemInfo: public TQHeader //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
INT64 biCharacterDBID;
DBDNWorldDef::ItemLocation::eCode Code;
BYTE cItemSlotIndex;
int nItemID;
int nUnLockWaitTime;
INT64 biItemSerial;
};
struct TAUnLockRequestItemInfo: public TAHeader //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
DBDNWorldDef::ItemLocation::eCode Code;
BYTE cItemSlotIndex;
__time64_t tUnLockDate;
__time64_t tUnLockRequestDate;
};
struct TQGetListLockedItems: public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListLockedItems: public TAHeader
{
int nCount;
TDBLockItemInfo LockItem[EQUIPMAX+ CASHEQUIPMAX];
};
#endif // #if defined(PRE_ADD_EQUIPLOCK)
//#########################################################################################################################################
// MAINCMD_QUEST
//#########################################################################################################################################
// QUERY_ADDQUEST
struct TQAddQuest:public TQHeader
{
INT64 biCharacterDBID;
char cIdx;
TQuest Quest;
};
// QUERY_DELQUEST
struct TQDelQuest:public TQHeader
{
INT64 biCharacterDBID;
char cIdx;
int nQuestID;
bool bComplete; // 0=<3D>ܼ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>, 1=<3D><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool bRepeat; // 0=1ȸ <20><><EFBFBD><EFBFBD>Ʈ, 1=<3D>ݺ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
char CompleteQuest[COMPLETEQUEST_BITSIZE];
};
// QUERY_MODQUEST, // <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
struct TQModQuest:public TQHeader
{
INT64 biCharacterDBID;
char cQuestStatusCode;
char cIndex;
TQuest Quest;
};
// QUERY_CLEARQUEST
struct TQClearQuest:public TQHeader
{
INT64 biCharacterDBID;
};
// QUERY_FORCECOMPLETEQUEST
struct TQForceCompleteQuest : public TQHeader
{
public:
TQForceCompleteQuest()
{
Reset();
}
void Set(BYTE pThreadID, char pWorldID, UINT pAccountDBID, INT64 pCharacterDBID, int pQuestID, int pQuestCode, char pCompleteQuest[COMPLETEQUEST_BITSIZE])
{
cThreadID = pThreadID;
cWorldSetID = pWorldID;
nAccountDBID = pAccountDBID;
biCharacterDBID = pCharacterDBID;
nQuestID = pQuestID;
nQuestCode = pQuestCode;
::memcpy_s(CompleteQuest, sizeof(CompleteQuest), pCompleteQuest, sizeof(CompleteQuest));
}
void Reset()
{
cThreadID = 0;
cWorldSetID = 0;
nAccountDBID = 0;
biCharacterDBID = 0;
nQuestID = 0;
nQuestCode = 0;
}
int GetSize() const
{
return(static_cast<int>(sizeof(*this)));
}
public:
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> ID
int nQuestID; // <20><><EFBFBD><EFBFBD>Ʈ ID
int nQuestCode; // <20><><EFBFBD><EFBFBD>Ʈ <20>ڵ<EFBFBD> (0:<3A>Ϲ<EFBFBD> / 1:<3A>ð<EFBFBD><C3B0><EFBFBD>)
char CompleteQuest[COMPLETEQUEST_BITSIZE]; // <20>Ϸ<EFBFBD><CFB7><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>̳ʸ<CCB3> <20><><EFBFBD><EFBFBD>
};
// QUERY_DELETE_CHARACTER_PERIODQUEST
struct TQDeletePeriodQuest : public TQHeader
{
char cWorldID;
INT64 biCharacterDBID;
int nPeriodQuestType;
int nQuestCount;
int nQuestIDs[MAX_PERIODQUEST_LIST];
};
struct TADeletePeriodQuest : public TAHeader
{
char cWorldID;
INT64 biCharacterDBID;
__time64_t tAssignDate;
int nPeriodQuestType;
int nQuestCount;
int nQuestIDs[MAX_PERIODQUEST_LIST];
};
// QUERY_GET_CHARACTER_PERIODQUESTDATE
struct TQGetPeriodQuestDate : public TQHeader
{
char cWorldID;
INT64 biCharacterDBID;
};
struct TAGetPeriodQuestDate : public TAHeader
{
char cWorldID;
INT64 biCharacterDBID;
int nCount;
TPeriodQuestDate PeriodQuestDate[PERIODQUEST_RESET_MAX];
};
// QUERY_GET_LISTCOMPLETE_EVENTQUEST
struct TQGetListCompleteEventQuest : public TQHeader
{
char cWorldID;
INT64 biCharacterDBID;
};
struct TAGetListCompleteEventQuest : public TAHeader
{
char cWorldID;
INT64 biCharacterDBID;
int nCount;
TCompleteEventQuest EventQuestList[EVENTQUESTMAX];
};
// QUERY_COMPLETE_EVENTQUEST
struct TQCompleteEventQuest : public TQHeader
{
char cWorldID;
INT64 biCharacterDBID;
int nScheduleID;
__time64_t tExpireDate;
};
struct TACompleteEventQuest : public TAHeader
{
char cWorldID;
INT64 biCharacterDBID;
int nScheduleID;
short wCompleteCount;
};
// QUERY_GET_WORLDEVENTQUESTCOUNTER
struct TQGetWorldEventQuestCounter : public TQHeader
{
int nScheduleID;
};
struct TAGetWorldEventQuestCounter : public TAHeader
{
char cWorldSetID;
int nScheduleID;
int nCount;
};
// QUERY_MOD_WORLDEVENTQUESTCOUNTER
struct TQModWorldEventQuestCounter : public TQHeader
{
INT64 biCharacterDBID;
int nScheduleID;
int nCounterDelta;
};
struct TAModWorldEventQuestCounter : public TAHeader
{
char cWorldSetID;
int nScheduleID;
int nCounterDelta;
int nCountAfter;
};
//#########################################################################################################################################
// MAINCMD_MAIL
//#########################################################################################################################################
// QUERY_GETCOUNTRECEIVEMAIL
struct TQGetCountReceiveMail:public TQHeader
{
INT64 biReceiverCharacterDBID;
};
struct TAGetCountReceiveMail:public TAHeader
{
int iTotalMailCount;
int iNotReadMailCount;
int i7DaysLeftMailCount;
};
// QUERY_GETPAGERECEIVEMAIL
struct TQGetPageReceiveMail:public TQHeader
{
int iPageNumber;
INT64 biReceiverCharacterDBID;
};
struct TAGetPageReceiveMail:public TAHeader
{
int iBasicMailCount;
int iTotalMailCount;
int iNotReadMailCount;
int i7DaysLeftMailCount;
BYTE cMailCount;
TMailBoxInfo sMail[MAILPAGEMAX];
};
// QUERY_SENDMAIL
struct TQSendMail:public TQHeader
{
INT64 biSenderCharacterDBID;
wchar_t wszReceiverCharacterName[MAILNAMELENMAX];
MailType::Delivery Code;
wchar_t wszSubject[MAILTITLELENMAX];
wchar_t wszContent[MAILTEXTLENMAX];
INT64 biAttachCoin;
int iChannelID;
int iMapID;
int nTax; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cAttachItemCount;
DBPacket::TSendMailItem AttachItemArr[MAILATTACHITEMMAX];
};
struct TASendMail:public TAHeader
{
UINT nReceiverAccountDBID;
INT64 biReceiverCharacterDBID;
int nReceiverTotalMailCount;
int nReceiverNotReadMailCount;
int nReceiver7DaysLeftMailCount;
int nBasicMailCount;
MailType::Delivery Code;
INT64 biAttachCoin;
int nTax; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cAttachItemCount;
DBPacket::TSendMailItem AttachItemArr[MAILATTACHITEMMAX];
};
// QUERY_SENDSYSTEMMAIL
struct TQSendSystemMail:public TQHeader
{
wchar_t wszSenderName[MAILNAMELENMAX];
INT64 biReceiverCharacterDBID;
DBDNWorldDef::MailTypeCode::eCode Code;
INT64 biFKey;
wchar_t wszSubject[MAILTITLELENMAX];
wchar_t wszContent[MAILTEXTLENMAX];
INT64 biAttachCoin;
int iChannelID;
int iMapID;
bool bNewFlag;
char cAttachItemCount;
TItem sAttachItem[MAILATTACHITEMMAX];
};
struct TASendSystemMail:public TAHeader
{
INT64 biReceiverCharacterDBID;
int nMailDBID;
#if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
BYTE cWorldSetID;
#endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
int iTotalMailCount;
int iNotReadMailCount;
int i7DaysLeftMailCount;
};
// QUERY_READMAIL
struct TQReadMail:public TQHeader
{
int iMailID;
};
struct TAReadMail:public TAHeader
{
int nMailDBID; // mail db table id
int iNotReadMailCount;
wchar_t wszContent[MAILTEXTLENMAX];
__time64_t SendDate;
INT64 biAttachCoin;
char cDeliveryType;
bool bNewFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
BYTE cMailType;
BYTE cAttachItemCount;
TItem sAttachItem[MAILATTACHITEMMAX];
};
// QUERY_GETLISTMAILATTACHMENT
struct TQGetListMailAttachment: public TQHeader
{
INT64 biCharacterDBID;
int nMailDBIDArray[MAILPAGEMAX];
};
struct TAGetListMailAttachment: public TAHeader
{
char cCount;
DBPacket::TAttachMail MailAttachArray[MAILPAGEMAX];
};
// QUERY_TAKEATTACHMAILLIST
struct TQTakeAttachMailList: public TQHeader
{
int nChannelID;
int nMapID;
WCHAR wszIP[IPLENMAX];
#ifdef PRE_ADD_JOINGUILD_SUPPORT
UINT nGuildDBID;
#endif //PRE_ADD_JOINGUILD_SUPPORT
char cPageCount;
DBPacket::TRequestTakeAttachInfo Info[MAILPAGEMAX];
};
struct TATakeAttachMailList: public TAHeader
{
char cPageCount;
DBPacket::TTakeAttachInfo TakeMailList[MAILPAGEMAX];
};
// QUERY_TAKEATTACHMAIL
struct TQTakeAttachMail: public TQHeader
{
int nChannelID;
int nMapID;
WCHAR wszIP[IPLENMAX];
#ifdef PRE_ADD_JOINGUILD_SUPPORT
UINT nGuildDBID;
#endif //PRE_ADD_JOINGUILD_SUPPORT
DBPacket::TRequestTakeAttachInfo Info;
};
struct TATakeAttachMail: public TAHeader
{
char cAttachSlotIndex; // -1: 5ĭ <20><><EFBFBD><EFBFBD> <20>ޱ<EFBFBD>, 0 - 4: <20><><EFBFBD><EFBFBD><EFBFBD>ޱ<EFBFBD>
DBPacket::TTakeAttachInfo TakeMail;
};
// QUERY_DELMAIL
struct TQDelMail:public TQHeader
{
INT64 biReceiverCharacterDBID;
int iMailIDArray[MAILPAGEMAX];
};
struct TADelMail:public TAHeader
{
int iTotalMailCount;
};
// QUERY_GETWILLSENDMAIL
struct TQGetWillMails : public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetWillMails : public TAHeader
{
BYTE cCount;
WillSendMail::TWillSendInfo Mails[WillSendMail::Common::WIllMailPacketMax];
};
// QUERY_DELWILLSENDMAIL
struct TQDelWillMail : public TQHeader
{
INT64 biCharacterDBID;
int nMailID;
};
// QUERY_SENDWISHMAIL, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߼<EFBFBD>
struct TQSendWishMail: public TQHeader
{
INT64 biSenderCharacterDBID;
WCHAR wszReceiverCharacterName[MAILNAMELENMAX];
WCHAR wszSubject[MAILTITLELENMAX];
WCHAR wszContent[MAILTEXTLENMAX];
int nWishLimitCount; // 1<><31> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ƚ<><C8BD>
int nPackageSN;
char cWishListCount;
DBPacket::TItemSNIDOption WishList[PACKAGEITEMMAX];
};
struct TASendWishMail: public TAHeader
{
UINT nReceiverAccountDBID;
INT64 biReceiverCharacterDBID;
int nReceiverTotalMailCount;
int nReceiverNotReadMailCount;
int nReceiver7DaysLeftMailCount;
};
// QUERY_READWISHMAIL, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD>
struct TQReadWishMail: public TQHeader
{
int nMailID;
};
struct TAReadWishMail: public TAHeader
{
int nMailDBID; // mail db table id
wchar_t wszContent[MAILTEXTLENMAX];
__time64_t SendDate;
INT64 biPurchaseOrderID;
int nNotReadMailCount;
bool bNewFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
int nPackageSN;
char cWishListCount;
DBPacket::TItemSNIDOption WishList[PACKAGEITEMMAX];
};
#if defined(PRE_SPECIALBOX)
// QUERY_ADDEVENTREWARD
struct TQAddEventReward: public TQHeader
{
BYTE cReceiveTypeCode; // SpecialBox::ReceiveTypeCode
BYTE cTargetTypeCode; // SpecialBox::TargetTypeCode
WCHAR wszAccountName[IDLENMAX];
INT64 biCharacterDBID;
WCHAR wszCharacterName[NAMELENMAX];
BYTE cTargetClassCode;
BYTE cTargetMinLevel;
BYTE cTargetMaxLevel;
int nEventNameUIString;
int nSenderNameUIString;
int nContentUIString;
int nRewardCoin;
char cEventRewardTypeCode; // eEventRewardType
BYTE cCount;
TSpecialBoxItemInfo EventRewardItems[SpecialBox::Common::RewardSelectMax];
};
struct TAAddEventReward: public TAHeader
{
int nEventRewardID;
int nEventTotalCount;
};
// QUERY_GETCOUNTEVENTREWARD
struct TQGetCountEventReward: public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetCountEventReward: public TAHeader
{
int nEventTotalCount;
};
// QUERY_GETLISTEVENTREWARD
struct TQGetListEventReward: public TQHeader
{
INT64 biCharacterDBID;
BYTE cClassCode;
int nLevel;
};
struct TAGetListEventReward: public TAHeader
{
BYTE cCount;
TSpecialBoxInfo SpecialBoxInfo[SpecialBox::Common::ListMax];
};
// QUERY_GETLISTEVENTREWARDITEM
struct TQGetListEventRewardItem: public TQHeader
{
int nEventRewardID;
INT64 biCharacterDBID;
};
struct TAGetListEventRewardItem: public TAHeader
{
int nEventRewardID;
char cCharacterCount;
BYTE cCount;
TSpecialBoxItemInfo SpecialBoxItem[SpecialBox::Common::RewardSelectMax];
};
// QUERY_ADDEVENTREWARDRECEIVER
struct TQAddEventRewardReceiver: public TQHeader
{
int nEventRewardID;
int nItemID;
INT64 biCharacterDBID;
};
struct TAAddEventRewardReceiver: public TAHeader
{
int nEventRewardID;
int nItemID;
};
#endif // #if defined(PRE_SPECIALBOX)
#ifdef PRE_ADD_JOINGUILD_SUPPORT
// QUERY_GUILDSUPPORT_REWARDINFO
struct TQGuildSupportRewardInfo:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGuildSupportRewardInfo:public TAHeader
{
INT64 biCharacterDBID;
bool bWasGuildSupportRewardFlag;
BYTE cJoinGuildLevel;
};
// QUERY_SENDGUILDMAIL
struct TQSendGuildMail:public TQHeader
{
wchar_t wszSenderName[MAILNAMELENMAX];
UINT nReceiverAccountDBID;
INT64 biReceiverCharacterDBID;
INT64 biAchivementCharacterDBID;
DBDNWorldDef::MailTypeCode::eCode Code;
INT64 biFKey;
wchar_t wszSubject[MAILTITLELENMAX];
wchar_t wszContent[MAILTEXTLENMAX];
INT64 biAttachCoin;
int iChannelID;
int iMapID;
bool bNewFlag;
char cAttachItemCount;
TItem sAttachItem[MAILATTACHITEMMAX];
};
struct TASendGuildMail:public TAHeader
{
UINT nReceiverAccountDBID;
INT64 biReceiverCharacterDBID;
int nMailDBID;
BYTE cWorldSetID;
int iTotalMailCount;
int iNotReadMailCount;
int i7DaysLeftMailCount;
};
#endif //#ifdef PRE_ADD_JOINGUILD_SUPPORT
//#########################################################################################################################################
// MAINCMD_MARKET
//#########################################################################################################################################
// QUERY_MARKETTAX
struct TQMarketTax:public TQHeader
{
INT64 biCharacterDBID;
int nMarketRegisterTax; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nMarketSellTax; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
// QUERY_GETPAGETRADE
struct TQGetPageTrade: public TQHeader
{
short wPageNum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ
char cMinLevel; // <20>ּҷ<D6BC><D2B7><EFBFBD>
char cMaxLevel; // <20>ִ뷹<D6B4><EBB7B9>
char cItemGrade[ITEMRANK_MAX]; // <20><><EFBFBD>޺з<DEBA>
char cJob; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short nMainType; // <20><EFBFBD>з<EFBFBD>
char cDetailType; // <20>󼼺з<F3BCBCBA>
WCHAR wszSearchWord1[SEARCHLENMAX]; // <20>˻<EFBFBD><CBBB>ܾ<EFBFBD>
WCHAR wszSearchWord2[SEARCHLENMAX]; // <20>˻<EFBFBD><CBBB>ܾ<EFBFBD>
WCHAR wszSearchWord3[SEARCHLENMAX]; // <20>˻<EFBFBD><CBBB>ܾ<EFBFBD>
char cSortType; // eSortType
char cItemExchange[ITEMCATAGORY_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<>װ<EFBFBD><D7B0><EFBFBD>
WCHAR wszSearchItemName[SEARCHLENMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD>
char cJobCode[ITEMJOB_MAX]; // <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>
bool bCash; // 0=<3D>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1=ij<><C4B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char cMethodCode; // 1=<3D><><EFBFBD>ӸӴ<D3B8>, 3=<3D><>Ż
};
struct TAGetPageTrade: TAHeader
{
int nMarketTotalCount;
char cMarketCount;
TMarketInfo MarketInfo[MARKETMAX];
};
// QUERY_GETLISTMYTRADE
struct TQGetListMyTrade:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListMyTrade: public TAHeader
{
short wSellingCount; // <20>Ǹ<EFBFBD><C7B8><EFBFBD>
short wExpiredCount;
short wWeeklyRegisterCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AM 04:00 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ŷ<EFBFBD> Ƚ<><C8BD> / <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC>ִ<EFBFBD> Ƚ<><C8BD>
short wRegisterItemCount; // <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
char cMarketCount;
TMyMarketInfo MarketInfo[MYMARKETMAX];
};
// QUERY_ADDTRADE
struct TQAddTrade: public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> ID
short wRegisterMaxCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ƚ<><C8BD>
short wItemRegisterMaxCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
char cInvenType; // eItemPositionType
BYTE cInvenIndex; // <20>κ<EFBFBD><CEBA>ε<EFBFBD><CEB5><EFBFBD>
char cSkillUsingType; // <20>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD>
int nPrice; // <20>ŷ<EFBFBD><C5B7>ҵ<EFBFBD><D2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nSellTax; // <20>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>ȸ<EFBFBD><C8B8><EFBFBD><EFBFBD>ǰ<EFBFBD> ã<><C3A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
char cSellPeriod; // <20>ǸűⰣ
WCHAR wszItemName[EXTDATANAMELENMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD>
short nMainType; // <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8>
char cDetailType; // <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8>
char cItemGrade; // 0=<3D><><EFBFBD><EFBFBD>, 1=<3D><><EFBFBD><EFBFBD>, 2=<3D><><EFBFBD><EFBFBD>, 3=<3D><><EFBFBD><EFBFBD>, 4=<3D><><EFBFBD><EFBFBD>ũ, 5=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char cLimitLevel; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ּ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
char cJob; // <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>
int nItemID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
INT64 nSerial; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ
short wCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
char cLevel; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
INT64 biNewSerial; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ϻ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> ItemSerial<61><6C> <20>Է<EFBFBD><D4B7>ϰ<EFBFBD> <20>׷<EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL<4C><4C> <20>Է<EFBFBD><D4B7>մϴ<D5B4>
int nUnitPrice; // <20>ǸŴܰ<C5B4>
int nRegisterTax; // <20>ŷ<EFBFBD><C5B7>ҵ<EFBFBD><D2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bDisplayFlag1; // 0<><30> <20>Է<EFBFBD><D4B7><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20>ʵ<EFBFBD>
bool bDisplayFlag2; // 0<><30> <20>Է<EFBFBD><D4B7><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20>ʵ<EFBFBD>
int nChannelID; // ä<><C3A4> ID
int nMapID; // <20><> ID
bool bPremiumTrade; // 0=<3D><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD> <20>ƴ<EFBFBD>, 1=<3D><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD>
bool bCash; // 0=<3D>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1=ij<><C4B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char cMethodCode; // 1=<3D><><EFBFBD>ӸӴ<D3B8>, 3=<3D><>Ż
int nExchangeCode; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ī<>װ<EFBFBD><D7B0><EFBFBD> ID
};
struct TAAddTrade: TAHeader
{
int nMarketDBID; // <20>ŷ<EFBFBD><C5B7><EFBFBD> <20>ŷ<EFBFBD> ID
char cInvenType; // eItemPositionType
INT64 biSerial; // <20>ø<EFBFBD><C3B8><EFBFBD>
BYTE cInvenIndex; // <20>κ<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD>
short wCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
int nPrice; // <20>ŷ<EFBFBD><C5B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bPremiumTrade; // 0=<3D><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD> <20>ƴ<EFBFBD>, 1=<3D><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD>
#if defined(PRE_ADD_PETALTRADE)
char cMethodCode; // 1=<3D><><EFBFBD>ӸӴ<D3B8>, 3=<3D><>Ż
#endif
};
// QUERY_CANCELTRADE
struct TQCancelTrade:public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> ID
int nMarketDBID; // <20>ŷ<EFBFBD> ID
BYTE cInvenSlotIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20>ε<EFBFBD><CEB5><EFBFBD> <20><>ȣ
int nChannelID; // ä<><C3A4> ID
int nMapID; // <20><> ID
bool bCashItem;
};
struct TACancelTrade: public TAHeader
{
int nMarketDBID;
BYTE cInvenSlotIndex;
TItem Item;
int nPrice;
bool bCashItem;
};
// QUERY_BUYTRADEITEM
struct TQBuyTradeItem: public TQHeader
{
INT64 biCharacterDBID;
int nMarketDBID;
BYTE cInvenSlotIndex;
int nChannelID;
int nMapID;
bool bCashItem;
#if defined(PRE_ADD_DIRECT_BUY_UPGRADEITEM)
bool bMini;
#else // #if defined(PRE_ADD_DIRECT_BUY_UPGRADEITEM)
#if defined(PRE_ADD_PETALTRADE)
int nPetalPrice;
#endif
#endif // #if !defined(PRE_ADD_DIRECT_BUY_UPGRADEITEM)
WCHAR wszIP[IPLENMAX];
};
struct TABuyTradeItem: public TAHeader
{
int nMarketDBID;
BYTE cInvenSlotIndex;
TItem Item;
UINT nSellerADBID; // <20>Ǹ<EFBFBD><C7B8><EFBFBD> ADBID
INT64 biSellerCharacterDBID; // <20>Ǹ<EFBFBD><C7B8><EFBFBD> CDBID
int nPrice;
char cPayMethodCode;
#if defined(PRE_ADD_DIRECT_BUY_UPGRADEITEM)
bool bMini;
#endif // #if defined(PRE_ADD_DIRECT_BUY_UPGRADEITEM)
};
// QUERY_GETLISTTRADEFORCALCULATION
struct TQGetListTradeForCalculation: public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListTradeForCalculation: public TAHeader
{
char cMarketCount;
TMarketCalculationInfo MarketInfo[MYMARKETMAX];
};
// QUERY_TRADECALCULATE
struct TQTradeCalculate: public TQHeader
{
INT64 biCharacterDBID;
int nMarketDBID;
int nChannelID;
int nMapID;
};
struct TATradeCalculate: public TAHeader
{
int nMarketDBID;
int nCalculatePrice;
#if defined(PRE_ADD_PETALTRADE)
char cPayMethodCode;
#endif
};
// QUERY_TRADECALCULATEALL
struct TQTradeCalculateAll: public TQHeader
{
INT64 biCharacterDBID;
int nChannelID;
int nMapID;
};
struct TATradeCalculateAll: public TAHeader
{
int nCalculatePrice;
#if defined(PRE_ADD_PETALTRADE)
int nCalculatePetal;
#endif
};
#if !defined(PRE_ADD_DIRECT_BUY_UPGRADEITEM)
// QUERY_GETTRADEITEMID, // MarketDBID<49><44> ItemID<49>˾Ƴ<CBBE><C6B3><EFBFBD>
struct TQGetTradeItemID: public TQHeader
{
int nMarketDBID;
};
#endif // #if defined(PRE_ADD_DIRECT_BUY_UPGRADEITEM)
struct TAGetTradeItemID: public TAHeader
{
int nMarketDBID;
int nMarketItemID;
#if defined(PRE_ADD_PETALTRADE)
char cMethodCode;
int nPrice;
#endif
};
// QUERY_GETPETALBALANCE, // <20><>Ż <20>ܾ<EFBFBD> <20><>ȸ
struct TAGetPetalBalance : public TAHeader
{
int nPetalBalance;
};
// QUERY_GETTRADEPRICE
struct TQGetTradePrice : public TQHeader
{
int nMarketDBID;
int nItemID;
BYTE cLevel;
BYTE cOption;
};
struct TAGetTradePrice : public TAHeader
{
int nMarketDBID;
int nItemID;
BYTE cLevel;
BYTE cOption;
TMarketPrice ItemPrices[2]; // Index 0 : <20><><EFBFBD>ӸӴ<D3B8> 1: <20><>Ż
};
//QUERY_GETLISTMINITRADE
struct TQGetListMiniTrade: public TQHeader
{
INT64 biCharacterDBID;
int nItemID;
char cPayMethodCode; // 0-ȥ<><C8A5>, 1-<2D><><EFBFBD><EFBFBD>, 3-<2D><>Ż
};
typedef TAGetPageTrade TAGetListMiniTrade;
//#########################################################################################################################################
// MAINCMD_FRIEND
//#########################################################################################################################################
//QUERY_FRIENDLIST,
struct TQFriendList:public TQHeader
{
INT64 biCharacterDBID;
};
struct TDBFriendGroupData
{
UINT nGroupDBID;
WCHAR wszGroupName[FRIEND_GROUP_NAMELENMAX];
};
struct TDBFriendData
{
UINT nGroupDBID;
WCHAR wszGroupName[FRIEND_GROUP_NAMELENMAX];
INT64 biCharacterDBID;
UINT nFriendAccountDBID;
INT64 biFriendCharacterDBID;
WCHAR wszFriendCharacterName[NAMELENMAX];
WCHAR wszMemo[FRIEND_MEMO_LEN_MAX];
bool bMobileAuthentication;
};
struct TAFriendList: public TAHeader
{
INT64 biCharacterDBID;
BYTE cCount;
TDBFriendData FriendData[FRIEND_MAXCOUNT + FRIEND_GROUP_MAX];
};
// QUERY_ADDGROUP, // <20>׷<EFBFBD> <20>߰<EFBFBD>
struct TQAddGroup:public TQHeader
{
INT64 biCharacterDBID;
WCHAR wszGroupName[FRIEND_GROUP_NAMELENMAX];
int nGroupCountLimit; // ģ<><C4A3> <20>׷<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ġ
};
struct TAAddGroup: public TAHeader
{
WCHAR wszGroupName[FRIEND_GROUP_NAMELENMAX];
UINT nGroupDBID;
};
// QUERY_MODGROUPNAME, // <20>׷<EFBFBD><D7B7≯<EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQModGroupName:public TQHeader
{
INT64 biCharacterDBID;
int nGroupDBID;
WCHAR wszGroupName[FRIEND_GROUP_NAMELENMAX];
};
struct TAModGroupName: public TAHeader
{
UINT nGroupDBID;
WCHAR wszGroupName[FRIEND_GROUP_NAMELENMAX];
};
// QUERY_DELGROUP, // <20>׷<EFBFBD><D7B7><EFBFBD><EFBFBD><EFBFBD>
struct TQDelGroup:public TQHeader
{
INT64 biCharacterDBID;
UINT nGroupDBID;
};
struct TADelGroup: public TAHeader
{
UINT nGroupDBID;
};
// QUERY_MODFRIENDANDGROUPMAPPING, // ģ<><C4A3><EFBFBD><EFBFBD> ģ<><C4A3><EFBFBD>׷<EFBFBD> <20><><EFBFBD>μ<EFBFBD><CEBC><EFBFBD>
struct TQModFriendAndGroupMapping:public TQHeader
{
INT64 biCharacterDBID;
int nGroupDBID;
char cCount;
INT64 biFriendCharacterDBIDs[FRIEND_MAXCOUNT];
};
struct TAModFriendAndGroupMapping: public TAHeader
{
int nGroupDBID;
char cCount;
INT64 biFriendCharacterDBIDs[FRIEND_MAXCOUNT];
};
//QUERY_ADDFRIEND,
struct TQAddFriend:public TQHeader
{
INT64 biCharacterDBID;
WCHAR wszFriendName[NAMELENMAX];
UINT nGroupDBID;
int nFriendCountLimit; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ģ<><C4A3> <20><> <20><><EFBFBD><EFBFBD>ġ
};
struct TAAddFriend: public TAHeader
{
INT64 biCharacterDBID;
UINT nFriendAccountDBID;
INT64 biFriendCharacterDBID;
UINT nGroupDBID;
WCHAR wszFriendName[NAMELENMAX];
BYTE cNeedDelIsolate;
};
// QUERY_MODFRIENDMEMO, // ģ<><C4A3><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
struct TQModFriendMemo:public TQHeader
{
INT64 biCharacterDBID;
INT64 biFriendCharacterDBID;
WCHAR wszMemo[FRIEND_MEMO_LEN_MAX];
};
struct TAModFriendMemo: public TAHeader
{
INT64 biCharacterDBID;
};
//QUERY_DELFRIEND,
struct TQDelFriend:public TQHeader
{
INT64 biCharacterDBID;
//<2F>ϴ<EFBFBD> <20>ϳ<EFBFBD>¥<EFBFBD><C2A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><CCBD><EFBFBD> <20><><EFBFBD><EFBFBD>
WCHAR wszDelCharacterName[NAMELENMAX];
char cCount;
INT64 biFriendCharacterDBIDs[FRIEND_MAXCOUNT];
};
struct TADelFriend: public TAHeader
{
char cCount;
INT64 biFriendCharacterDBIDs[FRIEND_MAXCOUNT];
};
//#########################################################################################################################################
// MAINCMD_ISOLATE
//#########################################################################################################################################
struct TIsolateItem:public TBoostMemoryPool<TIsolateItem>
{
INT64 biIsolateCharacterDBID;
WCHAR wszIsolateName[NAMELENMAX];
};
//QUERY_GETISOLATELIST
struct TQGetIsolateList:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetIsolateList: public TAHeader
{
BYTE cCount;
TIsolateItem Isolate[ISOLATELISTMAX];
};
//QUERY_ADDISOLATE
struct TQAddIsolate:public TQHeader
{
INT64 biCharacterDBID;
WCHAR wszIsolateName[NAMELENMAX];
INT64 biFriendCharacterDBID;
};
struct TAAddIsolate: public TAHeader
{
BYTE cNeedDelFriend;
TIsolateItem IsolateItem;
};
//QUERY_DELISOLATE
struct TQDelIsolate:public TQHeader
{
INT64 biCharacterDBID;
char cCount;
INT64 biIsolateCharacterDBIDs[ISOLATELISTMAX];
};
struct TADelIsolate: public TAHeader
{
char cCount;
INT64 biIsolateCharacterDBIDs[ISOLATELISTMAX];
};
//#########################################################################################################################################
// MAINCMD_GUILD
//#########################################################################################################################################
// QUERY_CREATEGUILD // <20><><EFBFBD><EFBFBD> â<><C3A2> <20><>û/<2F><><EFBFBD><EFBFBD>
struct TQCreateGuild: public TQHeader
{
INT64 nCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
int wGuildRoleAuth[GUILDROLE_TYPE_CNT]; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
int nMapID; // <20>ʹ<EFBFBD>ȣ
int nEstablishExpense; // <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2><EFBFBD>ݾ<EFBFBD>
char cLevel; // â<><C3A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
INT nRoleMaxItem[GUILDROLE_TYPE_CNT]; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Һ<EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ƚ<><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>ε<EFBFBD><CEB5><EFBFBD>)
INT nRoleMaxCoin[GUILDROLE_TYPE_CNT]; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Һ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD>ݾ<EFBFBD> (<28>ε<EFBFBD><CEB5><EFBFBD>)
};
struct TACreateGuild: public TAHeader
{
INT64 nCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>õ<EFBFBD>)
__time64_t JoinDate; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>¥
int nEstablishExpense; // <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2><EFBFBD>ݾ<EFBFBD>
};
// QUERY_GETGUILDINFO // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>û
struct TQGetGuildInfo: public TQHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
bool bNeedMembList; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ϵ<EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
struct TAGetGuildInfo: public TAHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
TGuild Info; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>õ<EFBFBD>)
};
struct TAGetGuildMember: public TAHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
bool bFirstPage; // ó<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ
bool bEndPage; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ
int nCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>õ<EFBFBD>)
TGuildMember MemberList[SENDGUILDMEMBER_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
// QUERY_DISMISSGUILD // <20><><EFBFBD><EFBFBD> <20><>ü <20><>û
struct TQDismissGuild: public TQHeader
{
INT64 nCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
};
struct TADismissGuild: public TAHeader
{
INT64 nCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
};
// QUERY_ADDGUILDMEMBER // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><>û
struct TQAddGuildMember: public TQHeader
{
UINT nAccountDBID; // <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD> DBID
INT64 nCharacterDBID; // <20>߰<EFBFBD><DFB0><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cLevel; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
short wGuildSize; // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
};
struct TAAddGuildMember: public TAHeader
{
INT64 nCharacterDBID; // <20>߰<EFBFBD><DFB0><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
__time64_t JoinDate; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>¥
};
// QUERY_DELGUILDMEMBER // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><><C5BB>/<2F>߹<EFBFBD>) <20><>û
struct TQDelGuildMember: public TQHeader
{
UINT nReqAccountDBID; // <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> DBID (<28>߹<EFBFBD><DFB9><EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD> <20>޶<EFBFBD><DEB6><EFBFBD>)
INT64 nReqCharacterDBID; // <20><>û<EFBFBD><C3BB> ij<><C4B3><EFBFBD><EFBFBD> DBID (<28>߹<EFBFBD><DFB9><EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD> <20>޶<EFBFBD><DEB6><EFBFBD>)
UINT nDelAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DBID
INT64 nDelCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
bool bIsExiled; // <20>߹<EFBFBD><DFB9>ϴ<EFBFBD><CFB4><EFBFBD> <20><><EFBFBD><EFBFBD> (true : <20>߹<EFBFBD> / false : Ż<><C5BB>)
char cLevel; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
#ifdef PRE_ADD_BEGINNERGUILD
bool bIsGraduateBeginnerGuild;
#endif //#ifdef PRE_ADD_BEGINNERGUILD
};
struct TADelGuildMember: public TAHeader
{
UINT nReqAccountDBID; // <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> DBID (<28>߹<EFBFBD><DFB9><EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD> <20>޶<EFBFBD><DEB6><EFBFBD>)
INT64 nReqCharacterDBID; // <20><>û<EFBFBD><C3BB> ij<><C4B3><EFBFBD><EFBFBD> DBID (<28>߹<EFBFBD><DFB9><EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD> <20>޶<EFBFBD><DEB6><EFBFBD>)
UINT nDelAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DBID
INT64 nDelCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
bool bIsExiled; // <20>߹<EFBFBD><DFB9>ϴ<EFBFBD><CFB4><EFBFBD> <20><><EFBFBD><EFBFBD> (true : <20>߹<EFBFBD> / false : Ż<><C5BB>)
#ifdef PRE_ADD_BEGINNERGUILD
bool bIsGraduateBeginnerGuild;
#endif //#ifdef PRE_ADD_BEGINNERGUILD
};
// QUERY_CHANGEGUILDINFO // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>û
struct TQChangeGuildInfo:public TQHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
BYTE btGuildUpdate; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> (eGuildUpdateType)
long nAddCommonPoint; // <20><><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>ȭ<EFBFBD><C8AD> (0 : <20><>ȭ<EFBFBD><C8AD><EFBFBD><EFBFBD> / <20>׿<EFBFBD> : <20><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><CCBE><EFBFBD> <20><><EFBFBD><EFBFBD> !!!)
int nInt1;
int nInt2;
int nInt3;
int nInt4;
INT64 biInt64;
WCHAR Text[GUILDHISTORYTEXT_MAX+1];
};
struct TAChangeGuildInfo: public TAHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
BYTE btGuildUpdate; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> (eGuildUpdateType)
long nCurCommonPoint; // <20><><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>緮 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><ECBFA1> ä<><C3A4><EFBFBD><EFBFBD>)
long nTotCommonPoint; // <20><><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><ECBFA1> ä<><C3A4><EFBFBD><EFBFBD>)
int nInt1;
int nInt2;
int nInt3;
int nInt4;
INT64 biInt64;
WCHAR Text[GUILDHISTORYTEXT_MAX+1];
};
// QUERY_CHANGEGUILDMEMBERINFO // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>û
struct TQChangeGuildMemberInfo:public TQHeader
{
UINT nReqAccountDBID; // <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> DBID (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޶<EFBFBD><DEB6><EFBFBD>)
INT64 nReqCharacterDBID; // <20><>û<EFBFBD><C3BB> ij<><C4B3><EFBFBD><EFBFBD> DBID (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޶<EFBFBD><DEB6><EFBFBD>)
UINT nChgAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DBID
INT64 nChgCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
BYTE btGuildMemberUpdate; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> (eGuildMemberUpdateType)
int nInt1;
int nInt2;
INT64 biInt64;
WCHAR Text[GUILDHISTORYTEXT_MAX+1];
char cLevel;
};
struct TAChangeGuildMemberInfo: public TAHeader
{
UINT nReqAccountDBID; // <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> DBID (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޶<EFBFBD><DEB6><EFBFBD>)
INT64 nReqCharacterDBID; // <20><>û<EFBFBD><C3BB> ij<><C4B3><EFBFBD><EFBFBD> DBID (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޶<EFBFBD><DEB6><EFBFBD>)
UINT nChgAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DBID
INT64 nChgCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
BYTE btGuildMemberUpdate; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> (eGuildMemberUpdateType)
int nInt1;
int nInt2;
INT64 biInt64;
WCHAR Text[GUILDHISTORYTEXT_MAX+1];
};
// QUERY_ADDGUILDHISTORY: // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20>߰<EFBFBD> <20><>û
struct TQAddGuildHistory: public TQHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
TGuildHistory History; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD>
};
// QUERY_GETGUILDHISTORYLIST // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> <20><>û
struct TQGetGuildHistoryList: public TQHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
INT64 biIndex; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> (0 <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֱ<EFBFBD> <20><><EFBFBD>Ϻ<EFBFBD><CFBA><EFBFBD> Ȯ<><C8AE> ?)
bool bDirection; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (0:<3A>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD> / 1:<3A>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD>)
};
struct TAGetGuildHistoryList: public TAHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
INT64 biIndex; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> (0 <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֱ<EFBFBD> <20><><EFBFBD>Ϻ<EFBFBD><CFBA><EFBFBD> Ȯ<><C8AE> ?)
bool bDirection; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (0:<3A>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD> / 1:<3A>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD>)
int nCurCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20><> <20>Է<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
int nTotCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><>ü <20><><EFBFBD><EFBFBD>
int nCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>õ<EFBFBD>)
TGuildHistory HistoryList[GUILDHISTORYLIST_MAX]; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>õ<EFBFBD>)
};
//QUERY_INVITEGUILDMEMBER: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><>û
struct TQInviteGuildMember : public TQHeader
{
TQGetGuildInfo GuildInfo;
UINT nToSessionID; // <20>ʴ뿡 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ID
};
struct TAInviteGuildMember: public TAHeader
{
TAGetGuildInfo GuildInfo;
UINT nToSessionID; // <20>ʴ뿡 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ID
};
// QUERY_MOVE_ITEM_IN_GUILDWARE // <20>κ<EFBFBD> -> <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD>
struct TQMoveItemInGuildWare : public TQHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
int nItemID; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
INT64 biItemSerial; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ
INT64 biNewItemSerial; // Split<69>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȣ
INT64 biMergeTargetItemSerial;// Merge <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȣ
short wItemCount; // @inbItemSerial <20><><EFBFBD><EFBFBD> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD>
short wSplitItemCount; // @inbNewItemSerial <20><><EFBFBD><EFBFBD> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
short wMergeItemCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
int nMapIndex; // <20><> ID
DBPacket::TExchangeItem SrcItem;
DBPacket::TExchangeItem DestItem;
};
struct TAMoveItemInGuildWare: public TAHeader
{
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
DBPacket::TExchangeItem SrcItem;
DBPacket::TExchangeItem DestItem;
};
// QUERY_MOVE_INVEN_TO_GUILDWARE // <20>κ<EFBFBD> -> <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD>
struct TQMoveInvenToGuildWare : public TQHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
int nItemID; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
INT64 biItemSerial; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ
INT64 biNewItemSerial; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ϻ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ű<EFBFBD><C5B1><EFBFBD> <20><><EFBFBD><EFBFBD>, Split<69>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>ȣ. Split <20><><EFBFBD><EFBFBD> <20>ʴ´ٸ<C2B4> NULL<4C><4C> <20>Է<EFBFBD><D4B7>մϴ<D5B4>.
INT64 biMergeTargetItemSerial; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ۿ<EFBFBD> Merge<67>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȣ. Merge <20><><EFBFBD><EFBFBD> <20>ʴ´ٸ<C2B4> NULL<4C><4C> <20>Է<EFBFBD><D4B7>մϴ<D5B4>.
short wItemCount; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
short wMovingItemCount; // <20>ű<EFBFBD><C5B1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
short wMergeItemCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
int nMapIndex; // <20><> ID
DBPacket::TExchangeItem InvenItem;
DBPacket::TExchangeItem GuildWareItem;
};
struct TAMoveInvenToGuildWare: public TAHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
DBPacket::TExchangeItem InvenItem;
DBPacket::TExchangeItem GuildWareItem;
};
// QUERY_MOVE_GUILDWARE_TO_INVEN // <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2> -> <20>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD>
struct TQMoveGuildWareToInven : public TQHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
int nItemID; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
INT64 biItemSerial; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ
INT64 biNewItemSerial; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ϻ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ű<EFBFBD><C5B1><EFBFBD> <20><><EFBFBD><EFBFBD>, Split<69>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>ȣ. Split <20><><EFBFBD><EFBFBD> <20>ʴ´ٸ<C2B4> NULL<4C><4C> <20>Է<EFBFBD><D4B7>մϴ<D5B4>.
INT64 biMergeTargetItemSerial; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ۿ<EFBFBD> Merge<67>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȣ. Merge <20><><EFBFBD><EFBFBD> <20>ʴ´ٸ<C2B4> NULL<4C><4C> <20>Է<EFBFBD><D4B7>մϴ<D5B4>.
short wItemCount; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
short wMovingItemCount; // <20>ű<EFBFBD><C5B1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
short wMergeItemCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
int nMaxDailyTakeItemCount;
int nMapIndex; // <20><> ID
DBPacket::TExchangeItem GuildWareItem;
DBPacket::TExchangeItem InvenItem;
};
struct TAMoveGuildWareToInven: public TAHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
int nDailyTakeItemCount;
__time64_t tUseDate;
DBPacket::TExchangeItem GuildWareItem;
DBPacket::TExchangeItem InvenItem;
};
struct TQGuildWareHouseCoin : public TQHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cMoveType;
bool bInOutFlag; // 0:<3A>Ա<EFBFBD> 1:<3A><><EFBFBD><EFBFBD>
INT64 nMoveCoin; // <20>Աݾ<D4B1>
int nMapIndex; // <20><>ID
char szIP[IPLENMAX]; // IP<49>ּ<EFBFBD>
};
struct TAGuildWareHouseCoin: public TAHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
char cMoveType;
bool bInOutFlag; // 0:<3A>Ա<EFBFBD> 1:<3A><><EFBFBD><EFBFBD>
INT64 nMoveCoin; // <20>̵<EFBFBD> <20>ݾ<EFBFBD>
INT64 biTotalCoin; // <20><>ü <20>ݾ<EFBFBD>
__time64_t tUseDate;
};
// QUERY_GET_GUILDWAREINFO // <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û
struct TQGetGuildWareInfo : public TQHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
short wMaxCount; // â<><C3A2> <20>ִ<EFBFBD><D6B4><EFBFBD>
};
struct TAGetGuildWareInfo
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
int nErrNo; // <20><><EFBFBD><EFBFBD>
BYTE cItemListCount; // <20><><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD><DBB8><EFBFBD>Ʈ ī<><C4AB>Ʈ
TItemInfo ItemList[GUILD_WAREHOUSE_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD><DBB8><EFBFBD>Ʈ
};
//QUERY_SET_GUILDWAREINFO // <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQSetGuildWareInfo : public TQHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
BYTE cSlotListCount; // <20><><EFBFBD><EFBFBD>ī<EFBFBD><C4AB>Ʈ
TGuildWareSlot WareSlotList[GUILD_WAREHOUSE_MAX]; // <20><><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD>Ʈ
};
struct TASetGuildWareInfo
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
int nRetCode;
};
// QUERY_GET_GUILDWAREHISTORY // <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><20><>û
struct TQGetGuildWareHistory : public TQHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
int nIndex; // <20><>û <20>ε<EFBFBD><CEB5><EFBFBD>
};
struct TAGetGuildWareHistory
{
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD> DBID
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
int nErrNo;
int nCurrCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>
int nTotalCount; // <20><>ü <20><><EFBFBD><EFBFBD>Ʈ <20><>
int nCount;
TGuildWareHistory HistoryList[GUILD_WAREHOUSE_HISTORYLIST_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD>Ʈ
};
// QUERY_CHANGEGUILDNAME // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQChangeGuildName : public TQHeader
{
UINT nGuildDBID;
INT64 biItemSerial;
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
struct TAChangeGuildName : public TAHeader
{
char cWorldSetID;
UINT nGuildDBID;
INT64 biItemSerial;
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
// QUERY_MOD_GUILDEXP // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ġ <20><><EFBFBD><EFBFBD>
struct TQModGuildExp: public TQHeader
{
UINT nGuildDBID;
char cPointType;
int nPointValue;
int nMaxPoint;
int nLevel;
INT64 biCharacterDBID;
int nMissionID;
#if defined(PRE_ADD_GUILD_CONTRIBUTION)
bool IsGuildLevelMax;
#endif // #if defined(PRE_ADD_GUILD_CONTRIBUTION)
};
struct TAModGuildExp: public TAHeader
{
char cWorldSetID;
UINT nGuildDBID;
char cPointType;
int nPointValue;
int nTotalGuildExp;
int nDailyPointValue;
int nLevel;
INT64 biCharacterDBID;
int nMissionID;
};
// QUERY_MOD_GUILDCHEAT // <20><><EFBFBD><EFBFBD> ġƮ
struct TQModGuildCheat: public TQHeader
{
UINT nGuildDBID;
char cCheatType;
int nPoint;
char cLevel;
};
struct TAModGuildCheat: public TAHeader
{
char cWorldSetID;
UINT nGuildDBID;
char cCheatType;
int nPoint;
char cLevel;
};
struct TQGetGuildRewardItem: public TQHeader
{
UINT nGuildDBID;
};
struct TAGetGuildRewardItem: public TAHeader
{
char cWorldSetID;
UINT nGuildDBID;
int nCount;
TGuildRewardItem RewardItemInfo[GUILDREWARDEFFECT_TYPE_CNT];
};
struct TQAddGuildRewardItem: public TQHeader
{
INT64 biCharacterDBID;
UINT nGuildDBID;
int nItemID;
bool bEnternityFlag;
int nLifeSpan;
BYTE cItemBuyType;
int nNeedGold;
int nMpaID;
int nRemoveItemID;
};
struct TAAddGuildRewardItem: public TAHeader
{
INT64 biCharacterDBID;
char cWorldSetID;
UINT nGuildDBID;
int nItemID;
BYTE cItemBuyType;
__time64_t m_tExpireDate;
};
struct TQChangeGuildSize: public TQHeader
{
UINT nGuildDBID;
short nGuildSize;
};
struct TAChangeGuildSize: public TAHeader
{
char cWorldSetID;
UINT nGuildDBID;
short nGuildSize;
};
struct TQDelGuildEffectItem:public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
int nItemID;
};
// QUERY_ENROLL_GUILDWAR
struct TQEnrollGuildWar : public TQHeader
{
short wScheduleID;
UINT nGuildDBID;
};
struct TAEnrollGuildWar : public TAHeader
{
char cWorldSetID;
UINT nGuildDBID;
short wScheduleID;
BYTE cTeamColorCode;
};
// QUERY_GET_GUILDWARSCHEDULE
struct TQGetGuildWarSchedule : public TQHeader
{
};
struct TAGetGuildWarSchedule : public TAHeader
{
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
short wWinersWeightRate; // <20>¸<EFBFBD><C2B8><EFBFBD> <20><><EFBFBD><EFBFBD>ġ
bool bFinalProgress; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
TGuildWarEventInfo EventInfo[GUILDWAR_STEP_END]; // <20><EFBFBD><E2B0A3><EFBFBD><EFBFBD>
__time64_t tRewardExpireDate; // <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD> <20>
};
// QUERY_GET_GUILDWARFINALSCHEDULE // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct TQGetGuildWarFinalSchedule : public TQHeader
{
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
struct TAGetGuildWarFinalSchedule : public TAHeader
{
TGuildWarEventInfo GuildWarFinalSchedule[GUILDWAR_FINALPART_MAX];
};
// QUERY_ADD_GUILDWARPOINT // <20><><EFBFBD><EFBFBD> <20>̼<EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
struct TQAddGuildWarPointRecodrd : public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
int nMissionID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̼<EFBFBD> ID
int nOpeningPoint; // ȹ<><C8B9><EFBFBD><EFBFBD> <20>̼<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
UINT nGuildDBID; // <20>Ҽ<EFBFBD> <20><><EFBFBD><EFBFBD> ID
char cTeamColorCode; // 1-û<><C3BB>, 2-ȫ<><C8AB>
};
struct TAAddGuildWarPointRecodrd : public TAHeader
{
char cWorldSetID;
char cTeamColorCode; // 1-û<><C3BB>, 2-ȫ<><C8AB>
UINT nGuildDBID; // <20>Ҽ<EFBFBD> <20><><EFBFBD><EFBFBD> ID
int nOpeningPoint; // ȹ<><C8B9><EFBFBD><EFBFBD> <20>̼<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
};
// QUERY_GET_GUILDWARPOINT // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>ȸ
struct TQGetGuildWarPoint : public TQHeader
{
char cQueryType; // 'C'=ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>ȸ, 'G'=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><>ȸ, 'T'=<3D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><>ȸ
INT64 biDBID; // C-ij<><C4B3><EFBFBD><EFBFBD> ID, G-<2D><><EFBFBD><EFBFBD> ID, T-0
};
struct TAGetGuildWarPoint : public TAHeader
{
char cQueryType;
INT64 biDBID;
int nCharOpeningPoint;
int nGuildOpeningPoint;
int nBlueTeamPoint;
int nRedTeamPoint;
};
// QUERY_GET_GUILDWARPOINT_PARTTOTAL // <20>ι<EFBFBD><CEB9><EFBFBD> 1<><31> <20><>ȸ(<28><><EFBFBD><EFBFBD>)
struct TQGetGuildWarPointPartTotal : public TQHeader
{
char cQueryType; // 'A' = <20><>ü, 'C' = <20><><EFBFBD><EFBFBD>
INT64 biCharacterDBID;
};
struct SGuildWarPointPartTotal
{
short wRanking; // <20><><EFBFBD><EFBFBD>
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> ID
WCHAR wszCharName[NAMELENMAX]; // ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> ID
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
int nPoint; // <20><><EFBFBD><EFBFBD>
};
struct TAGetGuildWarPointPartTotal : public TAHeader
{
char cQueryType;
SGuildWarPointPartTotal GuildWarPointPartTotal[GUILDWAR_RANKINGTYPE_MAX]; // <20><> <20>ι<EFBFBD><CEB9><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
// QUERY_GET_GUILDWARPOINT_GUILD_PARTTOTAL // <20>ι<EFBFBD><CEB9><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQGetGuildWarPointGuildPartTotal : public TQHeader
{
char cQueryType; // 'A' = <20><>ü, 'G' = <20><><EFBFBD><EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> ID
};
struct TAGetGuildWarPointGuildPartTotal : public TAHeader
{
char cQueryType; // 'A' = <20><>ü, 'G' = <20><><EFBFBD><EFBFBD>
SGuildWarPointPartTotal GuildWarPointPartTotal[GUILDWAR_RANKINGTYPE_MAX]; // <20><> <20>ι<EFBFBD><CEB9><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
// QUERY_GET_GUILDWARPOINT_DAILY // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>ں<EFBFBD> 1<><31>
struct TQGetGuildWarPointDaily : public TQHeader
{
};
struct SGuildWarPointDaily
{
int nTotalPoint;
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> ID
WCHAR wszCharName[NAMELENMAX]; // ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> ID
};
struct TAGetGuildWarPointDaily : public TAHeader
{
SGuildWarPointDaily sGuildWarPointDaily[GUILDWAR_DAILY_AWARD_MAX];
};
// QUERY_GET_GUILDWARPOINT_GUILD_TOTAL // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ(<28><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȸ<EFBFBD><C8B8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
struct TQGetGuildWarPointGuildTotal : public TQHeader
{
bool bMasterServer; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB><EFBFBD><EFBFBD>..
char cQueryType; // 'A' = <20><>ü, 'G' = <20><><EFBFBD><EFBFBD>
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> ID
};
struct SGuildWarPointGuildTotal
{
short wRanking; // <20><><EFBFBD><EFBFBD> <20><>ŷ
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> ID
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
INT64 biMasterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> ID
WCHAR wszMasterName[NAMELENMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD>
short wGuildLevel; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
short wGuildMemberCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nOpeningPointSum; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ջ<EFBFBD>
int nMaxMemberCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ο<EFBFBD><CEBF><EFBFBD>
};
struct TAGetGuildWarPointGuildTotal : public TAHeader
{
bool bMasterServer; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB><EFBFBD><EFBFBD>..
char cQueryType; // 'A' = <20><>ü, 'G' = <20><><EFBFBD><EFBFBD>
int nTotalCount;
SGuildWarPointGuildTotal sGuildWarPointGuildTotal[GUILDWAR_FINALS_TEAM_MAX];
};
//QUERY_GET_GUILDWARPOINT_RUNNING_TOTAL // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ȳ(24<32><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
struct TQGetGuildWarPointRunningTotal : public TQHeader
{
//<2F>ϴ<EFBFBD> GUILD<4C><44><EFBFBD><EFBFBD> <20>̴°<CCB4> <20>Ⱦ<EFBFBD><C8BE><EFBFBD> <20>о<EFBFBD>..
};
struct TAGetGuildWarPointRunningTotal : public TAHeader
{
int nTotalCount;
SGuildWarPointGuildTotal sGuildWarPointGuildTotal[GUILDWAR_TRIAL_POINT_TEAM_MAX];
};
//QUERY_GET_GUILDWARPOINT_FINAL_REWARDS
struct TAGetGuildWarPointFinalRewards : public TAHeader
{
UINT nGuildDBID[GUILDWAR_FINALS_TEAM_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GuildDBID
int nGuildPoint[GUILDWAR_FINALS_TEAM_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GuildPoint
};
// QUERY_ADD_GUILDWAR_FINAL_MATCHLIST // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ǥ <20><><EFBFBD><EFBFBD>
struct TQAddGuildWarFinalMatchList : public TQHeader
{
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
UINT nGuildDBID[GUILDWAR_FINALS_TEAM_MAX]; // <20><><EFBFBD><EFBFBD>ǥ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID(<28>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>)
};
struct TAAddGuildWarFinalMatchList : public TAHeader
{
};
// QUERY_ADD_GUILDWARPOPULARITYVOTE // <20>α<EFBFBD> <20><>ǥ <20><><EFBFBD><EFBFBD>
struct TQAddGuildWarPopularityVote : public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><>ǥ <20><><EFBFBD><EFBFBD> ID
};
struct TAAddGuildWarPopularityVote : public TAHeader
{
};
// QUERY_GET_GUILDWARPOPULARITYVOTE // <20>α<EFBFBD> <20><>ǥ <20><><EFBFBD><EFBFBD><><C4B3><EFBFBD>Ͱ<EFBFBD> <20><>ǥ<EFBFBD><C7A5> <20>ߴ<EFBFBD><DFB4><EFBFBD> <20><>ȸ<EFBFBD><C8B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
struct TQGetGuildWarPopularityVote : public TQHeader
{
char cQueryType; // 'C' - ij<><C4B3><EFBFBD><EFBFBD> <20><>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD>, 'G'-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȸ
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
};
struct TAGetGuildWarPopularityVote : public TAHeader
{
char cQueryType; // 'C' - ij<><C4B3><EFBFBD><EFBFBD> <20><>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD>, 'G'-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȸ
UINT nGuildDBID; // <20><>ǥ or 1<><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
int nPopularityVoteCount; // <20>ѵ<EFBFBD>ǥ<EFBFBD><C7A5>
};
// QUERY_ADD_GUILDWARFINALRESULTS // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQAddGuildWarFinalResults : public TQHeader
{
UINT nGuildDBID; // <20><>ǥ <20><><EFBFBD><EFBFBD> ID
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
char cMatchSequence; // <20><><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5> <20><>ȣ
char cMatchTypeCode; // 1=<3D><><EFBFBD><EFBFBD>, 2=4<><34>, 3=8<><38>, 4=16<31><36>
char cMatchResultCode; // 1=<3D>¸<EFBFBD>, 2=<3D>й<EFBFBD>, 3=<3D><><EFBFBD><EFBFBD>, 4=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
struct TAAddGuildWarFinalResults : public TAHeader
{
};
// QUERY_GET_GUILDWARFINALRESULTS // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct TQGetGuildWarFinalResults : public TQHeader
{
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
struct SGuildFinalResultInfo
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> ID
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
char cMatchSequence; // <20><><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5> <20><>ȣ
char cMatchTypeCode; // 1=<3D><><EFBFBD><EFBFBD>, 2=4<><34>, 3=8<><38>, 4=16<31><36>
char cMatchResultCode; // 1=<3D>¸<EFBFBD>, 2=<3D>й<EFBFBD>, 3=<3D><><EFBFBD><EFBFBD>, 4=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short wGuildMark; // <20><><EFBFBD>帶ũ <20><><EFBFBD><EFBFBD>
short wGuildMarkBG; // <20><><EFBFBD>帶ũ <20><><EFBFBD><EFBFBD>
short wGuildMarkBorder; // <20><><EFBFBD>帶ũ <20>׵θ<D7B5>
};
struct TAGetGuildWarFinalResults : public TAHeader
{
SGuildFinalResultInfo GuildFinalResultInfo[GUILDWAR_FINALS_TEAM_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>..
};
// QUERY_GET_GUILDWAR_PRE_WIN_GUILD // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct TQGetGuildWarPreWinGuild : public TQHeader
{
};
struct TAGetGuildWarPreWinGuild : public TAHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> ID
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
//QUERY_ADD_GUILDWAR_REWARD_CHARACTER
struct TQAddGuildWarRewardCharacter : public TQHeader
{
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
char cRewardType; // <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>(1=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 2=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 3=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ)
};
struct TAAddGuildWarRewardCharacter : public TAHeader
{
char cRewardType; // <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>(1=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 2=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 3=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ)
};
//QUERY_GET_GUILDWAR_REWARD_CHARACTER
struct TQGetGuildWarRewardCharacter : public TQHeader
{
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
};
struct TAGetGuildWarRewardCharacter : public TAHeader
{
bool bRewardResults[GUILDWAR_REWARD_CHAR_MAX]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD>
};
//QUERY_ADD_GUILDWAR_REWARD_GUILD // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQAddGuildWarRewardGuild : public TQHeader
{
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cRewardType; // <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>(1=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų, 2=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 3=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 4=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ, 5=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ)
};
struct TAAddGuildWarRewardGuild : public TAHeader
{
char cWorldSetID;
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cRewardType; // <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>(1=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų, 2=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 3=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 4=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ, 5=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ)
};
//QUERY_GET_GUILDWAR_REWARD_GUILD // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct TQGetGuildWarRewardGuild : public TQHeader
{
char cQueryType; // 'M' - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ȯ<><C8AE>, 'V'-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û
short wScheduleID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
};
struct TAGetGuildWarRewardGuild : public TAHeader
{
char cQueryType; // 'M' - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ȯ<><C8AE>, 'V'-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û
char cWorldSetID;
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
bool bRewardResults[GUILDWAR_REWARD_GUILD_MAX]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E5BAB8> <20><><EFBFBD><EFBFBD>
};
//QUERY_ADD_GUILDWAR_POINT_QUEUE (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>)
struct TQAddGuildWarPointQueue : public TQHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> ID
INT64 biAddPoint;
WCHAR wszIP[IPLENMAX]; // <20>׳<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
};
//QUERY_ADD_GUILDWAR_SYSTEM_MAIL_QUEUE
//<2F><><EFBFBD><EFBFBD> TQSendSystemMail <20><><EFBFBD><EFBFBD>ü <20>״<EFBFBD><D7B4>ξ<EFBFBD>..
//QUERY_ADD_GUILDWAR_MAKE_GIFT_QUEUE
struct TQAddGuilWarMakeGiftQueue : public TQHeader
{
char cRewardType;
INT64 biCharacterDBIDs[GUILDSIZE_MAX]; // <20><><EFBFBD><EFBFBD> <20>ֵ<EFBFBD><D6B5><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
char cClass[GUILDSIZE_MAX]; // <20><><EFBFBD><EFBFBD> <20>ֵ<EFBFBD><D6B5><EFBFBD> Class
};
//QUERY_ADD_GUILDWAR_MAKE_GIFT_NOTGUILDINFO
struct TQAddGuildWarMakeGiftNotGuildInfo : public TQHeader
{
char cRewardType;
UINT nGuildDBID;
};
// QUERY_ADD_JOB_RESERVE
struct TQAddJobReserve : public TQHeader
{
char cJobType;
};
struct TAAddJobReserve : public TAHeader
{
char cJobType;
int nJobSeq;
};
// QUERY_GET_JOB_RESERVE
struct TQGetJobReserve : public TQHeader
{
int nJobSeq;
};
struct TAGetJobReserve : public TAHeader
{
int nJobSeq;
char cJobStatus;
};
struct TQGetListGuildWarItemTradeRecord : public TQHeader
{
INT64 characterDBID;
};
struct TAGetListGuildWarItemTradeRecord : public TAHeader
{
int count;
ItemCount itemCount[INVENTORYMAX + WAREHOUSEMAX];
};
struct TQAddGuildWarItemTradeRecord : public TQHeader
{
INT64 characterDBID;
ItemCount itemCount;
};
//QUERY_CHANGEGUILDWARESIZE
struct TQChangeGuildWareSize : public TQHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
short wStorageSize; // â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
struct TAChangeGuildWareSize: public TAHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
short wStorageSize; // â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//QUERY_CHANGEGUILDMARK
struct TQChangeGuildMark : public TQHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
short wGuildMark; // <20><><EFBFBD>帶ũ <20><><EFBFBD><EFBFBD>
short wGuildMarkBG; // <20><><EFBFBD>帶ũ <20><><EFBFBD><EFBFBD>
short wGuildMarkBorder; // <20><><EFBFBD>帶ũ <20>׵θ<D7B5>
};
struct TAChangeGuildMark: public TAHeader
{
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
short wGuildMark; // <20><><EFBFBD>帶ũ <20><><EFBFBD><EFBFBD>
short wGuildMarkBG; // <20><><EFBFBD>帶ũ <20><><EFBFBD><EFBFBD>
short wGuildMarkBorder; // <20><><EFBFBD>帶ũ <20>׵θ<D7B5>
};
#if defined(PRE_ADD_GUILD_CONTRIBUTION)
struct TQGetGuildContributionPoint: public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetGuildContributionPoint: public TAHeader
{
int nWeeklyGuildContributionPoint; // <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
int nTotalGuildContributionPoint; // <20><><EFBFBD>±<EFBFBD><C2B1><EFBFBD> <20>ø<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><20><>ġ
};
struct TQGetGuildContributionRanking: public TQHeader
{
UINT nGuildDBID;
};
struct TAGetGuildContributionRanking: public TAHeader
{
int nCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
GuildContribution::TGuildContributionRankingData ContributionRankingList[GUILDSIZE_MAX];
};
#endif
//#########################################################################################################################################
// MAINCMD_PVP
//#########################################################################################################################################
struct TQUpdatePvPData:public TQHeader
{
INT64 biCharacterDBID;
PvPCommon::QueryUpdatePvPDataType::eCode Type;
TPvPGroup PvP;
};
struct TAUpdatePvPData: public TAHeader
{
PvPCommon::QueryUpdatePvPDataType::eCode Type;
};
struct TQUpdatePvPRankCriteria : public TQHeader
{
UINT nThresholdPvPExp;
};
struct TQForceCalcPvPRank : public TQHeader
{
};
struct LadderKillResult
{
BYTE cJobCode;
short nKillCount;
short nDeathCount;
};
struct TQAddPvPLadderResult:public TQHeader
{
PvPCommon::QueryUpdatePvPDataType::eCode Type;
INT64 biCharacterDBID;
BYTE cPvPLadderCode; // LadderSystem::MatchType::eCode
int iPvPLadderGradePoint;
int iHiddenPvPLadderGradePoint;
BYTE cResult; // LadderSystem::MatchResult::eCode
BYTE cVersusCharacterJobCode;
BYTE cKillDeathCount;
LadderKillResult KillDeathCounts[JOB_KIND_MAX];
};
struct TAAddPvPLadderResult:public TAHeader
{
PvPCommon::QueryUpdatePvPDataType::eCode Type;
};
struct TQGetListPvPLadderScore:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListPvPLadderScore:public TAHeader
{
TPvPLadderScoreInfo Data;
};
struct TQGetListPvPLadderScoreByJob:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListPvPLadderScoreByJob:public TAHeader
{
TPvPLadderScoreInfoByJob Data;
};
struct TQInitPvPLadderGradePoint:public TQHeader
{
INT64 biCharacterDBID;
BYTE cPvPLadderCode;
int iPvPLadderPoint; // <20><><EFBFBD><EFBFBD>ġ <20>Է<EFBFBD>(-<2D><><EFBFBD><EFBFBD>)
int iPvPLadderGradePoint; // <20>ʱ<EFBFBD>ȭ<EFBFBD><C8AD> PvP <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
char szIP[IPLENMAX];
};
struct TAInitPvPLadderGradePoint:public TAHeader
{
};
struct TQUsePvPLadderPoint:public TQHeader
{
INT64 biCharacterDBID;
int iPvPLadderPoint; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
int iMapID;
char szIP[IPLENMAX];
int iAfterLadderPoint;
};
struct TAUsePvPLadderPoint:public TAHeader
{
int iPvPLadderPointAfter; // <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD> PvP<76><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
struct TQAddPvPLadderCUCount:public TQHeader
{
BYTE cPvPLadderCode;
int iCUCount;
};
struct TQModPvPLadderScoresForCheat:public TQHeader
{
INT64 biCharacterDBID;
BYTE cPvPLadderCode;
int iPvPLadderPoint;
int iPvPLadderGradePoint;
int iHiddenPvPLadderGradePoint;
};
struct TAModPvPLadderScoresForCheat:public TAHeader
{
BYTE cPvPLadderCode;
int iPvPLadderPoint;
int iPvPLadderGradePoint;
int iHiddenPvPLadderGradePoint;
};
struct TQGetListPvPLadderRanking:public TQHeader
{
INT64 biCharacterDBID;
BYTE cPvPLadderCode;
};
struct TAGetListPvPLadderRanking:public TAHeader
{
TPvPLadderRanking MyRanking;
TPvPLadderRanking Top[LadderSystem::Common::RankingTop];
};
#if defined(PRE_ADD_PVP_RANKING)
//<2F>Ϲ<EFBFBD> Ranking
struct TQGetPvPRankBoard:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetPvPRankBoard:public TAHeader
{
TPvPRankingDetail MyRanking;
};
struct TQGetPvPRankList:public TQHeader
{
int iPage;
BYTE cClassCode;
BYTE cSubClassCode;
WCHAR wszGuildName[GUILDNAME_MAX];
};
struct TAGetPvPRankList:public TAHeader
{
INT64 biRankingTotalCount;
BYTE cRankingCount;
TPvPRanking RankingInfo[RankingSystem::RANKINGMAX];
};
struct TQGetPvPRankInfo:public TQHeader
{
WCHAR wszCharName[NAMELENMAX];
};
struct TAGetPvPRankInfo:public TAHeader
{
TPvPRankingDetail RankingInfo;
};
//Ladder Ranking
struct TQGetPvPLadderRankBoard:public TQHeader
{
INT64 biCharacterDBID;
BYTE cPvPLadderCode;
};
struct TAGetPvPLadderRankBoard:public TAHeader
{
BYTE cPvPLadderCode;
TPvPLadderRankingDetail MyRanking;
};
struct TQGetPvPLadderRankList:public TQHeader
{
int iPage;
BYTE cClassCode;
BYTE cSubClassCode;
BYTE cPvPLadderCode;
WCHAR wszGuildName[GUILDNAME_MAX];
};
struct TAGetPvPLadderRankList:public TAHeader
{
INT64 biRankingTotalCount;
BYTE cRankingCount;
BYTE cPvPLadderCode;
TPvPLadderRanking2 RankingInfo[RankingSystem::RANKINGMAX];
};
struct TQGetPvPLadderRankInfo:public TQHeader
{
WCHAR wszCharName[NAMELENMAX];
BYTE cPvPLadderCode;
};
struct TAGetPvPLadderRankInfo:public TAHeader
{
BYTE cPvPLadderCode;
TPvPLadderRankingDetail RankingInfo;
};
struct TQForceAggregatePvPRank:public TQHeader
{
bool bIsPvPLadder;
};
#endif
struct TQAddPVPGhoulScores : public TQHeader
{
INT64 biCharacterDBID;
int nGhoulWin;
int nHumanWin;
int nTimeOver;
int nGhoulKill;
int nHumanKill;
int nHolyWaterUse;
};
struct TQGetPVPGhoulScores : public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetPVPGhoulScores : public TAHeader
{
int nPlayCount;
int nGhoulWin;
int nHumanWin;
int nTimeOver;
int nGhoulKill;
int nHumanKill;
int nHolyWaterUse;
};
#if defined(PRE_ADD_PVP_TOURNAMENT)
struct TQAddPVPTournamentResult : public TQHeader
{
int nTotalCount;
#if defined( PRE_PVP_GAMBLEROOM )
INT64 nGambleDBID;
#endif
INT64 biCharacterDBID[PvPCommon::Common::PvPTournamentUserMax];
char cTournamentStep[PvPCommon::Common::PvPTournamentUserMax];
bool bWin[PvPCommon::Common::PvPTournamentUserMax];
};
#endif
#if defined( PRE_PVP_GAMBLEROOM )
struct TQAddGambleRoom: public TQHeader
{
int nRoomID;
BYTE cGambleType;
int nGamblePrice;
};
struct TAAddGambleRoom: public TAHeader
{
int nRetCode;
char cWorldSetID;
int nRoomID;
INT64 nGambleDBID;
};
struct TQAddGambleRoomMember: public TQHeader
{
INT64 nGambleDBID;
INT64 biCharacterDBID;
};
struct TQEndGambleRoom: public TQHeader
{
INT64 nGambleDBID;
TPvPGambleRoomWinData Member[PvPGambleRoom::Max];
};
#endif
//#########################################################################################################################################
// MAINCMD_DARKLAIR
//#########################################################################################################################################
struct SDarkLairUserData
{
USHORT unLevel; // <20><><EFBFBD><EFBFBD>
int iJobIndex; // <20><><EFBFBD><EFBFBD>Index
WCHAR wszCharacterName[NAMELENMAX]; // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD>(NULL<4C><4C><EFBFBD><EFBFBD>)
SDarkLairUserData()
{
unLevel = 0;
iJobIndex = 0;
memset( wszCharacterName, 0, sizeof(wszCharacterName) );
}
void Set( USHORT _unLevel, int _iJob, WCHAR* _pwszName )
{
unLevel = _unLevel;
iJobIndex = _iJob;
if( _pwszName )
_wcscpy( wszCharacterName, _countof(wszCharacterName), _pwszName, (int)wcslen(_pwszName) );
}
};
struct SDarkLairUpdateUserData : public SDarkLairUserData
{
bool bUpdate; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD>α<EFBFBD><CEB1><EFBFBD> Update <20><><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD>
INT64 i64CharacterDBID; // CharDBID
SDarkLairUpdateUserData()
{
bUpdate = false;
i64CharacterDBID = 0;
}
};
struct SDarkLairHistory
{
USHORT unPlayRound; // <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> Round <20><>
UINT uiPlaySec; // <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD>ѽð<D1BD>(<28><>)
WCHAR wszPartyName[PARTYNAMELENMAX]; // <20><>Ƽ<EFBFBD≯<EFBFBD>(NULL<4C><4C><EFBFBD><EFBFBD>)
BYTE cPartyUserCount;
SDarkLairUserData sUserData[DarkLair::Common::MaxPlayer];
SDarkLairHistory()
{
unPlayRound = 0;
uiPlaySec = 0;
cPartyUserCount = 0;
memset( wszPartyName, 0, sizeof(wszPartyName) );
}
void Set( USHORT _unPlayRound, UINT _uiPlaySec, WCHAR* _pwszPartyName )
{
unPlayRound = _unPlayRound;
uiPlaySec = _uiPlaySec;
if( _pwszPartyName )
_wcscpy( wszPartyName, _countof(wszPartyName), _pwszPartyName, (int)wcslen(_pwszPartyName) );
}
void AddUserData( USHORT _unLevel, int _iJob, WCHAR* _pwszName )
{
if( cPartyUserCount >= DarkLair::Common::MaxPlayer )
return;
sUserData[cPartyUserCount++].Set( _unLevel, _iJob, _pwszName );
}
};
struct SDarkLairBestHistory : public SDarkLairHistory
{
INT64 i64CharacterDBID;
int iRank;
SDarkLairBestHistory()
{
i64CharacterDBID = 0;
iRank = 0;
}
};
struct TQUpdateDarkLairResult:public TQHeader
{
int iRoomID; // <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>RoomID
int iProtectionKey; // <20><>ȣŰ
int iMapIndex; // <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> MapIndex
USHORT unPlayRound; // <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> Round <20><>
UINT uiPlaySec; // <20>÷<EFBFBD><C3B7>̽ð<CCBD>(<28><>)
WCHAR wszPartyName[PARTYNAMELENMAX]; // <20><>Ƽ<EFBFBD≯<EFBFBD>(NULL<4C><4C><EFBFBD><EFBFBD>)
BYTE cPartyUserCount;
SDarkLairUpdateUserData sUserData[DarkLair::Common::MaxPlayer];
};
struct TAUpdateDarkLairResult:public TBoostMemoryPool<TAUpdateDarkLairResult>
{
short nRetCode;
int iRoomID; // <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>RoomID
int iProtectionKey; // <20><>ȣŰ
int iRank; // <20><><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9><EFBFBD><EFBFBD> <20><>ŷ
SDarkLairHistory sHistoryTop[DarkLair::Rank::SelectTop]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŷ
BYTE cPartyUserCount;
SDarkLairBestHistory sBestUserData[DarkLair::Common::MaxPlayer]; // <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>Ʈ
};
struct TQGetDarkLairRankBoard:public TQHeader
{
INT64 biCharacterDBID;
int iMapIndex;
BYTE cPartyUserCount;
};
struct TAGetDarkLairRankBoard:public TAHeader
{
SDarkLairBestHistory sBestHistory;
BYTE cPartyUserCount;
#if defined(PRE_ADD_CHALLENGE_DARKLAIR)
int iMapIndex;
#endif
SDarkLairHistory sHistoryTop[DarkLair::Rank::SelectRankBoardTop];
};
//#########################################################################################################################################
// MAINCMD_AUTH
//#########################################################################################################################################
struct TABeginAuth: public TAHeader
{
UINT nSessionID; // <20><><EFBFBD><EFBFBD> ID
char cCertifyingStep; // <20><><EFBFBD><EFBFBD> <20>ܰ<EFBFBD>
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID (*)
};
struct TQStoreAuth:public TQHeader // GA, VI <20><><EFBFBD><EFBFBD>
{
INT64 biCertifyingKey; // <20><><EFBFBD><EFBFBD>Ű
int nCurServerID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID (*)
UINT nSessionID; // <20><><EFBFBD><EFBFBD> ID
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
WCHAR wszAccountName[IDLENMAX]; // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
WCHAR wszCharacterName[NAMELENMAX]; // ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD>
BYTE bIsAdult; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
BYTE nAge; // <20><><EFBFBD><EFBFBD>
BYTE nDailyCreateCount; // <20><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ƚ<><C8BD>
int nPrmInt1; // <20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD> 1 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8><EFBFBD>)
char cLastServerType; // <20>ֱ<EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> (eServerType / 0 : <20>α<EFBFBD><CEB1><EFBFBD>, 2 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 3 : <20><><EFBFBD><EFBFBD>)
};
struct TAStoreAuth: public TAHeader // GA, VI <20><><EFBFBD><EFBFBD>
{
UINT nSessionID; // <20><><EFBFBD><EFBFBD> ID
};
struct TQCheckAuth:public TQHeader // GA, VI <20><><EFBFBD><EFBFBD>
{
INT64 biCertifyingKey; // <20><><EFBFBD><EFBFBD>Ű
int nCurServerID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ
int nSessionID;
};
struct TACheckAuth: public TAHeader // GA, VI <20><><EFBFBD><EFBFBD>
{
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID (*)
UINT nSessionID; // <20><><EFBFBD><EFBFBD> ID
INT64 biCertifyingKey; // <20><><EFBFBD><EFBFBD>Ű
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
WCHAR wszAccountName[IDLENMAX]; // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
WCHAR wszCharacterName[NAMELENMAX]; // ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD>
char cAccountLevel; // <20><EFBFBD><EEBFB5>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE bIsAdult; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
char nAge; // <20><><EFBFBD><EFBFBD>
BYTE nDailyCreateCount; // <20><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ƚ<><C8BD>
int nPrmInt1; // <20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD> 1 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8><EFBFBD>)
char cLastServerType; // <20>ֱ<EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> (eServerType / 0 : <20>α<EFBFBD><CEB1><EFBFBD>, 2 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 3 : <20><><EFBFBD><EFBFBD>)
};
struct TQResetAuth:public TQHeader // GA, VI <20><><EFBFBD><EFBFBD>
{
UINT nSessionID; // <20><><EFBFBD><EFBFBD> ID
};
struct TAResetAuth: public TAHeader // GA, VI <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> ???)
{
UINT nSessionID; // <20><><EFBFBD><EFBFBD> ID
};
struct TQResetAuthServer:public TQHeader
{
int nServerID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ
};
struct TAResetAuthServer
{
int nServerID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ
int nResult; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
struct TQGetAuthWorldUserCnt:public TQHeader //QUERY_AUTHUSERCOUNT
{
int nServerID;
};
struct TAuthWorldUserCnt
{
int nWorldSetID;
UINT nWorldUserCnt;
};
struct TAGetAuthWorldUserCnt
{
int nServerID;
short nResult;
BYTE cCount;
TAuthWorldUserCnt User[WORLDCOUNTMAX];
};
struct TQSetWorldIDAuth:public TQHeader //QUERY_SETWOLRDID
{
};
//#########################################################################################################################################
// MAINCMD_CASH
//#########################################################################################################################################
// QUERY_GETLISTGIVEFAILITEM, // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (select<63>Ҷ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>޴°<DEB4><C2B0><EFBFBD>)
struct TAGetListGiveFailItem: public TAHeader
{
int nCount;
DBPacket::TCashFailItem CashFailItem[CASHINVENTORYDBMAX];
};
// QUERY_MODGIVEFAILFLAG
struct TQModGiveFailFlag: public TQHeader
{
INT64 biCharacterDBID;
int nMapID;
int nChannelID;
WCHAR wszIP[IPLENMAX];
int nCount;
DBPacket::TModCashFailItemEx CashItem[CASHINVENTORYDBMAX];
};
struct TAModGiveFailFlag: public TAHeader
{
int nCount;
TCashItemBase CashItem[CASHINVENTORYDBMAX];
};
// QUERY_GETREMAINPETAL
struct TQGetRemainPetal: public TQHeader
{
};
struct TAGetRemainPetal: public TAHeader
{
int nPetal;
};
// QUERY_PURCHASEITEMBYFAKEPETAL
struct TQPurchaseItemByFakePetal:public TQHeader
{
int nChannelID;
int nMapID;
char cCartType;
char cCount;
DBPacket::TPetalInfo PetalInfo[CARTLISTMAX];
};
struct TAPurchaseItemByFakePetal: public TAHeader
{
char cCartType;
char cCount;
DBPacket::TPetalInfoEx PetalInfo[CARTLISTMAX];
};
// QUERY_CHECKGIFTRECEIVER
struct TQCheckGiftReceiver:public TQHeader
{
WCHAR wszCharacterName[NAMELENMAX];
};
struct TACheckGiftReceiver: public TAHeader
{
BYTE cLevel;
BYTE cJob;
};
// QUERY_GETLISTGIFTBOX
struct TQGetListGiftBox: public TQHeader
{
INT64 biCharacterDBID;
#if defined(PRE_ADD_MULTILANGUAGE)
char cSelectedLang;
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
};
struct TAGetListGiftBox: public TAHeader
{
#if defined(PRE_ADD_MULTILANGUAGE)
char cSelectedLang;
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
char cCount;
TGiftInfo GiftBox[GIFTBOXLISTMAX];
};
// QUERY_MODGIFTRECEIVEFLAG
struct TQModGiftReceiveFlag: public TQHeader
{
INT64 biCharacterDBID;
#if defined(PRE_RECEIVEGIFTALL)
bool bReceiveAll;
#endif // #if defined(PRE_RECEIVEGIFTALL)
char cCount;
TReceiveGiftData GiftData[GIFTPAGEMAX];
};
struct TAModGiftReceiveFlag: public TAHeader
{
#if defined(PRE_RECEIVEGIFTALL)
bool bReceiveAll;
#endif // #if defined(PRE_RECEIVEGIFTALL)
char cCount;
DBPacket::TReceiveGift ReceiveGift[GIFTPAGEMAX];
};
// QUERY_RECEIVEGIFT, // <20><><EFBFBD><EFBFBD><EFBFBD>ޱ<EFBFBD>
struct TGiftItem
{
int nItemSN;
TItem AddItem;
DWORD dwPartsColor1; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
DWORD dwPartsColor2;
TVehicleItem VehiclePart1;
TVehicleItem VehiclePart2;
};
struct TQReceiveGift: public TQHeader
{
#if defined(PRE_RECEIVEGIFTALL)
bool bReceiveAll;
char cTotalCount;
#endif // #if defined(PRE_RECEIVEGIFTALL)
TReceiveGiftData GiftData;
int nChannelID;
int nMapID;
WCHAR wszIP[IPLENMAX];
int nItemSN;
char cCount;
TGiftItem GiftItem[PACKAGEITEMMAX];
};
struct TAReceiveGift: public TAHeader
{
INT64 biPurchaseOrderID;
UINT nReceiverAccountDBID;
INT64 biReceiverCharacterDBID;
int nReceiverTotalMailCount;
int nReceiverNotReadMailCount;
int nReceiver7DaysLeftMailCount;
#if defined(PRE_ADD_VIP)
char cPayMethodCode;
#endif // #if defined(PRE_ADD_VIP)
#if defined(PRE_RECEIVEGIFTALL)
bool bReceiveAll;
char cTotalCount;
#endif // #if defined(PRE_RECEIVEGIFTALL)
int nItemSN;
char cCount;
TGiftItem GiftItem[PACKAGEITEMMAX];
};
// QUERY_GIFTRETURN
#if defined(PRE_ADD_GIFT_RETURN)
struct TQGiftReturn: public TQHeader
{
INT64 biPurchaseOrderID;
};
struct TAGiftReturn : public TAHeader
{
INT64 biPurchaseOrderID;
UINT nReceiverAccountDBID;
INT64 biReceiverCharacterDBID;
int nReceiverTotalMailCount;
};
#endif //#if defined(PRE_ADD_GIFT_RETURN)
#if defined(PRE_ADD_CASH_REFUND)
struct TQPaymentItemList : public TQHeader
{
INT64 biCharacterDBID;
};
struct TAPaymentItemList : public TAHeader
{
int nPaymentCount;
TPaymentItemInfoEx PaymentItemList[CASHINVENTORYMAX]; // <20><><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴµ<CFB4>..<2E>ϴ<EFBFBD> 150<35><30>
};
struct TAPaymentPackageItemList : public TAHeader
{
int nPaymentPackegeCount;
TPaymentPackageItemInfoEx PaymentPackageItemList[CASHINVENTORYMAX];
};
#endif
// QUERY_NOTIFYGIFT, // <20><><EFBFBD><EFBFBD> <20>˸<EFBFBD><CBB8><EFBFBD>
struct TQNotifyGift: public TQHeader
{
INT64 biCharacterDBID;
bool bNew;
};
struct TANotifyGift: public TAHeader
{
bool bNew;
int nGiftCount;
};
struct TQAddEffectItems:public TQHeader
{
INT64 biCharacterDBID;
char cItemLifeSpanRenewal;
int iItemID;
DBDNWorldDef::EffectItemGetCode::eCode Code;
INT64 biFKey;
int iPrice;
bool bEternityFlag;
int iItemLifeSpan;
int iProperty[5];
INT64 biItemSerial;
int iRemoveItemID;
};
// QUERY_MAKEGIFTBYQUEST, // <20><><EFBFBD><EFBFBD>Ʈ <20>Ϸ<EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQMakeGiftByQuest: public TQHeader
{
INT64 biCharacterDBID;
bool bPCBang;
int nQuestID;
WCHAR wszMemo[GIFTMESSAGEMAX];
int nLifeSpan;
char szIp[IPLENMAX];
bool bNewFlag;
char cRewardCount;
int nRewardItemSN[MAILATTACHITEMMAX];
};
struct TAMakeGiftByQuest: public TAHeader
{
int nGiftCount;
};
// QUERY_MAKEGIFTBYMISSION, // <20>̼<EFBFBD> <20>Ϸ<EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQMakeGiftByMission: public TQHeader
{
INT64 biCharacterDBID;
bool bPCBang;
int nMissionID;
WCHAR wszMemo[GIFTMESSAGEMAX];
int nLifeSpan;
char szIp[IPLENMAX];
bool bNewFlag;
char cRewardCount;
int nRewardItemSN[MISSIONREWARDITEMMAX];
};
struct TAMakeGiftByMission: public TAHeader
{
int nGiftCount;
};
// QUERY_MAKEGIFT
struct TQMakeGift: public TQHeader
{
INT64 biCharacterDBID;
bool bPCBang;
WCHAR wszMemo[GIFTMESSAGEMAX];
int nLifeSpan;
char cPayMethodCode; // PayMethodCode<64><65> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FKey<65><79><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
int iOrderKey;
char szIp[IPLENMAX];
bool bNewFlag;
char cRewardCount;
int nRewardItemSN[5];
};
struct TAMakeGift: public TAHeader
{
int nGiftCount;
};
// QUERY_INCREASEVIPPOINT, // VIP <20><20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
struct TQIncreaseVIPPoint: public TQHeader
{
INT64 biCharacterDBID;
int nBasicPoint; // VIP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǰ <20><><EFBFBD>Կ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD>Ʈ
INT64 biPurchaseOrderID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֹ<EFBFBD> ID
short wVIPPeriod; // VIP <20>Ⱓ. <20><><EFBFBD><EFBFBD> : Day. 30<33><30>, 90<39><30>, 180<38><30>, 360<36><30>
bool bAutoPay; // 0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1=<3D>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
};
struct TAIncreaseVIPPoint: public TAHeader
{
int nVIPTotalPoint; // <20><> VIP <20><><EFBFBD><EFBFBD>Ʈ
__time64_t tVIPEndDate; // VIP <20><20><> <20><><EFBFBD><EFBFBD>
};
// QUERY_GETVIPPOINT, // VIP <20><20><> <20><><EFBFBD><EFBFBD>Ʈ <20><>ȸ
struct TQGetVIPPoint: public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetVIPPoint: public TAHeader
{
int nVIPTotalPoint; // <20><> VIP <20><><EFBFBD><EFBFBD>Ʈ
__time64_t tVIPEndDate; // VIP <20><20><> <20><><EFBFBD><EFBFBD>
bool bAutoPay; // 0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1=<3D>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
};
// QUERY_MODVIPAUTOPAYFLAG, // VIP <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
struct TQModVIPAutoPayFlag: public TQHeader
{
INT64 biCharacterDBID;
bool bAutoPay; // 0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1=<3D>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
};
struct TAModVIPAutoPayFlag: public TAHeader
{
bool bAutoPay; // 0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1=<3D>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
};
// QUERY_GIFTBYCHEAT
struct TQGiftByCheat: public TQHeader
{
INT64 biCharacterDBID;
WCHAR wszCharacterName[NAMELENMAX];
int nItemSN;
char szIp[IPLENMAX];
};
// QUERY_PETAL
struct TQPetal: public TQHeader
{
INT64 biCharacterDBID;
int nUseItemID;
int nAddPetal;
char cInvenType; // eItemPositionType
BYTE cInvenIndex; // <20>Ϲ<EFBFBD><CFB9>κ<EFBFBD><CEBA>϶<EFBFBD><CFB6><EFBFBD> index<65>־<EFBFBD><D6BE>ָ<EFBFBD> <20><><><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
INT64 biInvenSerial;
int iMapID;
WCHAR wszIP[IPLENMAX];
};
struct TAPetal: public TAHeader
{
int nUseItemID;
int nTotalPetal;
char cInvenType; // eItemPositionType
BYTE cInvenIndex; // <20>Ϲ<EFBFBD><CFB9>κ<EFBFBD><CEBA>϶<EFBFBD><CFB6><EFBFBD> index<65>־<EFBFBD><D6BE>ָ<EFBFBD> <20><><><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
INT64 biInvenSerial;
};
// QUERY_CHEAT_GIFTCLEAR
struct TQCheatGiftClear : public TQHeader
{
INT64 biCharacterDBID;
};
#if defined( PRE_PVP_GAMBLEROOM )
struct TQAddPetalLogCode: public TQHeader
{
INT64 biCharacterDBID;
int nUseItemID;
int nAddPetal;
BYTE cLogCode;
INT64 nGambleDBID;
};
struct TQUsePetal: public TQHeader
{
INT64 biCharacterDBID;
int nDelPetal;
BYTE cLogCode;
INT64 nGambleDBID;
};
#endif
//#########################################################################################################################################
// MAINCMD_MSGADJUST
//#########################################################################################################################################
struct TQMsgAdjust :public TQHeader
{
INT64 biCharacterDBID;
int nChannelID;
int nVerifyMapIndex;
char cGateNo;
};
struct TAMsgAdjust
{
UINT nAccountDBID;
INT64 biCharacterDBID;
int nChannelID;
int nVerifyMapIndex;
char cGateNo;
};
#ifdef PRE_FIX_63822
struct TQMsgAdjustSeq :public TQHeader
{
};
struct TAMsgAdjustSeq :public TAHeader
{
};
#endif //#ifdef PRE_FIX_63822
//#########################################################################################################################################
// MAINCMD_LOG
//#########################################################################################################################################
struct TQAddPartyStartLog:public TQHeader
{
INT64 biPartyLogID;
};
struct TQAddPartyEndLog:public TQHeader
{
INT64 biPartyLogID;
};
struct TQAddStageStartLog:public TQHeader
{
INT64 biRoomLogID;
INT64 biPartyLogID;
BYTE cPartySize;
int iMapID;
DBDNWorldDef::DifficultyCode::eCode Code;
};
struct TQAddStageClearLog:public TQHeader
{
INT64 biRoomLogID;
INT64 biCharacterDBID;
int iJobID;
BYTE cCharacterLevel;
bool bClearFlag;
DBDNWorldDef::ClearGradeCode::eCode Code;
int iMaxComboCount;
BYTE cBossKillCount;
int iRewardCharacterExp;
int iBonusCharacterExp;
int iClearPoint;
int iBonusClearPoint;
int iClearTimeSec;
#if defined( PRE_ADD_36870 )
int iClearRound;
#endif // #if defined( PRE_ADD_36870 )
};
struct TQAddStageRewardLog:public TQHeader
{
INT64 biRoomLogID;
INT64 biCharacterDBID;
DBDNWorldDef::RewardBoxCode::eCode Code;
INT64 biRewardItemSerial;
int iRewardItemID;
int iRewardRet;
};
struct TQAddStageEndLog:public TQHeader
{
INT64 biRoomLogID;
DBDNWorldDef::WhereToGoCode::eCode Code;
};
struct TQAddPvPStartLog:public TQHeader
{
INT64 biRoomID1;
int iRoomID2;
BYTE cMaxPlayerCount;
DBDNWorldDef::PvPModeCode::eCode Code;
int iPvPModeDetailValue;
bool bBreakIntoFlag;
bool bItemUseFlag;
bool bSecretFlag;
int iMapID;
INT64 biRoomMasterCharacterDBID;
INT64 biCreateRoomCharacterDBID;
};
struct TQAddPvPResultLog:public TQHeader
{
INT64 biRoomID1;
int iRoomID2;
INT64 biCharacterDBID;
DBDNWorldDef::PvPTeamCode::eCode TeamCode;
bool bBreakIntoFlag;
DBDNWorldDef::PvPResultCode::eCode ResultCode;
int iPlayTimeSec;
int iPvPKillPoint;
int iPvPAssistPoint;
int iPvPSupportPoint;
int iVsKOWin[PvPCommon::Common::MaxClass];
int iVsKOLose[PvPCommon::Common::MaxClass];
int nOccupationCount;
BYTE cOccupationWinType;
};
struct TQAddPvPEndLog:public TQHeader
{
INT64 biRoomID1;
int iRoomID2;
};
struct TQAddNestGateStartLog:public TQHeader
{
INT64 biRoomID;
BYTE cPartySize;
int nGateID;
};
struct TQAddNestGateEndLog:public TQHeader
{
INT64 biRoomID;
BYTE cPartySize;
};
struct TQAddNestGateClearLog:public TQHeader
{
INT64 biRoomID;
bool bClearFlag;
INT64 biChracterDBID;
BYTE cCharacterJob;
BYTE cCharacterLevel;
};
#if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
struct TQModNPCLocation:public TQHeader
{
int iNPCID;
int iMapID;
};
struct TQModNPCFavor:public TQHeader
{
INT64 biCharacterDBID;
BYTE cCount;
TNpcReputation UpdateArr[NpcReputation::Common::MaxEffectNpcCount];
};
struct TQGetListNpcFavor:public TQHeader
{
INT64 biCharacterDBID;
int iMapID;
};
struct TAGetListNpcFavor:public TAHeader
{
bool bLastPage;
BYTE cCount;
TNpcReputation ReputationArr[30];
};
#endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
struct TQGetMasterPupilInfo:public TQHeader
{
INT64 biCharacterDBID;
bool bClientSend;
MasterSystem::EventType::eCode EventCode;
};
struct TAGetMasterPupilInfo:public TAHeader
{
bool bClientSend;
MasterSystem::EventType::eCode EventCode;
TMasterSystemSimpleInfo SimpleInfo;
};
struct TQAddMasterCharacter:public TQHeader
{
INT64 biCharacterDBID;
WCHAR wszSelfIntroduction[MasterSystem::Max::SelfIntrotuctionLen];
};
struct TAAddMasterCharacter:public TAHeader
{
INT64 biCharacterDBID;
WCHAR wszSelfIntroduction[MasterSystem::Max::SelfIntrotuctionLen];
};
struct TQDelMasterCharacter:public TQHeader
{
INT64 biCharacterDBID;
};
struct TADelMasterCharacter:public TAHeader
{
};
struct TQGetPageMasterCharacter:public TQHeader
{
UINT uiPage;
BYTE cJobCode; // 0 : <20><>ü
BYTE cGenderCode; // 0 : <20><>ü 1 : <20><><EFBFBD><EFBFBD> 2 : <20><><EFBFBD><EFBFBD>
};
struct TAGetPageMasterCharacter:public TAHeader
{
UINT uiPage;
BYTE cJobCode;
BYTE cGenderCode;
BYTE cCount;
TMasterInfo MasterInfoList[MasterSystem::Max::MasterPageRowCount];
};
struct TQGetListPupil:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListPupil:public TAHeader
{
INT64 biCharacterDBID;
BYTE cCount;
TPupilInfo PupilInfoList[MasterSystem::Max::PupilCount];
};
struct TQAddMasterAndPupil:public TQHeader
{
INT64 biMasterCharacterDBID;
INT64 biPupilCharacterDBID;
bool bCheckRegisterFlag;
bool bIsDirectMenu;
DBDNWorldDef::TransactorCode::eCode Code;
bool bIsSkip;
};
struct TAAddMasterAndPupil:public TAHeader
{
INT64 biMasterCharacterDBID;
INT64 biPupilCharacterDBID;
bool bIsDirectMenu;
DBDNWorldDef::TransactorCode::eCode Code;
UINT uiOppositeAccountDBID;
};
struct TQDelMasterAndPupil:public TQHeader
{
INT64 biMasterCharacterDBID;
INT64 biPupilCharacterDBID;
DBDNWorldDef::TransactorCode::eCode Code;
int iPenaltyDay;
int iPenaltyRespectPoint;
bool bIsSkip;
};
struct TADelMasterAndPupil:public TAHeader
{
INT64 biMasterCharacterDBID;
INT64 biPupilCharacterDBID;
DBDNWorldDef::TransactorCode::eCode Code;
int iPenaltyRespectPoint;
};
struct TQGetMasterCharacter:public TQHeader
{
DBDNWorldDef::GetMasterCharacterCode::eCode Code;
INT64 biMasterCharacterDBID;
INT64 biPupilCharacterDBID;
};
struct TAGetMasterCharacterType1:public TAHeader
{
INT64 biMasterCharacterDBID;
TMasterCharacterInfo MasterCharacterInfo;
};
struct TAGetMasterCharacterType2:public TAHeader
{
INT64 biPupilCharacterDBID;
INT64 biMasterCharacterDBID;
TMyMasterInfo MasterInfo;
};
struct TAGetMasterCharacterType3:public TAHeader
{
INT64 biCharacterDBID;
WCHAR wszCharName[NAMELENMAX];
WCHAR wszSelfIntroduction[MasterSystem::Max::SelfIntrotuctionLen];
BYTE cGenderCode; // 0 : <20><>ü 1 : <20><><EFBFBD><EFBFBD> 2 : <20><><EFBFBD><EFBFBD>
BYTE cLevel;
BYTE cJob;
int iGraduateCount;
int iRespectPoint;
};
struct TQGetListMyMasterAndClassmate:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListMyMasterAndClassmate:public TAHeader
{
INT64 biCharacterDBID;
BYTE cCount;
TMasterAndClassmateInfo MasterAndClassmateInfoList[MasterSystem::Max::MasterAndClassmateCount];
};
struct TQGetMyClassmate:public TQHeader
{
INT64 biCharacterDBID;
INT64 biClassmateCharacterDBID;
};
struct TAGetMyClassmate:public TAHeader
{
TClassmateInfo ClassmateInfo;
};
struct TQGraduate:public TQHeader
{
INT64 biCharacterDBID;
WCHAR wszPupilCharName[NAMELENMAX];
};
struct TAGraduate:public TAHeader
{
char cWorldSetID;
WCHAR wszPupilCharName[NAMELENMAX];
BYTE cCount;
INT64 biMasterCharacterDBIDList[MasterSystem::Max::MasterCount];
};
struct TQModRespectPoint:public TQHeader
{
INT64 biCharacterDBID;
int iRespectPoint;
};
struct TAModRespectPoint:public TAHeader
{
int iRespectPoint;
};
struct TQModMasterFavorPoint:public TQHeader
{
INT64 biMasterCharacterDBID;
INT64 biPupilCharacterDBID;
int iFavorPoint;
};
struct TAModMasterFavorPoint:public TAHeader
{
INT64 biMasterCharacterDBID;
INT64 biPupilCharacterDBID;
int iFavorPoint;
};
struct TQGetMasterAndFavorPoint:public TQHeader
{
WCHAR wszPupilCharName[NAMELENMAX];
INT64 biPupilCharacterDBID;
BYTE cLevel;
};
struct TAGetMasterAndFavorPoint:public TAHeader
{
WCHAR wszPupilCharName[NAMELENMAX];
INT64 biPupilCharacterDBID;
BYTE cLevel;
BYTE cWorldSetID;
BYTE cCount;
TMasterAndFavorPoint MasterAndFavorPoint[MasterSystem::Max::MasterCount];
};
struct TQGetMasterSystemCountInfo:public TQHeader
{
bool bClientSend;
INT64 biCharacterDBID;
BYTE cCount;
INT64 biPartyCharacterDBID[PARTYCOUNTMAX-1];
};
struct TAGetMasterSystemCountInfo:public TAHeader
{
INT64 biCharacterDBID;
bool bClientSend;
int iMasterCount;
int iPupilCount;
int iClassmateCount;
};
struct TQModMasterSystemGraduateCount:public TQHeader
{
INT64 biCharacterDBID;
int iGraduateCount;
};
#if defined( PRE_ADD_SECONDARY_SKILL )
struct TQAddSecondarySkill:public TQHeader
{
INT64 biCharacterDBID;
int iSecondarySkillID;
SecondarySkill::Type::eType Type;
};
struct TQDelSecondarySkill:public TQHeader
{
INT64 biCharacterDBID;
int iSecondarySkillID;
};
struct TQGetListSecondarySkill:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListSecondarySkill:public TAHeader
{
BYTE cCount;
TSecondarySkill SkillList[SecondarySkill::Max::LearnSecondarySkill];
};
struct TQModSecondarySkillExp:public TQHeader
{
INT64 biCharacterDBID;
int iSecondarySkillID;
int iSecondarySkillExp; // <20><><EFBFBD><EFBFBD>ġ
int iSecondarySkillExpAfter; // <20><><EFBFBD><EFBFBD> <20><> exp(<28>񱳰<EFBFBD>)
};
struct TQSetManufactureSkillRecipe:public TQHeader
{
INT64 biCharacterDBID;
DBDNWorldDef::ItemLocation::eCode LocationCode;
INT64 biItemSerial;
int iSecondarySkillID;
};
struct TQExtractManufactureSkillRecipe:public TQHeader
{
INT64 biCharacterDBID;
INT64 biItemSerial;
DBDNWorldDef::ItemLocation::eCode LocationCode;
};
struct TQDelManufactureSkillRecipe:public TQHeader
{
INT64 biCharacterDBID;
INT64 biItemSerial;
char szIP[IPLENMAX];
};
struct TQGetListManufactureSkillRecipe:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListManufactureSkillRecipe:public TAHeader
{
BYTE cCount;
TSecondarySkillRecipe RecipeList[SecondarySkill::Max::LearnManufactureRecipe];
};
struct TQModManufactureSkillRecipe:public TQHeader
{
INT64 biCharacterDBID;
INT64 biItemSerial;
USHORT nDurability; // <20><><EFBFBD><EFBFBD>ġ
USHORT nDurabilityAfter; // <20><><EFBFBD><EFBFBD> <20><> Durability(<28>񱳰<EFBFBD>)
};
#endif // #if defined( PRE_ADD_SECONDARY_SKILL )
struct TQGetListFarm:public TQHeader
{
char cEnableFlag; // 0:Disable 1:Enable -1:ALL
};
struct TAGetListFarm: public TAHeader
{
BYTE cCount;
TFarmItemFromDB Farms[Farm::Max::FARMCOUNT];
};
struct TQGetListField:public TQHeader
{
int iFarmDBID;
int iRoomID;
};
struct TAGetListField:public TAHeader
{
int iFarmDBID;
int iRoomID;
BYTE cCount;
TFarmField Fields[Farm::Max::FIELDCOUNT];
};
struct TQGetListFieldForCharacter:public TQHeader
{
int iRoomID;
INT64 biCharacterDBID;
};
struct TAGetListFieldForCharacter:public TAHeader
{
int iRoomID; // RoomID <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD>մϴ<D5B4>!!!!!!
INT64 biCharacterDBID;
BYTE cCount;
TFarmFieldForCharacter Fields[Farm::Max::PRIVATEFIELDCOUNT];
};
struct TQGetListFieldByCharacter:public TQHeader
{
INT64 biCharacterDBID;
bool bRefreshGate;
};
struct TAGetListFieldByCharacter:public TAHeader
{
bool bRefreshGate;
BYTE cCount;
TFarmFieldPartial Fields[Farm::Max::FIELDCOUNT_PERCHARACTER];
};
struct TQAddField:public TQHeader
{
int iRoomID;
int iFarmDBID;
short nFieldIndex;
INT64 biCharacterDBID;
int iItemID;
int iElapsedTimeSec;
int iAttachItemID;
int iMaxFieldCount;
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ſ<EFBFBD> <20><><EFBFBD><EFBFBD>
BYTE cInvenIndex;
INT64 biSeedItemSerial;
int iMapID;
WCHAR wszIP[IPLENMAX];
BYTE cAttachCount;
TFarmAttachItemSerial AttachItems[Farm::Max::PLANTING_ATTACHITEM];
};
struct TAAddField:public TAHeader
{
int iRoomID; // RoomID <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD>մϴ<D5B4>!!!!!!
short nFieldIndex;
INT64 biCharacterDBID;
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ſ<EFBFBD> <20><><EFBFBD><EFBFBD>
BYTE cInvenIndex;
INT64 biSeedItemSerial;
BYTE cAttachCount;
TFarmAttachItemSerial AttachItems[Farm::Max::PLANTING_ATTACHITEM];
};
struct TQDelField:public TQHeader
{
int iFarmDBID;
int iRoomID;
short nFieldIndex;
};
struct TADelField:public TAHeader
{
int iRoomID; // RoomID <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD>մϴ<D5B4>!!!!!!
short nFieldIndex;
};
struct TQDelFieldForCharacter:public TQHeader
{
int iRoomID;
short nFieldIndex;
INT64 biCharacterDBID;
};
struct TADelFieldForCharacter:public TAHeader
{
int iRoomID; // RoomID <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD>մϴ<D5B4>!!!!!!
short nFieldIndex;
INT64 biCharacterDBID;
};
struct TQAddFieldAttachment:public TQHeader
{
int iRoomID;
int iFarmDBID;
INT64 biCharacterDBID;
short nFieldIndex;
int iAttachItemID;
// AttachItem <20><><EFBFBD>ſ<EFBFBD> <20><><EFBFBD><EFBFBD>
#if defined( PRE_ADD_VIP_FARM )
bool bVirtualAttach; // vip<69><70><EFBFBD><20><><EFBFBD><EFBFBD> boostitem <20>ִ°<D6B4> ó<><C3B3> true <20>ΰ<EFBFBD><CEB0><EFBFBD> attach<63><68> <20>̷<EFBFBD><CCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
#endif // #if defined( PRE_ADD_VIP_FARM )
BYTE cInvenType;
BYTE cInvenIndex;
INT64 biAttachItemSerial;
int iMapID;
WCHAR wszIP[IPLENMAX];
};
struct TAAddFieldAttachment:public TAHeader
{
int iRoomID; // RoomID <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD>մϴ<D5B4>!!!!!!
INT64 biCharacterDBID;
short nFieldIndex;
int iAttachItemID;
// AttachItem <20><><EFBFBD>ſ<EFBFBD> <20><><EFBFBD><EFBFBD>
#if defined( PRE_ADD_VIP_FARM )
bool bVirtualAttach; // vip<69><70><EFBFBD><20><><EFBFBD><EFBFBD> boostitem <20>ִ°<D6B4> ó<><C3B3> true <20>ΰ<EFBFBD><CEB0><EFBFBD> attach<63><68> <20>̷<EFBFBD><CCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
#endif // #if defined( PRE_ADD_VIP_FARM )
BYTE cInvenType;
BYTE cInvenIndex;
INT64 biAttachItemSerial;
};
struct TUpdateFieldElapsedTime
{
short nFieldIndex;
int iElapsedTimeSec;
};
struct TQModFieldElapsedTime:public TQHeader
{
int iFarmDBID;
BYTE cCount;
TUpdateFieldElapsedTime Updates[Farm::Max::FIELDCOUNT];
};
struct TQModFieldForCharacterElapsedTime:public TQHeader
{
INT64 biCharacterDBID;
BYTE cCount;
TUpdateFieldElapsedTime Updates[Farm::Max::PRIVATEFIELDCOUNT];
};
struct TAModFieldForCharacterElapsedTime:public TAHeader
{
};
struct TAModFieldElapsedTime:public TAHeader
{
};
struct THarvestItem
{
INT64 biItemSerial;
int iItemID;
short nItemCount;
bool bSoulBoundFlag;
BYTE cSealCount;
BYTE cItemOption;
bool bEternityFlag;
int iLifeSpan;
};
struct TQHarvest:public TQHeader
{
int iFarmDBID;
int iRoomID;
short nFieldIndex;
INT64 biCharacterDBID;
INT64 biHarvestCharacterDBID;
int iMapID;
CHAR szIP[IPLENMAX];
THarvestItem HarvestItems[Farm::Max::HARVESTITEM_COUNT];
};
struct TAHarvest:public TAHeader
{
int iRoomID; // RoomID <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD>մϴ<D5B4>!!!!!!
int nFieldIndex;
INT64 biCharacterDBID;
};
struct TQGetListHarvestDepotItem:public TQHeader
{
INT64 biCharacterDBID;
INT64 biLastUniqueID;
};
struct TAGetListHarvestDepotItem:public TAHeader
{
INT64 biLastUniqueID;
BYTE cCount;
TFarmWareHouseItem Items[Farm::Max::HARVESTDEPOT_COUNT];
};
struct TQGetCountHarvestDepotItem:public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetCountHarvestDepotItem:public TAHeader
{
int iCount;
};
struct TQGetFieldCountByCharacter:public TQHeader
{
INT64 biCharacterDBID;
bool bIsSend;
};
struct TAGetFieldCountByCharacter:public TAHeader
{
int iFieldCount;
bool bIsSend;
};
struct TQUpdateFarmActivation : public TQHeader //QUERY_UPDATEFARM_ACTIVATION
{
int nFarmDBID;
};
struct TFarmActivation
{
int nFarmDBID;
bool bFarmActivation;
};
struct TAUpdateFarmActivation : public TAHeader //QUERY_UPDATEFARM_ACTIVATION
{
BYTE cCount;
TFarmActivation Farms[Farm::Max::FARMCOUNT];
};
struct TQGetFieldItemCount:public TQHeader
{
INT64 biCharacterDBID;
int iItemID;
int iRoomID;
int iAreaIndex;
UINT nSessionID;
};
struct TAGetFieldItemCount:public TAHeader
{
int iRoomID;
int iAreaIndex;
int iItemCount;
UINT nSessionID;
};
struct TQGetGuildRecruit:public TQHeader
{
UINT uiPage;
BYTE cJobCode;
BYTE cLevel;
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
BYTE cPurposeCode;
WCHAR wszGuildName[GUILDNAME_MAX];
BYTE cSortType;
#endif
};
struct TAGetGuildRecruit:public TAHeader
{
UINT uiPage;
BYTE cJobCode;
BYTE cLevel;
BYTE cCount;
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
BYTE cPurposeCode;
WCHAR wszGuildName[GUILDNAME_MAX];
BYTE cSortType;
#endif
TGuildRecruitInfo GuildRecruitList[GuildRecruitSystem::Max::GuildRecruitRowCount];
};
struct TQGetGuildRecruitCharacter:public TQHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
};
struct TAGetGuildRecruitCharacter:public TAHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
BYTE cCount;
TGuildRecruitCharacter GuildRecruitCharacterList[GuildRecruitSystem::Max::GuildRecruitCharacterRowCount];
};
struct TQGetMyGuildRecruit:public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
};
struct TAGetMyGuildRecruit:public TAHeader
{
BYTE cCount;
TGuildRecruitInfo GuildRecruitList[GuildRecruitSystem::Max::MaxRequestCount];
};
struct TQGetGuildRecruitRequestCount:public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
};
struct TAGetGuildRecruitRequestCount:public TAHeader
{
BYTE cCount;
};
struct TQRegisterInfoGuildRecruit:public TQHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
};
struct TARegisterInfoGuildRecruit:public TAHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
BYTE cClassCode[CLASSKINDMAX]; // <20><><EFBFBD><EFBFBD>Ŭ<EFBFBD><C5AC><EFBFBD><EFBFBD>
int nMinLevel; // <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD>
int nMaxLevel; // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>
WCHAR wszGuildIntroduction[GUILDRECRUITINTRODUCE+1]; //<2F><><EFBFBD><EFBFBD> <20>Ұ<EFBFBD><D2B0><EFBFBD>
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
BYTE cPurposeCode; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(1:ģ<><C4A3> 2:<3A><><EFBFBD><EFBFBD> 3:<3A>׽<EFBFBD>Ʈ 4:<3A>ݷμ<DDB7><CEBC><EFBFBD>
bool bCheckHomePage; //<2F><><EFBFBD><EFBFBD> Ȩ<><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
};
struct TQRegisterOnGuildRecruit:public TQHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
BYTE cClassCode[CLASSKINDMAX]; // <20><><EFBFBD><EFBFBD>Ŭ<EFBFBD><C5AC><EFBFBD><EFBFBD>
int nMinLevel; // <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD>
int nMaxLevel; // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>
WCHAR wszGuildIntroduction[GUILDRECRUITINTRODUCE+1]; //<2F><><EFBFBD><EFBFBD> <20>Ұ<EFBFBD><D2B0><EFBFBD>
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
BYTE cPurposeCode; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(1:ģ<><C4A3> 2:<3A><><EFBFBD><EFBFBD> 3:<3A>׽<EFBFBD>Ʈ 4:<3A>ݷμ<DDB7><CEBC><EFBFBD>
bool bCheckHomePage; //<2F><><EFBFBD><EFBFBD> Ȩ<><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
};
struct TARegisterOnGuildRecruit:public TAHeader
{
};
struct TQRegisterModGuildRecruit:public TQHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
BYTE cClassCode[CLASSKINDMAX]; // <20><><EFBFBD><EFBFBD>Ŭ<EFBFBD><C5AC><EFBFBD><EFBFBD>
int nMinLevel; // <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD>
int nMaxLevel; // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>
WCHAR wszGuildIntroduction[GUILDRECRUITINTRODUCE+1]; //<2F><><EFBFBD><EFBFBD> <20>Ұ<EFBFBD><D2B0><EFBFBD>
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
BYTE cPurposeCode; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(1:ģ<><C4A3> 2:<3A><><EFBFBD><EFBFBD> 3:<3A>׽<EFBFBD>Ʈ 4:<3A>ݷμ<DDB7><CEBC><EFBFBD>
bool bCheckHomePage; //<2F><><EFBFBD><EFBFBD> Ȩ<><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
};
struct TARegisterModGuildRecruit:public TAHeader
{
};
struct TQRegisterOffGuildRecruit:public TQHeader
{
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
};
struct TARegisterOffGuildRecruit:public TAHeader
{
};
struct TQGuildRecruitRequestOn:public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
};
struct TAGuildRecruitRequestOn:public TAHeader
{
};
struct TQGuildRecruitRequestOff:public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
};
struct TAGuildRecruitRequestOff:public TAHeader
{
};
struct TQGuildRecruitAcceptOn:public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
INT64 biAcceptCharacterDBID; // <20><><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
WCHAR wszToCharacterName[NAMELENMAX];
short wGuildSize; // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
};
struct TAGuildRecruitAcceptOn:public TAHeader
{
UINT nAddAccountDBID; //<2F>߰<EFBFBD><DFB0><EFBFBD> DBID
INT64 biAddCharacterDBID; // <20>߰<EFBFBD><DFB0><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
WCHAR wszToCharacterName[NAMELENMAX];
BYTE cJob; // <20><><EFBFBD><EFBFBD>
BYTE cLevel; // <20><><EFBFBD><EFBFBD>
__time64_t JoinDate; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>¥
bool bDelGuildRecruit; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
struct TQGuildRecruitAcceptOff:public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
INT64 biDenyCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
WCHAR wszToCharacterName[NAMELENMAX];
};
struct TAGuildRecruitAcceptOff:public TAHeader
{
WCHAR wszToCharacterName[NAMELENMAX];
INT64 biDenyCharacterDBID;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
};
struct TQDelGuildRecruit:public TQHeader
{
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
UINT nGuildDBID; // <20><><EFBFBD><EFBFBD> DBID
BYTE nDelType; // <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8>(1:<3A><><EFBFBD><EFBFBD> 2:<3A><><EFBFBD><EFBFBD>)
};
#if defined (PRE_ADD_DONATION)
struct TQDonate : public TQHeader
{
INT64 biCharacterDBID;
time_t tDonationTime;
INT64 nCoin;
};
struct TADonate : public TAHeader
{
};
struct TQDonationRanking : public TQHeader
{
INT64 biCharacterDBID;
};
struct TADonationRaking : public TAHeader
{
Donation::Ranking Ranking[Donation::MAX_RANKING];
INT64 nMyCoin;
int nMyRanking;
};
struct TQDonationTopRanker : public TQHeader
{
};
struct TADonationTopRanker : public TAHeader
{
char cWorldID;
INT64 biCharacterDBID;
WCHAR wszCharacterName[NAMELENMAX];
INT64 nCoin;
};
#endif // #if defined (PRE_ADD_DONATION)
struct TQMaintenanceInfo : public TQHeader
{
int nFlag;
};
#if defined( PRE_PARTY_DB )
struct DBCreateParty
{
Party::Data PartyData;
#if defined(PRE_FIX_62281)
WCHAR wszAfterInviteCharacterName[NAMELENMAX];
#else
UINT uiAfterInviteAccountDBID;
#endif
};
struct TQAddParty:public TQHeader
{
DBCreateParty Data;
bool bCheat;
};
struct TAAddParty:public TAHeader
{
DBCreateParty Data;
bool bCheat;
};
struct DBAddPartyMemberGame
{
INT64 biCharacterDBID;
UINT nSessionID;
#if defined( PRE_ADD_NEWCOMEBACK )
bool bCheckComebackAppellation;
#endif
};
struct TQAddPartyAndMemberGame:public TQHeader
{
DBCreateParty Data;
UINT nKickedMemberList[PARTYKICKMAX];
DBAddPartyMemberGame Member[PARTYMAX]; // <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD> <20><><EFBFBD><EFBFBD> ű<><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ƴ<EFBFBD>
};
struct TAAddPartyAndMemberGame:public TAHeader
{
DBCreateParty Data;
UINT nKickedMemberList[PARTYKICKMAX];
};
struct TQAddPartyAndMemberVillage:public TQHeader
{
DBCreateParty Data;
int nKickCount;
UINT nVoiceChannelID;
UINT nKickedMemberList[PARTYKICKMAX];
TMemberInfo MemberInfo[PARTYMAX];
};
struct TAAddPartyAndMemberVillage:public TAHeader
{
DBCreateParty Data;
UINT nVoiceChannelID;
UINT nKickedMemberList[PARTYKICKMAX];
TMemberInfo MemberInfo[PARTYMAX];
};
struct TQModParty:public TQHeader
{
Party::Data PartyData;
int iRoomID; // <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
struct TAModParty:public TAHeader
{
Party::Data PartyData;
int iRoomID; // <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
struct TQDelParty:public TQHeader
{
TPARTYID PartyID;
};
struct TADelParty:public TAHeader
{
TPARTYID PartyID;
};
struct TQDelPartyForServer:public TQHeader
{
int iServerID;
};
struct TADelPartyForServer:public TAHeader
{
int iServerID;
};
struct TQJoinParty:public TQHeader
{
TPARTYID PartyID;
INT64 biCharacterDBID;
UINT nSessionID;
int iMaxUserCount;
#if defined( PRE_ADD_NEWCOMEBACK )
bool bCheckComeBackParty;
#endif
};
struct TAJoinParty:public TAHeader
{
TPARTYID PartyID;
INT64 biCharacterDBID;
UINT nSessionID;
BYTE cThreadID;
};
struct TQOutParty:public TQHeader
{
TPARTYID PartyID;
INT64 biCharacterDBID;
UINT nSessionID;
Party::QueryOutPartyType::eCode Type;
};
struct TAOutParty:public TAHeader
{
TPARTYID PartyID;
INT64 biCharacterDBID;
UINT nSessionID;
Party::QueryOutPartyType::eCode Type;
bool bIsDelParty;
};
struct TQGetListParty:public TQHeader
{
int iExecptServerID;
};
struct TAGetListParty:public TAHeader
{
bool bIsStart;
short nCount;
Party::Data DataArr[100];
};
struct TQGetListPartyMember:public TQHeader
{
TPARTYID PartyID;
};
struct TAGetListPartyMember:public TAHeader
{
TPARTYID PartyID;
ePartyType PartyType;
short nCount;
Party::MemberData MemberData[PARTYCOUNTMAX];
};
struct TQModPartyLeader:public TQHeader
{
TPARTYID PartyID;
INT64 biCharacterDBID;
};
struct TAModPartyLeader:public TAHeader
{
};
#if defined( PRE_ADD_NEWCOMEBACK )
struct TQModComebackFlag:public TQHeader
{
bool bRewardComeback;
};
struct TQModPartyMemberComeback:public TQHeader
{
TPARTYID PartyID;
INT64 biCharacterDBID;
bool bComebackAppellation;
};
#endif // #if defined( PRE_ADD_NEWCOMEBACK )
#endif // #if defined( PRE_PARTY_DB )
#if defined(PRE_ADD_DOORS_PROJECT)
struct TQSaveCharacterAbility : public TQHeader
{
INT64 biCharacterDBID;
int nCharacterAblity[Doors::CharacterAbility::MaxType];
};
#endif // #if defined(PRE_ADD_DOORS_PROJECT)
#if defined (PRE_ADD_BESTFRIEND)
// QUERY_GET_BESTFRIEND
struct TQGetBestFriend: public TQHeader
{
bool bSend;
INT64 biCharacterDBID;
};
struct TAGetBestFriend: public TAHeader
{
bool bSend;
TBestFriendInfo Info;
};
// QUERY_REGIST_BESTFRIEND
struct TQRegistBestFriend: public TQHeader
{
UINT nFromAccountDBID;
INT64 biFromCharacterDBID;
WCHAR wszFromName[NAMELENMAX];
UINT nToAccountDBID;
INT64 biToCharacterDBID;
WCHAR wszToName[NAMELENMAX];
int nItemID;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD><C5BF><EFBFBD><EFBFBD><EFBFBD>
INT64 biRegistSerial;
int nMapID;
WCHAR wszIP[IPLENMAX];
};
struct TARegistBestFriend: public TAHeader
{
UINT nFromAccountDBID;
INT64 biFromCharacterDBID;
WCHAR wszFromName[NAMELENMAX];
UINT nToAccountDBID;
WCHAR wszToName[NAMELENMAX];
int nItemID;
INT64 biRegistSerial;
};
// QUERY_CANCEL_BESTFRIEND
struct TQCancelBestFriend: public TQHeader
{
INT64 biCharacterDBID;
bool bCancel;
};
struct TACancelBestFriend: public TAHeader
{
INT64 biCharacterDBID;
bool bCancel;
};
// QUERY_CLOSE_BESTFRIEND
struct TQCloseBestFriend: public TQHeader
{
INT64 biCharacterDBID;
};
struct TACloseBestFriend: public TAHeader
{
INT64 biCharacterDBID;
};
// QUERY_EDIT_BESTFRIENDMEMO
struct TQEditBestFriendMemo: public TQHeader
{
INT64 biCharacterDBID;
WCHAR wszMemo[BESTFRIENDMEMOMAX];
};
struct TAEditBestFriendMemo: public TAHeader
{
INT64 biToCharacterDBID;
WCHAR wszMemo[BESTFRIENDMEMOMAX];
};
#endif // #if defined (PRE_ADD_BESTFRIEND)
#if defined( PRE_ADD_58761 )
struct TQNestDeathLog: public TQHeader
{
INT64 biCharacterDBID;
INT64 biRoomID;
int nMonterID;
int nSkillID;
BYTE cCharacterJob;
BYTE cCharacterLevel;
};
#endif
//#########################################################################################################################################
// MAINCMD_PRIVATECHATCHANNEL
//#########################################################################################################################################
#if defined( PRE_PRIVATECHAT_CHANNEL )
struct TQPrivateChatChannelInfo: public TQHeader
{
};
struct TAPrivateChatChannelInfo: public TAHeader
{
char cWorldSetID;
int nCount;
TPrivateChatChannelInfo tPrivateChatChannel[PrivateChatChannel::Common::GetDBMaxChannel];
};
struct TQPrivateChatChannelMember: public TQHeader
{
INT64 nPrivateChatChannelID;
};
struct TAPrivateChatChannelMember: public TAHeader
{
char cWorldSetID;
INT64 nPrivateChatChannelID;
int nCount;
TPrivateChatChannelMember Member[PrivateChatChannel::Common::MaxMemberCount];
};
struct TQAddPrivateChatChannel: public TQHeader
{
time_t tJoinDate;
WCHAR wszCharacterName[NAMELENMAX];
TPrivateChatChannelInfo tPrivateChatChannel;
};
struct TAAddPrivateChatChannel: public TAHeader
{
char cWorldSetID;
time_t tJoinDate;
WCHAR wszCharacterName[NAMELENMAX];
TPrivateChatChannelInfo tPrivateChatChannel;
};
struct TQAddPrivateChatMember: public TQHeader
{
int nServerID;
PrivateChatChannel::Common::eModType eType;
INT64 nPrivateChatChannelID;
TPrivateChatChannelMember Member;
};
struct TAAddPrivateChatMember: public TAHeader
{
char cWorldSetID;
INT64 nPrivateChatChannelID;
TPrivateChatChannelMember Member;
};
struct TQInvitePrivateChatMember: public TQHeader
{
int nServerID;
UINT nMasterAccountDBID;
INT64 nPrivateChatChannelID;
TPrivateChatChannelMember Member;
};
struct TAInvitePrivateChatMember: public TAHeader
{
char cWorldSetID;
UINT nMasterAccountDBID;
INT64 nPrivateChatChannelID;
TPrivateChatChannelMember Member;
};
struct TQDelPrivateChatMember: public TQHeader
{
PrivateChatChannel::Common::eModType eType;
INT64 biCharacterDBID;
WCHAR wszName[NAMELENMAX];
INT64 nPrivateChatChannelID;
};
struct TADelPrivateChatMember: public TAHeader
{
char cWorldSetID;
INT64 biCharacterDBID;
WCHAR wszName[NAMELENMAX];
INT64 nPrivateChatChannelID;
};
struct TQModPrivateChatChannelInfo: public TQHeader
{
PrivateChatChannel::Common::eModType eType;
INT64 nPrivateChatChannelID;
WCHAR wszChannelName[PrivateChatChannel::Common::MaxNameLen];
int nPassWord;
INT64 biCharacterDBID;
};
struct TAModPrivateChatChannelInfo: public TAHeader
{
char cWorldSetID;
PrivateChatChannel::Common::eModType eType;
INT64 nPrivateChatChannelID;
WCHAR wszChannelName[PrivateChatChannel::Common::MaxNameLen];
int nPassWord;
INT64 biCharacterDBID;
};
struct TQModPrivateChatMemberServerID: public TQHeader
{
int nServerID;
INT64 biCharacterDBID;
};
struct TQDelPrivateChatMemberServerID: public TQHeader
{
int nServerID;
};
struct TADelPrivateChatMemberServerID: public TAHeader
{
char cWorldSetID;
int nCount;
TPrivateMemberDelServer Member[PrivateChatChannel::Common::MaxMemberCount];
};
#endif
#if defined( PRE_FIX_67546 )
struct TQAddThreadCount: public TQHeader
{
BYTE cChoiceThreadID;
};
struct TAAddThreadCount: public TAHeader
{
int nConnectionCount[THREADMAX];
};
#endif
#if defined( PRE_WORLDCOMBINE_PVP )
struct TQAddWorldPvPRoom: public TQHeader
{
TWorldPvPMissionRoom TMissionRoom;
int nServerID;
int nRoomID;
WCHAR wszRoomName[PARTYNAMELENMAX];
bool bBreakIntoFlag;
bool bRegulationFlag;
bool bObserverFlag;
bool bRandomFlag;
int nPassWord;
};
struct TAAddWorldPvPRoom: public TAHeader
{
char cWorldSetID;
int nRoomIndex;
int nRoomID;
int nPvPRoomDBIndex;
TWorldPvPRoomDBData Data;
};
struct TQAddWorldPvPRoomMember: public TQHeader
{
int nWorldPvPRoomDBIndex;
INT64 biCharacterDBID;
bool bObserverFlag;
BYTE cMaxPlayers;
};
struct TQDelWorldPvPRoom: public TQHeader
{
int nWorldPvPRoomDBIndex;
};
struct TQDelWorldPvPRoomMember: public TQHeader
{
int nWorldPvPRoomDBIndex;
INT64 biCharacterDBID;
};
struct TQDelWorldPvPRoomForServer: public TQHeader
{
int nServerID;
};
struct TQGetListWorldPvPRoom: public TQHeader
{
int nCombineWorldID;
};
struct TAGetListWorldPvPRoom: public TAHeader
{
int nCount;
TWorldPvPRoomDBData WorldPvPRoomData[WorldPvPMissionRoom::Common::MaxDBDataCount];
};
struct TQUpdateWorldPvPRoom: public TQHeader
{
};
struct TAUpdateWorldPvPRoom: public TAHeader
{
bool bFlag;
};
#endif
//#########################################################################################################################################
// MAINCMD_ACTOZCOMMON
//#########################################################################################################################################
// QUERY_UPDATECHARACTERINFO
struct TQActozUpdateCharacterInfo: public TQHeader
{
char cUpdateType;
INT64 biCharacterDBID;
BYTE cJob;
int nLevel;
int nExp;
INT64 biCoin;
char szIp[IPLENMAX];
};
// QUERY_UPDATECHARACTERNAME
struct TQActozUpdateCharacterName: public TQHeader
{
INT64 biCharacterDBID;
char szCharacterName[NAMELENMAX];
};
//#########################################################################################################################################
// MAINCMD_ALTEIAWORLD
//#########################################################################################################################################
#if defined( PRE_ALTEIAWORLD_EXPLORE )
struct TQResetAlteiaWorldEvent: public TQHeader
{
};
struct TQAddAlteiaWorldEvent: public TQHeader
{
time_t tAlteiaEventStartTime;
time_t tAlteiaEventEndTime;
};
struct TQADDAlteiaWorldPlayResult: public TQHeader
{
INT64 biCharacterDBID;
int nGoldKeyCount;
DWORD dwPlayTime;
int nGuildID;
};
struct TQGetAlteiaWorldInfo: public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetAlteiaWorldInfo: public TAHeader
{
int nBestGoldKeyCount;
UINT uiBestPlayTime;
int nDailyPlayCount;
int nWeeklyPlayCount;
};
struct TQGetAlteiaWorldRankInfo: public TQHeader
{
int nMaxRank;
AlteiaWorld::Info::eInfoType eType;
};
struct TAGetAlteiaWorldPrivateGoldKeyRank: public TAHeader
{
int nCount;
AlteiaWorld::GoldKeyRankMemberInfo RankMemberInfo[AlteiaWorld::Common::MaxRankCount];
};
struct TAGetAlteiaWorldPrivatePlayTimeRank: public TAHeader
{
int nCount;
AlteiaWorld::PlayTimeRankMemberInfo RankMemberInfo[AlteiaWorld::Common::MaxRankCount];
};
struct TAGetAlteiaWorldGuildGoldKeyRank: public TAHeader
{
int nCount;
AlteiaWorld::GuildGoldKeyRankInfo RankMemberInfo[AlteiaWorld::Common::MaxRankCount];
};
struct TQGetAlteiaWorldSendTicketList: public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetAlteiaWorldSendTicketList: public TAHeader
{
int nSendTicketCount;
int nRecvTicketCount;
INT64 biCharacterDBID[AlteiaWorld::Common::MaxSendCount];
};
struct TQAddAlteiaWorldSendTicketList: public TQHeader
{
INT64 biCharacterDBID;
INT64 biSendCharacterDBID;
WCHAR wszSendCharacterName[NAMELENMAX];
int nSendMaxCount;
};
struct TAAddAlteiaWorldSendTicketList: public TAHeader
{
INT64 biSendCharacterDBID;
WCHAR wszSendCharacterName[NAMELENMAX];
};
struct TQResetAlteiaWorldPlayAlteia: public TQHeader
{
INT64 biCharacterDBID;
AlteiaWorld::ResetType::eResetType eType;
};
#endif // #if defined( PRE_ALTEIAWORLD_EXPLORE )
//#########################################################################################################################################
// MAINCMD_STAMPSYSTEM
//#########################################################################################################################################
#if defined( PRE_ADD_STAMPSYSTEM )
struct TQGetListCompleteChallenges: public TQHeader
{
INT64 biCharacterDBID;
};
struct TAGetListCompleteChallenges: public TAHeader
{
StampSystem::StampCompleteInfo CompleteInfo[StampSystem::Common::MaxStampSlotCount];
};
struct TQInitCompleteChallenge: public TQHeader
{
INT64 biCharacterDBID;
};
struct TQAddCompleteChallenge: public TQHeader
{
INT64 biCharacterDBID;
BYTE cChallengeIndex;
int nWeekDay;
};
struct TAAddCompleteChallenge: public TAHeader
{
BYTE cChallengeIndex;
};
#endif // #if defined( PRE_ADD_STAMPSYSTEM )
//#########################################################################################################################################
// MAINCMD_DWC
//#########################################################################################################################################
#if defined(PRE_ADD_DWC)
struct TQCreateDWCTeam : public TQHeader
{
INT64 biCharacterDBID;
WCHAR wszTeamName[GUILDNAME_MAX];
};
struct TACreateDWCTeam : public TAHeader
{
INT64 biCharacterDBID;
UINT nTeamID;
WCHAR wszTeamName[GUILDNAME_MAX];
};
struct TQAddDWCTeamMember : public TQHeader
{
INT64 biCharacterDBID;
UINT nTeamID;
};
struct TAAddDWCTeamMember : public TAHeader
{
INT64 biCharacterDBID;
UINT nTeamID;
};
struct TQDWCInviteMember : public TQHeader
{
INT64 biCharacterDBID;
UINT nTeamID;
bool bNeedMembList;
};
struct TADWCInviteMember : public TAHeader
{
INT64 biCharacterDBID;
UINT nTeamID;
BYTE cMemberCount;
TDWCTeam Info;
TDWCTeamMember MemberList[DWC::DWC_MAX_MEMBERISZE];
};
struct TQDelDWCTeamMember : public TQHeader
{
INT64 biCharacterDBID;
UINT nTeamID;
};
struct TADelDWCTeamMember : public TAHeader
{
INT64 biCharacterDBID;
UINT nTeamID;
};
struct TQGetDWCTeamInfo: public TQHeader
{
INT64 biCharacterDBID;
bool bNeedMembList; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ϵ<EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
struct TAGetDWCTeamInfo: public TAHeader
{
UINT nTeamID;
TDWCTeam Info;
};
struct TAGetDWCTeamMember: public TAHeader
{
UINT nTeamID;
BYTE cCount; // <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>õ<EFBFBD>)
TDWCTeamMember MemberList[DWC::DWC_MAX_MEMBERISZE];
};
struct TQAddPvPDWCResult: public TQHeader
{
int nRoomID; // <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>RoomID
UINT nTeamID;
UINT nOppositeTeamID;
BYTE cPvPLadderCode; // LadderSystem::MatchType::eCode
BYTE cResult; // LadderSystem::MatchResult::eCode
int nDWCGradePoint;
int nHiddenDWCGradePoint;
};
struct TAAddPvPDWCResult: public TAHeader
{
int nRoomID;
UINT nTeamID;
TDWCScore DWCScore;
};
struct TQGetListDWCScore: public TQHeader
{
int nRoomID; // <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>RoomID
INT64 biATeamCharacterDBID;
INT64 biBTeamCharacterDBID;
};
struct TAGetListDWCScore: public TAHeader
{
int nRoomID;
UINT nATeamID;
TDWCTeam ATeamInfo;
UINT nBTeamID;
TDWCTeam BTeamInfo;
};
struct TQGetDWCRankPage : public TQHeader
{
int nPageNum;
int nPageSize; //DWC::eCommon::RankPageMaxSize
};
struct TAGetDWCRankPage : public TAHeader
{
UINT nTotalRankSize;
int nPageNum;
int nPageSize;
TDWCRankData RankList[DWC::Common::RankPageMaxSize];
};
struct TQGetDWCFindRank : public TQHeader
{
BYTE cFindType; //DWC::FindRankType<70><65><EFBFBD><EFBFBD>
WCHAR wszFindKey[NAMELENMAX + GUILDNAME_MAX];
};
struct TAGetDWCFindRank : public TAHeader
{
int nRetCode;
TDWCRankData Rank;
};
struct TQGetDWCChannelInfo : public TQHeader
{
};
struct TAGetDWCChannelInfo : public TAHeader
{
TDWCChannelInfo ChannelInfo;
};
#endif
#pragma pack(pop)