#ifndef _DBAGENT_TO_LOGIN_ #define _DBAGENT_TO_LOGIN_ #include #include #include #pragma pack(1) // ÇÎ ÆÐŶ ( Ŭ¶óÀÌ¾ðÆ® -> ¼­¹ö·Î 5Ãʸ¶´Ù.. ¼­¹ö - ¼­¹ö°£ Åë½Åµµ, ¿¬°áÇÏ´Â ÂÊ¿¡¼­ PingÀ» ÁØ´Ù. ) typedef struct PktSyP* LPPktSyP; struct PktSyP : public PktBase { unsigned long m_dwTickTime; }; // ¼­ºñ½º ·Î±×ÀÎ ¿äû ÆÐŶ typedef struct PktSL* LPPktSL; struct PktSL : public PktBase { unsigned long m_dwServerID; IN_ADDR m_Address; }; // ¼­ºñ½º ·Î±×ÀÎ ÀÀ´ä ÆÐŶ typedef struct PktSLAck* LPPktSLAck; struct PktSLAck : public PktBase { enum { PATCH_ADDRESS_LENGTH = 100 }; unsigned __int64 m_dlItemUID; unsigned long m_dwServerID; unsigned long m_dwClientVer; unsigned long m_dwCheckSum; char m_PatchAddress[PATCH_ADDRESS_LENGTH]; }; // ¼­ºñ½º ¹öÀü ¾÷µ¥ÀÌÆ® Á¤º¸ typedef struct PktSVU* LPPktSVU; struct PktSVU : public PktBase { enum { PATCH_ADDRESS_LENGTH = 100 }; unsigned long m_dwServerID; IN_ADDR m_ServerAddr; unsigned long m_dwClientVer; unsigned long m_dwCheckSum; char m_PatchAddress[PATCH_ADDRESS_LENGTH]; }; // ä³Î ¾÷µ¥ÀÌÆ® Á¤º¸ typedef struct PktSCInfo* LPPktSCInfo; struct PktSCInfo : public PktBase { enum { MAX_CHANNEL_NUM = 5 }; unsigned long m_dwServerID; unsigned char m_cChannelNum; unsigned short m_usChannelClientNum[MAX_CHANNEL_NUM]; }; // --------------------------------------------------------------------------- // ÆÐÄ¡ Á¤º¸ °ü·Ã ÆÐŶ // ÆÐÄ¡ Á¤º¸ ¿äû ÆÐŶ typedef struct PktSPI* LPPktSPI; struct PktSPI : public PktBase { unsigned long m_dwServerID; }; // ÆÐÄ¡ ¼­¹ö ÀÀ´ä ÆÐŶ typedef struct PktSPIAck* LPPktSPIAck; struct PktSPIAck : public PktBase { enum { PATCH_ADDRESS_LENGTH = 100 }; unsigned long m_dwClientVer; char m_PatchAddress[PATCH_ADDRESS_LENGTH]; }; // --------------------------------------------------------------------------- // Zone °ü·Ã ÆÐŶ // ¼­¹öÁ¸ ¼±Åà typedef struct PktSZ* LPPktSZ; struct PktSZ : public PktBase { unsigned short m_cChannel; unsigned char m_cZone; }; // ¼­¹öÁ¸ ¼±Åà Ack typedef struct PktSZAck* LPPktSZAck; struct PktSZAck : public PktBase { unsigned long m_dwServerID; sockaddr_in m_GameServerTCPAddr; }; // ¼­¹öÁ¸ À̵¿ typedef struct PktSZMv* LPPktSZMv; struct PktSZMv : public PktBase { POS m_NewPos; char m_cZone; char m_cChannel; }; // ¼­¹öÁ¸ ¼±Åà Ack typedef struct PktSZMvAck* LPPktSZMvAck; struct PktSZMvAck : public PktBase { enum { MAX_CHANNEL_NUM = 5 }; unsigned short m_wChannelNum[MAX_CHANNEL_NUM]; unsigned char m_cZone; }; typedef struct PktSZMvD* LPPktSZMvD; struct PktSZMvD : public PktDD { unsigned long m_dwUserID; char m_cZone; char m_cChannel; POS m_NewPos; }; typedef struct PktSZMvDAck* LPPktSZMvDAck; struct PktSZMvDAck : public PktDD { enum { MAX_CHANNEL_NUM = 5 }; enum PktSZMvDAckErr { FAIL_INVALID_ZONE = 3, FAIL_INVALID_CHAR = 5, FAIL_PERSONNEL_OVER = 6, FAIL_LIMIT_LEVEL = 7 }; unsigned char m_cZone; unsigned short m_wChannelNum[MAX_CHANNEL_NUM]; }; // ¼­¹ö ÁÖ¼Ò ¾ò±â typedef struct PktSA* LPPktSA; struct PktSA : public PktDD { unsigned long m_dwUserID; // À¯Àú ¾ÆÀ̵ð char m_cZone; // Á¸ ¹øÈ£ char m_cChannel; // ä³Î ¹øÈ£ }; // ¼­¹ö ÁÖ¼Ò ¾ò±â Ack typedef struct PktSAAck* LPPktSAAck; struct PktSAAck : public PktDD { enum PktSAAckErr { NO_SERVER_ERR = 0, SERVER_ERROR = 1, FAIL_USER_LIMIT = 4 }; unsigned long m_dwServerID; IN_ADDR m_GameAddress; }; // --------------------------------------------------------------------------- // À¯Àú °ü·Ã // À¯Àú Å×ÀÌºí ¾÷µ¥ÀÌÆ® typedef struct PktUUT *LPPktUUT; struct PktUUT : public PktBase { enum UpdateType { UpdateUIDTableNone = 0, // ¾øÀ½ UpdateUIDTableUserLogin = 1, // À¯Àú ·Î±×ÀÎ UpdateUIDTableUserLogout = 2, // À¯Àú ·Î±×¾Æ¿ô UpdateUIDTableUserMove = 3, // À¯Àú À̵¿ UpdateUIDTableCharLogin = 4, // ij¸¯ÅÍ ·Î±×ÀÎ UpdateUIDTableCharLogout = 5, // ij¸¯ÅÍ ·Î±×¾Æ¿ô UpdateUIDTableCharMove = 6, // ij¸¯ÅÍ À̵¿ UpdateUIDTableBillingCheck = 7, // ºô¸µ üũ MAX_UPDATE_TYPE = 8 }; enum Err { DISCONNECT_USER = 1 }; enum { // edith 2008.03.17 ID,PASS ±æÀÌÁ¶Á¤ MaxAccountLen = 24, MaxPasswordLen = 36 }; unsigned char m_cCmd; char m_strAccount[MaxAccountLen]; // edith 2008.01.15 ÆÐ½º¿öµå Ãß°¡ÀÛ¾÷ char m_strPassword[MaxPasswordLen]; IN_ADDR m_IPAddress; unsigned long m_dwSessionID; unsigned long m_dwServerID; unsigned long m_dwUserID; unsigned long m_dwCharID; }; typedef struct PktUUTAck *LPPktUUTAck; struct PktUUTAck : public PktBase { unsigned char m_cCmd; unsigned long m_dwUserID; unsigned long m_dwFlag; // Success(=0) int m_nPlayTime; // ÇöÀç ³²Àº ½Ã°£ (ÀÏ, ºÐ) unsigned long m_dwCRMIndex1; // Çǽùæ ID(0ÀÌ¸é °³ÀÎÀ¯Àú) char m_cstrBillingType; // D, T(N: ¹«·á°èÁ¤) }; // À¯Àú Á×À̱â. typedef struct PktUK* LPPktUK; struct PktUK : public PktBase { unsigned long m_dwUserID; unsigned long m_dwCharID; unsigned long m_dwServerID; }; // ºô¸µ ŸÀӾƿô °øÁö. (Billing Timeout Notify) typedef struct PktBTN* LPPktBTN; struct PktBTN : public PktBase { unsigned long m_dwUserID; unsigned long m_dwCharID; unsigned long m_dwServerID; unsigned char m_cRemainMinute; // ³²Àº ºÐ.. unsigned char m_cBillingType; // 'D' Á¤¾×Á¦ 'T' Á¤·®Á¦ }; // ÇѰÔÀÓ ÅëÇÕºô¸µ °æ°í ¸Þ½ÃÁö typedef struct PktHanBTN* LPPktHanBTN; struct PktHanBTN : public PktBase { enum { MAX_HAN_BTN = 70 }; unsigned long m_dwIP; unsigned long m_dwUID; unsigned long m_dwCID; char m_szAccount[PktUUT::MaxAccountLen]; char m_szMsg[MAX_HAN_BTN]; }; // ÇѰÔÀÓ ÅëÇÕºô¸µ Á¢¼Ó ²÷±â ¸Þ½ÃÁö(°èÁ¤¸í ¹×, IP·Î) typedef struct PktHanUserKill* LPPktHanUserKill; struct PktHanUserKill : public PktBase { enum { DISCONN_ALL_IP = 0xFFFFFFFF }; unsigned long m_dwIP; char m_szAccount[PktUUT::MaxAccountLen]; }; #pragma pack() #endif