#ifndef _CHAR_ATTACK_PACKET_STRUCT_H_ #define _CHAR_ATTACK_PACKET_STRUCT_H_ #pragma pack(1) // ¹æ¾îÀÚ Á¤º¸ ( Â÷ÈÄ ¼­¹ö¿¡¼­ ó¸® ½Ã ¾ø¾îÁú ±¸Á¶Ã¼ ) typedef struct AtNode *LPAtNode; struct AtNode { enum { MAX_DEFENDER_NUM = 10 }; unsigned char m_wDefenserNum; // ¹æ¾îÀÚ ¼ö unsigned long m_dwDefenser[MAX_DEFENDER_NUM]; // ¹æ¾îÀÚ ¾ÆÀ̵ð unsigned char m_cDefenserJudge[MAX_DEFENDER_NUM]; // ¹æ¾îÀÚ ÆÇÁ¤ }; // °ø°Ý Á¤º¸ typedef struct AtType* LPAtType; struct AtType { enum { SkillBitMask = 0x8000 }; enum Attack { Normal = 0, Move = 1, ComboLast = 2, Bow = 3, CrossBow = 4 }; unsigned short m_wType; // °ø°Ý ŸÀÔ (¶Ç´Â ½ºÅ³ ID) char m_cSkillLevel; // ½ºÅ³ ·¹º§ (-127 ~ 128) unsigned char m_cSkillLockCount : 4; // ½ºÅ³ ¶ôÄ«¿îÆ® (0~5) unsigned char m_cAtCount : 4; // °ø°Ý Ä«¿îÆ® (0~15) }; // ¹æ¾îÀÚ ³ëµå typedef struct DefenserNode* LPDefenserNode; struct DefenserNode { unsigned long m_dwCharID; // ¹æ¾îÀÚ Ä³¸¯ÅÍ ¾ÆÀ̵ð unsigned short m_wMaxHP; // ÃÖ´ë HP unsigned short m_sCurrHP; // ÇöÀç HP unsigned short m_wMaxMP; // ÃÖ´ë MP unsigned short m_sCurrMP; // ÇöÀç MP unsigned short m_wDamage; // µ¥¹ÌÁö °ª unsigned char m_cJudge; // ÆÇÁ¤ °ª }; #pragma pack() #endif