#ifndef _CHAR_ATTACK_PACKET_H_ #define _CHAR_ATTACK_PACKET_H_ // CharAttackPacket.h #include #include #include "CharAttackPacketStruct.h" #pragma pack(1) // ij¸¯ÅÍ °ø°Ý ÆÐŶ typedef struct PktAt* LPPktAt; struct PktAt : public PktBase { POS m_Postion; // °ø°ÝÀÚ Ä³¸¯ÅÍ À§Ä¡ float m_fDir; // °ø°ÝÀÚ ¹æÇâ unsigned long m_dwCharID; // °ø°ÝÀÚ Ä³¸¯ÅÍ ¾ÆÀ̵ð AtType m_AtType; // °ø°Ý ŸÀÔ AtNode m_AtNode; // ¹æ¾îÀÚ Á¤º¸ }; // ij¸¯ÅÍ °ø°Ý ÆÐŶ Ack (°¡º¯ ±æÀÌ) + ¹æ¾îÀÚ ³ëµå typedef struct PktAtAck* LPPktAtAck; struct PktAtAck : public PktBase { enum PktAtAckErr { NO_SERVER_ERR = 0, SERVER_ERROR = 1, FAIL_ATTACK = 2, FAIL_ALREADY_DEAD = 2 }; unsigned long m_dwCharID; // °ø°ÝÀÚ Ä³¸¯ÅÍ ¾ÆÀ̵ð AtType m_AtType; // °ø°Ý ŸÀÔ unsigned short m_wHP; // °ø°ÝÀÚ HP unsigned short m_wMP; // °ø°ÝÀÚ MP unsigned char m_cJudge; // Ç÷¡±× unsigned char m_cDefenserNum; // ¹æ¾îÀÚ ¼ö unsigned char m_cRightHandValue; // »ç¿ëÇÑ ¹«±â °¨¼Òµµ(¿À¸¥¼Õ, ³»±¸µµ °¨¼Ò ¿ë) unsigned char m_cLeftHandValue; // »ç¿ëÇÑ ¹«±â °¨¼Òµµ(¿Þ¼Õ, ³»±¸µµ °¨¼Ò ¿ë) unsigned char m_cRightHandIndex; // »ç¿ëÇÑ ¹«±â À妽º(¿À¸¥¼Õ, ³»±¸µµ °¨¼Ò ¿ë) unsigned char m_cLeftHandIndex; // »ç¿ëÇÑ ¹«±â À妽º(¿Þ¼Õ, ³»±¸µµ °¨¼Ò ¿ë) }; // ij¸¯ÅÍ °ø°Ý Á¤º¸ (°¡º¯ ±æÀÌ) + ¹æ¾îÀÚ ³ëµå typedef struct PktAtInfo* LPPktAtInfo; struct PktAtInfo : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ID AtType m_AtType; // °ø°Ý ŸÀÔ unsigned char m_cDefenserNum; // ¹æ¾îÀÚ ¼ö }; // ij¸¯ÅÍ °ø°Ý ¹ÞÀ½ ÆÐŶ typedef struct PktAted* LPPktAted; struct PktAted : public PktBase { POS m_Postion; // °ø°ÝÀÚ À§Ä¡ float m_fDir; // °ø°ÝÀÚ ¹æÇâ unsigned long m_dwCharID; // °ø°ÝÀÚ Ä³¸¯ÅÍ ID AtType m_AtType; // °ø°Ý ŸÀÔ unsigned short m_wMyHP; // ¹æ¾îÀÚ HP unsigned short m_wMyMP; // ¹æ¾îÀÚ MP unsigned char m_cJudge; // ÆÇÁ¤ °ª unsigned char m_cMyWeaponIndex; // ¹æ¾îÀÚ ¹«±â À妽º(³»±¸µµ °¨¼Ò¿ë) unsigned char m_cMyWeaponValue; // ¹æ¾îÀÚ ¹«±â °¨¼Òµµ(³»±¸µµ °¨¼Ò¿ë) }; // µà¾ó ¸í·É // // ¸í·É : // 0 = Á¦¾È, 1 = ¼ö¶ô, 2 = °ÅÀý, 3 = ·Î±×¾Æ¿ô, 4 = »ç¸Á // // ¿¡·¯ : // 0 = ¼º°ø, 1 = ¼­¹ö ¿¡·¯, 2 = ÀÌ¹Ì µà¾óÁßÀΠij¸¯ÅÍ¿¡°Ô µà¾ó ½Åû, // 3 = °ÅºÎ ¿É¼ÇÀÌ ÄÑÁø »óÅ typedef struct PktDuC* LPPktDuC; struct PktDuC : public PktBase { enum DuelCmd { DUC_PROPOSE = 0, DUC_READY = 1, DUC_REFUSE = 2, DUC_LOGOUT = 3, DUC_DEAD = 4, DUC_PARTY_PROPOSE = 5, DUC_PARTY_READY = 6, DUC_REQUEST_PARTY_INFO = 7, DUC_CANCEL = 8 }; enum PktDuCError { NO_SERVER_ERR = 0, SERVER_ERROR = 1, FAIL_DUELING_CHAR = 2, FAIL_REJECT = 3, FAIL_NOT_LEADER = 4, FAIL_NOT_PARTY = 5 }; unsigned long m_dwSenderID; // º¸³½ÀÌ ¾ÆÀ̵ð unsigned long m_dwRecverID; // ¹Þ´ÂÀÌ ¾ÆÀ̵ð unsigned char m_cCmd; // ¸í·É }; // ÆÀ¹èƲ Á¤º¸ typedef struct PktTBInfo* LPPktTBInfo; struct PktTBInfo : public PktBase { enum DuelCmd { DUC_PROPOSE = 0, DUC_READY = 1, DUC_REFUSE = 2, DUC_LOGOUT = 3, DUC_DEAD = 4, DUC_PARTY_PROPOSE = 5, DUC_PARTY_READY = 6, DUC_REQUEST_PARTY_INFO = 7 }; unsigned long m_dwCharID; char m_strChallengerName[CHAR_INFOST::MAX_NAME_LEN]; unsigned char m_cCmd; unsigned char m_cMemberNum; }; // ij¸¯ÅÍ Ã¦Æ®&ÀÎæƮ Á¤º¸ typedef struct PktSpInfo* LPPktSpInfo; struct PktSpInfo : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned short m_nEnchantLevel; // ÁÖ¹® ·¹º§ unsigned char m_cSpellType; // ÁÖ¹® ŸÀÔ ( namespace Skill::SpellTypeÂüÁ¶ ) bool m_bOnOff; // ÄÑÁü/²¨Áü }; // ij¸¯ÅÍ ¸®½ºÆù typedef struct PktRs* LPPktRs; struct PktRs : public PktBase { enum RespawnCmd { RS_NORMAL = 0, RS_SELECT = 1 }; unsigned long m_dwCharID; unsigned char m_cCmd; POS m_Position; }; // ij¸¯ÅÍ ¸®½ºÆù Ack typedef struct PktRsAck* LPPktRsAck; struct PktRsAck : public PktBase { POS m_Position; // ÇöÀç À§Ä¡ __int64 m_dlExp; // ÇöÀç °æÇèÁ¡ unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned short m_wHP; // HP unsigned short m_wMP; // MP }; // ¾î¿öµå ó¸® typedef struct PktAw* LPPktAw; struct PktAw : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ID unsigned long m_dwExp; // °æÇèÄ¡ }; #pragma pack() #endif