#pragma once ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //#define MAX_PLAYER_ATTACHMENT_COUNT 5 #define CHAR_DEL_DAYS_OVER_40_LEVEL 7 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// typedef struct _STAT_BOOST { int m_iStr; // Èû int m_iDex; // ¹Îø int m_iVit; // ü·Â int m_iSpr; // Á¤½Å·Â int m_iInt; // Áö·Â int m_iPhyAttackRate; // ¹°¸®°ø°Ý ¼º°ø·ü int m_iPhyAvoidRate; // ¹°¸®°ø°Ý ȸÇÇÀ² } STAT_BOOST; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// enum PLAYER_MAKE_TYPE { Player_Make_Type_Member = 0, // ÀÏ¹Ý À¯Àú Player_Make_Type_Master, // ¹æÀå }; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ¿¡Å׸£ °ü·Ã ±¸Á¶Ã¼ typedef struct _ETHER_INFO { _ETHER_INFO():byEtherChargePos(0), bChange(0), byEtherIndex(0), ChangePos(0), bWait(0), iValue(0) { } POSTYPE byEtherChargePos; BYTE byEtherIndex; int iValue; //ÀÚµ¿ÀåÀü BOOL bChange; POSTYPE ChangePos; BOOL bWait; //operator _ETHER_INFO& operator=(const _ETHER_INFO& rhs) { this->byEtherChargePos = rhs.byEtherChargePos; this->iValue = rhs.iValue; this->bChange = rhs.bChange; this->ChangePos = rhs.ChangePos; this->bWait = rhs.bWait; this->byEtherIndex = rhs.byEtherIndex; return *this; } }ETHER_INFO; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Æê °ü·Ã ±¸Á¶Ã¼ typedef struct _PET_INFO { _PET_INFO() : m_bPetSummoned(FALSE) , m_dwPetObjKey(0) , m_wPetIndex(0) { } DWORD m_dwPetObjKey; BYTE m_bPetSummoned; WORD m_wPetIndex; union { struct { POSTYPE m_PetItemPos; //Hero¿¡¸¸¾²ÀÓ POSTYPE m_PetChangePos; //Hero¿¡¸¸¾²ÀÓ BOOL m_bChangePet; //Hero¿¡¸¸¾²ÀÓ }HERO_; struct { BYTE m_byPetFullness; //Player¸¸¾²ÀÓ BYTE m_byPetIntimacy; //Player¸¸¾²ÀÓ BYTE m_byPetName; TCHAR m_sPetName[MAX_PET_NAME_LENGTH+1]; }PLAYER_; }; } PET_INFO; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //ÇÏÀ̵彺ų°ü·Ã ÆÄ¶ó¹ÌÅͱ¸Á¶Ã¼ typedef struct _HIDE_SKILL_INFO { enum { NONE_HIDE =0, ALL_HIDE =1, HALF_HIDE =2, }; _HIDE_SKILL_INFO() : fRefractRate(1.f) , byHideState(0) , byHideReserve(0) , fRefractAlpha(1.f) { } BYTE byHideState; BYTE byHideReserve; float fRefractRate; float fRefractAlpha; ENUM_ALTERNATIVE_RENDER eRenderType; ENUM_ALPHABLEND eBlendMode; } HIDE_SKILL_INFO; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // struct GUILD_RENDER_INFO ÀÇ ±¸Á¶°¡ ¹Ù²î¸é¼­ ÇØ´ç ±¸Á¶Ã¼¸¦ ¸â¹ö·Î °¡Áö±â¿¡´Â »çÀÌÁî°¡ ³Ê¹« Ä¿Áü // struct GUILD_RENDER_INFO ÀÇ ¸â¹ö m_stateTotalInfo ÀÇ »çÀÌÁî°¡ 1025 ¹ÙÀÌÆ® // Ŭ¶ó¿¡¼­ »ç¿ëÇÒ ±¸Á¶Ã¼ #pragma pack(push, 1) struct PLAYER_GUILD_RENDER_INFO { PLAYER_GUILD_RENDER_INFO() { ZeroMemory(this, sizeof(PLAYER_GUILD_RENDER_INFO)); } DWORD m_dwObjectKey; GUILDGUID m_GuildGuid; GUILDMARKIDX m_PatternIndex; GUILDMARKIDX m_BackGroundIndex; eGUILD_RELATION m_RelationType; char m_tszGuildName[MAX_GUILDNAME_LENGTH+1]; // NULLÆ÷ÇÔ #ifdef _NA_008334_20150608_SONNENSCHEIN BYTE sonnenschein_phase; #endif //_NA_008334_20150608_SONNENSCHEIN BYTE m_GuildGrade; // eGUILD_GRADE BYTE m_GuildDuty; // eGUILD_DUTY bool IsExist() const { return ( m_GuildGuid != 0); } }; #ifdef _NA_008016_20150203_SUN_RANKING_SYSTEM_GRADE struct CLIENT_PLAYER_RANKING_GRADE_INFO { CLIENT_PLAYER_RANKING_GRADE_INFO() { ZeroMemory(this, sizeof(CLIENT_PLAYER_RANKING_GRADE_INFO)); } eSUN_RANKING_TYPE ranking_type; eSUN_RANKING_GRADE_TYPE grade; bool IsExist() const { return (grade != eSUN_RANKING_GRADE_NONE); } }; #endif // _NA_008016_20150203_SUN_RANKING_SYSTEM_GRADE #pragma pack(pop) // GUILD_RENDER_INFO ±¸Á¶Ã¼°¡ ÀÌÈÄ º¯°æÀÌ µÇ¸é º¯°æ»çÇ×À» °°ÀÌ Àû¿ëÇÒ Çʿ䰡 ÀÖ´Ù. BOOST_STATIC_ASSERT(sizeof(PLAYER_GUILD_RENDER_INFO) == (sizeof(GUILD_RENDER_INFO) - sizeof(DOMINATION_STATE_TOTAL_INFO))); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // -_- #define INVALID_TEAM (-1) struct ClassCodeEx { union { struct { BYTE class_type; BYTE gender; }; DWORD class_code; }; ClassCodeEx() :class_code(0) {} ClassCodeEx(BYTE _class_type, BYTE _gender) {class_type = _class_type; gender = _gender; } };