DragonNest/Server/ServerCommon/DNServerPacketMaster.h

2224 lines
45 KiB
C
Raw Normal View History

2024-12-19 09:48:26 +08:00
#pragma once
#pragma pack(push, 1)
//--------------------------------------------------------------
// Master Packet
//--------------------------------------------------------------
// <20><><EFBFBD><EFBFBD> (Master -> <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...)
struct MARegist // MAVI_REGISTWORLDINFO, MAGA_REGIST
{
char cWorldSetID;
BYTE cGameID;
};
struct MAReqUserList // MAVI_REQUSERLIST
{
int nRetCode;
};
struct MAPrivateChat // MAVI_PRIVATECHAT, MAGA_PRIVATECHAT
{
UINT nAccountDBID;
WCHAR wszFromCharacterName[NAMELENMAX];
char cType; // GM<47>̳<EFBFBD> <20>ƴϳ<C6B4>.. (<28>̷<EFBFBD><CCB7>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>? -_-;)
short wChatLen;
int nRet;
WCHAR wszChatMsg[CHATLENMAX];
};
struct MAChat // MAVI_CHAT, MAGA_CHAT
{
UINT nAccountDBID;
char cType;
WCHAR wszFromCharacterName[NAMELENMAX];
short wChatLen;
WCHAR wszChatMsg[CHATLENMAX];
};
struct MAZoneChat //MAVI_ZONECHAT
{
int nMapIdx;
WCHAR wszFromCharacterName[NAMELENMAX];
short wChatLen;
WCHAR wszChatMsg[CHATLENMAX];
};
struct MAWorldSystemMsg // MAVI_WORLDSYSTEMMSG, MAGA_WORLDSYSTEMMSG
{
WCHAR wszFromCharacterName[NAMELENMAX];
char cType;
int nID;
int nValue;
WCHAR wszToCharacterName[NAMELENMAX];
};
#if defined( PRE_PRIVATECHAT_CHANNEL )
struct MAPrivateChannelChat // MAVI_PRIVATECHNNELCHAT, MAGA_PRIVATECHNNELCHAT
{
char cWorldSetID;
WCHAR wszFromCharacterName[NAMELENMAX];
short wChatLen;
INT64 nChannelID;
WCHAR wszChatMsg[CHATLENMAX];
};
#endif
struct TNoticeTypeInfo
{
int nNoticeType;
int nSlideShowSec; //0<><30> <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ƴϸ<C6B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..--;
int nManagedID;
int nChannelID;
int nMapIdx;
};
struct MANotice //MAGA_NOTICE
{
TNoticeTypeInfo Info;
USHORT nLen;
WCHAR wszNoticeMsg[CHATLENMAX];
};
struct MAUserState //MAVI_USERSTATE / MAGA_USERSTATE
{
WorldUserState::eCode Type;
INT64 biCharacterDBID;
BYTE cLocationState;
BYTE cCommunityState;
int nChannelID;
int nMapIdx;
BYTE cNameLen;
WCHAR wszBuf[NAMELENMAX];
};
struct MADetachUser // MAVI_DETACHUSER / MAGA_DETACHUSER
{
UINT nAccountDBID;
UINT nSessionID;
bool bIsDuplicate;
};
struct MAResetAuthNode
{
public:
MAResetAuthNode()
{
uiAccountDBID = 0;
nSessionID = 0;
}
void Set(UINT pAccountDBID, UINT pSessionID)
{
uiAccountDBID = pAccountDBID;
nSessionID = pSessionID;
}
public:
UINT uiAccountDBID; // <20><><EFBFBD><EFBFBD> DBID
UINT nSessionID; // <20><><EFBFBD><EFBFBD> ID
};
struct MAResetAuthList // MAVI_RESETAUTHLIST / MAGA_RESETAUTHLIST / VIMA_RESETAUTHLIST / GAMA_RESETAUTHLIST / LOMA_RESETAUTHLIST / MALO_RESETAUTHLIST
{
public:
MAResetAuthList()
{
cWorldSetID = 0;
nCount = 0;
}
int GetSize() const
{
return(static_cast<int>((sizeof(*this) - (sizeof(this->List[0]) * (_countof(List) - nCount)))&ULONG_MAX));
}
bool IsFull() const
{
return(RESETAUTHLISTMAX <= nCount);
}
bool IsEmpty() const
{
return(0 >= nCount);
}
bool Add(UINT pAccountDBID, UINT pSessionID)
{
if (RESETAUTHLISTMAX <= nCount) {
return false;
}
List[nCount].Set(pAccountDBID, pSessionID);
++nCount;
return true;
}
const MAResetAuthNode* At(int iIndex) const
{
if (!CHECK_LIMIT(iIndex, _countof(List))) {
return NULL;
}
return(&List[iIndex]);
}
public:
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
int nCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
MAResetAuthNode List[RESETAUTHLISTMAX]; // <20><><EFBFBD><EFBFBD> DBID <20><><EFBFBD><EFBFBD> <20><>û <20><><EFBFBD><EFBFBD>
};
struct MAVIVoiceChannelID //MAVI_VOICECHANNELID
{
TINSTANCEID InstanceID;
BYTE cType;
int nPvPLobbyChannelID;
UINT nVoiceChannelD[PvPCommon::TeamIndex::Max];
};
typedef MAGAFarmSync MAVIFarmSync;
struct MAResetAuthAccWld // MALO_RESETAUTHLIST
{
public:
MAResetAuthAccWld()
{
cWorldSetID = 0;
nCount = 0;
}
int GetSize() const
{
return(static_cast<int>((sizeof(*this) - (sizeof(this->List[0]) * (_countof(List) - nCount)))&ULONG_MAX));
}
bool IsFull() const
{
return(RESETAUTHLISTMAX <= nCount);
}
bool IsEmpty() const
{
return(0 >= nCount);
}
bool Add(UINT pAccountDBID, UINT pSessionID)
{
if (RESETAUTHLISTMAX <= nCount) {
return false;
}
List[nCount].Set(pAccountDBID, pSessionID);
++nCount;
return true;
}
const MAResetAuthNode* At(int iIndex) const
{
if (!CHECK_LIMIT(iIndex, _countof(List))) {
return NULL;
}
return(&List[iIndex]);
}
public:
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID (LO <20><> <20><><EFBFBD><EFBFBD> 0 <20><>)
int nCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
MAResetAuthNode List[RESETAUTHLISTMAX]; // <20><><EFBFBD><EFBFBD> DBID <20><><EFBFBD><EFBFBD> <20><>û <20><><EFBFBD><EFBFBD>
};
struct MAResetAuthOnly // MAGA_RESETAUTHONLY / GAMA_RESETAUTHONLY
{
public:
MAResetAuthOnly()
{
cWorldSetID = 0;
nAccountDBID = 0;
nSessionID = 0;
}
public:
char cWorldSetID; // <20><><EFBFBD><EFBFBD> ID
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD> DBID
int nSessionID;
};
struct MAFCMState // MAVI_FCMSTATE / MAGA_FCMSTATE
{
UINT nAccountDBID;
int nOnlineMin; // <20><EFBFBD><C2B6><EFBFBD> <20>ð<EFBFBD>(min)
bool bSend;
};
struct MANotifyMail // MAVI_NOTIFYMAIL / MAGA_NOTIFYMAIL
{
UINT nToAccountDBID; // <20>޴<EFBFBD><DEB4><EFBFBD> AccountDBID
INT64 biToCharacterDBID;
short wTotalMailCount;
short wNotReadMailCount;
short w7DaysLeftCount;
bool bNewMail;
};
struct MANotifyMarket // MAVI_NOTIFYMARKET / MAGA_NOTIFYMARKET
{
UINT nSellerAccountDBID; // AccountDBID
INT64 biSellerCharacterDBID;
int nItemID; // <20>ȸ<EFBFBD><C8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short wCalculationCount; // <20><><EFBFBD><EFBFBD>ī<EFBFBD><C4AB>Ʈ
};
struct MANotifyGift // MAVI_NOTIFYGIFT / MAGA_NOTIFYGIFT
{
UINT nToAccountDBID; // <20>޴<EFBFBD><DEB4><EFBFBD> AccountDBID
INT64 biToCharacterDBID;
bool bNew;
int nGiftCount;
};
struct MARestraint //MAGA_RESTRAINT / MAVI_RESTRAINT
{
UINT nAccountDBID;
};
// Guild
// VIMA_DISMISSGUILD / MAVI_DISMISSGUILD / MAGA_DISMISSGUILD
struct MADismissGuild
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> UID
};
struct MAInviteGuildMember
{
// <20>ʴ<EFBFBD><CAB4><EFBFBD>
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD>ʴ<EFBFBD><CAB4><EFBFBD> DBID
UINT nSessionID; // <20><><EFBFBD>Ǿ<EFBFBD><C7BE>̵<EFBFBD>
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
WCHAR wszFromCharacterName[NAMELENMAX]; // ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD>
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
WCHAR wszToCharacterName[NAMELENMAX];
};
struct VIMAInviteGuildMemberResult //VIMA_RETINVITEGUILDMEMBER
{
int nRetCode; // <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
UINT nInviterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޾ƾ<DEBE><C6BE><EFBFBD> <20><><EFBFBD><EFBFBD>
bool bAck; // <20><>û/<2F><><EFBFBD><EFBFBD>
WCHAR wszInvitedName[NAMELENMAX]; // <20>ʴ<EFBFBD><CAB4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
};
struct MAVIGuildMemberInvitedResult
{
UINT nAccountDBID;
int nRet;
bool bAck; // <20><>û/<2F><><EFBFBD><EFBFBD>
WCHAR wszInvitedName[NAMELENMAX]; // <20>ʴ<EFBFBD><CAB4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
};
struct MAGuildWareInfo
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
};
struct MAGuildWareInfoResult
{
int nFromManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
__time64_t VersionDate; // <20><><EFBFBD><EFBFBD>
BYTE cSlotListCount; // <20><><EFBFBD><EFBFBD>ī<EFBFBD><C4AB>Ʈ
TGuildWareSlot WareSlotList[GUILD_WAREHOUSE_MAX]; // <20><><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD>Ʈ
};
struct MAGuildMemberLevelUp
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> DBID
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
char cLevel; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
// VIMA_ADDGUILDMEMB / MAVI_ADDGUILDMEMB / MAGA_ADDGUILDMEMBER
struct MAAddGuildMember
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> UID
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DBID
INT64 nCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
TP_JOB nJob; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char cLevel; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
__time64_t JoinDate; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>¥
TCommunityLocation Location; // <20><><EFBFBD><EFBFBD> <20><>ġ (<28>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD>ε<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>·<EFBFBD> üũ)
WCHAR wszCharacterName[NAMELENMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD>
};
// VIMA_DELGUILDMEMB / MAVI_DELGUILDMEMB / MAGA_DELGUILDMEMBER
struct MADelGuildMember
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> UID
UINT nAccountDBID; // <20><><EFBFBD>ŵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DBID
INT64 nCharacterDBID; // <20><><EFBFBD>ŵ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
bool bIsExiled; // <20>߹<EFBFBD><DFB9>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
// VIMA_CHANGEGUILDINFO / MAVI_CHANGEGUILDINFO / MAGA_CHANGEGUILDINFO
struct MAChangeGuildInfo
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> UID
UINT nAccountDBID; // <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> DBID (<28>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>θ<EFBFBD> <20><><EFBFBD><EFBFBD>)
INT64 nCharacterDBID; // <20><>û<EFBFBD><C3BB> ij<><C4B3><EFBFBD><EFBFBD> DBID (<28>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>θ<EFBFBD> <20><><EFBFBD><EFBFBD>)
BYTE btGuildUpdate; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> (eGuildUpdateType)
int Int1;
int Int2;
INT64 Int64;
WCHAR Text[GUILDHISTORYTEXT_MAX+1];
int Int3;
int Int4;
};
// VIMA_CHANGEGUILDMEMBINFO / MAVI_CHANGEGUILDMEMBINFO / MAGA_CHANGEGUILDMEMBERINFO
struct MAChangeGuildMemberInfo
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> UID
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
BYTE btGuildMemberUpdate; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> (eGuildMemberUpdateType)
int Int1;
int Int2;
INT64 Int64;
WCHAR Text[GUILDPARAMTEXT_MAX+1];
};
// MAGA_REFRESHGUILDSELFVIEW
struct MARefreshGuildSelfView
{
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> UID
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD> DBID
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
};
// VIMA_GUILDCHAT / GAMA_GUILDCHAT / MAVI_GUILDCHAT / MAGA_GUILDCHAT
struct MAGuildChat
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> UID
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD> DBID
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
short nLen; // ä<><C3A4> <20><><EFBFBD><EFBFBD>
WCHAR wszChatMsg[CHATLENMAX]; // ä<><C3A4> <20>޽<EFBFBD><DEBD><EFBFBD>
};
#ifdef PRE_ADD_DOORS_GUILDCHAT_DISCONNECT
struct MADoorsGuildChat
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> UID
INT64 nCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
short nLen; // ä<><C3A4> <20><><EFBFBD><EFBFBD>
WCHAR wszChatMsg[CHATLENMAX]; // ä<><C3A4> <20>޽<EFBFBD><DEBD><EFBFBD>
};
#endif //#ifdef PRE_ADD_DOORS_GUILDCHAT_DISCONNECT
// MAGA_GUILDMEMBLOGINLIST
struct MAGuildMemberLoginList
{
TGuildUID GuildUID;
int nCount;
INT64 List[GUILDSIZE_MAX];
};
//VIMA_GUILDCHANGENAME , MAVI_GUILDCHANGE_NAME, MAGA_CHANGEGUILDNAME
struct MAGuildChangeName
{
TGuildUID GuildUID;
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
struct MAGuildChangeMark
{
TGuildUID GuildUID;
short wMark;
short wMarkBG;
short wMarkBorder;
};
struct MAGuildLevelUp
{
TGuildUID GuildUID;
int nLevel;
};
struct MAGuildExp
{
TGuildUID GuildUID;
BYTE cPointType;
int nPointValue;
int nGuildExp;
INT64 biCharacterDBID;
int nMissionID;
};
struct MAEnrollGuildWar
{
int nManagedID;
TGuildUID GuildUID;
short wScheduleID;
BYTE cTeamColorCode;
};
//MAVI_GETGUILDWAR_FINALSCHEDULE
struct MAGetGuildWarFinalSchedule
{
short wScheduleID;
};
//MAVI_GETGUILDWAR_TOURNAMENTINFO
struct MAGetGuildWarTournamentInfo
{
short wScheduleID;
};
//MAVI_GETGUILDWAR_PREWIN_GUILD
struct MAGetGuildWarPreWinGuild
{
short wScheduleID;
};
//MAVI_SETGUILDWAR_FINAL_TEAM,
struct MAVISetGuildWarFinalTeam
{
UINT GuildDBID[GUILDWAR_FINALS_TEAM_MAX];
};
//MAVI_SETGUILDWAR_FINALPROCESS,
struct MASetGuildWarFinalProcess
{
char cGuildFinalPart; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
__time64_t tBeginTime; // <20><><EFBFBD>۽ð<DBBD>?(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD><CEB0><EFBFBD>)
};
//MAVI_SETGUILDWAR_TOURNAMENTINFO, VIMA_SETGUILDWAR_TOURNAMENTINFO
struct MAGuildWarTournamentInfo
{
SGuildTournamentInfo sGuildWarFinalInfo[GUILDWAR_FINALS_TEAM_MAX]; // <20><><EFBFBD><EFBFBD>ǥ <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
//MAVI_SETGUILDWAR_PREWIN_GUILD, VIMA_SETGUILDWAR_PRE_WIN_GUILD
struct MAGuildWarPreWinGuild
{
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> UID
bool bPreWin;
short wScheduleID;
};
//MAVI_SETGUILDWAR_PREWIN_SKILLCOOLTIME, VIMA_SETGUILDWAR_PREWIN_SKILLCOOLTIME
struct MAGuildWarPreWinSkillCoolTime
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
DWORD dwSkillCoolTime; // <20><>Ÿ<EFBFBD><C5B8>
};
//MAVI_SETGUILDWAR_FINAL_RESULT
struct MAVISetGuildWarFinalResult
{
char cMatchTypeCode;
char cWinGuildIndex;
char cLoseGuildIndex;
};
//MAVI_SETGUILDWAR_FINAL_REWARD, MAVI_SETGUILDWAR_FINAL_RESULT_DB
struct MAVISetGuildWarFinalReward
{
char cMatchTypeCode; // <20>?
UINT GuildDBID;
bool bWin;
};
struct MAVISetGuildWarFinalDB
{
short wScheduleID;
char cMatchSequence;
char cMatchTypeCode; // <20>?
UINT GuildDBID;
bool bWin;
};
// MAVI_SETGUILDWAR_EVENT_TIME, MAGA_SETGUILDWAR_EVENT_TIME
struct MASetGuildWarEventTime
{
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool bFinalProgress;
// <20><>ü <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TGuildWarEventInfo sGuildWarTime[GUILDWAR_STEP_END];
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
TGuildWarEventInfo sFinalPartTime[GUILDWAR_FINALPART_MAX];
};
//MAVI_SETGUILDWAR_TOURNAMENTWIN, MAGA_SETGUILDWAR_TOURNAMENTWIN
struct MASetGuildWarTournamentWin
{
// <20>¸<EFBFBD> <20><><EFBFBD><EFBFBD>
char cMatchTypeCode; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 1=<3D><><EFBFBD><EFBFBD>, 2=4<><34>, 3=8<><38>, 4=16<31><36>
// <20>¸<EFBFBD><C2B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WCHAR wszGuildName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
};
// VIMA_UPDATEGUILDEXP / MAVI_UPDATEGUILDEXP / MAGA_UPDATEGUILDEXP / GAMA_UPDATEGUILDEXP
struct MAUpdateGuildExp
{
int nManagedID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD>UID
char cPointType; // <20><><EFBFBD><EFBFBD>ƮŸ<C6AE><C5B8>
int nPointValue; // <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
int nTotalGuildExp; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ
int nDailyPointValue; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
int nLevel; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> ID
int nMissionID; // <20>̼<EFBFBD> ID
};
struct MAGuildRecruitMember
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
BYTE cAcceptType;
UINT uiAccountDBID;
WCHAR wszCharacterName[NAMELENMAX];
INT64 biCharacterDBID;
TGuildUID GuildUID;
TGuildView GuildView;
};
struct MAGuildRewardItem
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID;
int nItemID;
BYTE cItemBuyType;
__time64_t m_tExpireDate;
};
struct MAExtendGuildSize
{
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TGuildUID GuildUID;
short nGuildSize;
};
//MAVI_ADD_DBJOBSYSTEM_RESERVE
struct MAVIAddDBJobSystemReserve
{
char cJobType;
};
struct MAVIGetDBJobSystemReserve
{
int nJobSeq;
};
struct MAChangeCharacterName
{
int nManagedID;
TGuildUID GuildUID;
char cWorldSetID;
UINT uiAccountDBID;
INT64 nCharacterDBID;
WCHAR wszOriginName[NAMELENMAX];
WCHAR wszCharacterName[NAMELENMAX];
#if defined (PRE_ADD_BESTFRIEND)
UINT uiBFAccountDBID;
INT64 biBFCharacterDBID;
#endif
};
struct MAUpdateWorldEventCounter
{
char cWorldSetID;
int nScheduleID;
int nCount;
};
struct MAPCBangResult
{
UINT nAccountDBID;
#if defined(_KR)
char cResult; // eAuthResult
char cAuthorizeType;
char cOption; // <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20>޽<EFBFBD><DEBD><EFBFBD>
int nArgument; // <20><>Ÿ <20><> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD> <20><><EFBFBD>⿡ ÷<><C3B7> (ex. <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ᳯ¥ <20><><EFBFBD><EFBFBD>)
bool bShutdowned; // <20>˴ٿ<CBB4><D9BF><EFBFBD>
char cPolicyError;
int nShutdownTime;
#else // #if defined(_KR)
#if defined(_ID)
bool bBlockPcCafe;
#endif //#if defined(_ID)
char cPCBangGrade;
#if defined(_KRAZ)
TShutdownData ShutdownData;
#endif // #if defined(_KRAZ)
#endif // #if defined(_KR)
};
struct MAGAZeroPopulation //MAGA_ZEROPOPULATION
{
bool bZeroPopulation; //true<75><65><EFBFBD><EFBFBD> <20><><EFBFBD>ϴ<EFBFBD>. false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD> <20>ǿ<EFBFBD>
};
// Master -> Login
struct MALORegist //MALO_REGIST
{
char cWorldSetID;
UINT nWorldMaxUser;
};
struct MALOVillageInfo //MALO_VILLAGEINFO
{
int nVillageID;
UINT nWorldUserCount;
UINT nWorldMaxUserCount;
BYTE cCount;
sChannelInfo Info[VILLAGECHANNELMAX];
};
struct MALOVillageInfoDelete //MALO_VILLAGEINFODEL
{
int nVillageID;
};
struct MALOAddUser //MALO_ADDUSER
{
UINT nAccountDBID;
UINT nSessionID;
char cWorldID;
int nRet;
};
#if !defined(PRE_MOD_SELECT_CHAR)
struct MALOUserInfo // MALO_USERINFO
{
UINT nAccountDBID;
UINT nSessionID;
int nRet;
#ifdef PRE_MOD_RESTRICT_IDENTITY_IP
char szIP[IPLENMAX];
#endif //#ifdef PRE_MOD_RESTRICT_IDENTITY_IP
};
#endif // #if !defined(PRE_MOD_SELECT_CHAR)
struct MALODetachUser //MALO_DETACHUSER
{
UINT nAccountDBID;
};
struct MALOSetTutorialGameID // MALO_SETTUTORIALGAMEID
{
UINT nSessionID;
ULONG nIP;
USHORT nPort;
USHORT nTcpPort;
BYTE cServerIdx;
USHORT wGameID;
int nRoomID;
int nRet;
};
struct MALOResetAuthServer // MALO_RESETAUTHSERVER
{
int nServerID;
};
struct MALOWaitUserProcess // MALO_WAITUSERPROCESS
{
USHORT nCurCount;
short nCount;
UINT nAccountArr[WAITPROCESSMAX];
};
struct MALOAddWaitUser // MALO_ADDWAITUSER
{
UINT nAccountDBID;
USHORT nTicketNum;
short nRetCode;
};
struct MALOUpdateChannelShowInfo
{
USHORT unChannelID;
bool bShow;
};
struct TUpdateTicket
{
short nIndex;
short nCount;
};
struct MALODuplicateLogin
{
UINT nAccountDBID;
UINT nSessionID;
};
// Master -> Village
//struct MAVIVillageServerInfo //MAVI_VILLAGESERVERINFO
//{
// USHORT nInfoCount;
// TChannelInfo ChannelList[VILLAGECHANNELMAX];
//};
#define MAVIVillageInfo MALOVillageInfo //MAVI_VILLAGEINFO
#define MAVIVillageInfoDelete MALOVillageInfoDelete //MAVI_VILLAGEINFODEL
struct MAVILoginState // MAVI_LOGINSTATE
{
UINT nSessionID;
int nRet;
};
struct MAVICheckUser // MAVI_CHECKUSER
{
UINT nSessionID;
UINT nAccountDBID;
WCHAR wszAccountName[IDLENMAX];
INT64 biCharacterDBID;
#if !defined( PRE_PARTY_DB )
TPARTYID PartyID;
#endif
USHORT nChannelID;
BYTE cPvPVillageID;
USHORT unPvPVillageChannelID;
bool bAdult; // <20><EFBFBD><EEB8A5><EFBFBD><EFBFBD> <20>ƴ<EFBFBD><C6B4><EFBFBD> (<28>Ƿε<C7B7>)
char cPCBangGrade; // pcbang
short nRet;
#if defined(PRE_ADD_MULTILANGUAGE)
char cSelectedLanguage;
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
#ifdef PRE_ADD_COMEBACK
bool bComebackUser;
#endif //#ifdef PRE_ADD_COMEBACK
#if defined(PRE_ADD_GAMEQUIT_REWARD)
bool bReConnectNewbieReward;
#endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
#if defined(_ID)
char szMacAddress[MACADDRLENMAX];
char szKey[KREONKEYMAX];
#endif
};
struct MAVITargetVillageInfo //MAVI_TARGETVILLAGEINFO
{
UINT nAccountDBID;
BYTE cVillageID;
int nTargetChannelID; //maybe
int nTargetMapIdx;
char cTargetGateNo;
char szIP[IPLENMAX];
USHORT nPort;
int nRet;
BYTE cPartyInto;
INT64 nItemSerial;
};
struct MAVISetGameID // MAVI_SETGAMEID
{
GameTaskType::eType GameTaskType;
BYTE cReqGameIDType;
TINSTANCEID InstanceID;
ULONG nIP;
USHORT nPort;
USHORT nTcpPort;
BYTE cServerIdx;
USHORT wGameID;
int iRoomID;
USHORT unVillageChannelID;
BYTE cVillageID;
short nRet;
BYTE cUseVoice;
#if defined( PRE_WORLDCOMBINE_PARTY )
ePartyType Type;
#endif
#if defined( PRE_WORLDCOMBINE_PVP )
WorldPvPMissionRoom::Common::eReqType eWorldReqType;
#endif
};
struct MAVILadderSetGameID
{
ULONG nIP;
USHORT nPort;
USHORT nTcpPort;
BYTE cServerIdx;
USHORT wGameID;
int iRoomID;
USHORT unVillageChannelID;
BYTE cVillageID;
short nRet;
int nGameModeTableID;
BYTE cUserCount;
UINT uiAccountDBIDArr[PARTYMAX];
};
struct MAVIPushParty // MAVI_PUSHPARTY
{
UINT nLeaderAccountDBID;
#if defined( PRE_PARTY_DB )
Party::Data PartyData;
#else
TPARTYID PartyID;
int nChannelID;
BYTE cMemberMax;
TPARTYITEMLOOTRULE ItemLootRule;
TITEMRANK ItemLootRank;
int nTargetMapIdx;
TDUNGEONDIFFICULTY Difficulty;
#endif
int nRandomSeed;
BYTE cPushType;
UINT nKickedMemberList[PARTYKICKMAX];
WCHAR wszPartyName[PARTYNAMELENMAX];
#if defined( PRE_PARTY_DB )
#else
USHORT nUserLvLimitMin;
USHORT nUserLvLimitMax;
BYTE cIsPartyJobDice;
WCHAR wszPartyPass[PARTYPASSWORDMAX];
BYTE cUpkeepCount;
BYTE cMemberCount;
#endif // #if defined( PRE_PARTY_DB )
UINT nVoiceChannelID;
TMemberInfo MemberInfo[PARTYMAX];
};
struct MAVIInvitePartyMember : public TInvitePartyInfo //MAVI_INVITEPARTYMEMBER
{
int nGameServerID; //Ȥ<>ó<EFBFBD> <20>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4>Ѱ<EFBFBD><D1B0><EFBFBD>
int nVillageMapIdx; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD> <20>ѹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٽ<EFBFBD>!<21>ϱ<EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0BCAE><EFBFBD><EFBFBD>
UINT nInviterAccountDBID;
INT64 biInviterCharacterDBID;
WCHAR wszInviterName[NAMELENMAX]; //<2F>ʴ<EFBFBD><CAB4><EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
UINT nInvitedAccountDBID; //<2F>ʴ<EFBFBD><CAB4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
WCHAR wszInvitedName[NAMELENMAX]; //<2F>ʴ<EFBFBD><CAB4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
BYTE cPermitLevel;
char cPassClassIds[PERMITMAPPASSCLASSMAX];
};
#if defined( PRE_PARTY_DB )
struct MAVIResPartyInvite
{
int iRet;
UINT uiReqAccountDBID;
};
#else
struct MAVIReqPartyID // MAVI_REQPARTYID
{
UINT nAccountDBID;
UINT nSessionID;
TPARTYID PartyID;
BYTE cMemberMax;
int nChannelID;
TPARTYITEMLOOTRULE ItemLootRule;
TITEMRANK ItemRank;
BYTE cUserLvLimitMin;
BYTE cUserLvLimitMax;
int nTargetMapIdx;
TDUNGEONDIFFICULTY Difficulty;
BYTE cUseVoice;
UINT nAfterInviteAccountDBID;
WCHAR wszPartyName[PARTYNAMELENMAX];
BYTE cPartyJobDice;
WCHAR wszPartyPass[PARTYPASSWORDMAX];
};
#endif // #if defined( PRE_PARTY_DB )
struct MAVIDelParty // MAVI_DELPARTY
{
UINT nAccountDBID;
int nPartyIndex;
bool bSend;
};
struct MAVIAddPartyMember // MAVI_ADDPARTYMEMBER
{
UINT nAccountDBID;
UINT nSessionID;
int nPartyIndex;
int nMemberIndex;
};
struct MAVIDelPartyMember // MAVI_DELPARTYMEMBER
{
UINT nAccountDBID;
int nPartyIndex;
int nMemberIndex;
UINT nNewLeaderAccountDBID;
UINT nNewLeaderSeessionID;
bool bSend;
char cKickKind;
};
struct MAVISwapPartyLeader //MAVI_SWAPPARTYLEADER
{
int nPartyIdx;
int nNewLeaderMemberIdx;
UINT nAccountDBID;
UINT nSessionID;
};
struct MAVIReservePartyMember //MAVI_RESERVEPARTYMEMBER
{
UINT nAccountDBID;
int nPartyIdx;
int nChannelID;
int nRet;
};
struct MAVIDelVoiceChannel //MAVI_DELVOICECHANNEL
{
int nPartyIdx;
};
struct MAVIResult // MAVI_ADDPARTYFAIL, MAVI_DELPARTYFAIL, MAVI_ADDPARTYMEMBERFAIL, MAVI_DELPARTYMEMBERFAIL
{
UINT nAccountDBID;
int nMainCmd;
int nRet;
};
struct MAVIFriendAddNotice //MAVI_FRIENDADDNOTICE
{
UINT nAddedAccountDBID;
WCHAR wszAddName[NAMELENMAX];
};
// PvP
struct MAVIPVP_CREATEROOM
{
int nRetCode;
UINT uiCreateAccountDBID;
UINT uiPvPIndex;
USHORT unVillageChannelID;
int nEventID;
TEvent EventData;
BYTE cGameMode;
UINT nGuildWarDBID[PvPCommon::TeamIndex::Max]; //cGameMode<64><65> GuildWar<61>ϰ<EFBFBD><CFB0><EFBFBD><ECBFA1> <20><><EFBFBD><EFBFBD>
#if defined( PRE_PVP_GAMBLEROOM )
BYTE cGambleType;
int nPrice;
#endif
CSPVP_CREATEROOM sCSPVP_CREATEROOM;
#if defined( PRE_WORLDCOMBINE_PVP )
BYTE cWorldPvPRoomCurMemberCount;
#endif
};
struct MAVIPVP_MODIFYROOM
{
int nRetCode;
UINT uiAccountDBID;
UINT uiPvPIndex;
USHORT unVillageChannelID;
BYTE cGameMode;
CSPVP_MODIFYROOM sCSPVP_MODIFYROOM;
};
struct MAVIPVP_DESTROYROOM
{
USHORT unVillageChannelID;
UINT uiPvPIndex;
};
struct MAVIPVP_LEAVEROOM
{
short nRetCode;
USHORT unVillageChannelID;
UINT uiPvPIndex;
UINT uiLeaveAccountDBID;
PvPCommon::LeaveType::eLeaveType eType;
};
struct MAVIPVP_ROOMLIST
{
UINT uiAccountDBID;
USHORT unVillageChannelID;
CSPVP_ROOMLIST sCSPVP_ROOMLIST;
};
#if defined(PRE_ADD_PVP_VILLAGE_ACCESS)
struct MAVIPVP_ROOMLIST_RELAY
{
BYTE cVillageID;
UINT uiAccountDBID;
MAVIPVP_ROOMLIST sRoomList;
};
#endif //#if defined(PRE_ADD_PVP_VILLAGE_ACCESS)
#ifdef PRE_ADD_COLOSSEUM_BEGINNER
struct MAVIPVP_CHANGECHANNEL
{
UINT nAccountDBID;
BYTE cType;
int nRetCode;
};
#endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
struct MAVIPVP_WAITUSERLIST
{
UINT uiAccountDBID;
USHORT unVillageChannelID;
CSPVP_WAITUSERLIST sCSPVP_WAITUSERLIST;
};
struct MAVIPVP_JOINROOM
{
short nRetCode;
UINT uiAccountDBID;
USHORT unVillageChannelID;
UINT32 uiPvPIndex;
UINT16 unPvPTeam;
UINT uiUserState;
BYTE cIndex;
};
struct MAVIPVP_ROOMSTATE
{
USHORT unVillageChannelID;
UINT uiPvPIndex;
UINT uiRoomState;
};
struct MAVIPVP_CHANGETEAM
{
int nRetCode;
USHORT unVillageChannelID;
UINT32 uiPvPIndex;
VIMAPVP_CHANGETEAM sVIMAPVP_CHANGETEAM;
char cTeamSlotIndex;
};
struct MAVIPVP_CHANGEUSERSTATE
{
USHORT unVillageChannelID;
UINT uiPvPIndex;
UINT uiAccountDBID;
UINT uiUserState;
};
struct MAVIPVP_START
{
short nRetCode;
USHORT unVillageChannelID;
UINT uiPvPIndex;
UINT uiAccountDBID;
};
struct MAVIPVP_STARTMSG
{
USHORT unVillageChannelID;
UINT uiPvPIndex;
BYTE cSec;
};
struct MAVIPVP_ROOMINFO
{
UINT uiAccountDBID;
UINT uiIndex;
UINT uiWinCondition;
UINT uiGameModeTableID;
UINT uiPlayTimeSec;
BYTE cMaxUser;
bool bIsGuildWar; //<2F>̰<EFBFBD> Ʈ<><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⸸ Ȱ<><C8B0>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
#if defined( PRE_PVP_GAMBLEROOM )
BYTE cGambleType;
int nGamblePrice;
#endif
};
struct MAVIPvPMemberIndex //MAVI_PVP_MEMBERINDEX
{
UINT nAccountDBID;
USHORT nTeam;
int nRetCode;
BYTE cCount;
TSwapMemberIndex Index[PARTYMAX];
};
struct MAVIPvPMemberGrade //MAVI_PVP_MEMBERGRADE
{
UINT nAccountDBID;
USHORT nTeam;
UINT uiUserState;
UINT nChangedSessionID;
int nRetCode;
};
struct MAVIResRecall // MAVI_RESRECALL
{
UINT uiAccountDBID; // <20><>û<EFBFBD>ѻ<EFBFBD><D1BB><EFBFBD> AccountDBID
UINT uiRecallAccountDBID; // Recall<6C><6C><EFBFBD>һ<EFBFBD><D2BB><EFBFBD> AccountDBID
UINT uiRecallChannelID; // Recall<6C><6C><EFBFBD><EFBFBD> ChannelID
#if defined(PRE_ADD_MULTILANGUAGE)
char cRecallerSelectedLang; // <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
};
struct MAVIVillageTrace // MAVI_VILLAGETRACE
{
UINT uiAccountDBID;
UINT uiTargetAccountDBID;
int iTargetVillageID;
int iTargetChannelID;
bool bIsGMCall;
#if defined(PRE_ADD_MULTILANGUAGE)
char cSelectedLang; //uiAccountDBID<49>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
};
struct MAVIUpdateChannelShowInfo
{
USHORT unChannelID;
bool bShow;
};
struct MAVIUserTempDataResult //MAVI_USERTEMPDATA_RESULT
{
UINT uiAccountDBID;
int nDungeonClearCount;
#if defined(PRE_ADD_GAMEQUIT_REWARD)
GameQuitReward::RewardType::eType eUserGameQuitRewardType;
#endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
#if defined(PRE_ADD_REMOTE_QUEST)
int nAcceptWaitRemoteQuestCount;
int AcceptWaitRemoteQuestList[MAX_PLAY_QUEST];
#endif
};
// Master -> Game
struct MAGAReqMemberInfo
{
UINT MemberAccountDBID;
UINT MemberSessionID;
INT64 biMemberCharacterDBID;
UINT MemberTeam;
WCHAR wszAccountName[IDLENMAX];
bool bAdult; // <20><EFBFBD>̳<EFBFBD> <20>ƴϳ<C6B4>(<28>Ƿε<C7B7>)
char cPCBangGrade; // PCBang
BYTE cMemberIndex;
bool bPvPFatigue;
UINT uiPvPUserState;
#if defined(PRE_ADD_MULTILANGUAGE)
char cSelectedLanguage;
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
#if defined( PRE_ADD_NEWCOMEBACK )
bool bCheckComebackAppellation;
#endif
#if defined(_ID)
char szMacAddress[MACADDRLENMAX];
char szKey[KREONKEYMAX];
#endif
TMemberVoiceInfo VoiceInfo;
};
// <20>ش<EFBFBD> <20><>Ŷ<EFBFBD><C5B6> GameTaskType,ReqGameIDType <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>־
// ȿ<><C8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ʴ<EFBFBD>.. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ؾ<EFBFBD> <20><> <20><>....
struct MAGAReqRoomID // MAGA_REQROOMID
{
GameTaskType::eType GameTaskType;
BYTE cReqGameIDType;
UINT nLeaderAccountDBID;
union
{
LadderSystem::MatchType::eCode MatchType;
TINSTANCEID InstanceID;
};
int nRandomSeed;
#if defined( PRE_PARTY_DB )
Party::Data PartyData;
#else
TPARTYITEMLOOTRULE ItemLootRule;
TITEMRANK ItemLootRank;
BYTE cUserLvLimitMin;
TDUNGEONDIFFICULTY PartyDifficulty;
BYTE cUpkeepCount;
BYTE cMemberMax;
#endif
BYTE cMemberCount;
int nMapIndex;
BYTE cGateNo;
BYTE cGateSelect;
TDUNGEONDIFFICULTY StageDifficulty;
char cWorldSetID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E5BFA1> <20>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ð<EFBFBD><C3B0><EFBFBD>!
BYTE cVillageID; //<2F><><EFBFBD>͵<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ð<EFBFBD><C3B0><EFBFBD>! (<28>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ְԵǸ<D4B5> <20>÷<EFBFBD><C3B7>ֻ<EFBFBD>~)
USHORT nMeritBonusID; //Ư<><C6AF>ä<EFBFBD>ο<EFBFBD><CEBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѿ <20><><EFBFBD><EFBFBD> Ư<><C6AF><EFBFBD><EFBFBD> <20><><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
#if defined( PRE_PARTY_DB )
#else
BYTE cUserLvLimitMax;
#endif // #if defined( PRE_PARTY_DB )
#if defined( PRE_ADD_VIP_FARM ) || defined( PRE_ADD_FARM_DOWNSCALE )
union
{
#if defined( PRE_ADD_FARM_DOWNSCALE )
int iFarmAttr;
#else
Farm::Attr::eType FarmAttr;
#endif // #if defined( PRE_ADD_FARM_DOWNSCALE )
int nTargetMapIdx;
};
#else
int nTargetMapIdx;
#endif // #if defined( PRE_ADD_VIP_FARM ) || defined( PRE_ADD_FARM_DOWNSCALE )
int nChannelID;
UINT nKickedMemberList[PARTYKICKMAX];
UINT nGuildDBID[PvPCommon::Common::DefaultGuildCount];
int nGuildQualifyingScore[PvPCommon::Common::DefaultGuildCount];
bool bStart;
int nEventRoomIndex;
bool bDirectConnect;
INT64 biLadderRoomIndexArr[2];
WCHAR wszPartyName[PARTYNAMELENMAX];
#if defined( PRE_PARTY_DB )
#else
WCHAR wszPartyPass[PARTYPASSWORDMAX];
BYTE cIsJobDice;
#endif // #if defined( PRE_PARTY_DB )
#if defined( PRE_WORLDCOMBINE_PVP )
WorldPvPMissionRoom::Common::eReqType eWorldReqType;
TWorldPvPMissionRoom MissonRoomData;
#endif
#if defined( PRE_PVP_GAMBLEROOM )
BYTE cGambleType;
int nGamblePrice;
#endif
INT64 biCreateRoomCharacterDBID;
UINT nVoiceChannelID[PvPCommon::TeamIndex::Max]; //<2F><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̽<EFBFBD>ä<EFBFBD>ξ<EFBFBD><CEBE>̵<EFBFBD> (<28><><EFBFBD><EFBFBD> PvP<76><50><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ƽ<EFBFBD> <20>ִ밪<D6B4><EBB0AA> <20><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>)
MAGAReqMemberInfo arrMemberInfo[PvPCommon::Common::MaxPlayer]; // <20>ѹ濡 <20><><EFBFBD><EFBFBD><EEB0A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> PvP <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> PvP<76><50> <20>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>´<EFBFBD>.
};
struct MAGAInvitePartyMemberResult //MAGA_INVITEPARTYMEMBERRESULT
{
UINT nAccountDBID;
WCHAR wszInvitedName[NAMELENMAX];
int nRetCode;
};
struct MAGAForceStopPvP //MAGA_PVP_FORCESTOP
{
UINT nGameRoomID;
UINT nForceWinGuildDBID;
};
struct MAGAReqTutorialRoomID // MAGA_REQTUTORIALROOMID
{
UINT nAccountDBID;
UINT nSessionID;
INT64 biCharacterDBID;
int nRandomSeed;
int nTutorialMapIndex;
BYTE cTutorialGateNo;
char cWorldSetID;
bool bAdult; // <20><EFBFBD>̳<EFBFBD> <20>ƴϳ<C6B4>(<28>Ƿε<C7B7>)
WCHAR wszAccountName[IDLENMAX];
int nLoginServerID;
#if defined(PRE_ADD_MULTILANGUAGE)
char cSelectedLanguage;
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
};
struct MAGALoginState // MAGA_LOGINSTATE
{
UINT nAccountDBID;
int nRet;
};
struct MAGAVillageState // MAGA_VILLAGESTATE
{
UINT nAccountDBID;
int nRoomID;
int nMapIndex;
int nRet;
};
struct MAGAFriendAddNotice //MAGA_FRIENDADDNOTICE
{
UINT nAddedAccountDBID;
WCHAR wszAddName[NAMELENMAX];
};
struct MAGAPVP_GAMEMODE
{
int iGameRoomID;
UINT uiPvPIndex;
UINT uiPvPGameModeTableID;
UINT uiWinCondition;
UINT uiPlayTimeSec;
USHORT unGameModeCheck;
INT64 biSNMain;
int iSNSub;
BYTE cIsPWRoom;
USHORT unRoomOptionBit;
BYTE cMaxUser;
int nEventID;
bool bIsLadderRoom;
bool bIsGuildWar; //<2F>ý<EFBFBD><C3BD>ۿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#ifdef PRE_ADD_COLOSSEUM_BEGINNER
char cPvPChannelType;
#endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
#if defined( PRE_WORLDCOMBINE_PVP )
int nStartPlayer;
#endif
};
#if defined(PRE_ADD_PVP_TOURNAMENT)
struct STournamentUserInfo
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
BYTE cJob;
UINT uiSessionID;
WCHAR wszCharName[NAMELENMAX];
};
struct STournamentMatchInfo
{
bool bStartMatch; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0BFA9>.
char cTournamentStep; // <20><><EFBFBD>ʸ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
bool bWin; // <20>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
bool bAbuse; // <20><><EFBFBD><EFBFBD>¡ <20><><EFBFBD><EFBFBD>
bool bLeave; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
STournamentUserInfo sTournamentUserInfo;
};
struct MAGAPVP_TOURNAMENT_INFO
{
int nGameRoomID;
int nCount;
STournamentUserInfo sTournamentUserInfo[PvPCommon::Common::PvPTournamentUserMax];
};
#endif
struct MAGABreakIntoRoom
{
int iGameRoomID;
//
char cWorldSetID;
BYTE cVillageID;
UINT uiAccountDBID;
UINT uiSessionID;
INT64 biCharacterDBID;
UINT uiTeam;
bool bAdult; // <20><EFBFBD>̳<EFBFBD> <20>ƴϳ<C6B4>(<28>Ƿε<C7B7>)
char cPCBangGrade; // PCBang
BreakInto::Type::eCode BreakIntoType;
bool bPvPFatigue; // PvP<76><50> <20>Ƿε<C7B7> <20>Ҹ<EFBFBD><D2B8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ġ <20>ޱ<EFBFBD>
char cPvPTeamIndex;
UINT uiPvPUserState;
#if defined(PRE_ADD_MULTILANGUAGE)
char cSelectedLanguage;
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
#if defined(_ID)
char szMacAddress[MACADDRLENMAX];
char szKey[KREONKEYMAX];
#endif
WCHAR wszAccountName[IDLENMAX];
WCHAR wszCharacterName[NAMELENMAX];
};
#define MAGAPvPMemberIndex MAVIPvPMemberIndex //GAVI_PVP_MEMBERINDEX
#define MAGAPvPMemberGrade MAVIPvPMemberGrade //MAGA_PVP_MEMBERGRADE
struct MAGAPVPChangeUserState //MAGA_PVP_MEMBERUSERSTATE
{
UINT nPvPRoomID;
UINT nAccountDBID;
UINT uiUserState;
};
struct MAGADelPartyMember // MAGA_DELPARTYMEMBER
{
UINT nNewLeaderAccountDBID; // <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
int nRoomID; // <20><><EFBFBD><EFBFBD>ȣ
UINT nMemberSessionID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
UINT nNewLeaderSessionID;
//bool bIsUnintendMember;
char cKickKind;
};
#if defined(PRE_MOD_REQ_JOIN_PARTY_ANSWER_MSG_APP)
struct MAGAGetPartyID
{
UINT nAccountDBID;
UINT nSenderAccountDBID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20>
};
struct GAMAGetPartyIDResult
{
UINT nSenderAccountDBID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20>
TPARTYID PartyID;
};
struct MAGAReqPartyAskJoin
{
UINT nAccountDBID;
UINT nReqAccountDBID;
INT64 biReqCharacterDBID;
char cReqUserJob;
BYTE cReqUserLevel;
WCHAR wszReqChracterName[NAMELENMAX];
};
struct GAMAResPartyAskJoin
{
int iRet;
UINT uiReqAccountDBID;
WCHAR wszReqChracterName[NAMELENMAX];
};
struct MAGAResPartyAskJoin
{
int iRet;
UINT uiReqAccountDBID;
};
struct GAMAAskJoinAgreeInfo
{
TPARTYID PartyID;
int iPassword;
WCHAR wszAskerCharName[NAMELENMAX];
};
#endif
struct MAGANextVillageInfo // MAGA_NEXTVILLAGEINFO
{
UINT nAccountDBID;
int nChannelID; //maybe
int nMapIdx;
int nNextMapIdx;
int nNextGateIdx;
char szIP[IPLENMAX];
USHORT nPort;
int nRet;
INT64 nItemSerial;
};
struct MAGARebirthVillageInfo // MAGA_REBIRTHVILLAGEINFO
{
UINT nAccountDBID;
int nVillageID;
int nChannelID; //maybe
char szIP[IPLENMAX];
USHORT nPort;
int nRet;
};
struct MAGAMovePvPGameToPvPLobby // MAGA_MOVEPVPGAMETOPVPLOBBY
{
UINT uiAccountDBID;
char szIP[IPLENMAX];
USHORT unPort;
short nRet;
};
struct MAGAResRecall // MAGA_RESRECALL
{
UINT uiAccountDBID; // <20><>û<EFBFBD>ѻ<EFBFBD><D1BB><EFBFBD> AccountDBID
UINT uiRecallAccountDBID; // Recall<6C><6C><EFBFBD>һ<EFBFBD><D2BB><EFBFBD> AccountDBID
UINT uiRecallChannelID; // Recall<6C><6C><EFBFBD><EFBFBD> ChannelID
int iRecallMapIndex;
#if defined(PRE_ADD_MULTILANGUAGE)
char cRecallerSelectedLang; // <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
};
namespace LadderSystem
{
struct MAVIDelUser
{
WCHAR wszCharName[NAMELENMAX];
INT64 biCharDBID;
};
struct MAVIRoomSync
{
INT64 biRoomIndexArr[2];
LadderSystem::RoomState::eCode State;
};
};
namespace MasterSystem
{
struct MAVICheckMasterApplication
{
short nRet;
UINT uiPupilAccountDBID;
INT64 biMasterCharacterDBID;
};
struct MAVISyncSimpleInfo
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
MasterSystem::EventType::eCode EventCode;
};
typedef MAVISyncSimpleInfo MAGASyncSimpleInfo;
struct MAVISyncJoin
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
bool bIsAddPupil;
};
typedef MAVISyncJoin MAGASyncJoin;
struct MAVISyncLeave
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
bool bIsDelPupil;
};
typedef MAVISyncLeave MAGASyncLeave;
struct MAVISyncGraduate
{
UINT uiAccountDBID;
WCHAR wszCharName[NAMELENMAX];
};
typedef MAVISyncGraduate MAGASyncGraduate;
struct MAVISyncConnect
{
UINT uiAccountDBID;
bool bIsConnect;
WCHAR wszCharName[NAMELENMAX];
};
typedef MAVISyncConnect MAGASyncConnect;
struct MAVICheckLeave
{
int iRet;
UINT uiAccountDBID;
INT64 biDestCharacterDBID;
bool bIsMaster;
};
struct MAVIRecallMaster
{
int iRet;
UINT uiAccountDBID;
WCHAR wszCharName[NAMELENMAX];
bool bIsConfirm;
};
struct MAVIJoinConfirm
{
UINT uiMasterAccountDBID;
BYTE cLevel;
BYTE cJob;
WCHAR wszPupilCharName[NAMELENMAX];
};
struct MAVIJoinResult
{
int iRet;
bool bIsAccept;
INT64 biMasterCharacterDBID;
WCHAR wszPupilCharName[NAMELENMAX];
};
}
// VIMA_REFRESH_GUILDITEM / MAVI_REFRESH_GUILDITEM
struct MARefreshGuildItem
{
int nManagedID;
TGuildUID GuildUID;
char cMoveType;
INT64 biSrcSerial;
INT64 biDestSerial;
TItemInfo SrcInfo;
TItemInfo DestInfo;
__time64_t VersionDate;
};
// VIMA_REFRESH_GUILDCOIN / MAVI_REFRESH_GUILDCOIN
struct MARefreshGuildCoin
{
int nManagedID;
TGuildUID GuildUID;
INT64 biTotalCoin;
};
//VIMA_EXTEND_GUILDWARE, MAVI_EXTEND_GUILDWARE
struct MAExtendGuildWare
{
int nManagedID;
TGuildUID GuildUID;
short wWareSize;
};
struct TFarmInfo
{
UINT nFarmDBID;
int nFarmCurUserCount;
bool bActivate;
};
struct MAVIFarmInfoUpdate
{
BYTE cFarmCount;
TFarmInfo FarmInfo[Farm::Max::FARMCOUNT];
};
struct MAGAAssginPeriodQuest // MAGA_ASSIGN_PERIODQUEST
{
UINT nQuestID;
bool bFlag;
};
struct MAGANoticePeriodQuest // MAGA_NOTICE_PERIODQUEST
{
char cWorldSetID;
int nItemID;
int nNoticeCount;
};
struct MAGAUserTempDataResult //MAGA_USERTEMPDATA_RESULT
{
UINT uiAccountDBID;
int nDungeonClearCount;
#if defined(PRE_ADD_GAMEQUIT_REWARD)
GameQuitReward::RewardType::eType eUserGameQuitRewardType;
#endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
#if defined(PRE_ADD_REMOTE_QUEST)
int nAcceptWaitRemoteQuestCount;
int AcceptWaitRemoteQuestList[MAX_PLAY_QUEST];
#endif
};
struct VIMACheckLastDungeonInfo
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
int iManagedID;
int iRoomID;
};
struct MAVICheckLastDungeonInfo
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
bool bIsCheck;
WCHAR wszPartyName[PARTYNAMELENMAX];
};
struct MAGACheckLastDungeonInfo
{
char cWorldSetID;
UINT uiAccountDBID;
INT64 biCharacterDBID;
int iRoomID;
};
struct GAMACheckLastDungeonInfo
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
bool bIsCheck;
WCHAR wszPartyName[PARTYNAMELENMAX];
};
struct VIMAConfirmLastDungeonInfo
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
int iManagedID;
int iRoomID;
bool bIsOK;
#if defined( PRE_PARTY_DB )
BreakInto::Type::eCode BreakIntoType;
#endif // #if defined( PRE_PARTY_DB )
};
struct MAVIConfirmLastDungeonInfo
{
int iRet;
UINT uiAccountDBID;
#if defined( PRE_PARTY_DB )
BreakInto::Type::eCode BreakIntoType;
#endif // #if defined( PRE_PARTY_DB )
};
struct GAMAConfirmLastDungeonInfo
{
int iRet;
UINT uiAccountDBID;
#if defined( PRE_PARTY_DB )
BreakInto::Type::eCode BreakIntoType;
#endif // #if defined( PRE_PARTY_DB )
};
struct MAGADeleteBackupDungeonInfo
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
int iRoomID;
};
#if defined(PRE_ADD_QUICK_PVP)
//VIMA_MAKEQUICKPVP_ROOM
struct VIMAMakeQuickPvPRoom
{
UINT uiMasterAccountDBID;
UINT uiSlaveAccountDBID;
};
//MAVI_MAKEQUICKPVP_ROOM
struct MAVIMakeQuickPvPRoom
{
int nRet;
UINT uiMasterAccountDBID;
UINT uiSlaveAccountDBID;
};
#endif
struct DBGetGuildRewardItem
{
TGuildUID GuildUID; // <20><><EFBFBD><EFBFBD> UID
};
#if defined (PRE_ADD_BESTFRIEND)
struct MASearchBestFriend
{
int nRet;
bool bAck;
UINT nAccountDBID;
WCHAR wszName[NAMELENMAX];
char cJob;
char cLevel;
};
struct MARegistBestFriend
{
UINT nAccountDBID;
INT64 biCharacterDBID;
WCHAR wszFromName[NAMELENMAX];
UINT nToAccountDBID;
WCHAR wszToName[NAMELENMAX];
int nRegistItemID;
};
struct MARegistBestFriendResult
{
UINT nAccountDBID;
int nRet;
bool bAck;
INT64 biFromCharacterDBID;
UINT nToAccountDBID;
INT64 biToCharacterDBID;
WCHAR wszFromName[NAMELENMAX];
WCHAR wszToName[NAMELENMAX];
};
struct MACompleteBestFriend
{
UINT nFromAccountDBID;
// <20><>û<EFBFBD><C3BB>
UINT nToAccountDBID;
INT64 biCharacterDBID;
WCHAR wszName[NAMELENMAX];
int nItemID;
};
struct MAEditBestFriendMemo
{
UINT nFromAccountDBID;
UINT nToAccountDBID;
INT64 biToCharacterDBID;
WCHAR wszMemo[BESTFRIENDMEMOMAX];
};
struct MACancelBestFriend
{
bool bCancel;
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ī<EFBFBD><C4AB>Ʈ<EFBFBD>ڵ<EFBFBD>(<28><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
WCHAR wszFromName[NAMELENMAX];
WCHAR wszToName[NAMELENMAX];
};
struct MACloseBestFriend
{
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ī<EFBFBD><C4AB>Ʈ<EFBFBD>ڵ<EFBFBD>(<28><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
WCHAR wszFromName[NAMELENMAX];
WCHAR wszToName[NAMELENMAX];
};
struct MALevelUpBestFriend
{
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ī<EFBFBD><C4AB>Ʈ<EFBFBD>ڵ<EFBFBD>(<28><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
BYTE cLevel;
WCHAR wszName[NAMELENMAX];
};
#endif
#if defined( PRE_WORLDCOMBINE_PARTY )
struct MADelWorldParty
{
int nPrimaryIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC> Ű
};
struct MAGetWorldPartyMember
{
UINT nAccountDBID;
INT64 biCharacterDBID;
int iServerID;
TPARTYID PartyID;
int iRoomID;
};
struct GAMASendWorldPartyMember
{
UINT nAccountDBID;
INT64 biCharacterDBID;
int nRetCode;
TPARTYID PartyID;
int nCount;
Party::MemberData MemberData[PARTYCOUNTMAX];
};
#if defined( PRE_FIX_WORLDCOMBINEPARTY )
struct GAMAWorldCombineGameserver
{
bool bFlag;
};
#endif
#endif
#if defined( PRE_PRIVATECHAT_CHANNEL )
struct MAAddPrivateChannel
{
char cWorldSetID;
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
TPrivateChatChannelInfo tPrivateChatChannel;
};
struct MAModPrivateChannel
{
char cWorldSetID;
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
INT64 nPrivateChatChannelID;
PrivateChatChannel::Common::eModType eType;
int nPassWord;
INT64 biCharacterDBID;
};
struct MAAddPrivateChannelMember
{
char cWorldSetID;
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
INT64 nPrivateChatChannelID;
TPrivateChatChannelMember Member;
};
struct MAInvitePrivateChannelMember
{
char cWorldSetID;
INT64 nPrivateChatChannelID;
UINT nMasterAccountDBID;
UINT nInviteAccountDBID;
WCHAR wszInviteName[NAMELENMAX];
};
struct MAInvitePrivateChannelMemberResult
{
char cWorldSetID;
int nRet;
UINT nMasterAccountDBID;
};
struct MADelPrivateChannelMember
{
char cWorldSetID;
int nManagedID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID
PrivateChatChannel::Common::eModType eType;
INT64 nPrivateChatChannelID;
INT64 biCharacterDBID;
WCHAR wszName[NAMELENMAX];
};
struct MAKickPrivateChannelMemberResult
{
UINT nAccountDBID;
INT64 biCharacterDBID;
};
struct MAModPrivateChannelMemberName
{
char cWorldSetID;
int nManagedID;
INT64 nPrivateChatChannelID;
INT64 biCharacterDBID;
WCHAR wszName[NAMELENMAX];
};
#endif
#if defined( PRE_WORLDCOMBINE_PVP )
struct MADelWorldPvPRoom
{
int nRoomIndex;
};
struct MAWorldPvPRoomJoinResult
{
UINT uiAccountDBID;
int nRet;
};
struct MAWorldPvPRoomGMCreateResult
{
UINT uiAccountDBID;
UINT uiPvPIndex;
int nRet;
TWorldPvPRoomDBData Data;
};
struct VIMAWorldPvPRoomBreakInto
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
int nManagedID;
int nRoomIndex;
int nRoomID;
bool bPvPLobby;
UINT uiTeam;
BreakInto::Type::eCode BreakIntoType;
};
#endif
#if defined( PRE_ADD_PVP_COMBOEXERCISE )
struct MAGAChangeRoomMaster
{
//UINT uiAccountDBID;
UINT uiRoomID;
INT64 biRoomMasterCharacterDBID;
UINT uiRoomMasterSessionID;
};
#endif // #if defined( PRE_ADD_PVP_COMBOEXERCISE )
#if defined(PRE_ADD_MUTE_USERCHATTING)
struct MAMuteUserFind //GAMA_MUTE_USERFIND, VIMA_MUTE_USERFIND
{
UINT uiGmAccountID; //<2F><><EFBFBD><20><><EFBFBD><EFBFBD> GM AccountID
WCHAR wszMuteUserName[NAMELENMAX]; // <20><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD>͸<EFBFBD>
int nMuteMinute; //<2F><><EFBFBD><EFBFBD> <20>ð<EFBFBD>(<28><>)
#if defined(PRE_ADD_MULTILANGUAGE)
char cSelectedLanguage;
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
};
struct MAMuteUserChat //MAGA_MUTE_USERCHAT, MAVI_MUTE_USERCHAT
{
UINT uiGmAccountID; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> GM AccountID
UINT uiMuteUserAccountID; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> AccountID
int nMuteMinute; //<2F><><EFBFBD><EFBFBD> <20>ð<EFBFBD>(<28><>)
};
#endif // #if defined(PRE_ADD_MUTE_USERCHATTING)
#if defined( PRE_MOD_71820 )
struct GAMANotifyMail
{
UINT nToAccountDBID; // <20>޴<EFBFBD><DEB4><EFBFBD> AccountDBID
INT64 biToCharacterDBID;
short wTotalMailCount; // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short wNotReadMailCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
short w7DaysLeftMailCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool bNewMail;
};
#endif // #if defined( PRE_MOD_71820 )
#if defined( PRE_ALTEIAWORLD_EXPLORE )
struct MAAlteiaWorldSendTicket
{
char cWorldSetID;
UINT nAccountDBID;
WCHAR wszRecvCharacterName[NAMELENMAX];
INT64 biSendCharacterDBID;
WCHAR wszSendCharacterName[NAMELENMAX];
};
struct MAAlteiaWorldSendTicketResult
{
int nRetCode;
UINT nSendAccountDBID;
INT64 biSendCharacterDBID;
};
#endif
#if defined( PRE_ADD_CHNC2C )
struct MAC2CGetCoinBalance
{
INT64 biCharacterDBID;
char szSeqID[64];
};
struct MAC2CGetCoinBalanceResult
{
int nRetCode;
INT64 biCoinBalance;
char szBookID[50];
char szSeqID[64];
};
struct MAC2CAddCoin
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
INT64 biAddCoin;
char szBookID[50];
char szSeqID[64];
};
struct MAC2CAddCoinResult
{
int nRetCode;
char szSeqID[64];
};
struct MAC2CReduceCoin
{
UINT uiAccountDBID;
INT64 biCharacterDBID;
INT64 biReduceCoin;
char szBookID[50];
char szSeqID[64];
};
struct MAC2CReduceCoinResult
{
int nRetCode;
char szSeqID[64];
};
#endif //#if defined( PRE_ADD_CHNC2C )
#if defined(PRE_DRAGONBUFF )
struct MAApplyWorldBuff
{
WCHAR wszCharacterName[NAMELENMAX];
int nManagedID;
int nItemID;
int nMapIdx;
};
#endif
#if defined(PRE_ADD_DWC)
struct MAInviteDWCTeamMember //VIMA_INVITE_DWCTEAMMEMB / MAVI_INVITE_DWCTEAMMEMB
{
UINT nTeamID; // <20><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD>ʴ<EFBFBD><CAB4><EFBFBD> DBID
WCHAR wszFromCharacterName[NAMELENMAX]; // ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD>
WCHAR wszTeamName[GUILDNAME_MAX]; // <20><><EFBFBD><EFBFBD>
WCHAR wszToCharacterName[NAMELENMAX]; // <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
struct MAInviteDWCTeamMemberAck //VIMA_INVITE_DWCTEAMMEMB_ACK / MAVI_INVITE_DWCTEAMMEMB_ACK
{
int nRetCode; // <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
UINT nInviterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޾ƾ<DEBE><C6BE><EFBFBD> <20><><EFBFBD><EFBFBD>
UINT nInviteeDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28>ʴ<EFBFBD><CAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
bool bAck; // <20><>û/<2F><><EFBFBD><EFBFBD>
WCHAR wszInvitedName[NAMELENMAX]; // <20>ʴ<EFBFBD><CAB4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
};
struct MAAddDWCTeamMember //VIMA_ADD_DWCTEAMMEMB / MAVI_ADD_DWCTEAMMEMB / MAGA_ADD_DWCTEAMMEMB
{
UINT nTartgetUserAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
UINT nTeamID; // <20><> ID
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DBID
INT64 biCharacterDBID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> DBID
TP_JOB nJob; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCommunityLocation Location; // <20><><EFBFBD><EFBFBD> <20><>ġ (<28>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD>ε<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>·<EFBFBD> üũ)
WCHAR wszCharacterName[NAMELENMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD>
bool bAlredySentByVillage; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD> üũ
};
struct MALeaveDWCTeamMember // VIMA_DEL_DWCTEAMMEMB / MAVI_DEL_DWCTEAMMEMB / MAGA_DEL_DWCTEAMMEMB
{
UINT nTartgetUserAccountDBID;
int nRet;
UINT nTeamID;
INT64 biLeaveUserCharacterDBID;
WCHAR wszCharacterName[NAMELENMAX];
bool bAlredySentByVillage; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD> üũ
};
struct MADismissDWCTeam //VIMA_DISMISS_DWCTEAM / MAVI_DISMISS_DWCTEAM / MAGA_DISMISS_DWCTEAM
{
UINT nTartgetUserAccountDBID;
int nRet;
UINT nTeamID;
bool bAlredySentByVillage; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD> üũ
};
struct MAChangeDWCTeamMemberState //VIMA_CHANGE_DWCTEAMMEMB_STATE
{
UINT nTartgetUserAccountDBID;
UINT nTeamID;
INT64 biCharacterDBID;
TCommunityLocation Location;
bool bLogin;
};
struct VIMADWCTeamMemberList //VIMA_DWC_TEAMMEMBERLIST
{
UINT nAccountDBID;
UINT nTeamID;
BYTE cCount;
INT64 MemberListCharacterDBID[DWC::DWC_MAX_MEMBERISZE];
};
// VIMA_DWC_TEAMCHAT / GAMA_DWC_TEAMCHAT / MAVI_DWC_TEAMCHAT / MAGA_DWC_TEAMCHAT
struct MADWCTeamChat
{
UINT nTeamID; // <20><><EFBFBD><EFBFBD> UID
UINT nAccountDBID; // <20><><EFBFBD><EFBFBD> DBID
INT64 biCharacterDBID; // ij<><C4B3><EFBFBD><EFBFBD> DBID
short nLen; // ä<><C3A4> <20><><EFBFBD><EFBFBD>
WCHAR wszChatMsg[CHATLENMAX]; // ä<><C3A4> <20>޽<EFBFBD><DEBD><EFBFBD>
};
struct MADWCUpdateScore // GAMA_DWC_UPDATE_SCORE / MAVI_DWC_UPDATE_SCORE
{
UINT nTeamID;
TDWCScore DWCScore;
};
#endif
#if defined( PRE_PVP_GAMBLEROOM )
struct MACreateGambleRoom
{
bool bFlag;
int nTotalGambleRoomCount;
};
struct MADelGambleRoom
{
bool bFlag;
};
#endif
#pragma pack(pop)