#pragma once #ifndef _AWARD_TABLE_H_ #define _AWARD_TABLE_H_ #include #include #include class CMonster; class CCharacter; namespace AwardTable { enum Const { MAX_DROP_ITEM = 5, // ÇÑ ¸ó½ºÅͰ¡ ÃÖ´ë·Î ¶³±¸´Â ¾ÆÀÌÅÛ ¼ö MAX_MONSTER_LEVEL = 109, // ¸ó½ºÅÍÀÇ ÃÖ°í ·¹º§ // (º¸¼®, ±¤¹°, ¹°¾à, ½ºÅ³ºÏ µå¶ø Å×À̺í¿ëÀ¸·Î ½ÇÁ¦¿Í´Â ´Ù¸£´Ù. Creature::MONSTER_MAX_LEVEL Âü°í) SKILL_KIND = 88, // ½ºÅ³(ºÏ)ÀÇ Á¾·ù (½ºÅ³ºÏÀÌ ¾ø´Â ½ºÅ³µµ ÀÖ´Ù.) FIFTHSKILL_KIND = 15, // ½ºÅ³(ºÏ)ÀÇ Á¾·ù (½ºÅ³ºÏÀÌ ¾ø´Â ½ºÅ³µµ ÀÖ´Ù.) GEM_DROP_TABLE_COLUMN = 11, // º¸¼® µå¶ø Å×ÀÌºí ¼¼·Î Å©±â GEM_DROP_TABLE_ROW = 3, // º¸¼® µå¶ø Å×ÀÌºí °¡·Î Å©±â METAL_DROP_TABLE_COLUMN = 11, // ±¤¹° µå¶ø Å×ÀÌºí ¼¼·Î Å©±â METAL_DROP_TABLE_ROW = 7, // ±¤¹° µå¶ø Å×ÀÌºí °¡·Î Å©±â POTION_DROP_TABLE_COLUMN = 11, // ¹°¾à µå¶ø Å×ÀÌºí ¼¼·Î Å©±â POTION_DROP_TABLE_ROW = 8, // ¹°¾à µå¶ø Å×ÀÌºí °¡·Î Å©±â CASH_DROP_TABLE_COLUMN = 13, // ij½¬ µå¶ø Å×ÀÌºí ¼¼·Î Å©±â CASH_DROP_TABLE_ROW = 7, // ij½¬ µå¶ø Å×ÀÌºí °¡·Î Å©±â SKILLBOOK_DROP_TABLE_COLUMN = 11, // ½ºÅ³ºÏ µå¶ø Å×ÀÌºí ¼¼·Î Å©±â EQUIP_MAX_NUM_PER_LEVEL = 15, // ·¹º§´ç µå¶øµÇ´Â ÀåºñÀÇ Á¾·ù¼ö BLACK_MARKET_TABLE_COLUMN = 228, // ¾Ï½ÃÀå Å×ÀÌºí ¼¼·Î Å©±â BLACK_MARKET_TABLE_ROW = 13, // ¾Ï½ÃÀå Å×ÀÌºí °¡·Î Å©±â PRIMARY_EQUIP_TABLE_ROW = 9, // Àåºñ µå¶ø ¿ì¼± ¼øÀ§ Å×ÀÌºí °¡·Î Å©±â HUMAN_EQUIP_TYPE_NUM = 19, // ÈÞ¸Õ Àåºñ ŸÀÔ °¹¼ö AKHAN_EQUIP_TYPE_NUM = 19 // ¾ÆÄ­ Àåºñ ŸÀÔ °¹¼ö }; // ¾ÆÀÌÅÛ µå¶ø·ü // Desc : °¢ °ªÀº n/1000 ÀÇ È®·üÀ» ÀǹÌÇÑ´Ù. const unsigned short aryItemDropRate[CAggresiveCreature::AGGRAVATION_NUM][MAX_DROP_ITEM] = { { 1, 1, 1, 1, 1 }, // -20 { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 91, 1, 1, 1, 1 }, { 189, 1, 1, 1, 1 }, { 280, 1, 1, 1, 1 }, { 364, 1, 1, 1, 1 }, { 441, 1, 1, 1, 1 }, // -5 { 511, 1, 1, 1, 1 }, { 574, 1, 1, 1, 1 }, { 623, 1, 1, 1, 1 }, { 665, 91, 1, 1, 1 }, // -1 { 700, 189, 1, 1, 1 }, // 0 { 710, 280, 1, 1, 1 }, // +1 { 720, 364, 1, 1, 1 }, { 730, 441, 1, 1, 1 }, { 740, 511, 1, 1, 1 }, { 750, 574, 1, 1, 1 }, // +5 { 760, 623, 91, 1, 1 }, { 800, 665, 189, 1, 1 }, { 800, 700, 280, 1, 1 }, { 800, 710, 364, 91, 1 }, // +9 { 800, 720, 441, 189, 1 }, { 800, 730, 511, 280, 1 }, { 800, 740, 574, 364, 91 }, // +12 { 900, 750, 623, 441, 189 }, { 900, 760, 665, 511, 280 }, { 900, 800, 700, 574, 364 }, // +15 { 900, 800, 710, 623, 441 }, // +16 { 900, 800, 720, 665, 511 }, { 900, 800, 730, 700, 574 }, { 900, 800, 740, 710, 623 }, { 900, 900, 750, 720, 665 } // +20 }; /* const unsigned short aryItemDropRate[CAggresiveCreature::AGGRAVATION_NUM][MAX_DROP_ITEM] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 161, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 195, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 228, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 262, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 296, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 392, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 363, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 396, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 430, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 464, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 497, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 531, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 564, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 598, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 632, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 665, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 699, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 732, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 766, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 800, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 900, 51, 1, 1, 1, 1, 1, 1, 1, 1 }, { 900, 252, 1, 1, 1, 1, 1, 1, 1, 1 }, { 900, 504, 1, 1, 1, 1, 1, 1, 1, 1 }, { 900, 807, 1, 1, 1, 1, 1, 1, 1, 1 }, { 900, 900, 260, 1, 1, 1, 1, 1, 1, 1 }, { 900, 900, 663, 1, 1, 1, 1, 1, 1, 1 }, { 900, 900, 900, 216, 1, 1, 1, 1, 1, 1 }, { 900, 900, 900, 720, 1, 1, 1, 1, 1, 1 }, { 900, 900, 900, 900, 375, 1, 1, 1, 1, 1 }, { 900, 900, 900, 900, 900, 80, 1, 1, 1, 1 }, { 900, 900, 900, 900, 900, 735, 1, 1, 1, 1 }, { 900, 900, 900, 900, 900, 900, 540, 1, 1, 1 }, { 900, 900, 900, 900, 900, 900, 900, 396, 1, 1 }, { 900, 900, 900, 900, 900, 900, 900, 900, 303, 1 }, { 900, 900, 900, 900, 900, 900, 900, 900, 900, 260 }, { 900, 900, 900, 900, 900, 900, 900, 900, 900, 900 }, { 900, 900, 900, 900, 900, 900, 900, 900, 900, 900 }, { 900, 900, 900, 900, 900, 900, 900, 900, 900, 900 }, { 900, 900, 900, 900, 900, 900, 900, 900, 900, 900 }, { 900, 900, 900, 900, 900, 900, 900, 900, 900, 900 } }; */ const short aryGemDropTable[GEM_DROP_TABLE_COLUMN][GEM_DROP_TABLE_ROW] = { // º¸¼®Á¶°¢ ÀÛÀºº¸¼® ÀϹݺ¸¼® { 100, 0, 0 }, // 10 { 90, 10, 0 }, // 20 { 70, 20, 10 }, // 30 { 50, 30, 20 }, // 40 { 30, 40, 30 }, // 50 { 10, 50, 40 }, // 60 { 10, 30, 60 }, // 70 { 0, 20, 80 }, // 80 { 0, 10, 90 }, // 90 { 0, 10, 90 }, // 100 { 0, 0, 100 } // 110 }; const short aryMetalDropTable[METAL_DROP_TABLE_COLUMN][METAL_DROP_TABLE_ROW] = { // ½Çºó ¹Ì½º¸± ÀÌÅÍ´Ï¿ò ¼Ò¿ï¸ÞÅ» ¶óŸ¸®¿ò °í´ëÀǵ¹ ÄÚ¾î { 90, 0, 0, 0, 0, 0, 10 }, // 10 { 81, 9, 0, 0, 0, 0, 10 }, // 20 { 63, 18, 9, 0, 0, 0, 10 }, // 30 { 45, 27, 18, 0, 0, 0, 10 }, // 40 { 27, 36, 27, 0, 0, 0, 10 }, // 50 { 9, 45, 36, 0, 0, 0, 10 }, // 60 { 9, 27, 54, 0, 0, 0, 10 }, // 70 { 0, 18, 72, 0, 0, 0, 10 }, // 80 { 0, 9, 81, 0, 0, 0, 10 }, // 90 { 0, 9, 81, 0, 0, 0, 10 }, // 100 { 0, 0, 90, 0, 0, 0, 10 } // 110 }; const short aryPotionDropTable[POTION_DROP_TABLE_COLUMN][POTION_DROP_TABLE_ROW] = { // »§ »ý°í±â ±¸¿î°í±â º£ÀÌÄÁ ¹öÇÁ¹°¾à1 ¹öÇÁ¹°¾à2 ¹öÇÁ¹°¾à3 ¹öÇÁ¹°¾à4 // ¸¸³ª1 ¸¸³ª2 ¸¸³ª3 ¸¸³ª4 ·¹º§ ·¹º§ ·¹º§ ·¹º§ // ½ºÇÁ1 ½ºÇÁ2 ½ºÇÁ3 ½ºÇÁ4 { 70, 0, 0, 0, 16, 8, 4, 2 }, // 10 { 35, 35, 0, 0, 16, 8, 4, 2 }, // 20 { 23, 23, 24, 0, 16, 8, 4, 2 }, // 30 { 17, 17, 18, 18, 16, 8, 4, 2 }, // 40 { 0, 23, 23, 24, 16, 8, 4, 2 }, // 50 { 0, 23, 35, 24, 16, 8, 4, 2 }, // 60 { 0, 0, 35, 35, 16, 8, 4, 2 }, // 70 { 0, 0, 1, 70, 16, 8, 4, 2 }, // 80 { 0, 0, 0, 70, 16, 8, 4, 2 }, // 90 { 0, 0, 0, 70, 16, 8, 4, 2 }, // 100 { 0, 0, 0, 70, 16, 8, 4, 2 } // 110 }; const short aryCashDropTable[CASH_DROP_TABLE_COLUMN][CASH_DROP_TABLE_ROW] = { // ¸Á°¢Àǵ¹ Holy Almighty ¿Àºê ³»±¸µµ¼® ºÎȰÀǵ¹ ¸¶¿îÆ® { 20, 60, 10, 10, 0, 0, 0 }, // 10 { 20, 60, 10, 10, 0, 0, 0 }, // 20 { 20, 60, 10, 10, 0, 0, 0 }, // 30 { 20, 60, 10, 10, 0, 0, 0 }, // 40 { 20, 60, 10, 10, 0, 0, 0 }, // 50 { 20, 60, 10, 10, 0, 0, 0 }, // 60 { 20, 60, 10, 10, 0, 0, 0 }, // 70 { 20, 60, 10, 10, 0, 0, 0 }, // 80 { 20, 60, 10, 10, 0, 0, 0 }, // 90 { 20, 60, 10, 10, 0, 0, 0 }, // 100 { 20, 60, 10, 10, 0, 0, 0 }, // 110 { 20, 60, 10, 10, 0, 0, 0 }, // Ä¡ÇÁ { 0, 20, 50, 16, 8, 4, 2 }, // ³×ÀÓµå }; const short arySkillBookDropTable[SKILLBOOK_DROP_TABLE_COLUMN] = { 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5 }; const unsigned short aryDropableSkillbookList[SKILL_KIND] = { // Àΰ£ °øÅë ½ºÅ³ 17 0x8104, 0x8102, 0x8103, 0x8105, 0x8203, 0x8205, 0x8302, 0x8303, 0x8402, 0x8405, 0x8106, 0x8107, 0x8202, 0x8304, 0x8305, 0x8306, 0x8404, // Àΰ£ »óÀ§ ½ºÅ³ 29 0x8503, 0x8504, 0x8602, 0x8603, 0x8604, 0x8702, 0x8704, 0x8705, 0x8706, 0x8803, 0x8804, 0x8805, 0x8902, 0x8903, 0x8904, 0x8905, 0x8A02, 0x8A04, 0x8A05, 0x8A06, 0x8B02, 0x8B03, 0x8B04, 0x8B05, 0x8B06, 0x8C02, 0x8C03, 0x8C04, 0x8C08, // ¾ÆÄ­ °øÅë ½ºÅ³ 17 0x9102, 0x9105, 0x9104, 0x9202, 0x9106, 0x9206, 0x9207, 0x9213, 0x9209, 0x9108, 0x9109, 0x9110, 0x9204, 0x9208, 0x9210, 0x9212, 0x9214, // ¾ÆÄ­ »óÀ§ ½ºÅ³ 25 0x9302, 0x9305, 0x9307, 0x9402, 0x9404, 0x9405, 0x9407, 0x9502, 0x9504, 0x9506, 0x9602, 0x9603, 0x9604, 0x9605, 0x9606, 0x9703, 0x9704, 0x9706, 0x9802, 0x9803, 0x9804, 0x9805, 0x9303, 0x9708, 0x9709 }; const unsigned short aryDropableFifthSkillbookList[FIFTHSKILL_KIND] = { // Àΰ£ 5´Ü°è ½ºÅ³ 0x8603, 0x8503, 0x8704, 0x8804, 0x8902, 0x8a05, 0x8c02, 0x8b04, // ¾ÆÄ­ 5´Ü°è ½ºÅ³ 0x9402, 0x9302, 0x9502, 0x9606, 0x9603, 0x9706, 0x9804 }; using namespace Item::ItemType; const unsigned char aryPrimaryEquipList[CClass::MAX_CLASS][PRIMARY_EQUIP_TABLE_ROW] = { { MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, { CON_HELM, CON_GLOVE, CON_BOOTS, CON_ARMOUR, ONEHANDED_SWORD, TWOHANDED_SWORD, ONEHANDED_AXE, TWOHANDED_AXE, SHIELD }, // ÆÄÀÌÅÍ { DEX_HELM, DEX_GLOVE, DEX_BOOTS, DEX_ARMOUR, DAGGER, BOW, CROSSBOW, SHIELD, MAX_ITEM_TYPE }, // ·Î±× { DEX_HELM, DEX_GLOVE, DEX_BOOTS, DEX_ARMOUR, STAFF, DAGGER, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ¸ÞÀÌÁö { CON_HELM, CON_GLOVE, CON_BOOTS, CON_ARMOUR, ONEHANDED_BLUNT, TWOHANDED_BLUNT, SHIELD, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ¾îÄݶóÀÌÆ® { CON_HELM, CON_GLOVE, CON_BOOTS, CON_ARMOUR, ONEHANDED_BLUNT, TWOHANDED_BLUNT, ONEHANDED_AXE, TWOHANDED_AXE, SHIELD }, // µðÆæ´õ { CON_HELM, CON_GLOVE, CON_BOOTS, CON_ARMOUR, ONEHANDED_SWORD, TWOHANDED_SWORD, ONEHANDED_AXE, TWOHANDED_AXE, MAX_ITEM_TYPE }, // ¿ö¸®¾î { DEX_HELM, DEX_GLOVE, DEX_BOOTS, DEX_ARMOUR, DAGGER, ONEHANDED_SWORD, ONEHANDED_AXE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ¾î½Ø½Å { DEX_HELM, DEX_GLOVE, DEX_BOOTS, DEX_ARMOUR, DAGGER, BOW, CROSSBOW, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ¾ÆÃ³ { DEX_HELM, DEX_GLOVE, DEX_BOOTS, DEX_ARMOUR, STAFF, DAGGER, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ¼Ò¼­·¯ { DEX_HELM, DEX_GLOVE, DEX_BOOTS, DEX_ARMOUR, STAFF, BOW, CROSSBOW, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ¿£ÂùÅÍ { CON_HELM, CON_GLOVE, CON_BOOTS, CON_ARMOUR, ONEHANDED_BLUNT, TWOHANDED_BLUNT, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ÇÁ¸®½ºÆ® { CON_HELM, CON_GLOVE, CON_BOOTS, CON_ARMOUR, ONEHANDED_BLUNT, TWOHANDED_BLUNT, SHIELD, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // Ŭ·¹¸¯ { MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, { MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, { MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, { MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, { CON_HEAD, CON_PROTECT_A, CON_PELVIS, CON_BODY, COM_SWORD, COM_BLUNT, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ÄĹèÅÏÆ® { DEX_HEAD, DEX_PROTECT_A, DEX_PELVIS, DEX_BODY, OPP_AXE, OPP_SLUSHER, OPP_TALON, OPP_SYTHE, MAX_ITEM_TYPE }, // ¿ÀÇǼ¼ÀÌÅÍ { CON_HEAD, CON_PROTECT_A, CON_PELVIS, CON_BODY, COM_SWORD, COM_BLUNT, SKILL_A_GUARD, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ÅÛÇ÷¯ { CON_HEAD, CON_PROTECT_A, CON_PELVIS, CON_BODY, COM_SWORD, COM_BLUNT, SKILL_A_ATTACK, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ¾îÅÂÄ¿ { CON_HEAD, CON_PROTECT_A, CON_PELVIS, CON_BODY, COM_SWORD, COM_BLUNT, SKILL_A_GUN, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // °Å³Ê { DEX_HEAD, DEX_PROTECT_A, DEX_PELVIS, DEX_BODY, OPP_SYTHE, OPP_SLUSHER, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ·é¿ÀÇÁ { DEX_HEAD, DEX_PROTECT_A, DEX_PELVIS, DEX_BODY, OPP_HAMMER, OPP_AXE, MAX_ITEM_TYPE, MAX_ITEM_TYPE, MAX_ITEM_TYPE }, // ¶óÀÌÇÁ¿ÀÇÁ { DEX_HEAD, DEX_PROTECT_A, DEX_PELVIS, DEX_BODY, OPP_TALON, OPP_SLUSHER, SKILL_A_KNIFE, MAX_ITEM_TYPE, MAX_ITEM_TYPE } // ½¦µµ¿ì¿ÀÇÁ }; const unsigned char aryHumanEquipTypeList[HUMAN_EQUIP_TYPE_NUM] = { CON_ARMOUR, CON_HELM, CON_GLOVE, CON_BOOTS, DEX_ARMOUR, DEX_HELM, DEX_GLOVE, DEX_BOOTS, ONEHANDED_SWORD, TWOHANDED_SWORD, ONEHANDED_AXE, TWOHANDED_AXE, ONEHANDED_BLUNT, TWOHANDED_BLUNT, BOW, CROSSBOW, STAFF, DAGGER, SHIELD }; const unsigned char aryAkhanEquipTypeList[AKHAN_EQUIP_TYPE_NUM] = { CON_BODY, CON_HEAD, CON_PELVIS, CON_PROTECT_A, DEX_BODY, DEX_HEAD, DEX_PELVIS, DEX_PROTECT_A, COM_BLUNT, COM_SWORD, OPP_HAMMER, OPP_AXE, OPP_SLUSHER, OPP_TALON, OPP_SYTHE, SKILL_A_GUARD, SKILL_A_ATTACK, SKILL_A_GUN, SKILL_A_KNIFE }; class CAward : public CSingleton { public: unsigned long GetAward(unsigned char cItemKind, CMonster* lpDeadMonster, CCharacter* lpAttackCharacter, Item::CItem** lpItem_Out); unsigned short GetAwardEquipment(Item::EquipType::OptionType eOptionType, unsigned char cDeadMonsterLevel, CCharacter* lpAttackCharacter, bool bQuestAward); unsigned short GetQuestEquipmentClass(Item::EquipType::OptionType eOptionType, unsigned char cClass, unsigned char cDeadMonsterLevel, CCharacter* lpAttackCharacter); private: unsigned long GetAwardCoin(unsigned char cDeadMonsterLevel, float cAddPer); unsigned long GetAwardGem(unsigned char cDeadMonsterLevel); unsigned long GetAwardMetal(unsigned char cDeadMonsterLevel); unsigned long GetAwardPotion(unsigned char cDeadMonsterLevel); unsigned long GetAwardSkill(unsigned char cDeadMonsterLevel, char cAttackCharacterNation); unsigned long GetAwardCashItem(char cAttackCharacterNation, unsigned char cDeadMonsterLevel, unsigned int cDeadMonsterPattern); unsigned long GetAwardLottery(void); //--// start.. unsigned long GetAwardRing(unsigned char cLevel, unsigned char cGrade); unsigned long GetAwardNecklace(unsigned char cLevel, unsigned char cGrade); unsigned long GetAwardRune(unsigned char cLevel, unsigned char cGrade); unsigned long GetAwardDestructionRune(); //--// end.. unsigned short SelectItemByRace(Item::EquipType::OptionType eOptionType, const unsigned char* aryItemType, unsigned char cMaxItemType, unsigned char cLevel); static CAward ms_this; }; } #endif