#ifndef _BATTLEGROUND_SERVER_PACKET_H_ #define _BATTLEGROUND_SERVER_PACKET_H_ #include #include #pragma pack(1) // ¹æ ¸®½ºÆ® (°¡º¯ ±æÀÌ) + ¹æ Á¤º¸ typedef struct PktBGServerMapList* LPPktBGServerMapList; struct PktBGServerMapList : public PktBase { enum Const { MAX_MAP_NUM = 10 }; bool m_bAll; // true ÀÌ¸é ¸ðµç ¸Ê ¸®½ºÆ®, false À̸é ÀÚ½ÅÀÇ ¸Ê Á¤º¸ unsigned char m_cMapInfoNodeNum; // ³ëµå ¼ö }; // ¹æ Á¤º¸ struct BGServerMapInfoNode { enum MapType { FRAG = 0, // ½ºÄÚ¾î °æÀï °ÔÀÓ ¹æ STATUE = 1, // ¼®»ó Á¡·É °ÔÀÓ ¹æ MAX_MAP_TYPE }; // ¹èƲ ±×¶ó¿îµå ÇϳªÀÇ °¡»ó ¸ÊÀÌ °¡Á®¾ß ÇÏ´Â º¯¼ö bool m_bPlaying; // °ÔÀÓ ÁßÀÎÁö ¿©ºÎ unsigned char m_cMapType; // °ÔÀÓ ¹æ½Ä unsigned char m_cMaxCharNumOfNation; // ÇÑ Áø¿µ ÃÖ´ë Àοø unsigned char m_cRemainMin; // ³²Àº ½Ã°£ (°æ±â½Ã°£ ȤÀº ½¬´Â½Ã°£) (ºÐ) unsigned short m_wTargetScore; // ¸ñÇ¥ Á¡¼ö unsigned char m_cCurrentCharNum[CClass::MAX_RACE]; // ÇöÀç Àοø unsigned short m_wScore[CClass::MAX_RACE]; // Á¡¼ö }; // ¹æ °á°ú ¸®½ºÆ® (°¡º¯ ±æÀÌ) + ¹æ °á°ú Á¤º¸ typedef struct PktBGServerResultList* LPPktBGServerResultList; struct PktBGServerResultList : public PktBase { enum Const { MAX_MAP_NUM = 10 }; bool m_bAll; // true ÀÌ¸é ¸ðµç ¹æ ¸®½ºÆ®, false À̸é ÀÚ½ÅÀÇ ¹æ Á¤º¸ unsigned char m_cResultInfoNodeNum; // ³ëµå ¼ö }; // ¹æ °á°ú Á¤º¸ struct BGServerResultInfoNode { unsigned char m_cWinRace; // ½ÂÀÚ (CClass::MAX_RACE ÀÌ¸é ¹«½ÂºÎ) unsigned char m_cPlayMin; // ½ÇÁ¦ Ç÷¹ÀÌÇÑ ½Ã°£ unsigned char m_cKill; // »ó´ë¹æÀ» Á×ÀÎ ¼ö unsigned char m_cKilled; // Á×Àº ¼ö unsigned short m_wAward; // º¸»óÀ¸·Î ¹ÞÀº ¸¶Àϸ®Áö unsigned short m_wScore[CClass::MAX_RACE]; // Á¡¼ö }; // BATTLEGROUND_SERVER Á¸ À̵¿ typedef struct PktBGServerMoveZone* LPPktBGServerMoveZone; struct PktBGServerMoveZone : public PktBase { enum MoveType { TYPE_PLAYER = 0, // °ÔÀÓ ÂüÀüÀÚ TYPE_SPECTATOR = 1, // °ÔÀÓ °üÀüÀÚ MAX_TYPE_NUM }; enum Error { FAIL_FULL_MAP = 2, // ¹æ Á¤¿ø Ãʰú FAIL_FIX_RATE = 3 // °¢ ÆÀÀÇ ±ÕÇüÀ» ¸ÂÃß±â À§ÇÑ ºñÀ² Á¦ÇÑ }; unsigned short m_wMapNumber; // ÇØ´ç ¹æ ¹øÈ£ (0Àº ´ë±â½Ç) unsigned char m_cMoveType; // ¹æ¿¡ µé¾î°¡´Â ŸÀÔ unsigned char m_cZone; // ÇØ´ç ¹æÀÇ Á¸ ¹øÈ£ (Ack) }; // Á¤¼· ij¸¯ÅÍ Á¤º¸ typedef struct PktBGServerCharSlot* LPPktBGServerCharSlot; struct PktBGServerCharSlot : public PktBase { unsigned long m_dwCID; // ij¸¯ÅÍ ¾ÆÀ̵ð (Client <-> Game) unsigned long m_dwUID; // À¯Àú ¾ÆÀ̵ð (Game <-> DBAgent) unsigned char m_cGroup; // ¼­¹ö ±×·ì }; // Á¤¼· ij¸¯ÅÍ Á¤º¸ Ack typedef struct PktBGServerCharSlotAck* LPPktBGServerCharSlotAck; struct PktBGServerCharSlotAck : public PktBase { enum PktCharSlotAckErr { FAIL_NOT_USER = 2, // DB¿¡¼­ À¯Àú Á¤º¸ ¾ò±â ½ÇÆÐ FAIL_NOT_CHAR = 3 // DB¿¡¼­ ij¸¯ÅÍ Á¤º¸ ¾ò±â ½ÇÆÐ }; unsigned long m_dwCID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned char m_cGroup; // ¼­¹ö ±×·ì unsigned long m_dwSlotCID[USER_INFO::MAX_CHAR_NUM]; // Á¤¼· ij¸¯ÅÍ ID char m_szSlotName[USER_INFO::MAX_CHAR_NUM][CHAR_INFOST::MAX_NAME_LEN]; // Á¤¼· ij¸¯ÅÍ À̸§ }; // ȯÀü¼Ò ÀÌ¿ë typedef struct PktBGServerMileageChange* LPPktBGServerMileageChange; struct PktBGServerMileageChange : public PktBase { enum PktBGSMCCmd { MC_REQUEST = 0, // Á¤º¸ ¿äû (¼±ÅÃÇÑ Á¤¼·ÀÇ...) MC_INFO = 1, // Á¤º¸ Ack MC_CHANGE = 2, // ±³È¯ ¿äû (BGÀÇ °øÇå¸Þ´Þ -> Á¤¼·ÀÇ µ·) MC_RESULT = 3 // ±³È¯ Ack }; enum PktErr { SERVER_ERROR = 1, NOT_USED_STORE = 2, // â°í »ç¿ëÇÑÀûÀÌ ¾ø´Â °æ¿ì - MC_RESULT (¸Þ½ÃÁö ó¸® ÇÊ¿ä) NOT_ENOUGH_MEDAL = 3, // °øÇå ¸Þ´Þ ºÎÁ· - MC_RESULT (¸Þ½ÃÁö ó¸® ÇÊ¿ä) MONEY_OVERFLOW = 4, // µ· ¿À¹öÇÃ·Î¿ì ¹ß»ý(ÀÔ±Ý ºÒ°¡) - MC_RESULT ( ¸Þ½ÃÁö ó¸® ÇÊ¿ä) DATA_REQUESTING = 5, // ¼­¹ö µ¥ÀÌÅÍ ¿äûÁßÀÓ - MC_RESULT (¸Þ½ÃÁö ó¸® ÇÊ¿ä ¾øÀ½) NONE_CHARACTER = 6 // ij¸¯ÅͰ¡ ¾ø´Â °æ¿ì - MC_INFO (¸Þ½ÃÁö ó¸® ÇÊ¿ä) }; unsigned long m_dwCID; // ij¸¯ÅÍ ID unsigned char m_cGroup; // ¼­¹ö ±×·ì unsigned char m_cCmd; // ¸í·É unsigned long m_dwGold; // µ· unsigned long m_dwMileage; // °øÇå ¸Þ´Þ }; #pragma pack() #endif