/* ==================================================================== * ÆÄ ÀÏ : * ¸ñ Àû : * ÀÛ ¼º ÀÚ : Á¤¼º´ë * ÀÛ ¼º ÀÏ : 2006.08.29 * * Ãß°¡³»¿ë : * Ãß°¡³¯Â¥ ÀÛ¾÷ÀÚ Ãß°¡³»¿ë * 2006.08.29 Á¤¼º´ë »ý¼º * * ÁÖÀÇ»çÇ× : * =================================================================== */ #pragma once #pragma pack(push,1) #include "BaseObject_Common.h" #include "CommonDefines.h" //#include "CommonNetworkMsgStruct.h" /// enum º¯¼öµé... enum /*Gender*/ { eGENDER_MALE = 0, eGENDER_FEMALE, eGENDER_MAX, }; enum /*Race*/ { eRACE_HUMAN = 0, eRACE_BEAST, eRACE_ELF, eRACE_MAX, }; enum eHAND_TYPE { eHAND_LEFT = 0, eHAND_RIGHT, eHAND_ALL, eHAND_NONE, }; /// head, wear typeÀº ±¸Á¶Ã¼ °ü¸®¸¦ À§ÇÑ ÇüÅ enum eHEAD_TYPE { eHEAD_HAIR = 0, eHEAD_FACE, eHEAD_MAX, }; enum eWEAR_TYPE { eWEAR_BODY1 = 0, eWEAR_BODY2, eWEAR_HAND, eWEAR_FOOT, eWEAR_HAT, eWEAR_MAX, }; /// enum eWEAPON_STATE { // eWEAPON_STATE_NONE = 0, eWEAPON_STATE_SWORD = 1, // ÇÑ¼Õ°Ë // eWEAPON_STATE_LONGSWORD, // ¾ç¼Õ°Ë eWEAPON_STATE_DOUBLESWORD, // À̵µ·ù eWEAPON_STATE_SHORTSWORD, // ´Ü°Ë eWEAPON_STATE_GUN, // ÃÑ eWEAPON_STATE_STAFF, // ÁöÆÎÀÌ eWEAPON_STATE_MAX, // ÀÌ °ªÀº ¿¬Ãâ°ú¾Ö´Ï ¿¬°á¿¡¸¸ »ç¿ëÇÑ´Ù. /// ¾Æ·¡ µÎ°³´Â ¾Ö´Ï ¹× °¢Á¾ »óÅ¿¡¼­ ¿¹¿Üó¸® µÈ´Ù. eWEAPON_STATE_SHEILD, // ¹æÆÐ¸¸ eWEAPON_STATE_SWORD_SHEILD = eWEAPON_STATE_SWORD + eWEAPON_STATE_SHEILD, // ÇÑ¼Õ°Ë + ¹æÆÐ }; enum ePLAYER_ANIMATIONTYPE { /// ¹«±âº° ¾Ö´Ï¿Í °øÅë ¾Ö´Ï¸¦ ±¸ºÐÇϱâ À§ÇÑ Á¤ÀÇ ANITYPE_COMMON = 799, /// ¹«±âº° ANITYPE_IDLE = 0, ANITYPE_IDLE2 = 10, ANITYPE_RUN = 20, ANITYPE_ATTACK1 = 30, ANITYPE_ATTACK2 = 40, ANITYPE_ATTACK3 = 50, ANITYPE_CASTING1 = 60, ANITYPE_CASTING2 = 70, ANITYPE_CASTING3 = 80, ANITYPE_DAMAGE1 = 90, ANITYPE_DAMAGE2 = 100, ANITYPE_DIE1 = 110, ANITYPE_DIE2 = 120, ANITYPE_SKILL_BEGIN = 130, ANITYPE_USESKILL1 = ANITYPE_SKILL_BEGIN, ANITYPE_USESKILL2 = 140, ANITYPE_SWORD_SKILL = 201, ANITYPE_LONGSWORD_SKILL = 301, ANITYPE_DOUBLESWORD_SKILL = 401, ANITYPE_SHORTSWORD_SKILL = 501, ANITYPE_GUN_SKILL = 601, ANITYPE_STAFF_SKILL = 701, ANITYPE_SKILL_END = 800, /// °øÅë ¾Ö´Ï ANITYPE_PEACE_IDLE = 801, ANITYPE_PEACE_IDLE2 = 802, ANITYPE_ITEMPICK = 803, ANITYPE_SITDOWN = 804, ANITYPE_SITDOWN_IDLE = 805, ANITYPE_STANDUP = 806, ANITYPE_EMOTE_START = 900, }; enum ePLAYER_JOB_GROUP { /// Á÷¾÷°è¿­ÀÇ ÃÖ»óÀ§ Á¤º¸.. ePLAYER_JOBGROUP_FIGHTER = 1, ePLAYER_JOBGROUP_MAGE, ePLAYER_JOBGROUP_RANGER, ePLAYER_JOBGROUP_SHAMAN, ePLAYER_JOBGROUP_WARRIOR, ePLAYER_JOBGROUP_ROGUE, ePLAYER_JOBGROUP_MAX = ePLAYER_JOBGROUP_ROGUE, }; /// Ç÷¹À̾î Á÷¾÷ Á¤ÀÇ enum ePLAYER_JOB { /// Á÷¾÷±¸ºÐÀ̾ø´Ù. ePLAYER_NONEJOB = 0, /// ÆÄÀÌÅÍ ±º ePLAYER_FIGHTER=1000, /// ÆÄÀÌÅÍ=1000 ePLAYER_CRUSADER=1101, /// Å©·ç¼¼ÀÌ´õ=1101 ePLAYER_KNIGHT=1102, /// ³ªÀÌÆ®=1102 ePLAYER_TEMPLAR=1201, /// ÅÛÇ÷¯=1201 ePLAYER_LOAD=1202, /// ·Îµå=1202 /// ¸ÞÀÌÁö ±º ePLAYER_MAGE=2000, /// ¸ÞÀÌÁö=2000 ePLAYER_MAGICIAN=2101, /// ¸ÅÁö¼Ç=2101 ePLAYER_PRIEST=2102, /// ÇÁ¸®½ºÆ®=2102 ePLAYER_WIZARD=2201, /// À§ÀÚµå=2201 ePLAYER_BISHOP=2202, /// ºñ¼ó=2202 /// ·¹ÀÎÁ® ±º ePLAYER_RANGER=3000, /// ·¹ÀÎÁ®=3000 ePLAYER_HUNTER=3101, /// ÇåÅÍ=3101 ePLAYER_SHOOTER=3102, /// ½´ÅÍ=3102 ePLAYER_SCOUT=3201, /// ½ºÄ«¿ìÆ®=3201 ePLAYER_SNIPER=3202, /// ½º³ªÀÌÆÛ=3202 /// »þ¸Õ ±º ePLAYER_SHAMAN=4000, /// »þ¸Õ=4000 ePLAYER_WARLOCK=4101, /// ¿ö·Ï=4101 ePLAYER_SEER=4102, /// ¾¾¾î=4102 ePLAYER_SORCERER=4201, /// ¼Ò¼­·¯=4201 ePLAYER_CONJURER=4202, /// ÄÁÀú·¯=4202 /// ¿ö¸®¾î ±º ePLAYER_WARRIOR=5000, /// ¿ö¸®¾î=5000 ePLAYER_VETERAN=5101, /// º£Å×¶û=5101 ePLAYER_GLADIATOR=5102, /// ±Û¶óµð¿¡ÀÌÅÍ=5102 ePLAYER_CHAMPION=5201, /// èÇÇ¿Â=5201 ePLAYER_BERSERK=5202, /// ¹ö¼­Ä¿=5202 /// ¾¾ÇÁ ±º ePLAYER_THIEF=6000, /// ½ÃÇÁ=6000 ePLAYER_ROGUE=6101, /// ·Î±×=6101 ePLAYER_ROBBER=6102, /// ¶ó¹ö=6102 ePLAYER_ASSASSIN=6201, /// ¾î½Ø½Å=6201 ePLAYER_AVENGER=6202, /// ¾î¹êÁ®=6202 ePLAYERJOB_MAX, /// db½ºÅ©¸³Æ® insert¿ë ÃÖ´ë°ª }; enum ePLAYER_STATUS { ePLAYER_STATUS_STR = 0, /// Èû ePLAYER_STATUS_DEX, /// ¹Îø ePLAYER_STATUS_CON, /// ü·Â ePLAYER_STATUS_INT, /// Áö´É ePLAYER_STATUS_WIS, /// ÁöÇý ePLAYER_STATUS_LEVEL, /// ·¹º§ - ½ºÅ©¸³Æ®¿¡¼­¸¸ »ç¿ë = ePLAYER_STATUS_MAX ePLAYER_STATUS_LEVEL_MAX /// ·¹º§ Æ÷ÇÔ ÃÖ´ë °ª }; enum ePLAYER_STATUS_EXT { ePLAYER_STATUS_EXT_ATK = 0, /// ¹°¸®±ÙÁ¢°ø°Ý ePLAYER_STATUS_EXT_RATK, /// ¹°¸®¿ø°Å¸®°ø°Ý ePLAYER_STATUS_EXT_DEF, /// ¹°¸® ¹æ¾î·Â ePLAYER_STATUS_EXT_MATK, /// ¸¶¹ý °ø°Ý·Â ePLAYER_STATUS_EXT_MDEF, /// ¸¶¹ý ¹æ¾î·Â ePLAYER_STATUS_EXT_CRI, /// ¹°¸® °ø°Ý Å©¸® ePLAYER_STATUS_EXT_MCRI, /// ¸¶¹ý °ø°Ý Å©¸® ePLAYER_STATUS_EXT_MAXHP, /// HP ePLAYER_STATUS_EXT_MAXMP, /// MP ePLAYER_STATUS_EXT_RECOVHP, /// HP ȸº¹·® ePLAYER_STATUS_EXT_RECOVMP, /// MP ȸº¹·® ePLAYER_STATUS_EXT_HIT, /// ¹°¸®¸íÁß·ü ePLAYER_STATUS_EXT_MHIT, /// ¸¶¹ý¸íÁß·ü ePLAYER_STATUS_EXT_AVOID, /// ȸÇÇÀ² ePLAYER_STATUS_EXT_WEIGHT, /// ¹«°Ô ePLAYER_STATUS_EXT_ASPD, /// ÀϹݰø°Ý¼Óµµ ePLAYER_STATUS_EXT_COOLTIME, /// cooltime ePLAYER_STATUS_EXT_RANGE, /// ±Ù°Å¸®»çÁ¤°Å¸® ePLAYER_STATUS_EXT_RRANGE, /// ¿ø°Å¸®(+¸¶¹ý)»çÁ¤°Å¸® ePLAYER_STATUS_EXT_SPD, /// À̵¿¼Óµµ ePLAYER_STATUS_EXT_HEAL, /// Èúȸº¹·® ePLAYER_STATUS_EXT_ATKMin, /// ¹°¸®±ÙÁ¢ °ø°Ý·Â ÃÖ¼Ò ePLAYER_STATUS_EXT_ATKMax, /// ¹°¸®±ÙÁ¢ °ø°Ý·Â ÃÖ´ë ePLAYER_STATUS_EXT_RATKMin, /// ¹°¸®¿ø°Å¸® °ø°Ý·Â ÃÖ¼Ò ePLAYER_STATUS_EXT_RATKMax, /// ¹°¸®¿ø°Å¸® °ø°Ý·Â ÃÖ´ë ePLAYER_STATUS_EXT_MATKMin, /// ¸¶¹ý °ø°Ý·Â ÃÖ¼Ò ePLAYER_STATUS_EXT_MATKMax, /// ¸¶¹ý °ø°Ý·Â ÃÖ¼Ò ePLAYER_STATUS_EXT_HEALMin, /// ȸº¹·® ÃÖ¼Ò ePLAYER_STATUS_EXT_HEALMax, /// ȸº¹·® ÃÖ´ë ePLAYER_STATUS_EXT2_MAX, /// ÃÖ¼Ò Ãִ븦 Æ÷ÇÔÇÑ ÃÖ´ë°ª ePLAYER_STATUS_EXT_MAX = ePLAYER_STATUS_EXT_ATKMin, /// ÃÖ¼Ò Ãִ븦 Æ÷ÇÔ ÇÏÁö ¾ÊÀº ÃÖ´ë°ª }; enum ePLAYER_STATUS_EXT_ADD { ePLAYER_STATUS_EXT_ADD_EXPADDPER, ePLAYER_STATUS_EXT_ADD_EXPADDPLUS, ePLAYER_STATUS_EXT_ADD_SXPADDPER, ePLAYER_STATUS_EXT_ADD_SXPADDPLUS, ePLAYER_STATUS_EXT_ADD_MAX, }; enum ePLAYER_STATUS_DAMAGE { /// °ø°Ý ¼º°ø È®·ü ePLAYER_STATUS_DAMAGE_INSTANTPERHIT, /// %¼ø°£ È¿°ú ePLAYER_STATUS_DAMAGE_INSTANTPLUSHIT, /// ¼ø°£ È¿°ú /// Å©¸®Æ¼Äà ¹ß»ý È®·ü(¹°¸®) ePLAYER_STATUS_DAMAGE_PHYINSTANTPERCRI, /// %¼ø°£ È¿°ú ePLAYER_STATUS_DAMAGE_PHYINSTANTPLUSCRI, /// ¼ø°£ È¿°ú /// Å©¸®Æ¼Äà ¹ß»ý È®·ü(¸¶¹ý) ePLAYER_STATUS_DAMAGE_MAGICINSTANTPERCRI, /// %¼ø°£ È¿°ú ePLAYER_STATUS_DAMAGE_MAGICINSTANTPLUSCRI, /// ¼ø°£ È¿°ú /// °ø°Ý·Â(¹°¸®) ePLAYER_STATUS_DAMAGE_PHYINSTANTPERATTACK, /// %¼ø°£ È¿°ú ePLAYER_STATUS_DAMAGE_PHYINSTANTPLUSATTACK, /// ¼ø°£ È¿°ú /// °ø°Ý·Â(¸¶¹ý) ePLAYER_STATUS_DAMAGE_MAGICINSTANTPERATTACK, /// %¼ø°£ È¿°ú ePLAYER_STATUS_DAMAGE_MAGICINSTANTPLUSATTACK, /// ¼ø°£ È¿°ú /// ÃÖÁ¾ µ¥¹ÌÁö ePLAYER_STATUS_DAMAGE_INSTANTPERFINAL, /// %¼ø°£ È¿°ú ePLAYER_STATUS_DAMAGE_INSTANTPLUSFINAL, /// ¼ø°£ È¿°ú ePLAYER_STATUS_DAMAGE_MAX, }; enum ePLAYERIDLE { ePLAYER_IDLE_WAR, ePLAYER_IDLE_PEACE, }; enum //ePLAYERSTATE { ePLAYER_STATE_SITDOWN = eOBJECT_STATE_MAX, ePLAYER_STATE_ITEMPICK, }; enum eIDLEFLAG { eIDLE_NORMAL = 0, eIDLE_PEACE, }; enum eSTOPFLAG { eSTOP_NONE = 0, eSTOP_READYTAROT, /// °³¼³ÀÚ ´ë±â»óÅ eSTOP_OPENTAROT, /// °³¼³ÀÚ ¿ÀÇ »óÅ eSTOP_BUSYTAROT, /// °³¼³ÀÚ Å¸·ÔÁ¡ Ä¡´ÂÁß eSTOP_ENTERTAROT, /// °ü¶÷ÀÚ Å¸·Ô eSTOP_USETAROT, /// Âü¿©ÀÚ Å¸·Ô »ç¿ëÁß eSTOP_OPENSTORE, eSTOP_USESTORE, eSTOP_NPCSPEECH, }; /// ±¸Á¶Ã¼... struct sPlayerInfo { unsigned long CharacterIdx; /// ij¸¯ÅÍ À妽º wchar_t strName[MAX_NAME_BUFFER_SIZE]; /// ij¸¯ÅÍ À̸§ char Level; /// ÇöÀç ·¹º§ char Race; /// Á¾Á· - enum /*Race*/ char Gender; /// ¼ºº° - enum /*Gender*/ ePLAYER_JOB Job; /// Á÷¾÷ unsigned long HeadInfo[eHEAD_MAX]; unsigned short HairColor; sPlayerInfo() { ::memset(this, 0, sizeof(sPlayerInfo)); } }; struct sPlayerWearInfo { /// ±×·¡ÇÈ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.(HATÀº ¿¹¿Ü·Î ÇÑ´Ù.) unsigned long WearIdx[eWEAR_MAX]; /// ±×·¡ÇÈÀû µ¥ÀÌÅÍÀÇ º¯°æÀÌ ÇÊ¿ä ¾ø´Â ºÎºÐ // unsigned long Hat; unsigned long Earring; unsigned long Necklace; unsigned long Brooch; unsigned long Bracelet; unsigned long Ring; sPlayerWearInfo() { ::memset(this, 0, sizeof(sPlayerWearInfo)); } }; struct sPlayerWeaponInfo { unsigned long WeaponIdx[eHAND_ALL]; sPlayerWeaponInfo() { WeaponIdx[eHAND_LEFT] = WeaponIdx[eHAND_RIGHT] = 0;//0xffffffff; } }; struct sPlayerExrInfo { char MaxLevel; // ij¸¯ÅͰ¡ µµ´ÞÇÑ ÃÖ°í °æÇèÄ¡ unsigned long Exp; // ÇöÀç °æÇèÄ¡ /// --½ºÅ³°ú °ü·ÃµÈ Æ÷ÀÎÆ®-- unsigned char SkillLevel; /// ½ºÅ³ °æÇèÄ¡·Î ·¹º§¾÷À» ÇÔ - Ç÷¹À̾º§,½ºÅ³·¹º§ /// °¢°¢ 1¾÷À» ÇÒ¶§¸¶´Ù ½ºÅ³Æ÷ÀÎÆ®°¡ 1¾¿ ¿Ã¶ó°¨ unsigned int SkillExp; /// ÇöÀç ½ºÅ³°æÇèÄ¡ unsigned short SkillPointUse; /// »ç¿ëÆ÷ÀÎÆ® -> ½ºÅ³ÀÇ ·¹º§¾÷À» ÇÒ¶§ ±âÁØÀ̵ȴÙ. unsigned short SkillPointRemain; /// ÀÜ¿©½ºÅ³°æÇèÄ¡ unsigned short GradeUpPoint; /// Ãß°¡ ½ºÅÝÆ÷ÀÎÆ® È®Àå.. unsigned long RestHP; /// ³²Àº »ý¸í·Â unsigned long RestMP; /// ³²Àº ¸¶³ª unsigned long MaxHP; unsigned long MaxMP; unsigned int Fame; /// ¸í¼º char Rank; /// ÁöÀ§ /// 071109 PKH ÆòÈ­ ´ë±â»óÅ - ¼­¹ö¿¡¼­ 󸮴 ÇÏÁö¾Ê°í Ŭ¶óÀÌ¾ðÆ®¿¡ ¾Ë·ÁÁֱ⸸ÇÔ eIDLEFLAG mStateIdle; /// 070601 PKH Ç÷¹ÀÌ¾î »óÅ // ePLAYERSTATE mState; unsigned int mState; /// eOBJECTSTATE /// 071109 PKH Á¤Áö »óÅÂÀϰæ¿ì ¼¼ºÎ»çÇ× eSTOPFLAG mStateStop; unsigned long mCommunitySkillIdx; unsigned long ServerTimer; /// ¼­¹ö µ¿±âÈ­ ½Ã°£ sPlayerExrInfo() { memset(this, 0, sizeof(sPlayerExrInfo)); } }; struct sStatus1 { float mStr; /// Èû float mDex; /// ¹Îø float mCon; /// ü·Â float mInt; /// Áö´É float mWis; /// ÁöÇý sStatus1() { memset(this, 0, sizeof(sStatus1)); } }; struct sStatus2 { float mPhysicMinAttack; /// ¹°¸®:ÃּұٰŸ®°ø°Ý·Â float mPhysicMaxAttack; /// ¹°¸®:ÃÖ´ë±Ù°Å¸®°ø°Ý·Â float mPhysicMinRangeAttack; /// ¹°¸®:ÃÖ¼Ò¿ø°Å¸®°ø°Ý·Â float mPhysicMaxRangeAttack; /// ¹°¸®:ÃÖ´ë¿ø°Å¸®°ø°Ý·Â float mPhysicDefense; /// ¹°¸®:¹æ¾î·Â float mMagicMinAttack; /// ¸¶¹ý:ÃÖ¼Ò°ø°Ý·Â float mMagicMaxAttack; /// ¸¶¹ý:ÃÖ´ë°ø°Ý·Â float mMagicDefense; /// ¸¶¹ý:¹æ¾î·Â float mPhysicCritical; /// ¹°¸®:Å©¸®Æ¼Äà float mMagicCritical; /// ¸¶¹ý:Å©¸®Æ¼Äà float mMaxHP; /// Áõ°¡:ÃÖ´ëHP float mMaxMP; /// Áõ°¡:ÃÖ´ëMP float mRecovHP; /// Áõ°¡:ȸº¹HP% float mRecovMP; /// Áõ°¡:ȸº¹MP% float mPhysicAttackRate; /// ¹°¸®:°ø°Ý·ü float mMagicAttackRate; /// ¸¶¹ý:°ø°Ý·ü float mAvoid; /// Áõ°¡:ȸÇÇ float mMaxWeight; /// ¹«°Ô float mAttackSpeed; /// ÀϹݰø°Ý¼Óµµ float mCooltime; /// cooltime float mInRange; /// ±Ù°Å¸®»çÁ¤°Å¸® float mOutRange; /// ¿ø°Å¸®(+¸¶¹ý)»çÁ¤°Å¸® float mMoveSpeed; /// À̵¿¼Óµµ float mMinHeal; /// ÃÖ¼Òȸº¹·® float mMaxHeal; /// ÃÖ´ëȸº¹·® sStatus2() { memset(this, 0, sizeof(sStatus2)); } }; struct sStatusEtc { float mExpAddPer; /// exp Áõ°¡ % float mExpAddPlus; /// exp Áõ°¡ + float mSxpAddPer; /// sxp Áõ°¡ % float mSxpAddPlus; /// sxp Áõ°¡ + }; struct sDamageCalc { /// °ø°Ý ¼º°ø È®·ü unsigned long mInstantPerHit; /// %¼ø°£ È¿°ú unsigned long mInstantPlusHit; /// ¼ø°£ È¿°ú /// Å©¸®Æ¼Äà ¹ß»ý È®·ü(¹°¸®) unsigned long mPhyInstantPerCri; /// %¼ø°£ È¿°ú unsigned long mPhyInstantPlusCri; /// ¼ø°£ È¿°ú /// Å©¸®Æ¼Äà ¹ß»ý È®·ü(¸¶¹ý) unsigned long mMagicInstantPerCri; /// %¼ø°£ È¿°ú unsigned long mMagicInstantPlusCri; /// ¼ø°£ È¿°ú /// °ø°Ý·Â(¹°¸®) unsigned long mPhyInstantPerAttack; /// %¼ø°£ È¿°ú unsigned long mPhyInstantPlusAttack; /// ¼ø°£ È¿°ú /// °ø°Ý·Â(¸¶¹ý) unsigned long mMagicInstantPerAttack; /// %¼ø°£ È¿°ú unsigned long mMagicInstantPlusAttack; /// ¼ø°£ È¿°ú /// ÃÖÁ¾ µ¥¹ÌÁö unsigned long mInstantPerFinal; /// %¼ø°£ È¿°ú unsigned long mInstantPlusFinal; /// ¼ø°£ È¿°ú }; /// 070418 À̵¿ "CommonNetworkMsgStruct.h(219)" /// struct MSG_PLAYERINFO : public MSGROOT /* /// ij¸¯ÅÍ ¼±ÅÃâ¿¡ º¸¿©Áú Á¤º¸ ±¸Á¶Ã¼ struct MSG_CHARACTER_BASEINFO { sPlayerInfo PlayerInfo; /// ij¸¯ÅÍ Á¤º¸ sPlayerWeaponInfo WeaponInfo; /// ¹«±â Á¤º¸ sPlayerWearInfo WearInfo; /// ¹æ¾î±¸ Á¤º¸ char StandIdx; /// ij¸¯ÅÍ ¼ø¼­ unsigned short MapNum; /// ¸Ê ¹øÈ£ }; /// ij¸¯ÅÍ ¼±ÅÃâÀ¸·Î À̵¿½Ã º¸³»´Â network msg ±¸Á¶Ã¼ struct MSG_CHARACTER_LIST : public MSG_ERROR { unsigned short CharacterNum; /// ¸¸µé¾îÁø ij¸¯ÅÍ ¼ö MSG_CHARACTER_BASEINFO BaseInfo[5]; /// ij¸¯ÅÍ Á¤º¸ /// ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength() { return sizeof(MSG_CHARACTER_LIST) - (5-CharacterNum)*sizeof(MSG_CHARACTER_BASEINFO); } }; /// ³×Æ®¿öÅ© ±¸Á¶Ã¼.. struct MSG_PLAYERINFO : public MSG_ERROR { sPlayerInfo PlayerInfo; /// ij¸¯ÅÍ ±âº» sPlayerWeaponInfo WeaponInfo; /// ij¸¯ÅÍ ¹«±â sPlayerWearInfo WearInfo; /// ij¸¯ÅÍ Àåºñ sPlayerExrInfo Exrinfo; /// ij¸¯ÅÍ ... (070122 PKH ±âº»Á¤º¸ ¿Ü¿¡ Ãß°¡ Á¤º¸) unsigned short MapNum; /// ¸Ê ¹øÈ£ float XPos; /// X À§Ä¡ float YPos; /// Y À§Ä¡ float RotAngle; /// }; //struct MSG_MOVE_INFO : public MSG_ERROR //{ // unsigned long characterIdx; /// characteridx´Â NM_PLAYER_MOVE_SYN¿¡¼­¸¸ ¾²½Ã¿À // int nStartX; // int nStartZ; // int nEndX; // int nEndZ; // // /// 070216 PKH ¼­¹ö¿Í Ŭ¶óÀÌ¾ðÆ® µ¿±âÈ­µÈ ½Ã°è // unsigned long mClientTimer; /// characteridx´Â NM_PLAYER_MOVE_RES¿¡¼­¸¸ ¾²½Ã¿À // // void SetStartPos( float fx, float fz ) { nStartX = (int)fx; nStartZ = (int)fz; } // void SetEndPos( float fx, float fz ) { nEndX = (int)fx; nEndZ = (int)fz; } //}; struct MSG_REQ_MOVE : public MSGROOT { float startX; float startY; float destX; float destY; }; struct MSG_REQ_ACTIONMOVE : public MSGROOT { float range; float startX; float startY; /// ¹üÀ§ °Ë»ç ±âÁØ float targetX; float targetY; float destX; float destY; sObject targetInfo; }; struct MSG_SYN_MOVE : public MSGROOT { unsigned long characterIdx; float destX; float destY; long moveSpeed; }; struct MSG_SYN_ACTIONMOVE : public MSG_SYN_MOVE { /// ¹üÀ§ float range; /// ¹üÀ§ °Ë»ç ±âÁØ float targetX; float targetY; sObject targetInfo; }; struct MSG_SYN_MOVESPEED : public MSGROOT { unsigned long mCharacterIdx; long moveSpeed; /// À̵¿ ¼Óµµ }; struct MSG_RES_ERR_MOVE : public MSGROOT { float destX; float destY; }; struct MSG_REQ_SELECTNPC : public MSGROOT { unsigned long mNpcIdx; }; struct MSG_RES_SELECTNPC : public MSG_ERROR { unsigned long mNpcIdx; }; #define ERROR_CHARACTER_NAME_SUCCESS 0 /// ¼º°ø. #define ERROR_CHARACTER_NAME_EXIST 1 /// ½ÇÆÐ-Áߺ¹. #define ERROR_CHARACTER_NAME_RULE 2 /// ½ÇÆÐ-À̸§ ·ê ¿À·ù. #define ERROR_CHARACTER_NAME_FAIL 3 /// ½ÇÆÐ. struct MSG_REQ_CHARACTER_NAME : public MSGROOT { wchar_t Name[MAX_NAME_BUFFER_SIZE]; }; struct MSG_RES_CHARACTER_NAME : public MSG_ERROR {}; #define ERROR_CHARACTER_CREATE_SUCCESS 0 /// ¼º°ø. #define ERROR_CHARACTER_CREATE_EXIST 1 /// ½ÇÆÐ-Áߺ¹. #define ERROR_CHARACTER_CREATE_OVER 2 /// ½ÇÆÐ-´õÀÌ»ó »ý¼ºÇÒ ¼ö ¾øÀ½. #define ERROR_CHARACTER_CREATE_STAND_IDX 3 /// ½ÇÆÐ-STAND IDX ¿À·ù. #define ERROR_CHARACTER_CREATE_ITEMS 4 /// ½ÇÆÐ-±âº» ¾ÆÀÌÅÛ Áö±Þ ¿À·ù. #define ERROR_CHARACTER_CREATE_SKILLS 5 /// ½ÇÆÐ-±âº» ½º ų Áö±Þ ¿À·ù. #define ERROR_CHARACTER_CREATE_RULE 6 /// ½ÇÆÐ-»ý¼º ·ê ¿À·ù(À̸§,Á¾Á·,¼ºº°,Á÷¾÷,Çì¾î,¾ó±¼,Çì¾îÄ®¶ó...). #define ERROR_CHARACTER_CREATE_FAIL 7 /// ½ÇÆÐ. struct MSG_REQ_CHARACTER_CREATE : public MSGROOT { wchar_t Name[MAX_NAME_BUFFER_SIZE]; char Race; char Gender; unsigned long Job; unsigned long Hair; unsigned long Face; unsigned short HairColor; unsigned char StandIdx; }; struct MSG_RES_CHARACTER_CREATE : public MSG_ERROR {}; struct MSG_REQ_CHARACTER_DELETE : public MSGROOT { unsigned long CharacterIdx; /// ij¸¯ÅÍ À妽º }; struct MSG_RES_CHARACTER_DELETE : public MSG_ERROR {}; struct MSG_REQ_CHARACTER_SELECT : public MSGROOT { unsigned char StandIdx; }; struct MSG_REQ_GAMEIN : public MSGROOT {}; struct MSG_RES_GAMEIN : public MSG_ERROR { unsigned long ServerTimer; /// ¼­¹ö µ¿±âÈ­ ½Ã°£ }; /// 070625 PKH Ç÷¹ÀÌ¾î ·¹º§ struct MSG_RES_LEVEL : public MSGROOT { unsigned char mLevel; }; struct MSG_SYN_LEVEL : public MSGROOT { unsigned long mCharacterIdx; unsigned char mLevel; }; /// 070625 PKH Ç÷¹ÀÌ¾î ½ºÅ³ ·¹º§ struct MSG_RES_SKILLLEVEL : public MSGROOT { unsigned char mSkillLevel; unsigned short mSkillPoint; }; /// °æÇèÄ¡ struct MSG_RES_EXP_SXP : public MSGROOT { unsigned long mExp; /// ¾òÀº °æÇèÄ¡ unsigned long mSxp; /// ¾òÀº ½ºÅ³ °æÇèÄ¡ unsigned long mTotalExp; /// Ç÷¹À̾îÀÇ °æÇèÄ¡ Àüü·® unsigned long mTotalSxp; /// Ç÷¹À̾îÀÇ ½ºÅ³ °æÇèÄ¡ Àüü·® }; struct MSG_CHARACTERIDX : public MSGROOT { unsigned long mCharacterIdx; }; struct MSG_REQ_PLAYER_MAPCHANGE : public MSGROOT { unsigned long mMapChangePosIndex; }; struct MSG_RES_PLAYER_EQUIP_WEAR : public MSGROOT { eWEAR_TYPE mType; unsigned long mWearInfo; }; struct MSG_SYN_PLAYER_EQUIP_WEAR : public MSGROOT { unsigned long mCharacterIdx; eWEAR_TYPE mType; unsigned long mWearInfo; }; struct MSG_RES_PLAYER_EQUIP_WEAPON : public MSGROOT { eWEAPON_STATE mWeaponState; sPlayerWeaponInfo mWeaponInfo; }; struct MSG_SYN_PLAYER_EQUIP_WEAPON : public MSGROOT { unsigned long mCharacterIdx; eWEAPON_STATE mWeaponState; sPlayerWeaponInfo mWeaponInfo; }; #define MAX_SHORTCUT_SIZE 30 // 10 x 3(Tab) enum eSHORTCUT_TYPE { eSHORTCUT_NONE = 0, /// ¾øÀ½ eSHORTCUT_ITEM, /// ¾ÆÀÌÅÛ eSHORTCUT_SKILL, /// ½ºÅ³ eSHORTCUT_COMMU, /// community eSHORTCUT_UNKNOWN, /// ¿À·ù }; struct sShortcut { char mType; /// Á¾·ù(0 ¾ÆÀÌÅÛ, 1 ½ºÅ³, ... ) unsigned long mIndex; /// À妽º unsigned long mInventoryIdx; /// Àκ¥Å丮 °íÀ¯¹øÈ£ }; struct MSG_REQ_PLAYER_SHORTCUT_LIST : public MSGROOT {}; struct MSG_RES_PLAYER_SHORTCUT_LIST : public MSGROOT { sShortcut mShortcut[ MAX_SHORTCUT_SIZE ]; }; struct MSG_REQ_PLAYER_SHORTCUT_UPDATE : public MSGROOT { sShortcut mShortcut[ MAX_SHORTCUT_SIZE ]; }; struct MSG_RES_PLAYER_SHORTCUT_UPDATE : public MSGROOT {}; struct MSG_SYN_PLAYER_HP : public MSGROOT { unsigned long mCharacterIdx; unsigned long mHp; unsigned long mMaxHp; bool mDie; }; struct MSG_SYN_PLAYER_MP : public MSGROOT { unsigned long mCharacterIdx; unsigned long mMp; unsigned long mMaxMp; }; /// ºÎȰ #define ERROR_PLAYER_RESURRECTION_SUCCESS 0 /// ¼º°ø. #define ERROR_PLAYER_RESURRECTION_FAIL 1 /// ½ÇÆÐ struct MSG_REQ_PLAYER_RESURRECTION : MSGROOT { unsigned char mFlag; }; struct MSG_RES_PLAYER_RESURRECTION : MSG_ERROR { unsigned long mHP; unsigned long mMP; }; struct MSG_SYN_PLAYER_RESURRECTION : MSG_ERROR { unsigned long mCharacterIdx; unsigned long mHP; unsigned long mMaxHP; unsigned long mMP; unsigned long mMaxMP; }; /// struct MSG_REQ_PLAYER_STATE_IDLE : public MSGROOT { unsigned char mPlayerStateIdle; }; struct MSG_SYN_PLAYER_STATE_IDLE : public MSGROOT { unsigned long mCharacterIdx; unsigned char mPlayerStateIdle; }; struct MSG_REQ_PLAYER_STATE_SITDWON : public MSGROOT { bool mSitDown; }; struct MSG_RES_PLAYER_STATE_SITDWON : public MSG_ERROR { bool mSitDown; }; struct MSG_SYN_PLAYER_STATE_SITDWON : public MSGROOT { unsigned long mCharacterIdx; bool mSitDown; }; struct MSG_RES_PLAYER_MONEY : public MSGROOT { unsigned long mMoney; eOBJECTTYPE mObjectType; long mAddMoney; }; struct MSG_RES_PLAYER_DEPOSIT : public MSGROOT { unsigned long mDeposit; eOBJECTTYPE mObjectType; long mAddDeposit; }; struct MSG_RES_PLAYER_SP : public MSGROOT { unsigned short mSP; }; struct MSG_REQ_PLAYER_COMMUNITYSKILL : public MSGROOT { unsigned long mCommunitySkillIdx; }; struct MSG_RES_PLAYER_COMMUNITYSKILL : public MSG_ERROR { unsigned long mCommunitySkillIdx; }; struct MSG_SYN_PLAYER_COMMUNITYSKILL : public MSGROOT { unsigned long mCharacterIdx; unsigned long mCommunitySkillIdx; }; */ #pragma pack(pop)