/* ==================================================================== * ÆÄ ÀÏ : * ¸ñ Àû : * ÀÛ ¼º ÀÚ : °ûöÁß * ÀÛ ¼º ÀÏ : 2007.06.25 * ÁÖÀÇ»çÇ× : * =================================================================== */ #pragma once #pragma pack(push,1) #include "BaseObject_Common.h" #include "CommonDefines.h" #include "CommonNetworkMsgStruct.h" #include "Theme_Common.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_ETC1_EXP_RESTORE, // °æÇèÄ¡ º¹±¸ ITEM_ETC1_THEME_RESET, // Å׸¶ ´øÀü ±Í¼Ó ÃʱâÈ­ ITEM_ETC1_FREE_MOVE, // ÀÚÀ¯ À̵¿ ITEM_ETC1_SHOUT, // Àüü ¿ÜÄ¡±â ITEM_ETC1_COOLTIME_CASH, // ¹öÇÁ¼º ¼Ò¸ð ij½Ã ITEM_ETC1_AUTODETECT, // ¿ÀÅä°¨Áö¿ë 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_MATERIAL_ENHANCED_DOWN_30, // ¾ÆÀÌÅÛ °­È­ º¸È£(30·¹º§ ÀÌÇÏ) : Ç϶ô ¹æÁö ITEM_MATERIAL_ENHANCED_DOWN_60, // ¾ÆÀÌÅÛ °­È­ º¸È£(31~60·¹º§) : Ç϶ô ¹æÁö ITEM_MATERIAL_ENHANCED_DESTROY_30, // ¾ÆÀÌÅÛ °­È­ º¸È£(30·¹º§ ÀÌÇÏ) : ÆÄ±«¸¸ º¸È£ ITEM_MATERIAL_ENHANCED_DESTROY_60, // ¾ÆÀÌÅÛ °­È­ º¸È£(31~60·¹º§) : ÆÄ±«¸¸ º¸È£ ITEM_QUEST = 5, // Äù½ºÆ® ITEM_ETC2 = 6, // ÀϹÝÀâÈ­ ITEM_SPREAD = 7, // ½ºÇÁ·¹µå ITEM_SPREAD_NORMAL = 0, // ½ºÇÁ·¹µå - ÀÏ¹Ý ITEM_SPREAD_SILVER, // ½ºÇÁ·¹µå - ½Ç¹ö ITEM_SPREAD_GOLD, // ½ºÇÁ·¹µå - °ñµå ITEM_SPREAD_DIA, // ½ºÇÁ·¹µå - ´ÙÀÌ¾Æ 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, // Ä«µå-ÀÏ¹Ý ¹«±â°­È­(50·¹º§ ÀÌÇÏ) ITEM_CARD_ENHANCE_WEAPON_LV2, // Ä«µå-°í±Þ ¹«±â°­È­(50·¹º§ ÀÌÇÏ) ITEM_CARD_ENHANCE_WEAR_LV1, // Ä«µå-ÀÏ¹Ý ¹æ¾î±¸°­È­(50·¹º§ ÀÌÇÏ) ITEM_CARD_ENHANCE_WEAR_LV2, // Ä«µå-°í±Þ ¹æ¾î±¸°­È­(50·¹º§ ÀÌÇÏ) ITEM_CARD_ENHANCE_WEAPON_LV1_75, // Ä«µå-ÀÏ¹Ý ¹«±â°­È­(51~75·¹º§) ITEM_CARD_ENHANCE_WEAPON_LV2_75, // Ä«µå-°í±Þ ¹«±â°­È­(51~75·¹º§) ITEM_CARD_ENHANCE_WEAR_LV1_75, // Ä«µå-ÀÏ¹Ý ¹æ¾î±¸°­È­(51~75·¹º§) ITEM_CARD_ENHANCE_WEAR_LV2_75, // Ä«µå-°í±Þ ¹æ¾î±¸°­È­(51~75·¹º§) ITEM_CARD_TAROT_SILVER, // Ä«µå-½Ç¹ö ITEM_CARD_TAROT_GOLD, // Ä«µå-°ñµå ITEM_CARD_TAROT_DIA, // Ä«µå-´ÙÀÌ¾Æ 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_COIN_MEDAL_OLD, // ³°Àº ÈÆÀå ITEM_COIN_MEDAL_NORMAL, // ÀÏ¹Ý ÈÆÀå ITEM_COIN_MEDAL_SILVER, // Àººû ÈÆÀå ITEM_COIN_MEDAL_GOLD, // ±Ýºû ÈÆÀå 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_INVENTORY_PULL_CARD, // ÀåÂø Ä«µå ÃßÃâ ÁÖ¹®¼­ ITEM_INVENTORY_FREE_PUT_CARD, // Ä«µå ÀÚÀ¯ ÀåÂø ÁÖ¹®¼­ ITEM_INVENTORY_AGENT_SUMMON, // ÆÇ¸Å´ëÇà ¼Òȯ ÁÖ¹®¼­(¼Ò¸ð¿ë) ITEM_INVENTORY_POST_SUMMON, // ¿ìÆíÇÔ ¼Òȯ ÁÖ¹®¼­(¼Ò¸ð¿ë) ITEM_INVENTORY_WAREHOUSE_SUMMON,// â°í ¼Òȯ ÁÖ¹®¼­(¼Ò¸ð¿ë) ITEM_INVENTORY_USEFUL_PAPER, // ÆíÀDZâ´É ÁÖ¹®¼­ 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 = 0, /// ¸ô eTOOLTIP_ETC, /// ÀâÈ­ eTOOLTIP_NORMAL, /// ÀÏ¹Ý eTOOLTIP_MAGIC, /// ¸ÅÁ÷ eTOOLTIP_RARE, /// ·¹¾î eTOOLTIP_UNIQUE, /// À¯´ÏÅ© eTOOLTIP_EPIC, /// ¿¡ÇÈ eTOOLTIP_REGEND, /// ·¹Á¯µå eTOOLTIP_MAX = 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~10±îÁö, 0Àϰæ¿ì °­È­¾øÀ½) #define MAX_ITEM_ENHANCED 10 // ¾ÆÀÌÅÛ °­È­ À¯È¿´Ü°è (0~10±îÁö, 0Àϰæ¿ì °­È­¾øÀ½) 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_NORMAL_BEGIN = INVENTORY_COLLECTION_BEGIN, INVENTORY_TAROT_NORMAL_END = INVENTORY_TAROT_NORMAL_BEGIN + 21, INVENTORY_SPREAD_NORMAL_BEGIN, INVENTORY_SPREAD_NORMAL_END = INVENTORY_SPREAD_NORMAL_BEGIN + 4, INVENTORY_TAROT_SILVER_BEGIN, INVENTORY_TAROT_SILVER_END = INVENTORY_TAROT_SILVER_BEGIN + 21, INVENTORY_SPREAD_SILVER_BEGIN, INVENTORY_SPREAD_SILVER_END = INVENTORY_SPREAD_SILVER_BEGIN + 4, INVENTORY_TAROT_GOLD_BEGIN, INVENTORY_TAROT_GOLD_END = INVENTORY_TAROT_GOLD_BEGIN + 21, INVENTORY_SPREAD_GOLD_BEGIN, INVENTORY_SPREAD_GOLD_END = INVENTORY_SPREAD_GOLD_BEGIN + 4, INVENTORY_TAROT_DIA_BEGIN, INVENTORY_TAROT_DIA_END = INVENTORY_TAROT_DIA_BEGIN + 21, INVENTORY_SPREAD_DIA_BEGIN, INVENTORY_SPREAD_DIA_END = INVENTORY_SPREAD_DIA_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 LEN_INVENTORY_EQUIP INVENTORY_EQUIP_END+1 #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; }; struct MSG_REQ_INVENTORY : public MSGROOT {}; struct MSG_RES_INVENTORY : public MSGROOT { eItemActiveWeapon activeWeapon; // Ȱ¼º ¹«±âÁ¤º¸(0 Front, 1Back). long RowCount; // °¹¼ö sInventory Inventory[1]; // Àκ¥Å丮 }; struct MSG_REQ_INVENTORY_COOLTIME : public MSGROOT {}; struct MSG_RES_INVENTORY_COOLTIME : public MSGROOT { long RowCount; // °¹¼ö sInventoryCooltime InventoryCooltime[1]; // Àκ¥Å丮 ÄðŸÀÓ }; /*-- ¾ÆÀÌÅÛ À̵¿(Àκ¥Å丮) */ #define ERROR_ITEM_MOV_INVENTORY_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_MOV_INVENTORY_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_MOV_INVENTORY_NOTYET 2 // DBó¸®Áß #define ERROR_ITEM_MOV_INVENTORY_MERGE 3 // º´ÇÕÁß #define ERROR_ITEM_MOV_INVENTORY_LICENSE 4 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛ »ç¿ë #define ERROR_ITEM_MOV_INVENTORY_MAX_ITEM 5 // ÃÖ´ë º¸À¯°¹¼ö °¹¼ö Ãʰú #define ERROR_ITEM_MOV_INVENTORY_STATE 6 // À̵¿ ºÒ°¡´É »óÅ struct MSG_REQ_ITEM_MOV_INVENTORY : public MSGROOT { unsigned short number1; // [in] À̵¿ Àü unsigned short number2; // [in] À̵¿ ÈÄ }; struct MSG_RES_ITEM_MOV_INVENTORY : public MSG_ERROR {}; #define ERROR_ITEM_MERGE_INVENTORY_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_MERGE_INVENTORY_FAIL 1 // ½ÇÆÐ struct MSG_RES_ITEM_MERGE_INVENTORY : public MSG_ERROR {}; /*-- ¾ÆÀÌÅÛ »ç¿ë(Àκ¥Å丮) */ #define ERROR_ITEM_USE_INVENTORY_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_USE_INVENTORY_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_USE_INVENTORY_NOTYET 2 // DBó¸®Áß #define ERROR_ITEM_USE_INVENTORY_COOLTIME 3 // ÄðŸÀÓ Àû¿ëÁß #define ERROR_ITEM_USE_INVENTORY_TITLE 4 // ȣĪ º¸À¯Áß #define ERROR_ITEM_USE_INVENTORY_SLOT 5 // ½½·ÔÀÌ ÀÌ¹Ì ÃÖ´ë·Î È®ÀåµÊ #define ERROR_ITEM_USE_SKILL_SYSTEM 6 // ½Ã½ºÅÛ¿¡·¯ #define ERROR_ITEM_USE_SKILL_STATE 7 // ´ë»óÀÇ »óŰ¡ ¾È¸ÂÀ½ #define ERROR_ITEM_USE_SKILL_GROUPORDER 8 // È¿·Â±×·ìÀÌ ³·À½ #define ERROR_ITEM_USE_INVENTORY_LICENSE 9 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛ »ç¿ë #define ERROR_ITEM_USE_EXP_RECOVER 10 // °æÇèÄ¡ º¹±¸ »ç¿ë ¿À·ù #define ERROR_ITEM_USE_SKILL_DUPLICATE 11 // ij½Ã Áߺ¹»ç¿ë ºÒ°¡´É #define ERROR_ITEM_USE_SKILL_PCOVER 12 // ÀÏ¹Ý ¹öÇÁ°¡ PC¹öÇÁ¸¦ µ¤À»¼ö ¾øÀ½ #define ERROR_ITEM_USE_SKILL_PCSCRIPT 13 // PC¹æ ¹öÇÁ³¢¸® Áߺ¹ºÒ°¡ ¼³Á¤ ½ºÅ©¸³Æ® ¿À·ù struct MSG_REQ_ITEM_USE_INVENTORY : public MSGROOT { unsigned long targetType; // ´ë»ó Ÿ ÀÔ 'sObject ÂüÁ¶' unsigned long targetIndex; // ´ë»ó À妽º " unsigned short number; // Àκ¥Å丮 ¹øÈ£ }; struct MSG_RES_ITEM_USE_INVENTORY : public MSG_ERROR {}; /*-- ¾ÆÀÌÅÛ »èÁ¦(Àκ¥Å丮) */ #define ERROR_ITEM_DEL_INVENTORY_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_DEL_INVENTORY_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_DEL_INVENTORY_NOTYET 2 // DBó¸®Áß #define ERROR_ITEM_DEL_INVENTORY_ITEMPWD_CHECK 3 // ¾ÆÀÌÅÛ ÀÎÁõ¹øÈ£ È®ÀÎÇØ¾ß ÇÔ struct MSG_REQ_ITEM_DEL_INVENTORY : public MSGROOT { unsigned short number; // Àκ¥Å丮 ¹øÈ£ }; struct MSG_RES_ITEM_DEL_INVENTORY : public MSG_ERROR {}; /*-- ¾ÆÀÌÅÛ ½ºÀ§Äª/Âø¿ë¹«±â¸¸ Àû¿ë(Àκ¥Å丮) */ #define ERROR_ITEM_SWI_INVENTORY_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_SWI_INVENTORY_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_SWI_INVENTORY_NOTYET 2 // DBó¸®Áß struct MSG_REQ_ITEM_SWI_INVENTORY : MSGROOT {}; struct MSG_RES_ITEM_SWI_INVENTORY : MSG_ERROR { eItemActiveWeapon activeWeapon; // Ȱ¼º ¹«±âÁ¤º¸(0 Front, 1Back). }; /*-- ¾ÆÀÌÅÛ ³ª´©±â(Àκ¥Å丮) */ #define ERROR_ITEM_DIVIDE_INVENTORY_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_DIVIDE_INVENTORY_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_DIVIDE_INVENTORY_NOTYET 2 // DBó¸®Áß struct MSG_REQ_ITEM_DIVIDE_INVENTORY : MSGROOT { unsigned short number1; // Àκ¥Å丮 ¹øÈ£(¿øº») unsigned short number2; // Àκ¥Å丮 ¹øÈ£(´ë»ó) unsigned short divide; // ´©´­¼ö·® }; struct MSG_RES_ITEM_DIVIDE_INVENTORY : MSG_ERROR { unsigned long RowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory Inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_DIVIDE_INVENTORY) - sizeof(Inventory) + (RowCount * sizeof(sInventory)); } }; /*-- ¾ÆÀÌÅÛ °­È­(Àκ¥Å丮) */ const unsigned long ENHANCE_DELAYTIME = 5000; // 5ÃÊ /// IsItemEnhanced¿¡¼­ »ç¿ë /// START¿Í END ¿À·ù¿Í °°Àº ¹øÈ£»ç¿ëÇÑ´Ù. #define ERROR_ITEM_ENHANCED_CHECK_SUCCESS 0 #define ERROR_ITEM_ENHANCED_CHECK_FAIL 1 #define ERROR_ITEM_ENHANCED_CHECK_LICENSE 3 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛ »ç¿ë #define ERROR_ITEM_ENHANCED_CHECK_EQUIP_LEVEL_BY_SAFE 4 // Àåºñ ·¹º§(º¸È£Ä«µå) #define ERROR_ITEM_ENHANCED_CHECK_EQUIP_LEVEL_BY_CARD 5 // Àåºñ ·¹º§(°­È­Ä«µå) #define ERROR_ITEM_ENHANCED_START_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_ENHANCED_START_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_ENHANCED_START_STATE 2 #define ERROR_ITEM_ENHANCED_START_LICENSE 3 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛ »ç¿ë #define ERROR_ITEM_ENHANCED_START_EQUIP_LEVEL_BY_SAFE 4 // Àåºñ ·¹º§(º¸È£Ä«µå) #define ERROR_ITEM_ENHANCED_START_EQUIP_LEVEL_BY_CARD 5 // Àåºñ ·¹º§(°­È­Ä«µå) struct MSG_REQ_ITEM_ENHANCED_START : public MSGROOT { unsigned short number1; // Àκ¥Å丮 ¹øÈ£(°­È­¾ÆÀÌÅÛ) unsigned short number2; // Àκ¥Å丮 ¹øÈ£(°­È­Ä«µå) unsigned short number3; // Àκ¥Å丮 ¹øÈ£(°­È­º¸È£Ä«µå) }; struct MSG_SYN_ITEM_ENHANCED_START : public MSGROOT { unsigned long characterIdx; }; #define ERROR_ITEM_ENHANCED_END_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_ENHANCED_END_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_ENHANCED_END_NOTYET 2 // DBó¸®Áß #define ERROR_ITEM_ENHANCED_END_LICENSE 3 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛ »ç¿ë #define ERROR_ITEM_ENHANCED_END_EQUIP_LEVEL_BY_SAFE 4 // Àåºñ ·¹º§(º¸È£Ä«µå) #define ERROR_ITEM_ENHANCED_END_EQUIP_LEVEL_BY_CARD 5 // Àåºñ ·¹º§(°­È­Ä«µå) struct MSG_SYN_ITEM_ENHANCED_END : MSG_ERROR { unsigned long RowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory Inventory[1]; // Àκ¥Å丮(0°­È­Àåºñ/1°­È­Ä«µå/2°­È­º¸È£Ä«µå) // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_SYN_ITEM_ENHANCED_END) - sizeof(Inventory) + (RowCount * sizeof(sInventory)); } }; #define ERROR_ITEM_ENHANCED_SYN_SUCCESS 0 // ¼º°ø - RESULT_INVENTORY_ENHANCED_SUCCESS #define ERROR_ITEM_ENHANCED_SYN_DOWN 1 // ´Ù¿î - RESULT_INVENTORY_ENHANCED_DOWN #define ERROR_ITEM_ENHANCED_SYN_DESTROY 2 // ÆÄ±« - RESULT_INVENTORY_ENHANCED_DESTROY #define ERROR_ITEM_ENHANCED_SYN_KEEP 3 // º¯È­¾øÀ½ - RESULT_INVENTORY_ENHANCED_KEEP #define ERROR_ITEM_ENHANCED_SYN_ENDFAIL 4 // ½ÇÆÐ struct MSG_SYN_ITEM_ENHANCED_OTHEREND : MSG_ERROR { unsigned long characterIdx; }; #define ERROR_ITEM_ENHANCED_CANCEL_SUCCESS 0 #define ERROR_ITEM_ENHANCED_CANCEL_DBWORK 1 struct MSG_RES_ITEM_ENHANCED_CANCEL : MSG_ERROR {}; struct MSG_SYN_ITEM_ENHANCED_CANCEL : MSGROOT { unsigned long characterIdx; }; // °­Á¦ Ãë¼Ò struct MSG_SYN_ITEM_ENHANCED_CANCELFORCE : MSGROOT {}; /*-- ¾ÆÀÌÅÛ ºÐÇØ(Àκ¥Å丮) */ #define ERROR_ITEM_DISJOINT_INVENTORY_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_DISJOINT_INVENTORY_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_DISJOINT_INVENTORY_NOTYET 2 // DBó¸®Áß #define ERROR_ITEM_DISJOINT_INVENTORY_MAX_ITEM 3 // ÃÖ´ë º¸À¯°¹¼ö °¹¼ö Ãʰú #define ERROR_ITEM_DISJOINT_INVENTORY_LICENSE 4 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛ »ç¿ë #define ERROR_ITEM_DISJOINT_INVENTORY_ITEMPWD_CHECK 5 // ¾ÆÀÌÅÛ ÀÎÁõ¹øÈ£ È®ÀÎÇØ¾ß ÇÔ struct MSG_REQ_ITEM_DISJOINT_INVENTORY : MSGROOT { unsigned short number; // Àκ¥Å丮 ¹øÈ£(¿øº») }; struct MSG_RES_ITEM_DISJOINT_INVENTORY : MSG_ERROR { unsigned long RowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory Inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_DISJOINT_INVENTORY) - sizeof(Inventory) + (RowCount * sizeof(sInventory)); } }; /*-- ¾ÆÀÌÅÛ Ä«µåÀåÂø(Àκ¥Å丮) */ #define ERROR_ITEM_PUT_CARD_INVENTORY_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_PUT_CARD_INVENTORY_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_PUT_CARD_INVENTORY_NOTYET 2 // DBó¸®Áß #define ERROR_ITEM_PUT_CARD_INVENTORY_LICENSE 3 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛ »ç¿ë struct MSG_REQ_ITEM_PUT_CARD_INVENTORY : MSGROOT { unsigned short number1; // Àκ¥Å丮 ¹øÈ£(Àåºñ) unsigned char cardSlot; // Àκ¥Å丮 Ä«µå½½·Ô ¹øÈ£(1~5) unsigned short number2; // Àκ¥Å丮 ¹øÈ£(Ä«µå) }; struct MSG_RES_ITEM_PUT_CARD_INVENTORY : MSG_ERROR { sInventory Inventory; // Àκ¥Å丮 }; /*-- ¾ÆÀÌÅÛ Ã¼ÀÎÁö(Àκ¥Å丮) */ #define ERROR_ITEM_CHANGE_INVENTORY_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_CHANGE_INVENTORY_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_CHANGE_INVENTORY_NOTYET 2 // DBó¸®Áß #define ERROR_ITEM_CHANGE_INVENTORY_MAX_ITEM 3 // ÃÖ´ë º¸À¯°¹¼ö °¹¼ö Ãʰú #define ERROR_ITEM_CHANGE_INVENTORY_HAVE_MONEY 4 // ÃÖ´ë º¸À¯±Ý¾× Ãʰú #define ERROR_ITEM_CHANGE_INVENTORY_LICENSE 5 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛ »ç¿ë struct MSG_REQ_ITEM_CHANGE_INVENTORY : MSGROOT { unsigned short number; // Àκ¥Å丮 ¹øÈ£ }; struct MSG_RES_ITEM_CHANGE_INVENTORY : MSG_ERROR { unsigned long RowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory Inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_CHANGE_INVENTORY) - sizeof(Inventory) + (RowCount * sizeof(sInventory)); } }; /*-- °Å·¡-»ç¿ëÀÚ°£ */ #define ERROR_ITEM_EXCHANGE_ASK_SUCCESS 0 // ¼º°ø - ½ÅûÈÄ ´ë±âÁß #define ERROR_ITEM_EXCHANGE_ASK_FAIL 1 // ½ÇÆÐ - ´ë»óÀÌ ¾ø°Å³ª ¿À·ùÀΰæ¿ì #define ERROR_ITEM_EXCHANGE_ASK_ERROR 2 // ½ÇÆÐ - °Å·¡»óÅ ¿À·ù #define ERROR_ITEM_EXCHANGE_ASK_DISTANCE 3 // ½ÇÆÐ - °Å¸® #define ERROR_ITEM_EXCHANGE_ASK_OPTIONREFUSE 4 // ½ÇÆÐ - °ÅºÎ»óÅ #define ERROR_ITEM_EXCHANGE_ASK_TARGETOPTIONREFUSE 5 // ½ÇÆÐ - »ó´ë¹æ °ÅºÎ»óÅ #define ERROR_ITEM_EXCHANGE_ASK_REPLAY 6 // ´äº¯¿äû #define ERROR_ITEM_EXCHANGE_ASK_TARGETERROR 7 // ½ÇÆÐ - ´ë»óÀÇ »óÅ ¿À·ù #define ERROR_ITEM_EXCHANGE_ASK_ITEMPWD_CHECK 8 // ½ÇÆÐ - ¾ÆÀÌÅÛ ÀÎÁõ¹øÈ£ È®ÀÎÇØ¾ß ÇÔ struct MSG_REQ_ITEM_EXCHANGE_ASK : MSGROOT { sObject mTarget; // °Å·¡ »ó´ë ij¸¯ÅÍ }; struct MSG_RES_ITEM_EXCHANGE_ASK : MSG_ERROR { unsigned long characterIdx; // °Å·¡ ½Åû ij¸¯ÅÍ - ERROR_ITEM_EXCHANGE_ASK_REPLAY À϶§¸¸... }; #define TYPE_ITEM_EXCHANGE_REP_ACCEPT 0 // ½Â¶ô #define TYPE_ITEM_EXCHANGE_REP_REJECT 1 // °ÅÀý #define TYPE_ITEM_EXCHANGE_REP_REJECTTIME 2 // °ÅÀý - ÀÀ´ä½Ã°£ Ãʰú #define ERROR_ITEM_EXCHANGE_REP_SUCCESS 0 // ¼º°ø ¶Ç´Â ¿äû ½Â¶ô #define ERROR_ITEM_EXCHANGE_REP_REFUSE 1 // °ÅÀý #define ERROR_ITEM_EXCHANGE_REP_TARGETREFUSE 2 // »ó´ë¹æ °ÅÀý #define ERROR_ITEM_EXCHANGE_REP_FAIL 3 // »ó´ë¹æÀÇ »óÅ ¿À·ù #define ERROR_ITEM_EXCHANGE_REP_ERROR 4 // ³» »óÅ ¿À·ù #define ERROR_ITEM_EXCHANGE_REP_TARGETERROR 5 // ½ÇÆÐ - ´ë»óÀÇ »óÅ ¿À·ù #define ERROR_ITEM_EXCHANGE_REP_NOTEXIST 6 // ´ë»óÀÌ ¾øÀ½ #define ERROR_ITEM_EXCHANGE_REP_OPTIONREFUSE 7 // ³»°¡ °ÅºÎ»óÅÂÀÓ #define ERROR_ITEM_EXCHANGE_REP_TARGETOPTIONREFUSE 8 // ´ë»óÀÌ °ÅºÎ»óÅ #define ERROR_ITEM_EXCHANGE_REP_DISTANCE 9 // ½ÇÆÐ - °Å¸® #define ERROR_ITEM_EXCHANGE_REP_TIME 10 // ½ÇÆÐ - ÀÀ´ä½Ã°£ Ãʰú #define ERROR_ITEM_EXCHANGE_REP_ITEMPWD_CHECK 11 // ½ÇÆÐ - ¾ÆÀÌÅÛ ÀÎÁõ¹øÈ£ È®ÀÎÇØ¾ß ÇÔ struct MSG_REQ_ITEM_EXCHANGE_REP : MSGROOT { BYTE type; // ´äº¯ }; struct MSG_RES_ITEM_EXCHANGE_REP : MSG_ERROR {}; struct MSG_RES_ITEM_EXCHANGE_BEGIN : MSGROOT {}; #define TYPE_ITEM_EXCHANGE_ADD_ITEM 0 // °Å·¡¾ÆÀÌÅÛ #define TYPE_ITEM_EXCHANGE_ADD_MONEY 1 // °Å·¡±Ý ¾× #define ERROR_ITEM_EXCHANGE_ADD_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_EXCHANGE_ADD_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_EXCHANGE_ADD_TRADE_MONEY 2 // ÃÖ´ë º¸À¯±Ý¾× Ãʰú #define ERROR_ITEM_EXCHANGE_ADD_EXCHANGE 3 // °Å·¡ºÒ°¡ ¾ÆÀÌÅÛ struct MSG_REQ_ITEM_EXCHANGE_ADD : MSGROOT { BYTE type; // Á¾·ù(¾ÆÀÌÅÛ/±Ý¾×) union { unsigned short number; // Àκ¥Å丮 ¹øÈ£ (½½·ÔÀ妽º) unsigned long money; // ±Ý¾× }; }; struct MSG_RES_ITEM_EXCHANGE_ADD : MSG_ERROR {}; struct MSG_SYN_ITEM_EXCHANGE_ADD : MSGROOT { BYTE type; // Á¾·ù(¾ÆÀÌÅÛ/±Ý¾×) union { sInventory inventory; // Àκ¥Å丮 unsigned long money; // ±Ý¾× }; }; #define ERROR_ITEM_EXCHANGE_DEL_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_EXCHANGE_DEL_FAIL 1 // ½ÇÆÐ struct MSG_REQ_ITEM_EXCHANGE_DEL : MSGROOT { unsigned short number; // Àκ¥Å丮 ¹øÈ£ (½½·ÔÀ妽º) }; struct MSG_RES_ITEM_EXCHANGE_DEL : MSG_ERROR {}; struct MSG_SYN_ITEM_EXCHANGE_DEL : MSGROOT { sInventory inventory; // Àκ¥Å丮 }; #define ERROR_ITEM_EXCHANGE_OK_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_EXCHANGE_OK_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_EXCHANGE_OK_PLAYER 2 // ´ë»ó struct MSG_REQ_ITEM_EXCHANGE_OK : MSGROOT {}; struct MSG_RES_ITEM_EXCHANGE_OK : MSG_ERROR {}; #define ERROR_ITEM_EXCHANGE_RETRY_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_EXCHANGE_RETRY_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_EXCHANGE_RETRY_PLAYER 2 // ´ë»ó struct MSG_REQ_ITEM_EXCHANGE_RETRY : MSGROOT {}; struct MSG_RES_ITEM_EXCHANGE_RETRY : MSG_ERROR {}; #define ERROR_ITEM_EXCHANGE_CANCEL_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_EXCHANGE_CANCEL_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_EXCHANGE_CANCEL_PLAYER 2 // ´ë»ó struct MSG_REQ_ITEM_EXCHANGE_CANCEL : MSGROOT {}; struct MSG_RES_ITEM_EXCHANGE_CANCEL : MSG_ERROR {}; #define ERROR_ITEM_EXCHANGE_END_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_EXCHANGE_END_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_EXCHANGE_END_INVENTORY 2 // Àκ¥Å丮 ¿À·ù #define ERROR_ITEM_EXCHANGE_END_WAIT 3 // ´ë±â #define ERROR_ITEM_EXCHANGE_END_MYMONEY_FAIL 4 // °Å·¡ ¼º¸³ ÈÄ µ·ÀÌ Çѵµ ÃʰúµÈ °æ¿ì #define ERROR_ITEM_EXCHANGE_END_THATMONEY_FAIL 5 // °Å·¡ ¼º¸³ ÈÄ µ·ÀÌ Çѵµ ÃʰúµÈ °æ¿ì #define ERROR_ITEM_EXCHANGE_END_MY_MAX_ITEM 6 // ÃÖ´ë º¸À¯ ¼ö·® #define ERROR_ITEM_EXCHANGE_END_THAT_MAX_ITEM 7 // ÃÖ´ë º¸À¯ ¼ö·® struct MSG_REQ_ITEM_EXCHANGE_END : MSGROOT {}; struct MSG_RES_ITEM_EXCHANGE_END : MSG_ERROR { unsigned long RowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory Inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_EXCHANGE_END) - sizeof(Inventory) + (RowCount * sizeof(sInventory)); } }; /*-- ³ëÁ¡-ÆÇ¸Å */ #define ERROR_ITEM_STALL_SELL_OPEN_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_STALL_SELL_OPEN_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_STALL_SELL_OPEN_EXIST 2 // ÀÌ¹Ì ¿ÀÇÂÁß #define ERROR_ITEM_STALL_SELL_OPEN_ITEMPWD_CHECK 3 // ¾ÆÀÌÅÛ ÀÎÁõ¹øÈ£ È®ÀÎÇØ¾ß ÇÔ struct MSG_REQ_ITEM_STALL_SELL_OPEN : MSGROOT { wchar_t title[ MAX_STALL_TITLE_LEN ]; // ³ëÁ¡¸í }; struct MSG_RES_ITEM_STALL_SELL_OPEN : MSG_ERROR {}; struct MSG_SYN_ITEM_STALL_SELL_OPEN : MSGROOT { unsigned long characterIdx; // ij¸¯ÅÍ °íÀ¯¹øÈ£ wchar_t title[ MAX_STALL_TITLE_LEN ]; // ³ëÁ¡¸í }; #define ERROR_ITEM_STALL_SELL_CLOSE_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_STALL_SELL_CLOSE_FAIL 1 // ½ÇÆÐ struct MSG_REQ_ITEM_STALL_SELL_CLOSE : MSGROOT {}; struct MSG_RES_ITEM_STALL_SELL_CLOSE : MSG_ERROR {}; struct MSG_SYN_ITEM_STALL_SELL_CLOSE : MSGROOT { unsigned long characterIdx; // ij¸¯ÅÍ °íÀ¯¹øÈ£ }; #define ERROR_ITEM_STALL_SELL_RENAME_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_STALL_SELL_RENAME_FAIL 1 // ½ÇÆÐ struct MSG_REQ_ITEM_STALL_SELL_RENAME : MSGROOT { wchar_t title[ MAX_STALL_TITLE_LEN ]; // ³ëÁ¡¸í }; struct MSG_RES_ITEM_STALL_SELL_RENAME : MSG_ERROR {}; struct MSG_SYN_ITEM_STALL_SELL_RENAME : MSGROOT { unsigned long characterIdx; // ij¸¯ÅÍ °íÀ¯¹øÈ£ wchar_t title[ MAX_STALL_TITLE_LEN ]; // ³ëÁ¡¸í }; #define ERROR_ITEM_STALL_SELL_ADD_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_STALL_SELL_ADD_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_STALL_SELL_ADD_TRADE_MONEY 2 // ÃÖ´ë º¸À¯±Ý¾× Ãʰú #define ERROR_ITEM_STALL_SELL_ADD_EXCHANGE 3 // °Å·¡ºÒ°¡ ¾ÆÀÌÅÛ struct MSG_REQ_ITEM_STALL_SELL_ADD : MSGROOT { unsigned short number; // Àκ¥Å丮 ¹øÈ£(½½·Ô³Ñ¹ö) unsigned long price; // ÆÇ¸Å°¡°Ý }; struct MSG_RES_ITEM_STALL_SELL_ADD : MSG_ERROR {}; struct MSG_SYN_ITEM_STALL_SELL_ADD : MSGROOT { sInventory inventory; // Àκ¥Å丮 unsigned long price; // ÆÇ¸Å°¡°Ý }; #define ERROR_ITEM_STALL_SELL_DEL_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_STALL_SELL_DEL_FAIL 1 // ½ÇÆÐ struct MSG_REQ_ITEM_STALL_SELL_DEL : MSGROOT { unsigned short number; // Àκ¥Å丮 ¹øÈ£(½½·Ô³Ñ¹ö) }; struct MSG_RES_ITEM_STALL_SELL_DEL : MSG_ERROR {}; struct MSG_SYN_ITEM_STALL_SELL_DEL : MSGROOT { sInventory inventory; // Àκ¥Å丮 }; #define ERROR_ITEM_STALL_SELL_MOD_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_STALL_SELL_MOD_FAIL 1 // ½ÇÆÐ struct MSG_REQ_ITEM_STALL_SELL_MOD : MSGROOT { unsigned short number; // Àκ¥Å丮 ¹øÈ£(½½·Ô³Ñ¹ö) }; struct MSG_RES_ITEM_STALL_SELL_MOD : MSG_ERROR {}; struct MSG_SYN_ITEM_STALL_SELL_MOD : MSGROOT { sInventory inventory; // Àκ¥Å丮 }; struct MSG_RES_ITEM_STALL_SELL_COM : MSGROOT { wchar_t characterName[ 17 ]; // ±¸ÀÔÀÚ À̸§ sInventory inventory; // Àκ¥Å丮 }; struct MSG_SYN_ITEM_STALL_SELL_DAT : MSGROOT { sInventory inventory; // Àκ¥Å丮 unsigned long price; // °¡°Ý }; #define ERROR_ITEM_STALL_SELL_JOIN_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_STALL_SELL_JOIN_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_STALL_SELL_JOIN_OVER 2 // ½ÇÆÐ-ÀοøÁ¦ÇÑ struct sStallSellData { eStallSellItemStatus status; // »óÅ sInventory inventory; // Àκ¥Å丮 unsigned long price; // °¡°Ý }; struct MSG_REQ_ITEM_STALL_SELL_JOIN : MSGROOT { sObject mTarget; // ŸÄÏ }; struct MSG_RES_ITEM_STALL_SELL_JOIN : MSG_ERROR { wchar_t title[ MAX_STALL_TITLE_LEN ]; // ³ëÁ¡¸í BYTE rowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sStallSellData stallSellData[1]; // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_STALL_SELL_JOIN) - sizeof(stallSellData) + (rowCount * sizeof(sStallSellData)); } }; #define ERROR_ITEM_STALL_SELL_LEAVE_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_STALL_SELL_LEAVE_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_STALL_SELL_LEAVE_CLOSED 2 // ´ÝÈû #define ERROR_ITEM_STALL_SELL_LEAVE_MAX_ITEM 3 // ÃÖ´ë º¸À¯°¹¼ö °¹¼ö Ãʰú #define ERROR_ITEM_STALL_SELL_LEAVE_HAVE_MONEY 4 // ÃÖ´ë º¸À¯±Ý¾× Ãʰú struct MSG_REQ_ITEM_STALL_SELL_LEAVE : MSGROOT {}; struct MSG_RES_ITEM_STALL_SELL_LEAVE : MSG_ERROR {}; #define ERROR_ITEM_STALL_SELL_GET_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_STALL_SELL_GET_FAIL 1 // ½ÇÆÐ struct MSG_REQ_ITEM_STALL_SELL_GET : MSGROOT { unsigned short number; // ±¸¸Å¹øÈ£ unsigned short count; // ¼ö·® }; struct MSG_RES_ITEM_STALL_SELL_GET : MSG_ERROR { BYTE RowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory Inventory; // Àκ¥Å丮 }; /*-- ¾ÆÀÌÅÛ µå·Ó&½Àµæ */ struct sItemDrop { unsigned long idx; // °íÀ¯¹øÈ£ float xPos; // X À§Ä¡ float yPos; // Y À§Ä¡ }; struct sItemData { unsigned long itemDefineIndex; // ¾ÆÀÌÅÛ Á¤ÀÇ À妽º unsigned short count; // ¼ö·® }; // NM_ITEM_DROP_IN_SYN & NM_ITEM_SIGHT_IN_RES ÂüÁ¶ struct MSG_ITEM_INFO : MSGROOT { unsigned long owner[ MAX_ITEM_OWNER ]; // µå·Ó ¾ÆÀÌÅÛ ¼ÒÀ¯ÀÚ unsigned long timeToOwner; // µå·Ó ¾ÆÀÌÅÛ ¼ÒÀ¯ÀÚÀÇ ³²Àº½Ã°£(1/1000s) unsigned long party[ MAX_ITEM_PARTY ]; // µå·Ó ¾ÆÀÌÅÛ ÆÄƼ unsigned long timeToParty; // µå·Ó ¾ÆÀÌÅÛ ÆÄƼÀÇ ³²Àº½Ã°£(1/1000s) unsigned char rare; // µå·Ó ¾ÆÀÌÅÛ ·¹¾î¼öÁØ sItemDrop itemDrop; // µå·Ó ¾ÆÀÌÅÛ Á¤º¸ }; // NM_ITEM_DROP_OUT_SYN & NM_ITEM_SIGHT_OUT_RES ÂüÁ¶ struct MSG_ITEMIDX : MSGROOT { unsigned long idx; // °íÀ¯¹øÈ£ }; #define ERROR_ITEM_GET_OPEN_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_GET_OPEN_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_GET_OPEN_OWNER 2 // ½ÇÆÐ - ¼ÒÀ¯±Ç ¿À·ù #define ERROR_ITEM_GET_OPEN_PARTY 3 // ½ÇÆÐ - ¼ÒÀ¯±Ç ¿À·ù #define ERROR_ITEM_GET_OPEN_DISTANCE 4 // ½ÇÆÐ - °Å ¸® ¿À·ù #define ERROR_ITEM_GET_OPEN_EXIST 5 // ½ÇÆÐ - ¿­¶÷Áß ¿À·ù // NM_ITEM_GET_OPEN_REQ ÂüÁ¶ struct MSG_REQ_ITEM_GET_OPEN : public MSGROOT { unsigned long idx; // °íÀ¯¹øÈ£ }; // NM_ITEM_GET_OPEN_RES ÂüÁ¶ struct MSG_RES_ITEM_GET_OPEN : public MSG_ERROR { unsigned long openItemIdx; // °íÀ¯¹øÈ£ BYTE rowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sItemData itemData[1]; // ¾ÆÀÌÅÛ Á¤º¸ // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength() { return sizeof(MSG_RES_ITEM_GET_OPEN) - sizeof(itemData) + (rowCount * sizeof(sItemData)); } }; // MSG_SYN_ITEM_GET_OPEN ÂüÁ¶ struct MSG_SYN_ITEM_GET_OPEN : public MSGROOT { unsigned long characterIdx; // ij¸¯ÅÍ °íÀ¯¹øÈ£ }; #define ERROR_ITEM_GET_CLOSE_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_GET_CLOSE_FAIL 1 // ½ÇÆÐ // NM_ITEM_GET_CLOSE_REQ ÂüÁ¶ struct MSG_REQ_ITEM_GET_CLOSE : public MSGROOT {}; // NM_ITEM_GET_CLOSE_RES ÂüÁ¶ struct MSG_RES_ITEM_GET_CLOSE : public MSG_ERROR {}; // NM_ITEM_GET_CLOSE_SYN ÂüÁ¶ struct MSG_SYN_ITEM_GET_CLOSE : public MSGROOT { unsigned long characterIdx; // ij¸¯ÅÍ °íÀ¯¹øÈ£ }; #define ITEM_GET_ALL (-1) // ¸ðµÎÁݱâ #define ERROR_ITEM_GET_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_GET_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_GET_AUTO 2 // ÀÚµ¿ // NM_ITEM_GET_REQ ÂüÁ¶ struct MSG_REQ_ITEM_GET : public MSGROOT { unsigned long itemIndexOrInd; // ¾ÆÀÌÅÛ Á¤ÀÇ À妽º ¶Ç´Â ¸ðµÎÁݱâ }; // NM_ITEM_GET_RES struct MSG_RES_ITEM_GET : public MSG_ERROR { BYTE RowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory Inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_GET) - sizeof(Inventory) + (RowCount * sizeof(sInventory)); } }; // NM_ITEM_GET_LEAVE_RES ÂüÁ¶ struct MSG_RES_ITEM_GET_LEAVE : public MSGROOT { BYTE rowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sItemData itemData[1]; // ¾ÆÀÌÅÛ Á¤º¸ // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength() { return sizeof(MSG_RES_ITEM_GET_LEAVE) - sizeof(itemData) + (rowCount * sizeof(sItemData)); } }; // NM_ITEM_GATHERING_OPEN_RES ÂüÁ¶ struct MSG_RES_ITEM_GATHERING_OPEN : public MSG_RES_ITEM_GET_OPEN {}; // NM_ITEM_USE_RES Âü°í struct MSG_RES_ITEM_USE : public MSGROOT { sInventory inventory; // Àκ¥Å丮 }; // NM_ITEM_REWARD_RES Âü°í struct MSG_RES_ITEM_REWARD : public MSGROOT { BYTE rowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_REWARD) - sizeof(inventory) + (rowCount * sizeof(inventory)); } }; // NM_ITEM_MAKESKILL_RES , NM_ITEM_RECIPE_RES Âü°í struct MSG_RES_MAKESKILL_ITEM : public MSGROOT { sInventory inventory; // Àκ¥Å丮 }; // NM_ITEM_TAKE_RES Âü°í struct MSG_RES_ITEM_TAKE : public MSGROOT { BYTE rowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_TAKE) - sizeof(inventory) + (rowCount * sizeof(inventory)); } }; #define ERROR_ITEM_GET_QUEST_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_GET_QUEST_FAIL 1 // ½ÇÆÐ // NM_ITEM_GET_QUEST_RES Âü°í struct MSG_RES_ITEM_GET_QUEST : public MSG_ERROR { BYTE RowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory Inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_GET_QUEST) - sizeof(Inventory) + (RowCount * sizeof(sInventory)); } }; #define ERROR_ITEM_COLLECT_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_COLLECT_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_COLLECT_NOTYET 2 // DBó¸®Áß #define ERROR_ITEM_COLLECT_LICENSE 3 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛ »ç¿ë #define ERROR_ITEM_COLLECT_STATE 4 // µî·Ï ºÒ°¡´É »óÅ // NM_ITEM_COLLECT_REQ struct MSG_REQ_ITEM_COLLECT : public MSGROOT { unsigned short number1; // [in] À̵¿ Àü unsigned short number2; // [in] À̵¿ Àü }; // NM_ITEM_COLLECT_RES struct MSG_RES_ITEM_COLLECT : public MSG_ERROR { unsigned long RowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory Inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_COLLECT) - sizeof(Inventory) + (RowCount * sizeof(sInventory)); } }; #define ERROR_ITEM_COLLECT_CARD_CHANGE_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_COLLECT_CARD_CHANGE_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_COLLECT_CARD_CHANGE_NOTYET 2 // DBó¸®Áß #define ERROR_ITEM_COLLECT_CARD_CHANGE_CLASS 3 // Ÿ·Î µî±Þ(º¯È¯ ºÒ°¡´É) #define ERROR_ITEM_COLLECT_CARD_CHANGE_COUNT 4 // Ä«µå °¹¼ö ºÎÁ· #define ERROR_ITEM_COLLECT_CARD_CHANGE_FULL 5 // Àκ¥Å丮 °ø°£ ºÎÁ· #define ERROR_ITEM_COLLECT_CARD_CHANGE_MAX_ITEM 6 // º¸À¯°¡´É °¹¼ö // NM_ITEM_COLLECT_CARD_CHANGE_REQ struct MSG_REQ_COLLECT_CARD_CHANGE : MSGROOT { char tarotClass; }; // NM_ITEM_COLLECT_CARD_CHANGE_RES struct MSG_RES_COLLECT_CARD_CHANGE : MSG_ERROR { unsigned long RowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory Inventory[1]; // Àκ¥Å丮(0:üÀÎÁö¾ÆÀÌÅÛ/1:Ÿ·ÎÄ«µå22Àå) // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_COLLECT_CARD_CHANGE) - sizeof(Inventory) + (RowCount * sizeof(sInventory)); } }; // NM_ITEM_MIXED_RES Âü°í struct MSG_RES_ITEM_MIXED : public MSGROOT { BYTE rowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_MIXED) - sizeof(inventory) + (rowCount * sizeof(inventory)); } }; // NM_ITEM_SKILLRESET_RES struct MSG_RES_ITEM_SKILLRESET : public MSGROOT { sInventory inventory; // Àκ¥Å丮 }; /*-- ¹ÌÀÎÁõ ¾ÆÀÌÅÛ */ #define ERROR_ITEM_LICENSE_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_LICENSE_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_LICENSE_TYPE 2 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛÀÌ ¾Æ´Ô #define ERROR_ITEM_LICENSE_ALREADY 3 // ÀÌ¹Ì ÀÎÁõµÈ ¾ÆÀÌÅÛ // NM_ITEM_LICENSE_REQ struct MSG_REQ_ITEM_LICENSE : public MSGROOT { unsigned short number; }; // NM_ITEM_LICENSE_RES struct MSG_RES_ITEM_LICENSE : public MSG_ERROR { unsigned short number; unsigned char seal; // ÀÎÁõ ¿©ºÎ }; /*-- ij½¬ ¾ÆÀÌÅÛ ¼ö·É */ struct sCashInventory { unsigned long idx; // Àκ¥Å丮 °íÀ¯¹øÈ£ unsigned long ItemIndex; // ¾ÆÀÌÅÛ Á¤ÀÇ À妽º unsigned short number; // ¾ÆÀÌÅÛ ¹øÈ£ (½½·ÔÀ妽º) unsigned short count; // ¾ÆÀÌÅÛ ¼ö·® unsigned char seal; // ¾ÆÀÌÅÛ ºÀÀÎ (0ºÀÀÎÇØÁ¦/1ºÀÀεÊ) unsigned char cash; // ¾ÆÀÌÅÛ Ä³½¬ (0ÀϹÝ/1ij½¬) }; #define ERROR_ITEM_CASH_OPEN_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_CASH_OPEN_FAIL 1 // ½ÇÆÐ // NM_ITEM_CASH_OPEN_REQ struct MSG_REQ_ITEM_CASH_OPEN : public MSGROOT {}; #define ERROR_ITEM_CASH_CLOSE_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_CASH_CLOSE_FAIL 1 // ½ÇÆÐ // NM_ITEM_CASH_CLOSE_REQ struct MSG_REQ_ITEM_CASH_CLOSE : public MSGROOT {}; #define ERROR_ITEM_CASH_LIST_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_CASH_LIST_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_CASH_LIST_LOADING 2 // ½ÇÆÐ-ij½Ã¾ÆÀÌÅÛ ·Îµù Áß // NM_ITEM_CASH_LIST_REQ struct MSG_REQ_ITEM_CASH_LIST : public MSGROOT {}; // NM_ITEM_CASH_LIST_RES struct MSG_RES_ITEM_CASH_LIST : public MSG_ERROR { long RowCount; sCashInventory Inventory[1]; unsigned long GetMsgLength( ) { return sizeof(MSG_RES_ITEM_CASH_LIST) - sizeof(Inventory) + (RowCount * sizeof(sCashInventory)); } }; /*-- ¾ÆÀÌÅÛ ºô */ struct sItemBill { long idx; // °íÀ¯¹øÈ£ BYTE type; // Á¾·ù(0 ÀϹÝ, 1 ±â°£, 2 ½Ã°£) time_t validDate; // À¯È¿±â°£(ÃÊ ´ÜÀ§ »ç¿ë) long validTime; // À¯È¿½Ã°£(ÃÊ ´ÜÀ§ »ç¿ë) long inventoryIdx; // TB_INVENTORY::IDX °íÀ¯¹øÈ£ }; // NM_ITEM_BILL_SYN struct MSG_SYN_ITEM_BILL : public MSGROOT { long rowCount; // Àû¿ë°³¼ö sItemBill itemBill[1]; // ¾ÆÀÌÅÛ ºô }; // NM_ITEM_BILL_ADD_SYN struct MSG_SYN_ITEM_BILL_ADD : public MSGROOT { sItemBill itemBill; // ¾ÆÀÌÅÛ ºô }; // NM_ITEM_BILL_DEL_SYN struct MSG_SYN_ITEM_BILL_DEL : public MSGROOT { long idx; // ¾ÆÀÌÅÛ ºô::IDX °íÀ¯¹øÈ£ }; #define ERROR_THEMERESET_SUCCESS 0 #define ERROR_THEMERESET_STATE 1 // ij¸¯ÅÍ »óÅ #define ERROR_THEMERESET_ITEM 2 // ¾ÆÀÌÅÛ ÀÎÁõ¿¡·¯ #define ERROR_THEMERESET_DBERROR 3 // dbó¸® ¿¡·¯ #define ERROR_THEMERESET_ITEM_LICENSE 4 // ¹ÌÀÎÁõ ¾ÆÀÌÅÛ »ç¿ë #define ERROR_THEMERESET_READY 5 // ´øÀü ÃʱâÈ­ ´ë±â »óÅ // NM_ITEM_THEMERESET_REQ struct MSG_REQ_ITEM_THEMERESET : public MSGROOT { unsigned short mSlotNum; /// Àκ¥½½·Ô ¹øÈ£ unsigned short mThemeNum; /// Å׸¶ Á¾·ù(¸ÊŸÀÔ) unsigned char mThemeMode; /// ³­À̵µ }; // NM_ITEM_THEMERESET_RES struct MSG_RES_ITEM_THEMERESET : public MSG_ERROR { sInventory mInventory; /// Àκ¥Å丮 unsigned short mThemeNum; /// Å׸¶ Á¾·ù(¸ÊŸÀÔ) unsigned char mThemeMode; /// ³­À̵µ }; /*-- ÆÄƼÀå ¾ÆÀÌÅÛ Áö±Þ */ #define ERROR_ITEM_PARTY_GIVE_SUCCESS 0 // ¼º°ø #define ERROR_ITEM_PARTY_GIVE_FAIL 1 // ½ÇÆÐ #define ERROR_ITEM_PARTY_GIVE_TYPE 2 // ½ÇÆÐ - ÆÄƼÀå ºÐ¹è°¡ ¾Æ´Ô #define ERROR_ITEM_PARTY_GIVE_OWNER 3 // ½ÇÆÐ - Áö±Þ ±ÇÇÑ ¾øÀ½ #define ERROR_ITEM_PARTY_GIVE_TARGET 4 // ½ÇÆÐ - Áö±ÞÇÒ Ä³¸¯ÅÍ ¾øÀ½ #define ERROR_ITEM_PARTY_GIVE_PARTY 5 // ½ÇÆÐ - ¼ÒÀ¯±Ç ¿À·ù #define ERROR_ITEM_PARTY_GIVE_MAP 6 // ½ÇÆÐ - µ¿ÀÏ ¸Ê ¿À·ù #define ERROR_ITEM_PARTY_GIVE_INVEN_FULL 7 // ½ÇÆÐ - Àκ¥Å丮 ºÎÁ· #define ERROR_ITEM_PARTY_GIVE_MAX_ITEM 8 // ½ÇÆÐ - º¸À¯°¡´É °¹¼ö Ãʰú #define ERROR_ITEM_PARTY_GIVE_WEIGHT 9 // ½ÇÆÐ - Àκ¥Å丮 ¹«°Ô // NM_ITEM_PARTY_GIVE_REQ struct MSG_REQ_ITEM_PARTY_GIVE : public MSGROOT { unsigned long characterIdx; unsigned long itemDefineIndex; }; // NM_ITEM_PARTY_GIVE_RES struct MSG_RES_ITEM_PARTY_GIVE : public MSG_ERROR { }; // NM_ITEM_PARTY_GIVE_SYN struct MSG_SYN_ITEM_PARTY_GIVE : public MSGROOT { BYTE rowCount; // ¿µÇâ¹ÞÀº Çà ¼ö sInventory inventory[1]; // Àκ¥Å丮 // ½ÇÁ¦º¸³»´Â ¸Þ¼¼Áö Å©±â unsigned long GetMsgLength( ) { return sizeof(MSG_SYN_ITEM_PARTY_GIVE) - sizeof(inventory) + (rowCount * sizeof(sInventory)); } }; /*-- ¼Òȯ ÁÖ¹®¼­ - â°í */ #define ERROR_ITEM_WAREHOUSE_SUMMON_OPEN_SUCCESS 0 // ¼º°ø- ¼Ò¸ð¿ë ¼Òȯ ÁÖ¹®¼­ #define ERROR_ITEM_WAREHOUSE_SUMMON_OPEN_USEFUL_SUCCESS 1 // ¼º°ø- ±â°£Á¦ ÆíÀDZâ´É ÁÖ¹®¼­ #define ERROR_ITEM_WAREHOUSE_SUMMON_OPEN_CHANGESTATE 2 // ¼º°ø- ChangeState(eOBJECT_STATE_STOP) == false ÀÇ °æ¿ì ¼Ò¸ð¸¸ µÇµµ·Ï.. #define ERROR_ITEM_WAREHOUSE_SUMMON_OPEN_FAIL 3 // ½ÇÆÐ #define ERROR_ITEM_WAREHOUSE_SUMMON_OPEN_LICENSE 4 // ½ÇÆÐ- ¹ÌÀÎÁõ ¾ÆÀÌÅÛ #define ERROR_ITEM_WAREHOUSE_SUMMON_OPEN_ALREADY 5 // ½ÇÆÐ- ¼ÒȯÁÖ¹®¼­ »ç¿ëÁß #define ERROR_ITEM_WAREHOUSE_SUMMON_OPEN_ITEMPWD_CHECK 6 // ½ÇÆÐ- ¾ÆÀÌÅÛ ÀÎÁõ¹øÈ£ È®ÀÎÇØ¾ß ÇÔ // NM_ITEM_WAREHOUSE_SUMMON_OPEN_REQ struct MSG_REQ_ITEM_WAREHOUSE_SUMMON_OPEN : public MSGROOT { unsigned short number; }; // NM_ITEM_WAREHOUSE_SUMMON_OPEN_RES struct MSG_RES_ITEM_WAREHOUSE_SUMMON_OPEN : public MSG_ERROR { sInventory inventory; }; // NM_ITEM_WAREHOUSE_SUMMON_OPEN_SYN struct MSG_SYN_ITEM_WAREHOUSE_SUMMON_OPEN : public MSGROOT { unsigned long characterIdx; }; // NM_ITEM_WAREHOUSE_SUMMON_CLOSE_SYN struct MSG_SYN_ITEM_WAREHOUSE_SUMMON_CLOSE : public MSGROOT { unsigned long characterIdx; }; #pragma pack(pop)