#pragma once #include "PlayerDef.h" ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// typedef struct _HERO_INFO { _HERO_INFO() : m_pItemStream(NULL), m_wStreamLength(0) { } ~_HERO_INFO() { } DWORD m_dwKey; PLAYER_MAKE_TYPE m_MakeType; BASE_PLAYERINFO m_CharInfo; EQUIP_ITEM_INFO m_EquiptItemInfo; INVENTORY_TOTAL_INFO m_InventoryTotalInfo; SKILL_TOTAL_INFO m_SkillTotalInfo; QUICK_TOTAL_INFO m_QuickTotalInfo; BYTE m_byGMGrade; BYTE m_bHideHelmet; #ifdef _NA_000000_20120420_EQUIPMENTS_VISIBLE_WING BYTE m_bHideWing; #endif//_NA_000000_20120420_EQUIPMENTS_VISIBLE_WING #ifdef _NA_006683_20130502_EQUIPMENTS_VISIBLE_COSTUME BYTE m_bHideCostume; #endif BYTE m_byPCBang; BYTE m_byBlockPCBang; BOOL m_bObserverMode; WORD m_wStreamLength; BYTE* m_pItemStream; //Æ÷ÀÎÅÍ °øÀ¯´Â µÇÁö ¾ÊÀ¸³ª ±¸Á¶Ã¼ ´ëÀÔÀ» ÇÒ°æ¿ì À§ÇèÇÏ´Ù! GUILD_RENDER_INFO m_GuildRenderInfo; ETHER_INFO m_EthreInfo; INT m_iMaxSD; INT m_iSD; #ifdef _PCBANG_POLICY_CHANGE_POST_EXPIRED BYTE m_bPCBangStatus; #endif //_PCBANG_POLICY_CHANGE_POST_EXPIRED INT m_FightEnergy; // ºÐ³ëÄ«¿îÆ® DWORD m_OldAttackStyle; //ÀÌÀü ½ºÅ¸ÀÏ °ª(µå³ª ¿ëº¯½Å ÈÄ ¸Ê À̵¿ ½Ã µÇµ¹·ÁÁÙ °ª) #ifdef _NA_008016_20150203_SUN_RANKING_SYSTEM_GRADE CLIENT_PLAYER_RANKING_GRADE_INFO client_player_ranking_grade_info_; #endif // _NA_008016_20150203_SUN_RANKING_SYSTEM_GRADE #ifdef _NA_008069_20150210_ADD_SPA_SYSTEM SLOTCODE m_special_scene_item_code; #endif //_NA_008069_20150210_ADD_SPA_SYSTEM } HERO_INFO; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Å»°ÍÁ¤º¸ ±¸Á¶Ã¼(hero) typedef struct _RIDER_INFO { POSTYPE m_RiderItemPos; POSTYPE m_RiderChangePos; BOOL m_bChangeRider; BOOL m_bSendSummon; BOOL m_bCancelSummon; }RIDER_INFO; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// enum eTRIGGER_STATE { TRIGGER_STATE_NONE = 0, TRIGGER_STATE_ENTER_AREA = 1, TRIGGER_STATE_LEAVE_AREA = 2, TRIGGER_STATE_ENTER_POTAL_AREA = 3, TRIGGER_STATE_LEAVE_POTAL_AREA = 4, }; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// enum eSHORTCUT_AREA_STATE { SHORTCUT_AREA_STATE_NONE = 0, SHORTCUT_AREA_STATE_ENTER_AREA = 1, SHORTCUT_AREA_STATE_LEAVE_AREA = 2, }; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// enum PACKET_STATUS { PACKET_STATUS_NONE = 0, PACKET_STATUS_PICK_ITEM = 1, //ij¸¯ÅÍ »ý¼º ÆÐŶ PACKET_STATUS_PICK_MONEY = (2 << 1), //ij¸¯ÅÍ »èÁ¦ ÆÐŶ PACKET_STATUS_CAST_CANCEL = (2 << 2), PACKET_STATUS__END_FORMATION = (2 << 3), }; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// enum eHERO_TURN_STATE { eHERO_NOT_TURN = 0, eHERO_LEFT_TURN = 1, eHERO_RIGHT_TURN = 2, }; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// struct GET_ITEM { DWORD dwObjectKey; float fDistance; }; typedef std::vector GET_ITEM_vector; typedef GET_ITEM_vector::iterator GET_ITEM_vector_Itr; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define HERO_OBJECT_KEY 0xFFFFFFFF #define CRYSTAL_WARP_OBJ_MAX_CNT 2 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// struct TAB_TARGET_MONSTER { DWORD dwObjectKey; float fAngle; float fDistance; WORD wTargetCount; WORD wTargetCheck; }; inline bool operator == (const TAB_TARGET_MONSTER& x, const TAB_TARGET_MONSTER& y) { return ( x.fDistance == y.fDistance ); } inline bool operator < (const TAB_TARGET_MONSTER& x, const TAB_TARGET_MONSTER& y) { return ( x.fDistance < y.fDistance ); } inline bool operator > (const TAB_TARGET_MONSTER& x, const TAB_TARGET_MONSTER& y) { return ( x.fDistance > y.fDistance ); } typedef std::vector TAB_TARGET_MONSTER_vector; typedef TAB_TARGET_MONSTER_vector::iterator TAB_TARGET_MONSTER_vector_Itr; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////