#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)