415 lines
7.9 KiB
C++
415 lines
7.9 KiB
C++
#pragma once
|
|
|
|
#pragma pack(push, 1)
|
|
|
|
//--------------------------------------------------------------
|
|
// Game Packet
|
|
//--------------------------------------------------------------
|
|
struct GameServerInfo
|
|
{
|
|
BYTE cServerIdx;
|
|
int nServerAttribute;
|
|
ULONG nIP;
|
|
USHORT nPort;
|
|
BYTE cMargin;
|
|
};
|
|
|
|
struct GARegist // GAAG_REGIST
|
|
{
|
|
int nManagedID; //ServiceManager이용시 GSM에서 컨트롤시 사용
|
|
USHORT nTcpOpenPort;
|
|
BYTE cAffinityType; //eGameserverAffinityType
|
|
unsigned char cInfoCount;
|
|
GameServerInfo ServerInfo[GAMECOUNTMAX];
|
|
};
|
|
|
|
// Game -> Master
|
|
struct GAMADelayReport //GAMA_DELAYREPORT
|
|
{
|
|
int nServerIdx;
|
|
int nWholeRoomCnt;
|
|
int nRoomCnt;
|
|
int nUserCnt;
|
|
int nMinFrame;
|
|
int nMaxFrame;
|
|
int nAvrFrame;
|
|
BYTE cHasMargin;
|
|
};
|
|
|
|
struct GAMACheckUser // GAMA_CHECKUSER
|
|
{
|
|
UINT nSessionID;
|
|
};
|
|
|
|
struct GAMAEnterGame //GAME_ENTERGAME
|
|
{
|
|
UINT nAccountDBID;
|
|
USHORT nRoomID;
|
|
USHORT nServerIdx;
|
|
};
|
|
|
|
struct GAMAReconnectLogin //GAMA_RECONNECTLOGIN
|
|
{
|
|
UINT nAccountDBID;
|
|
};
|
|
|
|
struct GAMAAddUserList // GAMA_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
|
|
#if defined(_ID)
|
|
char szMacAddress[MACADDRLENMAX];
|
|
char szKey[KREONKEYMAX];
|
|
DWORD dwKreonCN;
|
|
#endif
|
|
#if defined(_KRAZ)
|
|
TShutdownData ShutdownData;
|
|
#endif // #if defined(_KRAZ)
|
|
USHORT nThreadIdx;
|
|
int nRoomID;
|
|
TPARTYID PartyID;
|
|
#if defined(PRE_ADD_DWC)
|
|
BYTE cAccountLevel;
|
|
#endif
|
|
};
|
|
|
|
struct GAMADelUser // GAMA_DELUSER
|
|
{
|
|
UINT nAccountDBID;
|
|
BYTE cIsUnIntended;
|
|
UINT nSessionID;
|
|
};
|
|
|
|
struct GAMAEndofRegist //GAMA_ENDOFREGIST
|
|
{
|
|
UINT nServerID;
|
|
};
|
|
|
|
struct GAMAChangeServer // GAMA_CHANGESERVER
|
|
{
|
|
UINT nAccountDBID;
|
|
};
|
|
|
|
struct GAMASetRoomID // GAMA_SETROOMID
|
|
{
|
|
GameTaskType::eType GameTaskType;
|
|
BYTE cReqGameIDType;
|
|
union
|
|
{
|
|
TINSTANCEID InstanceID;
|
|
LadderSystem::MatchType::eCode MatchType;
|
|
};
|
|
BYTE cGameID;
|
|
BYTE cServerIdx;
|
|
BYTE cVillageID;
|
|
int iRoomID;
|
|
TPARTYID PartyIDForBreakInto;
|
|
#if defined( PRE_WORLDCOMBINE_PARTY )
|
|
ePartyType Type;
|
|
#endif
|
|
#if defined( PRE_WORLDCOMBINE_PVP )
|
|
WorldPvPMissionRoom::Common::eReqType eWorldReqType;
|
|
#endif
|
|
UINT nRoomMember[PARTYMAX];
|
|
};
|
|
|
|
struct GAMASetTutorialRoomID // GAMA_SETTUTORIALROOMID
|
|
{
|
|
UINT nAccountDBID;
|
|
BYTE cGameID;
|
|
BYTE cServerIdx;
|
|
int nRoomID;
|
|
int nLoginServerID;
|
|
};
|
|
|
|
struct GAMARequestNextVillageInfo //GAMA_REQNEXTVILLAGEINFO
|
|
{
|
|
BYTE cReqGameIDType;
|
|
TINSTANCEID InstanceID;
|
|
BYTE cReturnVillage; //0false 1true;
|
|
int nMapIndex;
|
|
int nEnteredGateIndex;
|
|
INT64 nItemSerial;
|
|
TPartyData PartyData;
|
|
};
|
|
|
|
struct GAMARebirthVillageInfo // GAMA_REBIRTHVILLAGEINFO
|
|
{
|
|
UINT nAccountDBID;
|
|
int nLastVillageMapIdx;
|
|
};
|
|
|
|
struct GAMAMovePvPGameToPvPLobby // GAMA_MOVEPVPGAMETOPVPLOBBY
|
|
{
|
|
UINT uiAccountDBID;
|
|
UINT uiPvPIndex;
|
|
int iLastVillageMapIndex;
|
|
bool bIsLadderRoom;
|
|
};
|
|
|
|
struct GAMALoginState // GAMA_LOGINSTATE
|
|
{
|
|
UINT nAccountDBID;
|
|
};
|
|
|
|
struct GAMAVillageState // GAMA_VILLAGESTATE
|
|
{
|
|
UINT nAccountDBID;
|
|
int nMapIndex;
|
|
int nRoomID;
|
|
};
|
|
|
|
struct GAMADelPartyMember // GAMA_DELPARTYMEMBER
|
|
{
|
|
USHORT nServerID;
|
|
UINT nAccountDBID;
|
|
char cKickKind;
|
|
};
|
|
|
|
#define GAMAParty VIMAParty //GAMA_PARTY
|
|
|
|
#define GAMAFriendAddNotice VIMAFriendAddNotice
|
|
|
|
struct GAMAPrivateChat // GAMA_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 GAMAChat // GAMA_CHAT
|
|
{
|
|
UINT nAccountDBID;
|
|
char cType;
|
|
short wChatLen;
|
|
WCHAR wszChatMsg[CHATLENMAX];
|
|
};
|
|
|
|
struct GAMAWorldSystemMsg // GAMA_WORLDSYSTEMMSG
|
|
{
|
|
UINT nAccountDBID;
|
|
char cType;
|
|
int nID;
|
|
int nValue;
|
|
WCHAR wszToCharacterName[NAMELENMAX];
|
|
};
|
|
|
|
#if defined( PRE_PRIVATECHAT_CHANNEL )
|
|
struct GAMAPrivateChannelChatMsg // GAMA_PRIVATECHANNELCHAT
|
|
{
|
|
UINT nAccountDBID;
|
|
char cType;
|
|
short wChatLen;
|
|
INT64 nChannelID;
|
|
WCHAR wszChatMsg[CHATLENMAX];
|
|
};
|
|
#endif
|
|
|
|
struct GAMANotice //GAMA_NOTICE
|
|
{
|
|
int nLen;
|
|
WCHAR szMsg[CHATLENMAX];
|
|
};
|
|
|
|
struct GAMABanUser //GAMA_BANUSER
|
|
{
|
|
UINT nAccountDBID;
|
|
WCHAR wszCharacterName[NAMELENMAX];
|
|
#if defined(PRE_ADD_MULTILANGUAGE)
|
|
char cSelectedLang;
|
|
#endif //#if defined(PRE_ADD_MULTILANGUAGE)
|
|
};
|
|
|
|
struct GAMAUpdateWorldUserState //GAMA_UPDATEWORLDUSERSTATE
|
|
{
|
|
WCHAR szName[NAMELENMAX];
|
|
int nMapIdx;
|
|
};
|
|
|
|
struct GAMAPVP_ROOMSYNCOK
|
|
{
|
|
UINT uiPvPIndex;
|
|
};
|
|
|
|
struct GAMAPVP_LADDERROOMSYNC
|
|
{
|
|
INT64 biRoomIndexArr[2];
|
|
LadderSystem::RoomState::eCode State;
|
|
};
|
|
|
|
struct GAMAPVP_BREAKINTOOK
|
|
{
|
|
UINT uiPvPIndex;
|
|
UINT uiAccountDBID;
|
|
};
|
|
|
|
struct GAMAPVP_COMMAND
|
|
{
|
|
UINT uiCommandType; // PvPCommon::GAMA_Command 참고
|
|
UINT uiPvPIndex;
|
|
UINT uiRoomIndex;
|
|
};
|
|
|
|
#define GAMAPVPSwapMemberIndex VIMAPVPSwapMemberIndex //GAMA_PVP_SWAPTMEMBER_INDEX
|
|
#define GAMAPVPChangeMemberGrade VIMAPVPChangeMemberGrade //GAMA_PVP_CHANGEMEMBER_GRADE
|
|
|
|
struct GAMAPvPGuildWarScore //GAMA_PVP_GUILDWARSCORE
|
|
{
|
|
UINT nGuildDBID;
|
|
int nScore;
|
|
};
|
|
|
|
struct GAMAPvPGuildWarResult //GAMA_PVP_GUILDWARRESULT
|
|
{
|
|
UINT nWinGuildDBID;
|
|
UINT nLoseGuildDBID;
|
|
bool bIsDraw;
|
|
};
|
|
|
|
struct GAMAPvPGuildWarException //GAMA_PVP_GUILDWAREXCEPTION
|
|
{
|
|
UINT nRoomID;
|
|
UINT nPvPIndex;
|
|
};
|
|
|
|
struct GAMAPCBangResult // GAMA_PCBANGRESULT, // 피씨방 관련 결과값 받아오기
|
|
{
|
|
UINT nAccountDBID;
|
|
};
|
|
|
|
struct GAMANotifyGift // GAMA_NOTIFYGIFT
|
|
{
|
|
UINT nToAccountDBID; // 받는이 AccountDBID
|
|
INT64 biToCharacterDBID;
|
|
bool bNew;
|
|
int nGiftCount;
|
|
};
|
|
|
|
struct GAMAInvitePartyMember : public TInvitePartyInfo //GAMA_INVITEPARTYMEMBER
|
|
{
|
|
int nChannelID;
|
|
|
|
UINT nInviterAccountDBID;
|
|
INT64 biInviterCharacterDBID;
|
|
WCHAR wszInviterName[NAMELENMAX];
|
|
WCHAR wszInvitedName[NAMELENMAX];
|
|
BYTE cPermitLevel;
|
|
char cPassClassIds[PERMITMAPPASSCLASSMAX];
|
|
};
|
|
|
|
struct GAMAInvitedReturnMsg //GAMA_INVITEPARTYMEMBER_RETURNMSG
|
|
{
|
|
UINT nAccountDBID;
|
|
int nRetCode;
|
|
};
|
|
|
|
#if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
|
|
|
|
typedef VIMASyncSystemMail GAMASyncSystemMail;
|
|
typedef MAVISyncSystemMail MAGASyncSystemMail;
|
|
|
|
#endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
|
|
|
|
namespace MasterSystem
|
|
{
|
|
typedef VIMASyncSimpleInfo GAMASyncSimpleInfo;
|
|
typedef VIMASyncGraduate GAMASyncGraduate;
|
|
typedef VIMASyncConnect GAMASyncConnect;
|
|
}
|
|
|
|
struct GAMAFarmDataLoaded //GAMA_FARM_DATALOADED
|
|
{
|
|
int nGameServerIdx; //threadidx;
|
|
UINT nRoomID;
|
|
UINT nFarmDBID;
|
|
int nMapID;
|
|
int nFarmMaxUser;
|
|
};
|
|
|
|
struct GAMAFarmUserCount //GAMA_FARM_USERCOUNT
|
|
{
|
|
UINT nFarmDBID;
|
|
UINT nFarmRoomID;
|
|
int nCurUserCount;
|
|
bool bStarted;
|
|
};
|
|
|
|
struct GAMAFarmIntendedDestroy //GAMA_FARM_INTENDEDDESTROY
|
|
{
|
|
UINT nFarmDBID;
|
|
};
|
|
|
|
struct GAMAFarmSync //GAMA_FARM_SYNC
|
|
{
|
|
INT64 biCharacterDBID;
|
|
Farm::ServerSyncType::eType Type;
|
|
};
|
|
|
|
struct MAGAFarmSync
|
|
{
|
|
UINT uiAccountDBID; // 반드시 uiAccountDBID 가 맨 위에 와야 함
|
|
INT64 biCharacterDBID;
|
|
Farm::ServerSyncType::eType Type;
|
|
};
|
|
|
|
struct GAMAFarmSyncAddWater
|
|
{
|
|
INT64 biCharacterDBID;
|
|
WCHAR wszCharName[NAMELENMAX];
|
|
int iAddPoint;
|
|
};
|
|
|
|
struct MAGAFarmSyncAddWater
|
|
{
|
|
UINT uiAccountDBID; // 반드시 uiAccountDBID 가 맨 위에 와야 함
|
|
WCHAR wszCharName[NAMELENMAX];
|
|
int iAddPoint;
|
|
};
|
|
|
|
|
|
struct GAMALoadUserTempData // GAMA_LOAD_USERTEMPDATA
|
|
{
|
|
UINT uiAccountDBID;
|
|
};
|
|
|
|
struct GAMASaveUserTempData // GAMA_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 GAMADuplicateLogin
|
|
{
|
|
UINT nAccountDBID;
|
|
UINT nSessionID;
|
|
bool bIsDetach;
|
|
};
|
|
|
|
#pragma pack(pop)
|