#pragma once #pragma pack(push, 1) //-------------------------------------------------------------- // Master Packet //-------------------------------------------------------------- // °øÅë (Master -> ¾î¶² ¼­¹öµç...) 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ÀÌ³Ä ¾Æ´Ï³Ä.. (ÀÌ·¸°Ô±îÁöÇØ¾ßÇØ? -_-;) 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¸é ÀÏ¹Ý °øÁö ¾Æ´Ï¸é Àü±¤ÆÇ..--; 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; // °èÁ¤ DBID UINT nSessionID; // ¼¼¼Ç 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((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; // ¿ùµå ID int nCount; // ¸ñ·Ï °³¼ö MAResetAuthNode List[RESETAUTHLISTMAX]; // °èÁ¤ DBID ¸®¼Â ¿äû ¸ñ·Ï }; 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((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; // ¿ùµå ID (LO ÀÏ °æ¿ì 0 ÀÓ) int nCount; // ¸ñ·Ï °³¼ö MAResetAuthNode List[RESETAUTHLISTMAX]; // °èÁ¤ DBID ¸®¼Â ¿äû ¸ñ·Ï }; struct MAResetAuthOnly // MAGA_RESETAUTHONLY / GAMA_RESETAUTHONLY { public: MAResetAuthOnly() { cWorldSetID = 0; nAccountDBID = 0; nSessionID = 0; } public: char cWorldSetID; // ¿ùµå ID UINT nAccountDBID; // °èÁ¤ DBID int nSessionID; }; struct MAFCMState // MAVI_FCMSTATE / MAGA_FCMSTATE { UINT nAccountDBID; int nOnlineMin; // ¿Â¶óÀÎ ½Ã°£(min) bool bSend; }; struct MANotifyMail // MAVI_NOTIFYMAIL / MAGA_NOTIFYMAIL { UINT nToAccountDBID; // ¹Þ´ÂÀÌ AccountDBID INT64 biToCharacterDBID; short wTotalMailCount; short wNotReadMailCount; short w7DaysLeftCount; bool bNewMail; }; struct MANotifyMarket // MAVI_NOTIFYMARKET / MAGA_NOTIFYMARKET { UINT nSellerAccountDBID; // AccountDBID INT64 biSellerCharacterDBID; int nItemID; // ÆÈ¸°¾ÆÀÌÅÛ short wCalculationCount; // Á¤»êÄ«¿îÆ® }; struct MANotifyGift // MAVI_NOTIFYGIFT / MAGA_NOTIFYGIFT { UINT nToAccountDBID; // ¹Þ´ÂÀÌ 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; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; // ±æµå UID }; struct MAInviteGuildMember { // ÃÊ´ëÀÚ TGuildUID GuildUID; // ±æµå¾ÆÀ̵ð UINT nAccountDBID; // ±æµåÃÊ´ëÀÚ DBID UINT nSessionID; // ¼¼¼Ç¾ÆÀ̵ð INT64 nCharacterDBID; // ij¸¯ÅÍ ¾ÆÀ̵ð WCHAR wszFromCharacterName[NAMELENMAX]; // ij¸¯ÅÍ À̸§ WCHAR wszGuildName[GUILDNAME_MAX]; // ±æµå¸í // ÃÊ´ë ¹ÞÀº ÀÚ WCHAR wszToCharacterName[NAMELENMAX]; }; struct VIMAInviteGuildMemberResult //VIMA_RETINVITEGUILDMEMBER { int nRetCode; // °á°úÄÚµå UINT nInviterDBID; // °á°ú¸¦ ¹Þ¾Æ¾ßÇÒ À¯Àú bool bAck; // ¿äû/°á°ú WCHAR wszInvitedName[NAMELENMAX]; // ÃÊ´ë¹ÞÀº »ç¶÷ À̸§ }; struct MAVIGuildMemberInvitedResult { UINT nAccountDBID; int nRet; bool bAck; // ¿äû/°á°ú WCHAR wszInvitedName[NAMELENMAX]; // ÃÊ´ë¹ÞÀº »ç¶÷ À̸§ }; struct MAGuildWareInfo { int nManagedID; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; // ±æµå¾ÆÀ̵ð }; struct MAGuildWareInfoResult { int nFromManagedID; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; // ±æµå¾ÆÀ̵ð __time64_t VersionDate; // ¹öÁ¯ BYTE cSlotListCount; // ½½·ÔÄ«¿îÆ® TGuildWareSlot WareSlotList[GUILD_WAREHOUSE_MAX]; // ½½·Ô¸®½ºÆ® }; struct MAGuildMemberLevelUp { int nManagedID; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; // ±æµå DBID INT64 nCharacterDBID; // ij¸¯ÅÍ DBID char cLevel; // ij¸¯ÅÍ ÃÖÁ¾·¹º§ }; // VIMA_ADDGUILDMEMB / MAVI_ADDGUILDMEMB / MAGA_ADDGUILDMEMBER struct MAAddGuildMember { int nManagedID; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; // ±æµå UID UINT nAccountDBID; // °¡ÀÔÇÑ »ç¿ëÀÚ °èÁ¤ DBID INT64 nCharacterDBID; // °¡ÀÔÇÑ Ä³¸¯ÅÍ DBID TP_JOB nJob; // ij¸¯ÅÍ ÀüÁ÷Á÷¾÷ char cLevel; // ij¸¯ÅÍ ·¹º§ __time64_t JoinDate; // ±æµå °¡ÀÔ ³¯Â¥ TCommunityLocation Location; // ÇöÀç À§Ä¡ (·Î±×ÀÎ ¿©ºÎµµ º» ¸â¹öÀÇ »óÅ·Πüũ) WCHAR wszCharacterName[NAMELENMAX]; // °¡ÀÔÇÑ Ä³¸¯ÅÍ À̸§ }; // VIMA_DELGUILDMEMB / MAVI_DELGUILDMEMB / MAGA_DELGUILDMEMBER struct MADelGuildMember { int nManagedID; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; // ±æµå UID UINT nAccountDBID; // Á¦°ÅµÈ »ç¿ëÀÚ °èÁ¤ DBID INT64 nCharacterDBID; // Á¦°ÅµÈ ij¸¯ÅÍ DBID bool bIsExiled; // Ãß¹æµÇ¾ú´ÂÁö ¿©ºÎ }; // VIMA_CHANGEGUILDINFO / MAVI_CHANGEGUILDINFO / MAGA_CHANGEGUILDINFO struct MAChangeGuildInfo { int nManagedID; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; // ±æµå UID UINT nAccountDBID; // ¿äûÇÑ °èÁ¤ DBID (ÀϹÝÀûÀÎ °æ¿ì Áß¿äÇÏÁö ¾Ê°í ÂüÁ¶ ¿ëµµ·Î¸¸ »ç¿ë) INT64 nCharacterDBID; // ¿äûÇÑ Ä³¸¯ÅÍ DBID (ÀϹÝÀûÀÎ °æ¿ì Áß¿äÇÏÁö ¾Ê°í ÂüÁ¶ ¿ëµµ·Î¸¸ »ç¿ë) BYTE btGuildUpdate; // ±æµå Á¤º¸ º¯°æ ŸÀÔ (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; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; // ±æµå UID UINT nReqAccountDBID; // ¿äûÇÑ °èÁ¤ DBID (±æµåÀåÀÌ ±æµå¿ø Á¤º¸¸¦ º¯°æÇÏ´Â °æ¿ì¿¡´Â º¯°æ´ë»ó°ú ´Þ¶óÁü) INT64 nReqCharacterDBID; // ¿äûÇÑ Ä³¸¯ÅÍ DBID (±æµåÀåÀÌ ±æµå¿ø Á¤º¸¸¦ º¯°æÇÏ´Â °æ¿ì¿¡´Â º¯°æ´ë»ó°ú ´Þ¶óÁü) UINT nChgAccountDBID; // º¯°æµÉ °èÁ¤ DBID INT64 nChgCharacterDBID; // º¯°æµÉ ij¸¯ÅÍ DBID BYTE btGuildMemberUpdate; // ±æµå¿ø Á¤º¸ º¯°æ ŸÀÔ (eGuildMemberUpdateType) int Int1; int Int2; INT64 Int64; WCHAR Text[GUILDPARAMTEXT_MAX+1]; }; // MAGA_REFRESHGUILDSELFVIEW struct MARefreshGuildSelfView { TGuildUID GuildUID; // ±æµå UID UINT nAccountDBID; // °èÁ¤ DBID INT64 nCharacterDBID; // ij¸¯ÅÍ DBID }; // VIMA_GUILDCHAT / GAMA_GUILDCHAT / MAVI_GUILDCHAT / MAGA_GUILDCHAT struct MAGuildChat { int nManagedID; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; // ±æµå UID UINT nAccountDBID; // °èÁ¤ DBID INT64 nCharacterDBID; // ij¸¯ÅÍ DBID short nLen; // äÆÃ ±æÀÌ WCHAR wszChatMsg[CHATLENMAX]; // äÆÃ ¸Þ½ÃÁö }; #ifdef PRE_ADD_DOORS_GUILDCHAT_DISCONNECT struct MADoorsGuildChat { int nManagedID; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; // ±æµå UID INT64 nCharacterDBID; // ij¸¯ÅÍ DBID short nLen; // äÆÃ ±æÀÌ WCHAR wszChatMsg[CHATLENMAX]; // äÆÃ ¸Þ½ÃÁö }; #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]; // º¯°æÇÑ ±æµå¸í }; 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; // ÇöÀç ÁøÇàÁßÀÎ º»¼± Â÷¼ö __time64_t tBeginTime; // ½ÃÀ۽ð£?(¾øÀ¸¸é ÁøÇàÁßÀΰÅÀÓ) }; //MAVI_SETGUILDWAR_TOURNAMENTINFO, VIMA_SETGUILDWAR_TOURNAMENTINFO struct MAGuildWarTournamentInfo { SGuildTournamentInfo sGuildWarFinalInfo[GUILDWAR_FINALS_TEAM_MAX]; // ´ëÁøÇ¥ ¼ø ±æµå Á¤·Ä }; //MAVI_SETGUILDWAR_PREWIN_GUILD, VIMA_SETGUILDWAR_PRE_WIN_GUILD struct MAGuildWarPreWinGuild { TGuildUID GuildUID; // ¿ì½Â ±æµå UID bool bPreWin; short wScheduleID; }; //MAVI_SETGUILDWAR_PREWIN_SKILLCOOLTIME, VIMA_SETGUILDWAR_PREWIN_SKILLCOOLTIME struct MAGuildWarPreWinSkillCoolTime { int nManagedID; // ¼­¹ö °ü¸® ID DWORD dwSkillCoolTime; // ÄðŸÀÓ }; //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; // ¸î°­? UINT GuildDBID; bool bWin; }; struct MAVISetGuildWarFinalDB { short wScheduleID; char cMatchSequence; char cMatchTypeCode; // ¸î°­? UINT GuildDBID; bool bWin; }; // MAVI_SETGUILDWAR_EVENT_TIME, MAGA_SETGUILDWAR_EVENT_TIME struct MASetGuildWarEventTime { // º»¼± ÁøÇà ¿©ºÎ bool bFinalProgress; // Àüü ±æµåÀü ½ºÄÉÁì TGuildWarEventInfo sGuildWarTime[GUILDWAR_STEP_END]; // º»¼± ÁøÇà Â÷¼ö TGuildWarEventInfo sFinalPartTime[GUILDWAR_FINALPART_MAX]; }; //MAVI_SETGUILDWAR_TOURNAMENTWIN, MAGA_SETGUILDWAR_TOURNAMENTWIN struct MASetGuildWarTournamentWin { // ½Â¸® Â÷¼ö char cMatchTypeCode; // ÇöÀç ÁøÇàÁßÀÎ Â÷¼ö 1=°á½Â, 2=4°­, 3=8°­, 4=16°­ // ½Â¸®ÇÑ ±æµå¸í WCHAR wszGuildName[GUILDNAME_MAX]; // ±æµå À̸§ }; // VIMA_UPDATEGUILDEXP / MAVI_UPDATEGUILDEXP / MAGA_UPDATEGUILDEXP / GAMA_UPDATEGUILDEXP struct MAUpdateGuildExp { int nManagedID; // ¼­¹ö°ü¸®ID TGuildUID GuildUID; // ±æµåUID char cPointType; // Æ÷ÀÎÆ®Å¸ÀÔ int nPointValue; // Æ÷ÀÎÆ®°ª int nTotalGuildExp; // ±æµå°æÇèÄ¡ int nDailyPointValue; // ÀÏÀÏ Æ÷ÀÎÆ®°ª int nLevel; // ·¹º§¾÷ INT64 biCharacterDBID; // ij¸¯ÅÍ ID int nMissionID; // ¹Ì¼Ç ID }; struct MAGuildRecruitMember { int nManagedID; // ¼­¹ö °ü¸® ID BYTE cAcceptType; UINT uiAccountDBID; WCHAR wszCharacterName[NAMELENMAX]; INT64 biCharacterDBID; TGuildUID GuildUID; TGuildView GuildView; }; struct MAGuildRewardItem { int nManagedID; // ¼­¹ö °ü¸® ID TGuildUID GuildUID; int nItemID; BYTE cItemBuyType; __time64_t m_tExpireDate; }; struct MAExtendGuildSize { int nManagedID; // ¼­¹ö °ü¸® 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; // »ç¿ëÀÚ¿¡°Ô º¸¿©ÁÖ´Â ¸Þ½ÃÁö int nArgument; // ±âŸ ´õ ÇÊ¿äÇÑ µ¥ÀÌÅ͸¦ ¿©±â¿¡ ÷ºÎ (ex. ½Ã°£Á¦ÀÇ °æ¿ì ³²Àº½Ã°£, Á¤¾×Á¦ÀÎ °æ¿ì ¸¸·á³¯Â¥ µîµî) bool bShutdowned; // ¼Ë´Ù¿îÁ¦ 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À¯Àú »®´Ï´Ù. falseÀ¯Àúµé¾î¿Íµµ µÇ¿ä }; // 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; // ¾î¸¥ÀÎÁö ¾Æ´ÑÁö (ÇǷεµ) 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; //Ȥ½Ã³ª ÇØ¼­ ¾î´À °ÔÀÓ¼­¹ö¿¡¼­ ÃÊ´ëÇѰÇÁö int nVillageMapIdx; //¸¶½ºÅÍ¿¡¼­ Çѹø °ËÁõÀº ÇÏÁö¸¸ ´Ù½Ã!Çϱâ À§Çؼ­ ÆÄƼ°¡ ¾îµð·Î °£³à¼®ÀÎÁö UINT nInviterAccountDBID; INT64 biInviterCharacterDBID; WCHAR wszInviterName[NAMELENMAX]; //ÃÊ´ëÇÑ ³ðÀÇ À̸§ UINT nInvitedAccountDBID; //ÃÊ´ë¹ÞÀ» ³ðÀÇ µðºñ¾ÆÀ̵ð WCHAR wszInvitedName[NAMELENMAX]; //ÃÊ´ë¹ÞÀ» ³ðÀÇ À̸§ 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°¡ GuildWarÀϰæ¿ì¿¡¸¸ ÂüÁ¶ #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; //ÀÌ°Ô Æ®·ç¸é ³ª°¡±â¸¸ Ȱ¼ºÈ­ ³ª¸ÓÁö´Â ÀüºÎ ¸·Èû #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; // ¿äûÇÑ»ç¶÷ AccountDBID UINT uiRecallAccountDBID; // Recall´çÇÒ»ç¶÷ AccountDBID UINT uiRecallChannelID; // Recall´çÇÒ ChannelID #if defined(PRE_ADD_MULTILANGUAGE) char cRecallerSelectedLang; // ¿äûÇÑ »ç¶÷ÀÇ ¼³Á¤¾ð¾î #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ÇØ´çÇÏ´Â À¯ÀúÀÇ ¼³Á¤¾ð¾î #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; // ¾î¸¥ÀÌ³Ä ¾Æ´Ï³Ä(ÇǷεµ) 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; }; // ÇØ´ç ÆÐŶÀ» GameTaskType,ReqGameIDType º°·Î °ø¿ëÀ¸·Î ¾²°í À־ // È¿À²¼ºÀÌ ÁÁÁö¾Ê´Ù.. ¾ðÁ¨°¡ Á¤¸®¸¦ ÇØ¾ß ÇÒ µí.... 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; //°°Àº¿ùµå¿¡¼­ ³Ñ¾î¿À½Ã°ÚÁö! BYTE cVillageID; //¿ä°Íµµ °°Àº ºô¸®Áö¿¡¼­ ³Ñ¾î¿À½Ã°ÚÁö! (¾Æ´Ò ¼ö°¡ ÀÖ°ÔµÇ¸é ´Ã·ÁÁÖ»ï~) USHORT nMeritBonusID; //ƯÁ¤Ã¤³Î¿¡¼­ °ÔÀÓÀ¸·Î ³Ñ¾î°¥ °æ¿ì ƯÁ¤ÀÇ º¸³Ê½º¸¦ ¹ÞÀ» ¼ö ÀÖÀ½ #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]; //°ÔÀÓ¼­¹ö¿¡¼­ »ý¼ºÇÒ º¸À̽ºÃ¤³Î¾ÆÀ̵ð (ÇöÀç PvPÆÀÀÌ °¡À帹¾Æ¼­ ÃÖ´ë°ªÀ» ÆÀ¸Æ½º·Î) MAGAReqMemberInfo arrMemberInfo[PvPCommon::Common::MaxPlayer]; // Çѹ濡 µé¾î°¡´Â À¯Àú¼ö´Â ÇöÀç PvP ¹æÀÌ Á¦ÀÏ ¸¹À¸¹Ç·Î PvP¹æ ÃÖ´ë¼ö·Î Àâ´Â´Ù. }; 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; // ¾î¸¥ÀÌ³Ä ¾Æ´Ï³Ä(ÇǷεµ) 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; //½Ã½ºÅÛ¿¡ ÀÇÇÑ »ý¼ºÀÎÁö #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; // °ÔÀÓ ÁøÇà¿©ºÎ. char cTournamentStep; // Åä³Ê¸ÕÆ® ½ºÅÜ bool bWin; // À̰å´ÂÁö Á³´ÂÁö. bool bAbuse; // ¾îºä¡ ¿©ºÎ bool bLeave; // ³ª°¬´ÂÁö ¿©ºÎ 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; // ¾î¸¥ÀÌ³Ä ¾Æ´Ï³Ä(ÇǷεµ) char cPCBangGrade; // PCBang BreakInto::Type::eCode BreakIntoType; bool bPvPFatigue; // PvP½Ã ÇǷεµ ¼Ò¸ð¸¦ ÅëÇÑ °æÇèÄ¡ ¹Þ±â 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; // »õ ¸®´õ ¾ÆÀ̵ð int nRoomID; // ¹æ¹øÈ£ UINT nMemberSessionID; // Áö¿öÁú ¸â¹ö ¾ÆÀ̵ð UINT nNewLeaderSessionID; //bool bIsUnintendMember; char cKickKind; }; #if defined(PRE_MOD_REQ_JOIN_PARTY_ANSWER_MSG_APP) struct MAGAGetPartyID { UINT nAccountDBID; UINT nSenderAccountDBID; //Á¤º¸¸¦ ¿äûÇÑ ³à¼® }; struct GAMAGetPartyIDResult { UINT nSenderAccountDBID; //Á¤º¸¸¦ ¿äûÇÑ ³à¼® 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; // ¿äûÇÑ»ç¶÷ AccountDBID UINT uiRecallAccountDBID; // Recall´çÇÒ»ç¶÷ AccountDBID UINT uiRecallChannelID; // Recall´çÇÒ ChannelID int iRecallMapIndex; #if defined(PRE_ADD_MULTILANGUAGE) char cRecallerSelectedLang; // ¿äûÇÑ »ç¶÷ÀÇ ¼³Á¤¾ð¾î #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; // ±æµå 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; // ½ÅûÀÚ 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; // »ó´ë¹æ ¾îÄ«¿îÆ®ÄÚµå(°ÔÀÓ¼­¹ö¿¡¼­¸¸ »ç¿ë) WCHAR wszFromName[NAMELENMAX]; WCHAR wszToName[NAMELENMAX]; }; struct MACloseBestFriend { UINT nAccountDBID; // »ó´ë¹æ ¾îÄ«¿îÆ®ÄÚµå(°ÔÀÓ¼­¹ö¿¡¼­¸¸ »ç¿ë) WCHAR wszFromName[NAMELENMAX]; WCHAR wszToName[NAMELENMAX]; }; struct MALevelUpBestFriend { UINT nAccountDBID; // »ó´ë¹æ ¾îÄ«¿îÆ®ÄÚµå(°ÔÀÓ¼­¹ö¿¡¼­¸¸ »ç¿ë) BYTE cLevel; WCHAR wszName[NAMELENMAX]; }; #endif #if defined( PRE_WORLDCOMBINE_PARTY ) struct MADelWorldParty { int nPrimaryIndex; // »èÁ¦µÈ ¿ùµåÆÄƼ·ë Ű }; 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; // ¼­¹ö °ü¸® ID TPrivateChatChannelInfo tPrivateChatChannel; }; struct MAModPrivateChannel { char cWorldSetID; int nManagedID; // ¼­¹ö °ü¸® ID INT64 nPrivateChatChannelID; PrivateChatChannel::Common::eModType eType; int nPassWord; INT64 biCharacterDBID; }; struct MAAddPrivateChannelMember { char cWorldSetID; int nManagedID; // ¼­¹ö °ü¸® 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; // ¼­¹ö °ü¸® 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; //Á¦À縦 ³»¸° GM AccountID WCHAR wszMuteUserName[NAMELENMAX]; // ´ë»ó ij¸¯Å͸í int nMuteMinute; //Á¦Àç ½Ã°£(ºÐ) #if defined(PRE_ADD_MULTILANGUAGE) char cSelectedLanguage; #endif //#if defined(PRE_ADD_MULTILANGUAGE) }; struct MAMuteUserChat //MAGA_MUTE_USERCHAT, MAVI_MUTE_USERCHAT { UINT uiGmAccountID; //Á¦Àç ³»¸° GM AccountID UINT uiMuteUserAccountID; //Á¦Àç ´ë»ó AccountID int nMuteMinute; //Á¦Àç ½Ã°£(ºÐ) }; #endif // #if defined(PRE_ADD_MUTE_USERCHATTING) #if defined( PRE_MOD_71820 ) struct GAMANotifyMail { UINT nToAccountDBID; // ¹Þ´ÂÀÌ AccountDBID INT64 biToCharacterDBID; short wTotalMailCount; // ÃÑ ¿ìÆí¼ö short wNotReadMailCount; // ÀÐÁö ¾ÊÀº ¸ÞÀÏ short w7DaysLeftMailCount; // ¸¸·á°æ°í ¸ÞÀÏ 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; // ÆÀ¾ÆÀ̵ð UINT nAccountDBID; // ±æµåÃÊ´ëÀÚ DBID WCHAR wszFromCharacterName[NAMELENMAX]; // ij¸¯ÅÍ À̸§ WCHAR wszTeamName[GUILDNAME_MAX]; // ÆÀ¸í WCHAR wszToCharacterName[NAMELENMAX]; // ÃÊ´ë ¹ÞÀº À¯Àú }; struct MAInviteDWCTeamMemberAck //VIMA_INVITE_DWCTEAMMEMB_ACK / MAVI_INVITE_DWCTEAMMEMB_ACK { int nRetCode; // °á°úÄÚµå UINT nInviterDBID; // °á°ú¸¦ ¹Þ¾Æ¾ßÇÒ À¯Àú UINT nInviteeDBID; // °á°ú¸¦ º¸³½ À¯Àú(ÃÊ´ë¹ÞÀºÀ¯Àú) bool bAck; // ¿äû/°á°ú WCHAR wszInvitedName[NAMELENMAX]; // ÃÊ´ë¹ÞÀº »ç¶÷ À̸§ }; struct MAAddDWCTeamMember //VIMA_ADD_DWCTEAMMEMB / MAVI_ADD_DWCTEAMMEMB / MAGA_ADD_DWCTEAMMEMB { UINT nTartgetUserAccountDBID; // Á¤º¸¸¦ ¹ÞÀ» À¯Àú UINT nTeamID; // ÆÀ ID UINT nAccountDBID; // °¡ÀÔÇÑ »ç¿ëÀÚ °èÁ¤ DBID INT64 biCharacterDBID; // °¡ÀÔÇÑ Ä³¸¯ÅÍ DBID TP_JOB nJob; // ij¸¯ÅÍ ÀüÁ÷Á÷¾÷ TCommunityLocation Location; // ÇöÀç À§Ä¡ (·Î±×ÀÎ ¿©ºÎµµ º» ¸â¹öÀÇ »óÅ·Πüũ) WCHAR wszCharacterName[NAMELENMAX]; // °¡ÀÔÇÑ Ä³¸¯ÅÍ À̸§ bool bAlredySentByVillage; // ºô¸®Áö ¼­¹ö¿¡¼­ À¯Àú¿¡°Ô ÆÐŶ Àü¼ÛÇß´ÂÁö üũ }; struct MALeaveDWCTeamMember // VIMA_DEL_DWCTEAMMEMB / MAVI_DEL_DWCTEAMMEMB / MAGA_DEL_DWCTEAMMEMB { UINT nTartgetUserAccountDBID; int nRet; UINT nTeamID; INT64 biLeaveUserCharacterDBID; WCHAR wszCharacterName[NAMELENMAX]; bool bAlredySentByVillage; // ºô¸®Áö ¼­¹ö¿¡¼­ À¯Àú¿¡°Ô ÆÐŶ Àü¼ÛÇß´ÂÁö üũ }; struct MADismissDWCTeam //VIMA_DISMISS_DWCTEAM / MAVI_DISMISS_DWCTEAM / MAGA_DISMISS_DWCTEAM { UINT nTartgetUserAccountDBID; int nRet; UINT nTeamID; bool bAlredySentByVillage; // ºô¸®Áö ¼­¹ö¿¡¼­ À¯Àú¿¡°Ô ÆÐŶ Àü¼ÛÇß´ÂÁö üũ }; 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; // ±æµå UID UINT nAccountDBID; // °èÁ¤ DBID INT64 biCharacterDBID; // ij¸¯ÅÍ DBID short nLen; // äÆÃ ±æÀÌ WCHAR wszChatMsg[CHATLENMAX]; // äÆÃ ¸Þ½ÃÁö }; 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)