#ifndef _CHAR_MOVE_PACKET_H_ #define _CHAR_MOVE_PACKET_H_ // CharMovePacket.h #include #include #pragma pack(1) // ij¸¯ÅÍ À̵¿ ÆÐŶ (CharMove) typedef struct PktMV* LPPktMV; struct PktMV : public PktBase { POS m_Position; // ij¸¯ÅÍ À§Ä¡ float m_fDir; // ij¸¯ÅÍ ¹æÇâ unsigned long m_dwCharID; // ij¸¯ÅÍ ID unsigned long m_dwChantEf; // Chant Effect unsigned long m_dwEnchantEf; // Enchant Effect unsigned short m_wUAct; // ¾×¼Ç ¹øÈ£ unsigned short m_wLAct; // ¾×¼Ç ¹øÈ£ unsigned char m_wLevel; // ij¸¯ÅÍ ·¹º§ }; // ij¸¯ÅÍ À̵¿ ¾÷µ¥ÀÌÆ® ÆÐŶ ( Char Move Update ) typedef struct PktMU* LPPktMU; struct PktMU : public PktBase { POS m_Position; // À§Ä¡ float m_fDir; // ¹æÇâ unsigned long m_dwTick; // Ŭ¶óÀÌ¾ðÆ® Æ½ bool m_bSitMode; // ¾É±â (true = ¾É¾Æ ÀÖÀ½.) }; // ij¸¯ÅÍ À̵¿ ¾÷µ¥ÀÌÆ® ÆÐŶ Ack ( Char Move Update ) typedef struct PktMUAck* LPPktMUAck; struct PktMUAck : public PktBase { unsigned long m_dwTick; // Ŭ¶óÀÌ¾ðÆ® Æ½ (ó¸® ½Ã°£ ÆÛÆ÷ ÃøÁ¤) unsigned char m_cFlag; // - Ç÷¡±× (0 = À̵¿, 1 = ¼¿À̵¿) }; // ¸ó½ºÅÍ ¿òÁ÷ÀÓ ( Monster Move ) typedef struct PktMM* LPPktMM; struct PktMM : public PktBase { POS m_Position; // ¸ó½ºÅÍ À§Ä¡ float m_fDir; // ¸ó½ºÅÍ ¹æÇâ float m_fVec; // ¸ó½ºÅÍ ¼Óµµ unsigned long m_dwMonID; // ¸ó½ºÅÍ ¾ÆÀ̵ð unsigned short m_wAct; // ¸ó½ºÅÍ Çൿ unsigned short m_wAniNum; // ¸ó½ºÅÍ À̵¿ Ƚ¼ö }; namespace CellCommand { enum Type { CELL_MOVE = 0, CELL_LOGIN = 1, RESPAWN = 2 }; }; // ij¸¯ÅÍ ¼¿ ·Î±×ÀÎ ÆÐŶ (Char Cell Login) typedef struct PktCCLi* LPPktCCLi; struct PktCCLi : public PktBase { SOCKADDR_IN m_PublicAddress; SOCKADDR_IN m_PrivateAddress; POS m_Pos; unsigned long m_dwCharID; unsigned char m_cCmd; // see namespace CellCommand }; // ij¸¯ÅÍ ¼¿ ·Î±×¾Æ¿ô ÆÐŶ ( Char Cell Logout ) typedef struct PktCCLo* LPPktCCLo; struct PktCCLo : public PktBase { unsigned long m_dwCharID; unsigned char m_cCmd; // see namespace CellCommand }; // ¼¿ ºê·Îµå ij½ºÆÃ + Address±¸Á¶Ã¼ typedef struct PktCB PktCB, *LPPktCB; struct PktCB : public PktBase { unsigned short m_sCharNum; // ¼¿ ij¸¯ÅÍ ¼ö }; #pragma pack() #endif