/* ==================================================================== * ÆÄ ÀÏ : * ¸ñ Àû : * ÀÛ ¼º ÀÚ : °ûöÁß * ÀÛ ¼º ÀÏ : 2007.06.25 * ÁÖÀÇ»çÇ× : * =================================================================== */ #pragma once #pragma pack(push,1) #include "BaseObject_Common.h" #include "CommonDefines.h" #define MAX_ITEM_OWNER 1 // ÃÖ´ë µå·Ó ¾ÆÀÌÅÛ ¼ÒÀ¯ÀÚ #define MAX_ITEM_PARTY 6 // ÃÖ´ë µå·Ó ¾ÆÀÌÅÛ ¼ÒÀ¯ÀÚ(ÆÄƼ) #define MAX_ITEMS 30 // ÃÖ´ë µå·Ó ¾ÆÀÌÅÛ °³¼ö #define ITEM_VALID_DISTANCE 100.f // ¾ÆÀÌÅÛ Áݱâ À¯È¿°Å¸® #define MAX_ITEM_EXCHANGE 15 // ÃÖ´ë °Å·¡ °³¼ö #define ITEM_AGENT_NPC_FEE 500 // ÆÇ¸Å´ëÇà µî·Ï ¼ö¼ö·á enum eItemSellType { ItemSellNone = 0, // ÆÇ¸ÅºÒ°¡ ItemSellMoney, // °ÔÀÓ¸Ó´Ï ItemSellPvp, // ÀüÀå Æ÷ÀÎÆ® - ºÒ ItemSellTarot, // Á¡Áý Æ÷ÀÎÆ® }; enum eItemBuyType { ItemBuyNone = 0, // ÆÇ¸ÅºÒ°¡ ItemBuyMoney, // °ÔÀÓ¸Ó´Ï ItemBuyPvp, // ÀüÀå Æ÷ÀÎÆ® ItemBuyTarot, // Á¡Áý Æ÷ÀÎÆ® }; enum eItemActiveWeapon { ItemActiveFront = 0, // Ȱ¼º ¹«±âÁ¤º¸ - Front. ItemActiveBack, // " - Back. ItemActiveMax, ItemActiveSwitch = 1, }; enum eItemExchangeStatus { ItemExchangeNone = 0, ItemExchangeAsk, ItemExchangeBegin, ItemExchangeOk, ItemExchangeEnd, }; #define STALL_TITLE_LEN 50 // ³ëÁ¡ ŸÀÌÆ² ±æÀÌ #define MAX_STALL_TITLE_LEN (STALL_TITLE_LEN+1) // ³ëÁ¡ ŸÀÌÆ² ÃÖ´ë±æÀÌ(NULL Æ÷ÇÔ) #define MAX_STALL_GUEST 10 // ³ëÁ¡ °Ô½ºÆ®(GEUST) Àοø #define MAX_STALL_ITEM 10 // µî·Ï °¡´ÉÇÑ ¾ÆÀÌÅÛÀÇ °³¼ö enum eStallSellItemStatus { StallSellItemNone = 0, // µî·Ï¾ÈµÊ StallSellItemStart, // ÆÇ¸Å½ÃÀÛ StallSellItemPause, // ÆÇ¸ÅÀϽÃÁßÁö }; #ifndef __ITEM_TYPE__ #define __ITEM_TYPE__ enum ITEM_TYPE { ITEM_WEAPON = 0, // ¹«±â ITEM_WEAPON_SWORD = 0, // ÇÑ¼Õ°Ë ITEM_WEAPON_BLADE, // ¾ç¼Õ°Ë ITEM_WEAPON_DUAL, // À̵µ·ù ITEM_WEAPON_CUTTER, // ´Ü °Ë ITEM_WEAPON_GUN, // ÃÑ, ITEM_WEAPON_STAFF, // ÁöÆÎÀÌ ITEM_WEAPON_SHIELD, // ¹æÆÐ ITEM_WEAR = 1, // ¹æ¾î±¸ ITEM_WEAR_HEAD = 0, // ¸Ó¸® ITEM_WEAR_UPPER, // »óÀÇ ITEM_WEAR_LOWER, // ÇÏÀÇ ITEM_WEAR_HANDS, // ¼Õ ITEM_WEAR_FEET, // ¹ß ITEM_WEAR_ONEPIECE, // ¿øÇǽº ITEM_WEAR_COS_ONEPIECE, // ÄÚ½ºÆ¬ ¿øÇǽº ITEM_WEAR_COS_HEAD, // ÄÚ½ºÆ¬ ¸Ó¸® ITEM_WEAR_COS_UPPER, // ÄÚ½ºÆ¬ »óÀÇ ITEM_WEAR_COS_LOWER, // ÄÚ½ºÆ¬ ÇÏÀÇ ITEM_WEAR_COS_HANDS, // ÄÚ½ºÆ¬ ¼Õ ITEM_WEAR_COS_FEET, // ÄÚ½ºÆ¬ ¹ß ITEM_ACCESSORY = 2, // ¾×¼¼¼­¸® ITEM_ACCESSORY_EARRING = 0, // ±Í°ÉÀÌ ITEM_ACCESSORY_NECKLACE, // ¸ñ°ÉÀÌ ITEM_ACCESSORY_BROOCH, // ºê·ÎÄ¡ ITEM_ACCESSORY_BRACELET, // ÆÈÂî ITEM_ACCESSORY_RING, // ¹ÝÁö ITEM_ACCESSORY_COS_FACE, // ÄÚ½ºÆ¬ ¾ó±¼Àå½Ä ITEM_ACCESSORY_COS_BACK, // ÄÚ½ºÆ¬ ¸öÅëÀå½Ä ITEM_ETC1 = 3, // ¼Ò¸ðÀâÈ­ ITEM_ETC1_POTION = 0, // ¹°¾à ITEM_ETC1_MISC, // ÀâÈ­ ITEM_ETC1_QUEST, // Äù½ºÆ® ITEM_ETC1_CHANGE, // üÀÎÁö ITEM_ETC1_TITLE, // ȣĪ ITEM_ETC1_SKILLRESET, // ½ºÅ³ ÃʱâÈ­ ITEM_MATERIAL = 4, // Àç·á ITEM_MATERIAL_SKILL = 0, // ½ºÅ³ ITEM_MATERIAL_CLOTH, // ¿Ê°¨ ITEM_MATERIAL_LEATHER, // °¡Á× ITEM_MATERIAL_METAL, // ±Ý¼Ó ITEM_MATERIAL_JEWEL, // º¸¼® ITEM_MATERIAL_MISC, // ÀâÈ­ ITEM_MATERIAL_MAP, // À̵¿ÁÖ¹®¼­ ITEM_MATERIAL_VEHICLE, // Å»°Í ITEM_QUEST = 5, // Äù½ºÆ® ITEM_ETC2 = 6, // ÀϹÝÀâÈ­ ITEM_SPREAD = 7, // ½ºÇÁ·¹µå ITEM_CARD = 8, // Ä«µå ITEM_CARD_TAROT = 0, // Ä«µå-Ÿ·Î(¸ÞÀÌÀú) ITEM_CARD_COMMON, // Ä«µå-¼Ò¸ð ITEM_CARD_EQUIP_C, // Ä«µå-ij¸¯ÅÍÀåÂø ITEM_CARD_EQUIP_A, // Ä«µå-AŸÀÔ ITEM_CARD_EQUIP_B, // Ä«µå-BŸÀÔ ITEM_CARD_EQUIP_AB, // Ä«µå-ABŸÀÔ ITEM_CARD_EQUIP_O, // Ä«µå-OŸÀÔ ITEM_CARD_ENHANCE_WEAPON_LV1, // Ä«µå-¹«±â°­È­ ITEM_CARD_ENHANCE_WEAPON_LV2, // Ä«µå-¹«±â°­È­ ITEM_CARD_ENHANCE_WEAR_LV1, // Ä«µå-¹æ¾î±¸°­È­ ITEM_CARD_ENHANCE_WEAR_LV2, // Ä«µå-¹æ¾î±¸°­È­ ITEM_MONSTER = 9, // ¸ó½ºÅÍÄ«µå ITEM_MONSTER_UNKNOWN = 0, // ¸ó½ºÅÍ-¹ÌºÐ·ù ITEM_MONSTER_HUMAN, // ¸ó½ºÅÍ-Àΰ£ ITEM_MONSTER_ANIMAL, // ¸ó½ºÅÍ-µ¿¹° ITEM_MONSTER_PLANT, // ¸ó½ºÅÍ-½Ä¹° ITEM_MONSTER_INSECT, // ¸ó½ºÅÍ-°ïÃæ ITEM_MONSTER_ELF, // ¸ó½ºÅÍ-Á¤·É ITEM_MONSTER_UNDEAD, // ¸ó½ºÅÍ-¾ðµ¥µå ITEM_MONSTER_GIANT, // ¸ó½ºÅÍ-°ÅÀÎ ITEM_MONSTER_DRAGON, // ¸ó½ºÅÍ-¿ë ITEM_COIN = 10, // ÄÚÀÎ ITEM_COIN_GOLD = 0, // ÄÚÀÎ-±Ý ITEM_COIN_SILVER, // ÄÚÀÎ-Àº ITEM_COIN_COPPER, // ÄÚÀÎ-µ¿ ITEM_MIX_SKILL = 11, // º¸Á¶Á÷¾÷(Á¶ÇÕ Àü¹®±â¼ú) ITEM_MIX_SKILL_L1 = 0, // ÃÊ±Þ ITEM_MIX_SKILL_L2, // Áß±Þ ITEM_MIX_SKILL_L3, // °í±Þ ITEM_MIX_SKILL_L4, // ¸¶½ºÅÍ ITEM_MIX_RECIPE, // ·¹½ÃÇÇ ITEM_MIX_RECIPEGROUP, // ·¹½ÃÇÇ(±×·ì) ITEM_INVENTORY = 12, // Àκ¥Å丮 ITEM_INVENTORY_BAG = 0, // Àκ¥Å丮 È®Àå ITEM_INVENTORY_CARD, // Ä«µå ½½·Ô È®Àå ITEM_INVENTORY_WAREHOUSE, // â°í È®Àå ITEM_INVENTORY_MAKESKILL, // º¸Á¶Á÷¾÷ È®Àå ITEM_UNKNOWN = 13, }; #endif // __ITEM_TYPE__ #ifndef __ITEM_TARGET_TYPE__ #define ITEM_TARGET_NONE 0x00 // »ç¿ëºÒ°¡ #define ITEM_TARGET_MYSELF 0x01 // Ç÷¹À̾î ÀڽŠ#define ITEM_TARGET_MONSTER 0x02 // Àû #define ITEM_TARGET_PLAYER 0x04 // ´Ù¸¥ Ç÷¹À̾î #define ITEM_TARGET_PARTY 0x08 // ÆÄƼ±¸¼º¿ø #endif // __ITEM_TARGET_TYPE__ #ifndef __ITEM_TOOLTIP__ /// ÅøÆÁÄ÷¯ ( ·¹¾îµµ °ü·Ã enum eTooltipType { eTOOLTIP_MALL, /// ¸ô eTOOLTIP_ETC, /// ÀâÈ­ eTOOLTIP_NORMAL, /// ÀÏ¹Ý eTOOLTIP_MAGIC, /// ¸ÅÁ÷ eTOOLTIP_RARE, /// ·¹¾î eTOOLTIP_UNIQUE, /// À¯´ÏÅ© eTOOLTIP_EPIC, /// ¿¡ÇÈ eTOOLTIP_REGEND, /// ·¹Á¯µå eTOOLTIP_NONE, }; #endif __ITEM_TOOLTIP__ #ifndef __ITEM_LIMIT__ enum ITEM_RACE { ITEM_RACE_HUMAN = 0, // Àΰ£ ITEM_RACE_BEAST, // ¼öÀÎ ITEM_RACE_ELF, // Á¤·É ITEM_RACE_ALL, // ¸ðµÎ }; enum ITEM_GENDER { ITEM_GENDER_MALE = 0, // ³²ÀÚ ITEM_GENDER_FEMALE, // ¿©ÀÚ ITEM_GENDER_ALL, // ¸ðµÎ }; enum ITEM_JOB { ITEM_JOB_FIGHTER = 0x01, // ÆÄÀÌÅÍ ±º ITEM_JOB_MAGE = 0x02, // ¸ÞÀÌÁö ±º ITEM_JOB_WANDERER = 0x04, // ¿ø´õ·¯ ±º ITEM_JOB_WARLOCK = 0x08, // ¿ö ·Ï ±º ITEM_JOB_ARMSMAN = 0x10, // ¾ÏÁî¸Ç ±º ITEM_JOB_RANGER = 0x20, // ·¹ÀÎÀú ±º ITEM_JOB_ALL = 0, // ¸ð µÎ - (Á¦ÇѾøÀ½) }; #endif // __ITEM_LIMIT__ #ifndef __ITEM_ENHANCED__ #define MIN_ITEM_ENHANCED 1 // ¾ÆÀÌÅÛ °­È­ À¯È¿´Ü°è (0~15±îÁö, 0Àϰæ¿ì °­È­¾øÀ½) #define MAX_ITEM_ENHANCED 15 // ¾ÆÀÌÅÛ °­È­ À¯È¿´Ü°è (0~15±îÁö, 0Àϰæ¿ì °­È­¾øÀ½) #define CHATPRINT_ENHANCED 15 // enum ITEM_ENHANCED_TYPE { ITEM_ENHANCED_NONE=0, // ¾øÀ½ ITEM_ENHANCED_PHYSIC_ATTACK, // ¹°¸®°ø°Ý·Â ITEM_ENHANCED_MAGIC_ATTACK, // ¸¶¹ý°ø°Ý·Â ITEM_ENHANCED_PHYSIC_DEFENSE, // ¹°¸®¹æ¾î·Â ITEM_ENHANCED_MAGIC_DEFENSE, // ¸¶¹ý¹æ¾î·Â ITEM_ENHANCED_MAGIC_HEAL, // Èú ȸº¹·® }; #endif // __ITEM_ENHANCED__ #ifndef __ITEM_CARD_SLOT__ #define ITEM_CARD_SLOT_NONE 0 // ¾øÀ½ #define ITEM_CARD_SLOT_A 1 // AÇü #define ITEM_CARD_SLOT_B 2 // BÇü #define ITEM_CARD_SLOT_AB 3 // ABÇü #define ITEM_CARD_SLOT_O 4 // OÇü enum ITEM_CARD_SLOT { ITEM_CARD_SLOT_1 = 1, ITEM_CARD_SLOT_2, ITEM_CARD_SLOT_3, ITEM_CARD_SLOT_4, ITEM_CARD_SLOT_5 }; #define MIN_CARD_SLOT ITEM_CARD_SLOT_1 // Ä«µå½½·Ô ÃÖ¼Ò #define MAX_CARD_SLOT ITEM_CARD_SLOT_5 // Ä«µå½½·Ô ÃÖ´ë #endif // __ITEM_CARD_SLOT__ #ifndef __ITEM_CHANGE__ #define MIN_ITEM_CHANGE 1 // ÃÖ¼Ò ±³È¯°¡´É ¼ö·®. #define MAX_ITEM_CHANGE 3 // ÃÖ´ë ±³È¯°¡´É ¼ö·®. #define MAX_ITEM_CHANGE_RATE 10 // ÃÖ´ë ¾ÆÀÌÅÛ ±³È¯µ¥ÀÌÅÍ(È®·ü). #define MAX_ITEM_CHANGE_DATA 40 // ÃÖ´ë ¾ÆÀÌÅÛ ±³È¯µ¥ÀÌÅÍ(À妽º&¼ö·®). #endif // __ITEM_CHANGE__ #ifndef __INVENTORY_NUMBER__ #define __INVENTORY_NUMBER__ #define MIN_INVENTORY 0 enum INVENTORY_NUMBER { // INVENTORY_WEAR_TYPE INVENTORY_WEAR_BEGIN = MIN_INVENTORY, INVENTORY_WEAR_HAT = INVENTORY_WEAR_BEGIN, INVENTORY_WEAR_BODY1, INVENTORY_WEAR_BODY2, INVENTORY_WEAR_HAND, INVENTORY_WEAR_FOOT, INVENTORY_WEAR_EARRING, INVENTORY_WEAR_NECKLACE, INVENTORY_WEAR_BROOCH, INVENTORY_WEAR_BRACELET, INVENTORY_WEAR_RING, INVENTORY_WEAR_CARD1, INVENTORY_WEAR_CARD2, INVENTORY_WEAR_CARD3, INVENTORY_WEAR_END = INVENTORY_WEAR_CARD3, // INVENTORY_HAND_TYPE INVENTORY_HAND_BEGIN, INVENTORY_HAND_LEFT1 = INVENTORY_HAND_BEGIN, INVENTORY_HAND_RIGHT1, INVENTORY_HAND_LEFT2, INVENTORY_HAND_RIGHT2, INVENTORY_HAND_END = INVENTORY_HAND_RIGHT2, // INVENTORY_AVATAR - ¿¹¾à¹øÈ£(¾ÆÁ÷ ³»¿ë¾øÀ½) INVENTORY_AVATAR_BEGIN, INVENTORY_COSTUME_HAT = INVENTORY_AVATAR_BEGIN, INVENTORY_COSTUME_BODY1, INVENTORY_COSTUME_BODY2, INVENTORY_COSTUME_HAND, INVENTORY_COSTUME_FOOT, INVENTORY_COSTUME_FACE, INVENTORY_COSTUME_BACK, INVENTORY_AVATAR_END = INVENTORY_AVATAR_BEGIN + 15, // INVENTORY_BAG_TYPE INVENTORY_BAG0_BEGIN, INVENTORY_BAG0_END = INVENTORY_BAG0_BEGIN + 24, INVENTORY_BAG1_BEGIN, INVENTORY_BAG1_END = INVENTORY_BAG1_BEGIN + 24, INVENTORY_BAG2_BEGIN, INVENTORY_BAG2_END = INVENTORY_BAG2_BEGIN + 24, INVENTORY_BAG3_BEGIN, INVENTORY_BAG3_END = INVENTORY_BAG3_BEGIN + 24, // INVENTORY_QUEST_TYPE INVENTORY_QUEST_BEGIN, INVENTORY_QUEST_END = INVENTORY_QUEST_BEGIN + 24, // INVENTORY_WAREHOUSE_TYPE - ÀÏ¹Ý INVENTORY_WAREHOUSE0_BEGIN, INVENTORY_WAREHOUSE0_END = INVENTORY_WAREHOUSE0_BEGIN + 24, INVENTORY_WAREHOUSE1_BEGIN, INVENTORY_WAREHOUSE1_END = INVENTORY_WAREHOUSE1_BEGIN + 24, INVENTORY_WAREHOUSE2_BEGIN, INVENTORY_WAREHOUSE2_END = INVENTORY_WAREHOUSE2_BEGIN + 24, INVENTORY_WAREHOUSE3_BEGIN, INVENTORY_WAREHOUSE3_END = INVENTORY_WAREHOUSE3_BEGIN + 24, // INVENTORY_COLLECTION_TYPE - ¿¹¾à¹øÈ£(¾ÆÁ÷ ³»¿ë¾øÀ½) INVENTORY_COLLECTION_BEGIN, INVENTORY_TAROT_BEGIN = INVENTORY_COLLECTION_BEGIN, INVENTORY_TAROT_END = INVENTORY_TAROT_BEGIN + 21, INVENTORY_SPREAD_BEGIN, INVENTORY_SPREAD_END = INVENTORY_SPREAD_BEGIN + 4, INVENTORY_COLLECTION_END = INVENTORY_COLLECTION_BEGIN + 99, // INVENTORY_CASH_ITEM_TYPE - ij½Ã¾ÆÀÌÅÛ ¼ö·ÉÇÔ Àü¿ë INVENTORY_CASH_ITEM_BEGIN, INVENTORY_CASH_ITEM_END = INVENTORY_CASH_ITEM_BEGIN + 100, }; #define INVENTORY_EQUIP_NONE (-1) #define INVENTORY_EQUIP_BEGIN INVENTORY_WEAR_BEGIN #define INVENTORY_EQUIP_END INVENTORY_COSTUME_BACK #define INVENTORY_BAG_NONE (-1) #define INVENTORY_BAG_BEGIN INVENTORY_BAG0_BEGIN #define INVENTORY_BAG_END INVENTORY_BAG3_END #define INVENTORY_BAG_END_QUEST INVENTORY_QUEST_END #define INVENTORY_QUEST_NONE (-1) #define INVENTORY_CHARACTER_BEGIN INVENTORY_WEAR_BEGIN #define INVENTORY_CHARACTER_END INVENTORY_BAG3_END #define INVENTORY_WAREHOUSE_NONE (-1) #define INVENTORY_WAREHOUSE_BEGIN INVENTORY_WAREHOUSE0_BEGIN #define INVENTORY_WAREHOUSE_END INVENTORY_WAREHOUSE3_END #define MAX_VALID_INVENTORY INVENTORY_COLLECTION_END #define MAX_INVENTORY INVENTORY_CASH_ITEM_END #define LEN_INVENTORY MAX_INVENTORY+1 #endif // __INVENTORY_NUMBER__ struct sInventory { unsigned long idx; // Àκ¥Å丮 °íÀ¯¹øÈ£ unsigned long ItemIndex; // ¾ÆÀÌÅÛ Á¤ÀÇ À妽º unsigned short number; // ¾ÆÀÌÅÛ ¹øÈ£ (½½·ÔÀ妽º) unsigned short count; // ¾ÆÀÌÅÛ ¼ö·® unsigned char enhanced; // ¾ÆÀÌÅÛ °­È­´Ü°è (0~15±îÁö) unsigned long cardSlot1; // Ä«µå½½·Ô1 unsigned long cardSlot2; // Ä«µå½½·Ô2 unsigned long cardSlot3; // Ä«µå½½·Ô3 unsigned long cardSlot4; // Ä«µå½½·Ô4 unsigned long cardSlot5; // Ä«µå½½·Ô5 unsigned char seal; // ¾ÆÀÌÅÛ ºÀÀÎ (0ºÀÀÎÇØÁ¦/1ºÀÀεÊ) unsigned char cash; // ij½Ã ¾ÆÀÌÅÛ (0ÀϹÝ/1ij½Ã) }; struct sInventoryCooltime { unsigned long ItemIndex; // ¾ÆÀÌÅÛ Á¤ÀÇ À妽º unsigned long cooltime2; // ±×·ì ÄðŸÀÓ À妽º unsigned long cooltime; // ÄðŸÀÓ ³²Àº½Ã°£ unsigned long cooltime1; // ÄðŸÀÓ Àû¿ë½Ã°£ }; #ifndef __ITEM_ABILITY_OPT__ // ¼ø¼­´Â ±âȹ¼­ ÂüÁ¶ - ±âȹ¼­ ±âÁØ Á¤·Ä enum ITEM_ABILITY_OPT { ITEM_OPT_NONE=0, // »ç¿ë¾ÈÇÔ ITEM_OPT_STR, // Èû ITEM_OPT_DEX, // ¹Îø ITEM_OPT_CON, // ü·Â ITEM_OPT_INT, // Áö´É ITEM_OPT_WIS, // ÁöÇý ITEM_OPT_ALL, // ¸ðµÎ(Èû,¹Îø,ü·Â,Áö´É,ÁöÇý) ITEM_OPT_PLUS_PHYSIC_ATTACK=101, // ¹°¸®°ø°Ý·Â ITEM_OPT_PLUS_MAGIC_ATTACK, // ¸¶¹ý°ø°Ý·Â ITEM_OPT_PLUS_PHYSIC_DEFENSE, // ¹°¸®¹æ¾î·Â ITEM_OPT_PLUS_MAGIC_DEFENSE, // ¸¶¹ý¹æ¾î·Â ITEM_OPT_PLUS_PHYSIC_ATTACK_RATE, // ¹°¸®¸íÁß·ü ITEM_OPT_PLUS_MAGIC_ATTACK_RATE, // ¸¶¹ý¸íÁß·ü ITEM_OPT_PLUS_PHYSIC_CRITICAL, // ¹°¸®Å©¸®Æ¼Äà ITEM_OPT_PLUS_MAGIC_CRITICAL, // ¸¶¹ýÅ©¸®Æ¼Äà ITEM_OPT_PLUS_DOD, // ȸÇÇ ITEM_OPT_PLUS_WEI, // ¹«°Ô ITEM_OPT_PLUS_MAX_HP, // ÃÖ´ë·® HP ITEM_OPT_PLUS_MAX_MP, // ÃÖ´ë·® MP ITEM_OPT_PLUS_MOV, // À̵¿ ITEM_OPT_PLUS_HP, // HP ȸº¹ ITEM_OPT_PLUS_MP, // MP ȸº¹ ITEM_OPT_PLUS_ATTACK_SPEED, // ÀϹݰø°Ý¼Óµµ ITEM_OPT_PLUS_SKILL_COOLTIME_SPEED, // ½ºÅ³ÄðŸÀÓ¼Óµµ ITEM_OPT_PLUS_SHORT_RANGE, // ±Ù°Å¸®»çÁ¤°Å¸® ITEM_OPT_PLUS_DISTANCE_RANGE, // ¿ø°Å¸®»çÁ¤°Å¸® ITEM_OPT_PLUS_HEAL, // Èú ȸº¹·® ITEM_OPT_PLUS_HP_RECOVERTY, // HP ȸº¹½Ã Áõ°¡·® ITEM_OPT_PLUS_ALL_ATTACK, // ¸ðµç °ø°Ý·Â ITEM_OPT_PLUS_ALL_DEFENSE, // ¸ðµç ¹æ¾î·Â ITEM_OPT_PLUS_PHYSIC_CRITICAL_DEC, // ¹°¸®Å©¸®Æ¼Äà °¨¼Ò ITEM_OPT_PLUS_MAGIC_CRITICAL_DEC, // ¸¶¹ýÅ©¸®Æ¼Äà °¨¼Ò ITEM_OPT_PLUS_RESISTANCE, // ÀúÇ×·Â ITEM_OPT_PERCENT_PHYSIC_ATTACK=201, // ¹°¸®°ø°Ý·Â ITEM_OPT_PERCENT_MAGIC_ATTACK, // ¸¶¹ý°ø°Ý·Â ITEM_OPT_PERCENT_PHYSIC_DEFENSE, // ¹°¸®¹æ¾î·Â ITEM_OPT_PERCENT_MAGIC_DEFENSE, // ¸¶¹ý¹æ¾î·Â ITEM_OPT_PERCENT_PHYSIC_ATTACK_RATE, // ¹°¸®¸íÁß·ü ITEM_OPT_PERCENT_MAGIC_ATTACK_RATE, // ¸¶¹ý¸íÁß·ü ITEM_OPT_PERCENT_PHYSIC_CRITICAL, // ¹°¸®Å©¸®Æ¼Äà ITEM_OPT_PERCENT_MAGIC_CRITICAL, // ¸¶¹ýÅ©¸®Æ¼Äà ITEM_OPT_PERCENT_DOD, // ȸÇÇ ITEM_OPT_PERCENT_WEI, // ¹«°Ô ITEM_OPT_PERCENT_MAX_HP, // ÃÖ´ë·® HP ITEM_OPT_PERCENT_MAX_MP, // ÃÖ´ë·® MP ITEM_OPT_PERCENT_MOV, // À̵¿ ITEM_OPT_PERCENT_HP, // HP ȸº¹ ITEM_OPT_PERCENT_MP, // MP ȸº¹ ITEM_OPT_PERCENT_ATTACK_SPEED, // ÀϹݰø°Ý¼Óµµ ITEM_OPT_PERCENT_SKILL_COOLTIME_SPEED, // ½ºÅ³ÄðŸÀÓ¼Óµµ ITEM_OPT_PERCENT_SHORT_RANGE, // ±Ù°Å¸®»çÁ¤°Å¸® ITEM_OPT_PERCENT_DISTANCE_RANGE, // ¿ø°Å¸®»çÁ¤°Å¸® ITEM_OPT_PERCENT_HEAL, // Èú ȸº¹·® ITEM_OPT_PERCENT_HP_RECOVERTY, // HP ȸº¹½Ã Áõ°¡·® ITEM_OPT_PERCENT_ALL_ATTACK, // ¸ðµç °ø°Ý·Â ITEM_OPT_PERCENT_ALL_DEFENSE, // ¸ðµç ¹æ¾î·Â ITEM_OPT_PERCENT_PHYSIC_CRITICAL_DEC, // ¹°¸®Å©¸®Æ¼Äà °¨¼Ò ITEM_OPT_PERCENT_MAGIC_CRITICAL_DEC, // ¸¶¹ýÅ©¸®Æ¼Äà °¨¼Ò ITEM_OPT_PERCENT_RESISTANCE, // ÀúÇ×·Â ITEM_OPT_PLUS_DRAIN_HP = 301, // HP Èí¼ö ITEM_OPT_PLUS_DRAIN_MP, // MP Èí¼ö ITEM_OPT_PLUS_DAMAGE_DEC, // µ¥¹ÌÁö Èí¼ö/°¨¼Ò ITEM_OPT_PLUS_DAMAGE_REF, // µ¥¹ÌÁö ¹Ý»ç ITEM_OPT_PERCENT_DRAIN_HP = 401, // HP Èí¼ö ITEM_OPT_PERCENT_DRAIN_MP, // MP Èí¼ö ITEM_OPT_PERCENT_DAMAGE_DEC, // µ¥¹ÌÁö Èí¼ö/°¨¼Ò ITEM_OPT_PERCENT_DAMAGE_REF, // µ¥¹ÌÁö ¹Ý»ç }; #endif // __ITEM_ABILITY_OPT__ // ÀåÂøÇÑ ¾ÆÀÌÅÛÀÇ ÃÑÇÕ ¾îºô¸®Æ¼ - ½ºÅ©¸³Æ® ±âÁØ Á¤·Ä struct sEquipAbility { // ±âº» °ª Àû¿ë. short mPhysicDefense; // ¹°¸®:¹æ¾î·Â short mMagicDefense; // ¸¶¹ý:¹æ¾î·Â short mAttackRange; // °ø°Ý °Å¸® short mAttackSpeed; // °ø°Ý ¼Óµµ short mPhysicMinAttack; // ¹°¸®:ÃÖ¼Ò°ø°Ý·Â short mPhysicMaxAttack; // ¹°¸®:ÃÖ´ë°ø°Ý·Â short mMagicMinAttack; // ¸¶¹ý:ÃÖ¼Ò°ø°Ý·Â short mMagicMaxAttack; // ¸¶¹ý:ÃÖ´ë°ø°Ý·Â short mHealValue; // Èú ȸº¹°ª // ¿É¼Ç °ª Àû¿ë. short mOptStr; // Áõ°¡:Èû short mOptDex; // Áõ°¡:¹Îø short mOptCon; // Áõ°¡:ü·Â short mOptInt; // Áõ°¡:Áö´É short mOptWis; // Áõ°¡:ÁöÇý // ¿É¼Ç °ª - Plus short mOptPlusPhysicAttack; // ¹°¸®°ø°Ý·Â short mOptPlusMagicAttack; // ¸¶¹ý°ø°Ý·Â short mOptPlusPhysicDefense; // ¹°¸®¹æ¾î·Â short mOptPlusMagicDefense; // ¸¶¹ý¹æ¾î·Â short mOptPlusPhysicAttackRate; // ¹°¸®¸íÁß·ü short mOptPlusMagicAttackRate; // ¸¶¹ý¸íÁß·ü short mOptPlusPhysicCritical; // ¹°¸®Å©¸®Æ¼Äà short mOptPlusMagicCritical; // ¸¶¹ýÅ©¸®Æ¼Äà short mOptPlusDod; // ȸÇÇ short mOptPlusWei; // ¹«°Ô short mOptPlusMaxHp; // ÃÖ´ë·® HP short mOptPlusMaxMp; // ÃÖ´ë·® MP short mOptPlusMov; // À̵¿ short mOptPlusHp; // HP ȸº¹ short mOptPlusMp; // MP ȸº¹ short mOptPlusAttackSpeed; // ÀϹݰø°Ý¼Óµµ short mOptPlusSkillCooltimeSpeed; // ½ºÅ³ÄðŸÀÓ¼Óµµ short mOptPlusShortRange; // ±Ù°Å¸®»çÁ¤°Å¸® short mOptPlusDistanceRange; // ¿ø°Å¸®»çÁ¤°Å¸® short mOptPlusHeal; // Èú ȸº¹·® short mOptPlusHpReceive; // HP ¹Þ´Â ȸº¹½Ã Áõ°¡·® //short mOptPlusAllAttack; // ¸ðµç °ø°Ý·Â //short mOptPlusAllDefense; // ¸ðµç ¹æ¾î·Â short mOptPlusPhysicCriticalDec; // ¹°¸®Å©¸®Æ¼Äà °¨¼Ò short mOptPlusMagicCriticalDec; // ¸¶¹ýÅ©¸®Æ¼Äà °¨¼Ò short mOptPlusResistance; // ÀúÇ×·Â // ¿É¼Ç °ª - Percent short mOptPercentPhysicAttack; // ¹°¸®°ø°Ý·Â short mOptPercentMagicAttack; // ¸¶¹ý°ø°Ý·Â short mOptPercentPhysicDefense; // ¹°¸®¹æ¾î·Â short mOptPercentMagicDefense; // ¸¶¹ý¹æ¾î·Â short mOptPercentPhysicAttackRate; // ¹°¸®¸íÁß·ü short mOptPercentMagicAttackRate; // ¸¶¹ý¸íÁß·ü short mOptPercentPhysicCritical; // ¹°¸®Å©¸®Æ¼Äà short mOptPercentMagicCritical; // ¸¶¹ýÅ©¸®Æ¼Äà short mOptPercentDod; // ȸÇÇ short mOptPercentWei; // ¹«°Ô short mOptPercentMaxHp; // ÃÖ´ë·® HP short mOptPercentMaxMp; // ÃÖ´ë·® MP short mOptPercentMov; // À̵¿ short mOptPercentHp; // HP ȸº¹ short mOptPercentMp; // MP ȸº¹ short mOptPercentAttackSpeed; // ÀϹݰø°Ý¼Óµµ short mOptPercentSkillCooltimeSpeed; // ½ºÅ³ÄðŸÀÓ¼Óµµ short mOptPercentShortRange; // ±Ù°Å¸®»çÁ¤°Å¸® short mOptPercentDistanceRange; // ¿ø°Å¸®»çÁ¤°Å¸® short mOptPercentHeal; // Èú ȸº¹·® short mOptPercentHpReceive; // HP ¹Þ´Â ȸº¹½Ã Áõ°¡·® //short mOptPercentAllAttack; // ¸ðµç °ø°Ý·Â //short mOptPercentAllDefense; // ¸ðµç ¹æ¾î·Â short mOptPercentPhysicCriticalDec; // ¹°¸®Å©¸®Æ¼Äà °¨¼Ò short mOptPercentMagicCriticalDec; // ¸¶¹ýÅ©¸®Æ¼Äà °¨¼Ò short mOptPercentResistance; // ÀúÇ×·Â // ¿É¼Ç °ª - Plus Etc short mOptPlusDrainHp; // HP Èí¼ö short mOptPlusDrainMp; // MP Èí¼ö short mOptPlusDamageDec; // µ¥¹ÌÁö Èí¼ö/°¨¼Ò short mOptPlusDamageRef; // µ¥¹ÌÁö ¹Ý»ç // ¿É¼Ç °ª - Percent Etc short mOptPercentDrainHp; // HP Èí¼ö short mOptPercentDrainMp; // MP Èí¼ö short mOptPercentDamageDec; // µ¥¹ÌÁö Èí¼ö/°¨¼Ò short mOptPercentDamageRef; // µ¥¹ÌÁö ¹Ý»ç }; // ºÐÇØÇÑ ¾ÆÀÌÅÛÀÇ º¸»ó ¾ÆÀÌÅÛ #define MAX_DISJOINT_ITEM 6 struct eDisjointItem { long itemDefineIndex; short inventoryCount; }; #pragma pack(pop)