930 lines
18 KiB
C++
930 lines
18 KiB
C++
#pragma once
|
|
|
|
#pragma pack(push, 1)
|
|
|
|
//--------------------------------------------------------------
|
|
// Village Packet
|
|
//--------------------------------------------------------------
|
|
|
|
// Village -> Master
|
|
struct VIMARegist // VIMA_REGIST
|
|
{
|
|
BYTE cVillageID;
|
|
int nManagedID;
|
|
char szIP[IPLENMAX];
|
|
short nPort;
|
|
};
|
|
|
|
struct VIMACheckUser // VIMA_CHECKUSER
|
|
{
|
|
UINT nSessionID;
|
|
};
|
|
|
|
struct VIMAAddUserList // VIMA_ADDUSERLIST
|
|
{
|
|
UINT nAccountDBID;
|
|
UINT nSessionID;
|
|
INT64 biCharacterDBID;
|
|
WCHAR wszAccountName[IDLENMAX];
|
|
WCHAR wszCharacterName[NAMELENMAX];
|
|
char cPCBangGrade; // 피씨방 등급 (0: 피씨방 아님, 나머지: ePCBangGrade)
|
|
char szIP[IPLENMAX]; // 피로도때문에 넣음
|
|
char szVirtualIp[IPLENMAX];
|
|
USHORT wChannelID;
|
|
bool bAdult; // 어른인지 아닌지 (피로도)
|
|
#ifdef _KR
|
|
BYTE szMID[MACHINEIDMAX];
|
|
DWORD dwGRC;
|
|
#endif // #ifdef _KR
|
|
#ifdef PRE_ADD_MULTILANGUAGE
|
|
char cSelectedLanguage;
|
|
#endif //#ifdef PRE_ADD_MULTILANGUAGE
|
|
|
|
BYTE cPvPVillageID;
|
|
USHORT unPvPVillageChannelID;
|
|
#if defined(_ID)
|
|
char szMacAddress[MACADDRLENMAX];
|
|
char szKey[KREONKEYMAX];
|
|
DWORD dwKreonCN;
|
|
#endif // #if defined(_ID)
|
|
#if defined(_KRAZ)
|
|
TShutdownData ShutdownData;
|
|
#endif // #if defined(_KRAZ)
|
|
#if defined(PRE_ADD_DWC)
|
|
BYTE cAccountLevel;
|
|
#endif
|
|
};
|
|
|
|
struct VIMADelUser // VIMA_DELUSER
|
|
{
|
|
UINT nAccountDBID;
|
|
UINT nSessionID;
|
|
};
|
|
|
|
struct TMemberVoiceInfo
|
|
{
|
|
BYTE cVoiceAvailable;
|
|
UINT nMutedList[PARTYCOUNTMAX];
|
|
};
|
|
|
|
struct TMemberInfo
|
|
{
|
|
UINT nAccountDBID;
|
|
BYTE cMemberIndex;
|
|
#if defined( PRE_PARTY_DB )
|
|
INT64 biCharacterDBID;
|
|
#endif
|
|
#if defined( PRE_ADD_NEWCOMEBACK )
|
|
bool bCheckComebackAppellation;
|
|
#endif
|
|
TMemberVoiceInfo VoiceInfo;
|
|
};
|
|
|
|
struct TLadderMemberInfo
|
|
{
|
|
UINT uiAccountDBID;
|
|
UINT uiTeam;
|
|
};
|
|
|
|
struct TPartyData
|
|
{
|
|
UINT nLeaderAccountDBID;
|
|
UINT nLeaderSessionID;
|
|
USHORT nChannelID;
|
|
|
|
#if defined( PRE_PARTY_DB )
|
|
Party::Data PartyData;
|
|
#else
|
|
TPARTYITEMLOOTRULE ItemLootRule;
|
|
TITEMRANK ItemLootRank;
|
|
BYTE cUserLvLimitMin;
|
|
WCHAR wszPartyName[PARTYNAMELENMAX];
|
|
BYTE cUserLvLimitMax;
|
|
BYTE cJobDice;
|
|
int nTargetMapIdx;
|
|
TDUNGEONDIFFICULTY Difficulty;
|
|
WCHAR wszPartyPass[PARTYPASSWORDMAX];
|
|
BYTE cUpkeepCount;
|
|
BYTE cMemberMax;
|
|
BYTE cMemberCount;
|
|
#endif // #if defined( PRE_PARTY_DB )
|
|
UINT nVoiceChannelID;
|
|
UINT nKickedMemberDBID[PARTYKICKMAX];
|
|
TMemberInfo MemberInfo[PARTYMAX];
|
|
};
|
|
|
|
struct TLadderData
|
|
{
|
|
BYTE cMemberCount;
|
|
TLadderMemberInfo MemberInfoArr[PvPCommon::Common::MaxPlayer];
|
|
};
|
|
|
|
struct VIMAVillageToVillage //VIMA_VILLAGETOVILLAGE
|
|
{
|
|
BYTE cReqType;
|
|
#if defined( PRE_PARTY_DB )
|
|
INT64 biID;
|
|
#else
|
|
UINT nID;
|
|
#endif // #if defined( PRE_PARTY_DB )
|
|
int nMapIndex;
|
|
int nEnteredGateIndex;
|
|
int nMoveChannel;
|
|
INT64 nItemSerial;
|
|
|
|
TPartyData PartyData;
|
|
};
|
|
|
|
struct VIMAEnterVillage //VIMA_ENTERVILLAGE
|
|
{
|
|
UINT nAccountDBID;
|
|
USHORT nChannelID;
|
|
};
|
|
|
|
struct VIMAReconnectLogin //VIMA_RECONNECTLOGIN
|
|
{
|
|
UINT nAccountDBID;
|
|
};
|
|
|
|
struct VIMAProcessDelayed //VIMA_PROCESSDELAYED
|
|
{
|
|
UINT nDelayedTick;
|
|
};
|
|
|
|
struct TVillageUserReport
|
|
{
|
|
short nChannelID;
|
|
USHORT nChannelUserCount;
|
|
};
|
|
|
|
struct VIMAUserReport //VIMA_VILLAGEUSERREPORT
|
|
{
|
|
UINT nUserCount;
|
|
USHORT nCount;
|
|
TVillageUserReport Info[VILLAGECHANNELMAX];
|
|
};
|
|
|
|
struct VIMALoginState // VIMA_LOGINSTATE
|
|
{
|
|
UINT nSessionID;
|
|
};
|
|
|
|
struct VIMAReqGameID // VIMA_REQGAMEID
|
|
{
|
|
GameTaskType::eType GameTaskType;
|
|
BYTE cReqGameIDType;
|
|
TINSTANCEID InstanceID;
|
|
USHORT unVillageChannelID;
|
|
int nRandomSeed;
|
|
int nMapIndex;
|
|
char cGateNo;
|
|
char cGateSelect;
|
|
TDUNGEONDIFFICULTY StageDifficulty;
|
|
bool bDirectConnect;
|
|
UINT nFarmDBID;
|
|
|
|
//파티일경우
|
|
TPartyData PartyData;
|
|
};
|
|
|
|
struct VIMALadderEnterChannel
|
|
{
|
|
UINT uiAccountDBID;
|
|
LadderSystem::MatchType::eCode MatchType;
|
|
};
|
|
|
|
struct VIMALadderReqGameID
|
|
{
|
|
LadderSystem::MatchType::eCode MatchType;
|
|
INT64 biRoomIndexArr[2];
|
|
USHORT unVillageChannelID;
|
|
int iRandomSeed;
|
|
int iMapIndex;
|
|
TLadderData LadderData;
|
|
};
|
|
|
|
struct VIMALadderObserver
|
|
{
|
|
INT64 biCharacterDBID;
|
|
int iGameServerID;
|
|
int iGameServerThreadID;
|
|
int iGameRoomID;
|
|
};
|
|
|
|
struct VIMALadderInviteUser
|
|
{
|
|
UINT uiAccountDBID;
|
|
WCHAR wszCharName[NAMELENMAX];
|
|
int nRetCode;
|
|
};
|
|
|
|
struct VIMALadderInviteConfirm
|
|
{
|
|
UINT uiAccountDBID;
|
|
WCHAR wszConfirmCharName[NAMELENMAX];
|
|
LadderSystem::CS_INVITE_CONFIRM sInviteComfirm;
|
|
};
|
|
|
|
#if defined( PRE_PARTY_DB )
|
|
|
|
struct VIMAReqPartyInvite
|
|
{
|
|
TPARTYID PartyID;
|
|
int iPartyMinLevel;
|
|
WCHAR wszPartyName[PARTYNAMELENMAX];
|
|
int iPartyPassword;
|
|
int iPartyMemberMax;
|
|
int iPartyMemberCount;
|
|
int iPartyAvrLV;
|
|
UINT uiReqAccountDBID;
|
|
INT64 biReqCharacterDBID;
|
|
WCHAR wszReqCharName[NAMELENMAX];
|
|
int iReqMapIndex;
|
|
WCHAR wszInviteCharName[NAMELENMAX];
|
|
};
|
|
|
|
typedef VIMAReqPartyInvite MAVIReqPartyInvite;
|
|
|
|
struct VIMAResPartyInvite
|
|
{
|
|
int iRet;
|
|
UINT uiReqAccountDBID;
|
|
};
|
|
|
|
struct VIMAPartyInviteDenied
|
|
{
|
|
WCHAR wszReqCharName[NAMELENMAX];
|
|
TPARTYID PartyID;
|
|
WCHAR wszInviteCharName[NAMELENMAX];
|
|
BYTE cIsOpenBlind;
|
|
};
|
|
|
|
typedef VIMAPartyInviteDenied MAVIPartyInviteDenided;
|
|
|
|
#if defined(PRE_MOD_REQ_JOIN_PARTY_ANSWER_MSG_APP)
|
|
struct VIMAReqPartyAskJoin
|
|
{
|
|
UINT uiReqAccountDBID;
|
|
INT64 biReqCharacterDBID;
|
|
char cReqUserJob;
|
|
BYTE cReqUserLevel;
|
|
WCHAR wszReqChracterName[NAMELENMAX];
|
|
WCHAR wszTargetChracterName[NAMELENMAX];
|
|
};
|
|
typedef VIMAReqPartyAskJoin MAVIReqPartyAskJoin;
|
|
|
|
struct VIMAResPartyAskJoin
|
|
{
|
|
int iRet;
|
|
UINT uiReqAccountDBID;
|
|
WCHAR wszReqChracterName[NAMELENMAX];
|
|
};
|
|
|
|
struct MAVIResPartyAskJoin
|
|
{
|
|
int iRet;
|
|
UINT uiReqAccountDBID;
|
|
};
|
|
|
|
struct VIMAAskJoinAgreeInfo
|
|
{
|
|
TPARTYID PartyID;
|
|
int iPassword;
|
|
WCHAR wszAskerCharName[NAMELENMAX];
|
|
};
|
|
|
|
struct MAVIAskJoinAgreeInfo
|
|
{
|
|
UINT uiAskerAccountDBID;
|
|
TPARTYID PartyID;
|
|
int iPassword;
|
|
};
|
|
|
|
#endif
|
|
|
|
#else
|
|
struct VIMAReqPartyID // VIMA_REQPARTYID
|
|
{
|
|
UINT nAccountDBID;
|
|
BYTE cMemberMax;
|
|
USHORT nChannelID;
|
|
|
|
TPARTYITEMLOOTRULE ItemLootRule;
|
|
TITEMRANK ItemLootRank;
|
|
BYTE cUserLvLimitMin;
|
|
BYTE cUserLvLimitMax;
|
|
|
|
UINT nCreateAfterInvite; //초대에 의해서 생성할경우 생성데고 바로 초대 한다
|
|
int nTargetMapIdx;
|
|
TDUNGEONDIFFICULTY Difficulty;
|
|
BYTE cUseVoice;
|
|
|
|
BYTE cPartyJobDice;
|
|
BYTE cNameLen;
|
|
BYTE cPassWordLen;
|
|
WCHAR wszBuf[PARTYNAMELENMAX + PARTYPASSWORDMAX];
|
|
};
|
|
#endif // #if defined( PRE_PARTY_DB )
|
|
|
|
struct VIMAInvitePartyMemberResult //VIMA_RETINVITEPARTYMEMBER
|
|
{
|
|
int nGameServerID;
|
|
WCHAR wszInviterName[NAMELENMAX]; //결과를 받아야할 녀석
|
|
WCHAR wszInvitedName[NAMELENMAX];
|
|
int nRetCode;
|
|
};
|
|
|
|
#if defined(PRE_MOD_REQ_JOIN_PARTY_ANSWER_MSG_APP)
|
|
struct VIMAGetPartyID
|
|
{
|
|
UINT nSenderAccountDBID; //정보를 요청한 녀석
|
|
WCHAR wszCharName[NAMELENMAX];
|
|
};
|
|
|
|
struct VIMAGetPartyIDResult
|
|
{
|
|
UINT nSenderAccountDBID; //정보를 요청한 녀석
|
|
TPARTYID PartyID;
|
|
};
|
|
|
|
struct MAVIGetPartyID
|
|
{
|
|
UINT nAccountDBID;
|
|
UINT nSenderAccountDBID; //정보를 요청한 녀석
|
|
};
|
|
|
|
struct MAVIGetPartyIDResult
|
|
{
|
|
UINT nSenderAccountDBID; //정보를 요청한 녀석
|
|
TPARTYID PartyID;
|
|
};
|
|
#endif
|
|
|
|
struct VIMAFriendAddNotice
|
|
{
|
|
UINT nAddedAccountDBID;
|
|
WCHAR wszAddName[NAMELENMAX];
|
|
};
|
|
|
|
struct VIMAPrivateChat // VIMA_PRIVATECHAT
|
|
{
|
|
UINT nAccountDBID;
|
|
WCHAR wszToCharacterName[NAMELENMAX];
|
|
char cType; // GM이냐 아니냐.. (이렇게까지해야해? -_-;)
|
|
#ifdef PRE_ADD_DOORS
|
|
INT64 biDestCharacterDBID;
|
|
#endif //#ifdef PRE_ADD_DOORS
|
|
short wChatLen;
|
|
WCHAR wszChatMsg[CHATLENMAX];
|
|
};
|
|
|
|
struct VIMAChat // VIMA_CHAT
|
|
{
|
|
UINT nAccountDBID;
|
|
char cType;
|
|
short wChatLen;
|
|
int nMapIdx;
|
|
WCHAR wszChatMsg[CHATLENMAX];
|
|
};
|
|
|
|
struct VIMAWorldSystemMsg // VIMA_WORLDSYSTEMMSG
|
|
{
|
|
UINT nAccountDBID;
|
|
char cType;
|
|
int nID;
|
|
int nValue;
|
|
WCHAR wszToCharacterName[NAMELENMAX];
|
|
};
|
|
|
|
#if defined( PRE_PRIVATECHAT_CHANNEL )
|
|
struct VIMAPrivateChannelChatMsg // VIMA_PRIVATECHANNELCHAT
|
|
{
|
|
UINT nAccountDBID;
|
|
char cType;
|
|
short wChatLen;
|
|
INT64 nChannelID;
|
|
WCHAR wszChatMsg[CHATLENMAX];
|
|
};
|
|
#endif
|
|
|
|
// VoiceChat
|
|
struct VIMAReqVoiceChannelID //VIMA_REQVOICECHANNELID
|
|
{
|
|
TINSTANCEID InstanceID;
|
|
int nPvPLobbyChannelID;
|
|
BYTE cVoiceChannelType; //eVoiceChannelReqType
|
|
};
|
|
|
|
// PvP
|
|
struct VIMAPVP_MOVELOBBYTOVILLAGE
|
|
{
|
|
UINT uiAccountDBID;
|
|
};
|
|
|
|
struct VIMAPVP_CREATEROOM
|
|
{
|
|
UINT uiCreateAccountDBID;
|
|
USHORT unVillageChannelID;
|
|
UINT uiVillageMapIndex;
|
|
BYTE cGameMode;
|
|
int nEventID;
|
|
TEvent EventData;
|
|
UINT nGuildDBID[PvPCommon::Common::DefaultGuildCount];
|
|
int nGuildQualifyingScore[PvPCommon::Common::DefaultGuildCount];
|
|
#if defined(PRE_ADD_PVP_TOURNAMENT)
|
|
BYTE cCreateUserJob;
|
|
#endif
|
|
#if defined( PRE_PVP_GAMBLEROOM )
|
|
BYTE cGambleType;
|
|
int nPrice;
|
|
#endif
|
|
CSPVP_CREATEROOM sCSPVP_CREATEROOM;
|
|
};
|
|
|
|
|
|
struct VIMAPVP_CREATEEVENTROOM
|
|
{
|
|
BYTE cGameMode;
|
|
};
|
|
|
|
|
|
struct VIMAPVP_MODIFYROOM
|
|
{
|
|
UINT uiAccountDBID;
|
|
BYTE cGameMode;
|
|
CSPVP_MODIFYROOM sCSPVP_MODIFYROOM;
|
|
};
|
|
|
|
struct VIMAPVP_LEAVEROOM
|
|
{
|
|
UINT uiLeaveAccountDBID;
|
|
};
|
|
|
|
struct VIMAPVP_CHANGECAPTAIN
|
|
{
|
|
UINT uiAccountDBID;
|
|
CSPVP_CHANGECAPTAIN sCSPVP_CHANGECAPTAIN;
|
|
};
|
|
|
|
struct VIMAPVP_ROOMLIST
|
|
{
|
|
UINT uiAccountDBID;
|
|
USHORT unVillageChannelID;
|
|
CSPVP_ROOMLIST sCSPVP_ROOMLIST;
|
|
};
|
|
|
|
struct VIMAPVP_WAITUSERLIST
|
|
{
|
|
UINT uiAccountDBID;
|
|
USHORT unVillageChannelID;
|
|
CSPVP_WAITUSERLIST sCSPVP_WAITUSERLIST;
|
|
};
|
|
|
|
struct VIMAPVP_JOINROOM
|
|
{
|
|
UINT uiAccountDBID;
|
|
BYTE cUserLevel;
|
|
#if defined(PRE_ADD_PVP_TOURNAMENT)
|
|
BYTE cUserJob;
|
|
#endif
|
|
CSPVP_JOINROOM sCSPVP_JOINROOM;
|
|
};
|
|
|
|
struct VIMAPVP_READY
|
|
{
|
|
UINT uiAccountDBID;
|
|
CSPVP_READY sCSPVP_READY;
|
|
};
|
|
|
|
struct VIMAPVP_START
|
|
{
|
|
UINT uiAccountDBID;
|
|
CSPVP_START sCSPVP_START;
|
|
};
|
|
|
|
struct VIMAPVP_RANDOMJOINROOM
|
|
{
|
|
UINT uiAccountDBID;
|
|
BYTE cUserLevel;
|
|
};
|
|
|
|
struct VIMAPVP_CHANGETEAM
|
|
{
|
|
UINT uiAccountDBID;
|
|
BYTE cUserLevel;
|
|
CSPVP_CHANGETEAM sCSPVP_CHANGETEAM;
|
|
};
|
|
|
|
struct VIMAPVP_BAN
|
|
{
|
|
UINT uiAccountDBID;
|
|
CSPVP_BAN sCSPvPBan;
|
|
};
|
|
|
|
struct VIMAPVP_ENTERLOBBY
|
|
{
|
|
UINT uiAccountDBID;
|
|
USHORT unVillageChannelID;
|
|
};
|
|
#if defined(PRE_ADD_PVP_VILLAGE_ACCESS)
|
|
struct PVP_ROOMLIST_RELAY
|
|
{
|
|
BYTE cVillageID;
|
|
UINT uiAccountDBID;
|
|
int nSize;
|
|
SCPVP_ROOMLIST sSCPVP_ROOMLIST;
|
|
};
|
|
#endif
|
|
|
|
struct PVP_CHANGECHANNEL
|
|
{
|
|
UINT nAccountDBID;
|
|
BYTE cType;
|
|
BYTE cPvPLevel;
|
|
BYTE cSeperateLevel;
|
|
bool bSend;
|
|
};
|
|
|
|
struct VIMAPVP_FATIGUE_OPTION
|
|
{
|
|
UINT uiAccountDBID;
|
|
bool bFatigueOption;
|
|
};
|
|
struct VIMAPVPSwapMemberIndex //VIMA_PVP_SWAPTMEMBER_INDEX
|
|
{
|
|
UINT nAccountDBID;
|
|
BYTE cCount;
|
|
TSwapMemberIndex Index[PARTYMAX];
|
|
};
|
|
|
|
struct VIMAPVPChangeMemberGrade //VIMA_PVP_CHANGEMEMBER_GRADE
|
|
{
|
|
UINT nAccountDBID;
|
|
USHORT nType;
|
|
bool bAsign; //true면 임명 false면 해임
|
|
UINT nTargetSessionID;
|
|
};
|
|
|
|
#if defined(PRE_ADD_PVP_TOURNAMENT)
|
|
struct VIMAPVPSwapTournamentIndex //VIMA_PVP_SWAP_TOURNAMENT_INDEX
|
|
{
|
|
UINT nAccountDBID;
|
|
char cSourceIndex;
|
|
char cDestIndex;
|
|
};
|
|
|
|
struct MAVIPVPSwapTournamentIndex // MAVI_PVP_SWAP_TOURNAMENT_INDEX
|
|
{
|
|
short nRetCode;
|
|
UINT nAccountDBID;
|
|
char cSourceIndex;
|
|
char cDestIndex;
|
|
};
|
|
|
|
struct MAVIPVPShuffleTournamentIndex // MAVI_PVP_SHUFFLE_TOURNAMENT_INDEX
|
|
{
|
|
UINT uiPvPIndex;
|
|
USHORT unVillageChannelID;
|
|
int nCount;
|
|
UINT uiAccountDBID[PvPCommon::Common::PvPTournamentUserMax];
|
|
};
|
|
#endif
|
|
|
|
struct VIMANotifyMail // VIMA_NOTIFYMAIL
|
|
{
|
|
UINT nToAccountDBID; // 받는이 AccountDBID
|
|
INT64 biToCharacterDBID;
|
|
short wTotalMailCount; // 총 우편수
|
|
short wNotReadMailCount; // 읽지 않은 메일
|
|
short w7DaysLeftMailCount; // 만료경고 메일
|
|
bool bNewMail;
|
|
};
|
|
|
|
struct VIMANotifyMarket // VIMA_NOTIFYMARKET
|
|
{
|
|
UINT nSellerAccountDBID; // AccountDBID
|
|
INT64 biSellerCharacterDBID;
|
|
int nItemID; // 팔린아이템
|
|
short wCalculationCount; // 정산카운트
|
|
};
|
|
|
|
struct VIMANotifyGift // VIMA_NOTIFYGIFT
|
|
{
|
|
UINT nToAccountDBID; // 받는이 AccountDBID
|
|
INT64 biToCharacterDBID;
|
|
bool bNew;
|
|
int nGiftCount;
|
|
};
|
|
|
|
struct VIMANotice // VIMA_NOTICE
|
|
{
|
|
int nLen;
|
|
WCHAR szMsg[CHATLENMAX];
|
|
};
|
|
|
|
struct VIMAZoneNotice // VIMA_ZONENOTICE
|
|
{
|
|
int nMapIndex;
|
|
int nLen;
|
|
WCHAR szMsg[CHATLENMAX];
|
|
};
|
|
|
|
struct VIMATraceBreakInto // VIMA_TRACEBREAKINTO
|
|
{
|
|
int nType; //eTrace
|
|
UINT uiAccountDBID; //Tracer
|
|
WCHAR wszParam[SCHAR_MAX];
|
|
#if defined(PRE_ADD_MULTILANGUAGE)
|
|
char cCallerSelectedLang;
|
|
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
|
|
};
|
|
|
|
struct VIMAReqRecall // VIMA_REQRECALL
|
|
{
|
|
UINT uiAccountDBID;
|
|
UINT uiRecallChannelID;
|
|
WCHAR wszCharacterName[NAMELENMAX];
|
|
#if defined(PRE_ADD_MULTILANGUAGE)
|
|
char cCallerSelectedLang;
|
|
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
|
|
};
|
|
|
|
struct VIMABanUser //VIMA_BANUSER
|
|
{
|
|
UINT nAccountDBID;
|
|
WCHAR wszCharacterName[NAMELENMAX];
|
|
#if defined(PRE_ADD_MULTILANGUAGE)
|
|
char cSelectedLang;
|
|
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
|
|
};
|
|
|
|
struct VIMADestroyPvP //VIMA_DESTROYPVP
|
|
{
|
|
UINT nAccountDBID;
|
|
int nPvPIndex;
|
|
WCHAR wszGuildName[GUILDNAME_MAX];
|
|
};
|
|
|
|
struct VIMAUpdateChannelShowInfo
|
|
{
|
|
USHORT unChannelID;
|
|
bool bShow;
|
|
int nServerID;
|
|
CHAR cThreadID;
|
|
};
|
|
|
|
struct VIMAPCBangResult // VIMA_PCBANGRESULT, // 피씨방 관련 결과값 받아오기
|
|
{
|
|
UINT nAccountDBID;
|
|
};
|
|
|
|
#if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
|
|
|
|
struct VIMASyncSystemMail
|
|
{
|
|
INT64 biReceiverCharacterDBID;
|
|
int nMailDBID;
|
|
int iTotalMailCount;
|
|
int iNotReadMailCount;
|
|
int i7DaysLeftMailCount;
|
|
};
|
|
|
|
struct MAVISyncSystemMail
|
|
{
|
|
UINT uiAccountDBID;
|
|
int nMailDBID;
|
|
int iTotalMailCount;
|
|
int iNotReadMailCount;
|
|
int i7DaysLeftMailCount;
|
|
};
|
|
|
|
#endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
|
|
|
|
namespace MasterSystem
|
|
{
|
|
struct VIMACheckMasterApplication
|
|
{
|
|
INT64 biMasterCharacterDBID;
|
|
INT64 biPupilCharacterDBID;
|
|
};
|
|
|
|
struct VIMASyncSimpleInfo
|
|
{
|
|
INT64 biCharacterDBID;
|
|
MasterSystem::EventType::eCode EventCode;
|
|
};
|
|
|
|
struct VIMASyncJoin
|
|
{
|
|
INT64 biCharacterDBID;
|
|
bool bIsAddPupil;
|
|
};
|
|
|
|
struct VIMASyncLeave
|
|
{
|
|
INT64 biCharacterDBID;
|
|
bool bIsDelPupil;
|
|
};
|
|
|
|
struct VIMASyncGraduate
|
|
{
|
|
INT64 biCharacterDBID;
|
|
WCHAR wszCharName[NAMELENMAX];
|
|
};
|
|
|
|
struct VIMASyncConnect
|
|
{
|
|
bool bIsConnect;
|
|
WCHAR wszCharName[NAMELENMAX];
|
|
BYTE cCharacterDBIDCount;
|
|
INT64 CharacterDBIDList[MasterSystem::Max::MasterCount+MasterSystem::Max::PupilCount];
|
|
};
|
|
|
|
struct VIMACheckLeave
|
|
{
|
|
UINT uiAccountDBID;
|
|
INT64 biDestCharacterDBID;
|
|
bool bIsMaster;
|
|
};
|
|
|
|
struct VIMARecallMaster
|
|
{
|
|
UINT uiPupilAccountDBID;
|
|
WCHAR wszPupilCharName[NAMELENMAX];
|
|
WCHAR wszMasterCharName[NAMELENMAX];
|
|
BYTE cCharacterDBIDCount;
|
|
INT64 CharacterDBIDList[MasterSystem::Max::MasterCount+MasterSystem::Max::PupilCount];
|
|
};
|
|
|
|
struct VIMABreakInto
|
|
{
|
|
int iRet;
|
|
UINT uiMasterAccountDBID;
|
|
WCHAR wszPupilCharName[NAMELENMAX];
|
|
BYTE cCharacterDBIDCount;
|
|
INT64 CharacterDBIDList[MasterSystem::Max::MasterCount+MasterSystem::Max::PupilCount];
|
|
};
|
|
struct VIMAJoinConfirm
|
|
{
|
|
INT64 biMasterCharacterDBID;
|
|
BYTE cLevel;
|
|
BYTE cJob;
|
|
WCHAR wszPupilCharName[NAMELENMAX];
|
|
};
|
|
struct VIMAJoinConfirmResult
|
|
{
|
|
int iRet;
|
|
bool bIsAccept;
|
|
INT64 biMasterCharacterDBID;
|
|
WCHAR wszPupilCharName[NAMELENMAX];
|
|
};
|
|
}
|
|
|
|
//farm
|
|
|
|
struct VIMAFarmList //VIMA_FARMLIST
|
|
{
|
|
BYTE cCount;
|
|
TFarmItemFromDB Farms[Farm::Max::FARMCOUNT];
|
|
};
|
|
|
|
|
|
struct VIMASaveUserTempData // VIMA_SAVE_USERTEMPDATA
|
|
{
|
|
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 VIMALoadUserTempData // VIMA_LOAD_USERTEMPDATA
|
|
{
|
|
UINT uiAccountDBID;
|
|
};
|
|
|
|
//VIMA_SETGUILDWAR_SCHEDULE
|
|
struct VIMASetGuildWarSchedule
|
|
{
|
|
int nResultCode; // 결과
|
|
short wScheduleID; // 길드전 차수
|
|
short wWinersWeightRate; // 승리팀 가중치
|
|
bool bForce;
|
|
bool bFinalProgress; // 본선 진행 여부
|
|
TGuildWarEventInfo EventInfo[GUILDWAR_STEP_END]; // 기간정보
|
|
__time64_t tRewardExpireDate; // 보상(농장, 제스쳐) 만료 기간
|
|
};
|
|
//VIMA_SETGUILDWAR_FINALSCHEDULE
|
|
struct MASetGuildWarFinalSchedule
|
|
{
|
|
TGuildWarEventInfo GuildWarFinalSchedule[GUILDWAR_FINALPART_MAX];
|
|
};
|
|
//VIMA_SETGUILDWAR_POINT, MAVI_SETGUILDWAR_POINT
|
|
struct MASetGuildWarPoint
|
|
{
|
|
int nResultCode; // 결과
|
|
int nBlueTeamPoint; // 블루팀
|
|
int nRedTeamPoint; // 레드팀
|
|
};
|
|
//VIMA_ADDGUILDWAR_POINT, MAVI_ADDGUILDWAR_POINT
|
|
struct MAAddGuildWarPoint
|
|
{
|
|
char cTeamType; // 1-블루, 2-레드
|
|
TGuildUID GuildUID; // 적립 길드 ID
|
|
int nAddPoint; // 적립 포인트
|
|
};
|
|
|
|
// MAVI_CHANGE_GUILDWAR_STEP, MAGA_CHANGE_GUILDWAR_STEP
|
|
struct MAChangeGuildWarStep
|
|
{
|
|
short wScheduleID; // 차수
|
|
char cEventStep; // 이벤트 스텝: GUILDWAR_STEP_NONE ~ GUILDWAR_STEP_END
|
|
char cEventType; // GUILDWAR_EVENT_START(시작) / GUILDWAR_EVENT_END(끝)
|
|
short wWinersWeightRate; // 승리팀 가중치(예선전 결과에서 사용)
|
|
bool bCheatFlag; // 치트키 플래그
|
|
};
|
|
|
|
// VIMA_SETGUILDWAR_FINAL
|
|
struct VIMASetGuildWarFinalTeam
|
|
{
|
|
int nCount;
|
|
TGuildUID GuidUID[GUILDWAR_FINALS_TEAM_MAX];
|
|
WCHAR wszGuildName[GUILDWAR_FINALS_TEAM_MAX][GUILDNAME_MAX]; // 길드 이름
|
|
int nTotalPoint[GUILDWAR_FINALS_TEAM_MAX];
|
|
};
|
|
|
|
// VIMA_SETGUILDWAR_POINT_RUNNING_TOTAL, MAVI_SETGUILDWAR_POINT_RUNNING
|
|
struct MASetGuildWarPointRunningTotal
|
|
{
|
|
SGuildWarRankingInfo sGuildWarPointRunningTotal[GUILDWAR_TRIAL_POINT_TEAM_MAX];
|
|
};
|
|
|
|
// MAVI_GETGUILDWAR_PREWIN_REWARD
|
|
struct MAVIGetGuildWarPrewinReward
|
|
{
|
|
short wScheduleID; // 지난 우승 차수
|
|
UINT nGuildDBID; // 우승 길드의 DBID
|
|
};
|
|
|
|
// VIMA_GUILDWAR_REFRESH_GUILD_POINT, MAVI_GUILDWAR_REFRESH_GUILD_POINT
|
|
struct MAGuildWarRefreshGuildPoint
|
|
{
|
|
TGuildUID GuildUID[GUILDWAR_FINALS_TEAM_MAX]; // 갱신할 GuildUID
|
|
int nGuildPoint[GUILDWAR_FINALS_TEAM_MAX]; // 갱신할 GuildPoint
|
|
};
|
|
|
|
//MAVI_SETGUILDWAR_SECRETMISSION / MAGA_SETGUILDWAR_SECRETMISSION, // 길드전 시크릿 미션
|
|
struct MASetGuildWarSecretMission
|
|
{
|
|
BYTE cTeamCode;
|
|
int nRandomSeed;
|
|
};
|
|
|
|
struct MAUpdateGuildWare //MAVI_UPDATEGUILDWARE / MAGI_UPDATEGUILDWARE
|
|
{
|
|
TGuildUID GUildID;
|
|
};
|
|
|
|
//VIMA_ADD_DBJOBSYSTEM_RESERVE
|
|
struct VIMAAddDBJobSystemReserve
|
|
{
|
|
int nResultCode;
|
|
char cJobType;
|
|
int nJobSeq;
|
|
};
|
|
struct VIMAGetDBJobSystemReserve
|
|
{
|
|
int nResultCode;
|
|
int nJobSeq;
|
|
char cJobStatus;
|
|
};
|
|
//VIMA_MATCHLIST_SAVE_RESULT
|
|
struct VIMAMatchListSaveResult
|
|
{
|
|
int nResultCode;
|
|
};
|
|
|
|
struct VIMADuplicateLogin
|
|
{
|
|
UINT nAccountDBID;
|
|
UINT nSessionID;
|
|
bool bIsDetach;
|
|
};
|
|
|
|
#if defined( PRE_WORLDCOMBINE_PVP )
|
|
|
|
struct VIMACreateWorldPvPRoom
|
|
{
|
|
int nRoomIndex; // PvPCommon::Common::MaxRoomCount 까지 PvP방 인덱스 사용중이므로 +1해서 사용
|
|
TWorldPvPMissionRoom Data;
|
|
UINT nGMAccountDBID; // 생성한 운영자 아이디
|
|
};
|
|
|
|
#endif
|
|
|
|
#pragma pack(pop)
|
|
|