#ifndef _CHAR_ATTACK_PACKET_STRUCT_H_ #define _CHAR_ATTACK_PACKET_STRUCT_H_ #include #pragma pack(1) // ¹æ¾îÀÚ Á¤º¸ ( Â÷ÈÄ ¼­¹ö¿¡¼­ ó¸® ½Ã ¾ø¾îÁú ±¸Á¶Ã¼ ) typedef struct AtNode *LPAtNode; struct AtNode { enum { MAX_MONSTER_DEFENDER_NUM = 5, 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 { SKILL_BIT = 0x8000 }; enum AttackType { RIGHT_MELEE = 0, LEFT_MELEE = 1, BOW = 3, CROSSBOW = 4, DEFENCE = 5, GUARD = 6 }; unsigned short m_wType; // °ø°Ý ŸÀÔ (¶Ç´Â ½ºÅ³ ID) unsigned char m_cCasting : 1; // ij½ºÆÃ (°ø°Ý ŸÀÔÀ» ½ºÅ³ ID·Î »ç¿ëÇϹǷΠº°µµÀÇ °ø°£À» µÓ´Ï´Ù.) unsigned char m_cAtCount : 3; // °ø°Ý Ä«¿îÆ® (0~7) unsigned char m_cSkillLockCount : 3; // ½ºÅ³ ¶ôÄ«¿îÆ® (0~7) unsigned char m_cMissileAttack : 1; // Æ÷źÀÌ ¶³¾îÁö´Â À§Ä¡¿¡ ÀÇÇÑ °ø°Ý (ƯÁ¤ ŸÄÏÀÌ ¾Æ´Ô) char m_cSkillLevel; // ½ºÅ³ ·¹º§ (-127 ~ 128) POS m_DstPos; // °ø¼º º´±âÀÇ Æ÷źÀÌ ¶³¾îÁø À§Ä¡ }; // ¹æ¾îÀÚ ³ëµå 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_wMPHeal; // MP ȸº¹·® unsigned short m_wDamage; // µ¥¹ÌÁö °ª unsigned char m_cJudge; // ÆÇÁ¤ °ª }; #pragma pack() #endif