diff --git a/zone/CMakeLists.txt b/zone/CMakeLists.txt index 1c3d12a88..99169ae97 100644 --- a/zone/CMakeLists.txt +++ b/zone/CMakeLists.txt @@ -233,7 +233,6 @@ SET(zone_headers lua_stat_bonuses.h map.h masterentity.h - maxskill.h message.h merc.h mob.h diff --git a/zone/maxskill.h b/zone/maxskill.h deleted file mode 100644 index e37cccac0..000000000 --- a/zone/maxskill.h +++ /dev/null @@ -1,2906 +0,0 @@ -// This file needs more than just 'std' updates - -uint16 Mob::MaxSkill_weapon(uint16 skillid, uint16 class_, uint16 level) const -{ - if (skillid > HIGHEST_SKILL) { - return 0; - } - uint16 r_value = 0; - switch (skillid) { - case _1H_BLUNT: - case _2H_BLUNT: - case PIERCING: - case HAND_TO_HAND: - case _1H_SLASHING: - case _2H_SLASHING: { - switch (class_) { - // Pure melee classes - case WARRIOR: - case WARRIORGM: { - r_value = 5 + (level * 5); - if ( level < 51 && r_value > 200) { - r_value = 200; - } - if ( level > 50 && r_value > 250 ) { - r_value = 250; - } - switch (skillid) { - case PIERCING: { - if ( r_value > 240 ) { - r_value = 240; - } - break; - } - case HAND_TO_HAND: { - if ( r_value > 100 ) { - r_value = 100; - } - break; - } - default: - break; - } - break; - } - case MONK: - case MONKGM: { - r_value = 5 + (level * 5); - if ( level < 51 && r_value > 240) - if ( r_value > 240 ) { - r_value = 240; - } - switch (skillid) { - case HAND_TO_HAND: { - if ( r_value > 225 && level < 51 ) { - r_value = 225; - } - break; - } - case PIERCING: - case _1H_SLASHING: - case _2H_SLASHING: { - r_value = 0; - break; - } - default: - break; - } - break; - } - case ROGUE: - case ROGUEGM: { - r_value = 5 + (level * 5); - if ( level > 50 && r_value > 250 ) { - r_value = 250; - } - if ( level < 51 ) { - if ( r_value > 200 && skillid != PIERCING ) { - r_value = 200; - } - if ( r_value > 210 && skillid == PIERCING ) { - r_value = 210; - } - } - if (skillid == HAND_TO_HAND && r_value > 100) { - r_value = 100; - } - break; - } - case BERSERKER: - case BERSERKERGM: { - r_value = 5 + (level * 5); - if ( level < 51 && r_value > 240) { - r_value = 240; - } - switch (skillid) { - case HAND_TO_HAND: { - if ( r_value > 198) { - r_value = 198; - } - break; - } - case PIERCING: { - if ( r_value > 240) { - r_value = 240; - } - break; - } - case _2H_BLUNT: - case _2H_SLASHING: { - if ( r_value > 252 ) { - r_value = 252; - } - break; - } - default: - r_value = 0; - break; - } - break; - } - // Priest classes - case CLERIC: - case CLERICGM: { - r_value = 4 + (level * 4); - if ( r_value > 175 ) { - r_value = 175; - } - switch (skillid) { - case HAND_TO_HAND: { - if ( r_value > 75 ) { - r_value = 75; - } - break; - } - case PIERCING: - case _1H_SLASHING: - case _2H_SLASHING: { - r_value = 0; - break; - } - default: - break; - } - break; - } - case DRUID: - case DRUIDGM: { - r_value = 4 + (level * 4); - if ( r_value > 175 ) { - r_value = 175; - } - switch (skillid) { - case HAND_TO_HAND: { - if ( r_value > 75 ) { - r_value = 75; - } - } - case PIERCING: - case _2H_SLASHING: { - r_value = 0; - break; - } - default: - break; - } - break; - } - case SHAMAN: - case SHAMANGM: { - r_value = 4 + (level * 4); - if ( r_value > 200 ) { - r_value = 200; - } - switch (skillid) { - case HAND_TO_HAND: { - if ( r_value > 75 ) { - r_value = 75; - } - } - case _1H_SLASHING: - case _2H_SLASHING: { - r_value = 0; - break; - } - default: - break; - } - break; - } - // Hybrids - case RANGER: - case RANGERGM: { - r_value = 5 + (level * 5); - if ( level > 50 ) { - if ( r_value > 250 ) { - r_value = 250; - } - switch (skillid) { - case PIERCING: { - if ( r_value > 240 ) { - r_value = 240; - } - break; - } - default: - break; - } - } else if ( level < 51 ) { - if ( r_value > 200 ) { - r_value = 200; - } - } - switch (skillid) { - case HAND_TO_HAND: { - if ( r_value > 100 ) { - r_value = 100; - } - break; - } - default: - break; - } - break; - } - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - r_value = 5 + (level * 5); - if ( level > 50 && r_value > 225 ) { - r_value = 225; - } - if ( level < 51 && r_value > 200 ) { - r_value = 200; - } - switch (skillid) { - case HAND_TO_HAND: { - if ( r_value > 100 ) { - r_value = 100; - } - break; - } - default: - break; - } - break; - } - case BARD: - case BARDGM: { - r_value = 5 + (level * 5); - if ( level > 51 && r_value > 225 ) { - r_value = 225; - } - if ( level < 51 && r_value > 200 ) { - r_value = 200; - } - switch (skillid) { - case HAND_TO_HAND: { - if ( r_value > 100 ) { - r_value = 100; - } - break; - } - case _2H_BLUNT: - case _2H_SLASHING: { - r_value = 0; - } - default: - break; - } - break; - } - case BEASTLORD: - case BEASTLORDGM: { - r_value = 4 + (level * 4); - if ( level > 51 ) { - if ( r_value > 225 ) { - r_value = 225; - } - } - if ( level < 51 && r_value > 200 ) { - r_value = 200; - } - switch (skillid) { - case HAND_TO_HAND: { - r_value = 5 + (level * 5); // Beastlords use different max skill formula only for h2h 200/250 - if ( level < 51 ) { - r_value = 200; - } - break; - } - case _1H_SLASHING: - case _2H_SLASHING: { - r_value = 0; - break; - } - default: - break; - } - if ( r_value > 250 ) { - r_value = 250; - } - break; - } - // Pure casters - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: { - r_value = 3 + (level * 3); - if ( r_value > 110 ) { - r_value = 110; - } - switch (skillid) { - case HAND_TO_HAND: { - if ( r_value > 75 ) { - r_value = 75; - } - } - case _1H_SLASHING: - case _2H_SLASHING: { - r_value = 0; - break; - } - default: - break; - } - break; - } - default: - #if EQDEBUG - std::cout << "MaxSkill_Weapon() Unknown class: " << class_ << std::endl; - #endif - break; - } - break;// Switch Class - } - default: - #if EQDEBUG - std::cout << "Unknown weapon skill: " << skillid << std::endl; - #endif - break; - }// Switch skill - if (r_value > 252) { - r_value = 252; - } - return r_value; -} - -uint16 Mob::MaxSkill_offensive(uint16 skillid, uint16 class_, uint16 level) const -{ - uint16 r_value = 0; - switch (skillid) { - case OFFENSE: { - switch (class_) { - // Melee - case WARRIOR: - case WARRIORGM: - case BERSERKER: - case BERSERKERGM: - case ROGUE: - case ROGUEGM: { - // 210 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 210) { - r_value = 210; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - case MONK: - case MONKGM: { - // 230 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 230) { - r_value = 230; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: { - // 200 200 4*level+4 - r_value = ((level * 4) + 4); - if (r_value > 200) { - r_value = 200; - } - break; - } - // Hybrid - case BEASTLORD: - case BEASTLORDGM: { - // 200 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 200) { - r_value = 200; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: - case BARD: - case BARDGM: { - // 200 225 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 200) { - r_value = 200; - } - } - if (r_value > 225) { - r_value = 225; - } - break; - } - case RANGER: - case RANGERGM: { - // 210 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 210) { - r_value = 210; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: { - // 140 140 level*4 - r_value = (level * 4); - if (r_value > 140) { - r_value = 140; - } - break; - } - default: - break; - } - break; - } - case THROWING: { - switch (class_) { - // Melee - case BERSERKER: - case BERSERKERGM: - case ROGUE: - case ROGUEGM: { - // 220 250 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 220) { - r_value = 220; - } - } - if (r_value > 250) { - r_value = 250; - } - break; - } - case WARRIOR: - case WARRIORGM: - case MONK: - case MONKGM: { - // 113 200 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 113) { - r_value = 113; - } - } - if (r_value > 200) { - r_value = 200; - } - break; - } - // Hybrid - case BEASTLORD: - case BEASTLORDGM: - case BARD: - case BARDGM: - case RANGER: - case RANGERGM: { - // 113 - r_value = ((level * 5) + 5); - if ( r_value > 113 ) { - r_value = 113; - } - break; - } - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: { - // 75 - r_value = ((level * 3) + 3); - if ( r_value > 75 ) { - r_value = 75; - } - break; - } - // No skill classes - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: - default: - r_value = 0; - break; - } - break; - } -///////////////////////////////////////////////// - case ARCHERY: { - switch (class_) { - // Melee - case ROGUE: - case ROGUEGM: - case WARRIOR: - case WARRIORGM: { - // 200 240 - r_value = ((level * 5) + 5); - if ( level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 240) { - r_value = 240; - } - break; - } - // Hybrid - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - // 75 75 - r_value = ((level * 5) + 5); - if ( r_value > 75 ) { - r_value = 75; - } - break; - } - case RANGER: - case RANGERGM: { - // 240 240 - r_value = ((level * 5) + 5); - if ( r_value > 240 ) { - r_value = 240; - } - break; - } - // Pure - // No skill classes - // Melee - case MONK: - case MONKGM: - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: - // Hybrid - case BEASTLORD: - case BEASTLORDGM: - case BARD: - case BARDGM: - default: - r_value = 0; - break; - } - break; - } -///////////////////////////////////////////////// - case DOUBLE_ATTACK: { - switch (class_) { - // Melee - case ROGUE: - case ROGUEGM: { - // 16 200 240 - r_value = ((level * 5) + 5); - if ( level < 16 ) { - r_value = 0; - } - if ( level < 51 ) { - if (r_value > 200) { - r_value = 200; - } - } - if (r_value > 240) { - r_value = 240; - } - break; - } - case BERSERKER: - case BERSERKERGM: - case WARRIOR: - case WARRIORGM: { - // 15 205 245 - r_value = ((level * 5) + 5); - if ( level < 15 ) { - r_value = 0; - } - if ( level < 51 ) { - if (r_value > 200) { - r_value = 200; - } - } - if (r_value > 245) { - r_value = 245; - } - break; - } - case MONK: - case MONKGM: { - // 15 210 250 - r_value = ((level * 5) + 5); - if ( level < 15 ) { - r_value = 0; - } - if ( level < 51 ) { - if (r_value > 210) { - r_value = 210; - } - } - if (r_value > 250) { - r_value = 250; - } - break; - } - // Hybrid - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - // 20 200 235 - r_value = ((level * 5) + 5); - if ( level < 20 ) { - r_value = 0; - } - if ( level < 51 ) { - if (r_value > 200) { - r_value = 200; - } - } - if (r_value > 235) { - r_value = 235; - } - break; - } - case RANGER: - case RANGERGM: { - // 20 200 245 - r_value = ((level * 5) + 5); - if ( level < 20 ) { - r_value = 0; - } - if ( level < 51 ) { - if (r_value > 200) { - r_value = 200; - } - } - if (r_value > 245) { - r_value = 245; - } - break; - } - // Pure - // No skill classes - // Melee - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: - // Hybrid - case BEASTLORD: - case BEASTLORDGM: - case BARD: - case BARDGM: - default: - r_value = 0; - break; - } - break; - } -///////////////////////////////////////////////// - case DUAL_WIELD: { - switch (class_) { - // Melee - case MONK: - case MONKGM: { - // 1 252 252 - r_value = level * 7; // This can't be right can it? - break - ; - } - case WARRIOR: - case WARRIORGM: - case ROGUE: - case ROGUEGM: { - // 15 210 245 - r_value = ((level * 5) + 5); - if ( level < 13 ) { - r_value = 0; - } - if ( level < 51 ) { - if (r_value > 210) { - r_value = 210; - } - } - if (r_value > 245) { - r_value = 245; - } - break; - } - // Hybrid - case BEASTLORD: - case BEASTLORDGM: - // 17 210 245 - case RANGER: - case RANGERGM: { - // 17 210 245 - r_value = ((level * 5) + 5); - if ( level < 17 ) { - r_value = 0; - } - if ( level < 51 ) { - if (r_value > 210) { - r_value = 210; - } - } - if (r_value > 245) { - r_value = 245; - } - break; - } - case BARD: - case BARDGM: { - // 17 210 210 - r_value = ((level * 5) + 5); - if ( level < 17 ) { - r_value = 0; - } - if (r_value > 210) { - r_value = 210; - } - break; - } - // No skill classes - // Melee - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: - // Hybrid - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: - default: { - r_value = 0; - break; - } - }// end Class switch - break; - } // end case DUAL_WIELD: -//////////////////////////////////////////////////////// - case KICK: { - switch (class_) { - // Melee - case BERSERKER: - case BERSERKERGM: - case WARRIOR: - case WARRIORGM: { - // 1 149 210 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 149) { - r_value = 149; - } - } - if (r_value > 210) { - r_value = 210; - } - break; - } - case MONK: - case MONKGM: { - // 1 200 250 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 200) { - r_value = 200; - } - } - if (r_value > 250) { - r_value = 250; - } - break; - } - // Hybrid - case RANGER: - case RANGERGM: { - // 5 149 205 - r_value = ((level * 5) + 5); - if ( level < 5 ) { - r_value = 0; - } - if ( level < 51 ) { - if (r_value > 149) { - r_value = 149; - } - } - if (r_value > 205) { - r_value = 205; - } - break; - } - case BEASTLORD: - case BEASTLORDGM: { - // 5 180 230 - r_value = ((level * 5) + 5); - if ( level < 5 ) { - r_value = 0; - } - if ( level < 51 ) { - if (r_value > 180) { - r_value = 180; - } - } - if (r_value > 230) { - r_value = 230; - } - break; - } - // Pure - // No skill classes - case ROGUE: - case ROGUEGM: - // Melee - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: - // Hybrid - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: - case BARD: - case BARDGM: - default: - r_value = 0; - break; - } - break; - } -//////////////////////////////////////////////////////// - case BASH: { - r_value = ((level * 5) + 5); - switch (class_) { - // Melee - case WARRIOR: - case WARRIORGM: { - // 6 220 240 - if (level < 6) { - r_value = 0; - } - if (level < 51 && r_value > 220) { - r_value = 220; - } - if (r_value > 240) { - r_value = 240; - } - break; - } - // Priest - case CLERIC: - case CLERICGM: { - // 25 180 200 - if (level < 25) { - r_value = 0; - } - if (level < 51 && r_value > 180) { - r_value = 180; - } - if (r_value > 200) { - r_value = 200; - } - break; - } - // Hybrid - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - // 6 175 200 - if (level < 6) { - r_value = 0; - } - if (level < 51 && r_value > 175) { - r_value = 175; - } - if (r_value > 200) { - r_value = 200; - } - break; - } - // Pure - // No skill classes - // Melee - case MONK: - case MONKGM: - case ROGUE: - case ROGUEGM: - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: - // Hybrid - case BEASTLORD: - case BEASTLORDGM: - case RANGER: - case RANGERGM: - case BARD: - case BARDGM: { - // switch (race) { - // case BARBARIAN: - // case TROLL: - //case OGRE:{ - // r_value = 50; - //break; - //} - //default: break; - //} - r_value = 0; - break; - } - } - break; - } -//////////////////////////////////////////////////////// - default: - #if EQDEBUG >= 1 - std::cout << "Unknown Offensive skill: " << skillid << std::endl; - #endif - break; - }// Switch skill - if (r_value > 252) { - r_value = 252; - } - return r_value; -} - -uint16 Mob::MaxSkill_defensive(uint16 skillid, uint16 class_, uint16 level) const -{ - uint16 r_value = 0; - switch (skillid) { - case DEFENSE: { - switch (class_) { - // Melee - case WARRIOR: - case WARRIORGM: { - // 210 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 210) { - r_value = 210; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - case ROGUE: - case ROGUEGM: { - // 200 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 200) { - r_value = 200; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - case MONK: - case MONKGM: { - // 230 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 230) { - r_value = 230; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - case BERSERKER: - case BERSERKERGM: { - // 230 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 230) { - r_value = 230; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: { - // 200 200 4*level+4 - r_value = ((level * 4) + 4); - if (r_value > 200) { - r_value = 200; - } - break; - } - // Hybrid - case BEASTLORD: - case BEASTLORDGM: { - // 210 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 210) { - r_value = 210; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - // 210 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 210) { - r_value = 210; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - case BARD: - case BARDGM: { - // 200 252 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 51 ) { - if (r_value > 200) { - r_value = 200; - } - } - if (r_value > 252) { - r_value = 252; - } - break; - } - case RANGER: - case RANGERGM: { - // 200 200 5*level+5 - r_value = ((level * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - break; - } - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: { - // 145 145 level*4 - r_value = (level * 4); - if (r_value > 140) { - r_value = 140; - } - break; - } - default: - break; - } - break; - } - case PARRY: { - switch (class_) { - // Melee - case ROGUE: - case ROGUEGM: { - // 12 200 230 - r_value = ((level * 5) + 5); - if ( level < 12 ) { - r_value = 0; - } - if (r_value > 200 && level < 51 ) { - r_value = 200; - } - if (r_value > 230) { - r_value = 230; - } - break; - } - case WARRIOR: - case WARRIORGM: { - // 10 200 230 - r_value = ((level * 5) + 5); - if ( level < 10 ) { - r_value = 0; - } - if (r_value > 200 && level < 51 ) { - r_value = 200; - } - if (r_value > 230) { - r_value = 230; - } - break; - } - case BERSERKER: - case BERSERKERGM: { - r_value = ((level * 5) + 5); - if ( level < 10 ) { - r_value = 0; - } - if (r_value > 175) { - r_value = 175; - } - break; - } - // Hybrid - case BARD: - case BARDGM: { - // 53 0 75 - r_value = ((level * 5) + 5); - if ( level < 53 ) { - r_value = 0; - } - if (r_value > 75) { - r_value = 75; - } - break; - } - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - // 17 175 205 - r_value = ((level * 5) + 5); - if ( level < 17 ) { - r_value = 0; - } - if (r_value > 175 && level < 51 ) { - r_value = 175; - } - if (r_value > 205) { - r_value = 205; - } - break; - } - case RANGER: - case RANGERGM: { - // 18 185 220 - r_value = ((level * 5) + 5); - if ( level < 18 ) { - r_value = 0; - } - if (r_value > 185 && level < 51 ) { - r_value = 185; - } - if (r_value > 220) { - r_value = 220; - } - break; - } - // Pure - // No skill classes - // Melee - case MONK: - case MONKGM: - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: - // Hybrid - case BEASTLORD: - case BEASTLORDGM: - default: - r_value = 0; - break; - } - break; - } - case RIPOSTE: { - switch (class_) { - // Melee - case BERSERKER: - case BERSERKERGM: - case WARRIOR: - case WARRIORGM: { - // 25 200 225 - r_value = ((level * 5) + 5); - if ( level < 25 ) { - r_value = 0; - } - if (r_value > 200 && level < 51 ) { - r_value = 200; - } - if (r_value > 225) { - r_value = 225; - } - break; - } - case ROGUE: - case ROGUEGM: { - // 30 200 225 - r_value = ((level * 5) + 5); - if ( level < 30 ) { - r_value = 0; - } - if (r_value > 200 && level < 51 ) { - r_value = 200; - } - if (r_value > 225) { - r_value = 225; - } - break; - } - case MONK: - case MONKGM: { - // 35 200 225 - r_value = ((level * 5) + 5); - if ( level < 35 ) { - r_value = 0; - } - if (r_value > 200 && level < 51 ) { - r_value = 200; - } - if (r_value > 225) { - r_value = 225; - } - break; - } - // Hybrid - case BEASTLORD: - case BEASTLORDGM: { - // 40 150 185 - r_value = ((level * 5) + 5); - if ( level < 40 ) { - r_value = 0; - } - if (r_value > 150 && level < 51 ) { - r_value = 150; - } - if (r_value > 185) { - r_value = 185; - } - break; - } - case BARD: - case BARDGM: { - // 58 75 75 - r_value = ((level * 5) + 5); - if ( level < 58 ) { - r_value = 0; - } - if (r_value > 75) { - r_value = 75; - } - break; - } - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - // 30 175 200 - r_value = ((level * 5) + 5); - if ( level < 30 ) { - r_value = 0; - } - if (r_value > 175 && level < 51 ) { - r_value = 175; - } - if (r_value > 200) { - r_value = 200; - } - break; - } - case RANGER: - case RANGERGM: { - // 35 150 150 - r_value = ((level * 5) + 5); - if ( level < 35 ) { - r_value = 0; - } - if (r_value > 150) { - r_value = 150; - } - break; - } - // Pure - // No skill classes - // Melee - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: - // Hybrid - default: - r_value = 0; - break; - } - break; - } - case DODGE: { - switch (class_) { - // Melee - case BERSERKER: - case BERSERKERGM: - case WARRIOR: - case WARRIORGM: { - // 6 140 175 - r_value = ((level * 5) + 5); - if ( level < 6 ) { - r_value = 0; - } - if (r_value > 140 && level < 51 ) { - r_value = 140; - } - if (r_value > 175) { - r_value = 175; - } - break; - } - case ROGUE: - case ROGUEGM: { - // 4 150 210 - r_value = ((level * 5) + 5); - if ( level < 4 ) { - r_value = 0; - } - if (r_value > 150 && level < 51 ) { - r_value = 150; - } - if (r_value > 210) { - r_value = 210; - } - break; - } - case MONK: - case MONKGM: { - // 1 200 230 - r_value = ((level * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - if (r_value > 230) { - r_value = 230; - } - break; - } - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: { - // 15 75 75 4*level+4 - r_value = ((level * 4) + 4); - if ( level < 15 ) { - r_value = 0; - } - if (r_value > 75) { - r_value = 75; - } - break; - } - // Hybrid - case BEASTLORD: - case BEASTLORDGM: - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: - case BARD: - case BARDGM: { - // 10 125 155 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 10 ) { - r_value = 0; - } - if (r_value > 125 && level < 51 ) { - r_value = 125; - } - if (r_value > 155) { - r_value = 155; - } - break; - } - case RANGER: - case RANGERGM: { - // 8 137 170 5*level+5 - r_value = ((level * 5) + 5); - if ( level < 8 ) { - r_value = 0; - } - if (r_value > 137 && level < 51 ) { - r_value = 137; - } - if (r_value > 170) { - r_value = 170; - } - break; - } - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: { - // 22 75 75 3*level+3 - r_value = ((level * 3) + 3); - if ( level < 22 ) { - r_value = 0; - } - if (r_value > 75) { - r_value = 75; - } - break; - } - // No skill classes - // Melee - // Priest - // Pure - // Hybrid - default: - break; - } - break; - } - // Other - case TAUNT: { - switch (class_) { - // Melee - case WARRIOR: - case WARRIORGM: { - // 1 200 200 - r_value = ((level * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - break; - } - // Priest - // Hybrid - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - // 1 180 180 - r_value = ((level * 5) + 5); - if (r_value > 180) { - r_value = 180; - } - break; - } - case RANGER: - case RANGERGM: { - // 1 150 150 - r_value = ((level * 5) + 5); - if (r_value > 150) { - r_value = 150; - } - break; - } - // Pure - // No skill classes - // Melee - case ROGUE: - case ROGUEGM: - case MONK: - case MONKGM: - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: - // Hybrid - case BEASTLORD: - case BEASTLORDGM: - case BARD: - case BARDGM: - default: - break; - } - break; - } - case DISARM: { - switch (class_) { - // Melee - case WARRIOR: - case WARRIORGM: { - // 35 200 200 - r_value = ((level * 5) + 5); - if (level < 35) { - r_value = 0; - } - if (r_value > 200) { - r_value = 200; - } - break; - } - case ROGUE: - case ROGUEGM: - case MONK: - case MONKGM: { - // 27 200 200 - r_value = ((level * 5) + 5); - if (level < 27) { - r_value = 0; - } - if (r_value > 200) { - r_value = 200; - } - break; - } - case BERSERKER: - case BERSERKERGM: { - // 35 65 65 - r_value = ((level * 5) + 5); - if (level < 35) { - r_value = 0; - } - if (r_value > 65) { - r_value = 65; - } - break; - } - // Priest - // Hybrid - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - // 40 70 70 - r_value = ((level * 5) + 5); - if (level < 40) { - r_value = 0; - } - if (r_value > 70) { - r_value = 70; - } - break; - } - case RANGER: - case RANGERGM: { - // 35 55 55 - r_value = ((level * 5) + 5); - if (level < 35) { - r_value = 0; - } - if (r_value > 55) { - r_value = 55; - } - break; - } - // Pure - // No skill classes - // Melee - // Priest - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - case CLERIC: - case CLERICGM: - // Pure - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: - // Hybrid - case BARD: - case BARDGM: - case BEASTLORD: - case BEASTLORDGM: - default: - break; - } - break; - } -//////////////////////////////////////////////////////// - default: - #if EQDEBUG - std::cout << "Unknown Defensive skill: " << skillid << std::endl; - #endif - break; - }// Switch skill - if (r_value > 252) { - r_value = 252; - } - return r_value; -} - -uint16 Mob::MaxSkill_arcane(uint16 skillid, uint16 class_, uint16 level) const -{ - uint16 r_value = 0; - switch (skillid) { - case MEDITATE: - case ABJURE: - case ALTERATION: - case CHANNELING: - case CONJURATION: - case DIVINATION: - case EVOCATION: { - r_value = ((level * 5) + 5); - switch (class_) { - // Hybrid - case RANGER: - case RANGERGM: { - // 9 235 235 - // Channel 9 200 215 - // Med 12 185 235 - if (level < 9) { - r_value = 0; - } - if (level < 12 && skillid == MEDITATE) { - r_value = 0; - } - if (r_value > 0 && skillid == CHANNELING) { - if ( level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 215) { - r_value = 215; - } - } - if (r_value > 0 && skillid == MEDITATE) { - if ( level < 51 && r_value > 185) { - r_value = 185; - } - if (r_value > 235) { - r_value = 235; - } - } - break; - } - case BEASTLORD: - case BEASTLORDGM: - case PALADIN: - case PALADINGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - // 9 235 235 - // Channel 9 200 220 - // Med 12 185 235 - if (level < 9) { - r_value = 0; - } - if (level < 12 && skillid == MEDITATE) { - r_value = 0; - } - if (r_value > 0 && skillid == CHANNELING) { - if ( level < 51 && r_value > 185) { - r_value = 185; - } - if (r_value > 220) { - r_value = 220; - } - } - if (r_value > 0 && skillid == MEDITATE) { - if ( level < 51 && r_value > 185) { - r_value = 185; - } - if (r_value > 235) { - r_value = 235; - } - } - break; - } - // Priest - case CLERIC: - case CLERICGM: - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: { - // 1 235 235 - // Channel 4 200 220 - // Med 8 235 252 - if (level < 4 && skillid == CHANNELING) { - r_value = 0; - } - if (level < 8 && skillid == MEDITATE) { - r_value = 0; - } - if (r_value > 0 && skillid == CHANNELING) { - if ( level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 220) { - r_value = 220; - } - } - if (r_value > 0 && skillid == MEDITATE) { - if ( level < 51 && r_value > 235) { - r_value = 235; - } - if (r_value > 252) { - r_value = 252; - } - } - break; - } - // Int caster - case ENCHANTER: - case ENCHANTERGM: - case MAGICIAN: - case MAGICIANGM: - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: { - // 1 235 235 - // Channel 1 200 220 - // Med 4 235 252 - if (level < 4 && skillid == MEDITATE) { - r_value = 0; - } - if (r_value > 0 && skillid == CHANNELING) { - if ( level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 220) { - r_value = 220; - } - } - if (r_value > 0 && skillid == MEDITATE) { - if ( level < 51 && r_value > 235) { - r_value = 235; - } - if (r_value > 252) { - r_value = 252; - } - } - break; - } - case BARD: - case BARDGM: { - r_value = 0; - if (level > 9 && skillid == MEDITATE) { - r_value = 1; - } - break; - } - default: - // Unknown class - r_value = 0; - break; - }// Class Switch - break; - } - case SPECIALIZE_ABJURE: - case SPECIALIZE_ALTERATION: - case SPECIALIZE_CONJURATION: - case SPECIALIZE_DIVINATION: - case SPECIALIZE_EVOCATION: { - r_value = ((level * 5) + 5); - switch (class_) { - // Non-int casters - case CLERIC: - case CLERICGM: - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: - if (level < 30) { - r_value = 0; - break; - } - // Int caster - case ENCHANTER: - case ENCHANTERGM: - case MAGICIAN: - case MAGICIANGM: - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: { - if (level < 20) { - r_value = 0; - break; - } - //make sure only 1 skill can be over 50 - uint16 hskill = 0; - uint16 high = 0; - uint16 cur; - cur = GetSkill(SPECIALIZE_ABJURE); - if (cur > high) { - hskill = SPECIALIZE_ABJURE; - high = cur; - } - cur = GetSkill(SPECIALIZE_ALTERATION); - if (cur > high) { - hskill = SPECIALIZE_ALTERATION; - high = cur; - } - cur = GetSkill(SPECIALIZE_CONJURATION); - if (cur > high) { - hskill = SPECIALIZE_CONJURATION; - high = cur; - } - cur = GetSkill(SPECIALIZE_DIVINATION); - if (cur > high) { - hskill = SPECIALIZE_DIVINATION; - high = cur; - } - cur = GetSkill(SPECIALIZE_EVOCATION); - if (cur > high) { - hskill = SPECIALIZE_EVOCATION; - high = cur; - } - if (high > 50 && hskill != skillid) { - r_value = 50; - break; - } - if (r_value > 200) { - r_value = 200; - } - break; - } - default: { - r_value = 0; - break; - } - }// Class Switch - break; - } - case RESEARCH: { - r_value = ((level * 5) + 5); - switch (class_) { - // Int caster - case ENCHANTER: - case ENCHANTERGM: - case MAGICIAN: - case MAGICIANGM: - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: { - // Res 16 200 200 - if (level < 16) { - r_value = 0; - } - if (r_value > 200) { - r_value = 200; - } - // FIXME Only let one SPEC go above what ever limit theres supposed to be - break; - } - default: { - r_value = 0; - break; - } - }// Class Switch - break; - } - case BRASS_INSTRUMENTS: - case SINGING: - case STRINGED_INSTRUMENTS: - case WIND_INSTRUMENTS: - case PERCUSSION_INSTRUMENTS: { - switch (class_) { - case BARD: - case BARDGM: { - r_value = ((level * 5) + 5); - if (level < 5 && skillid == PERCUSSION_INSTRUMENTS) { - r_value = 0; - } - if (level < 8 && skillid == STRINGED_INSTRUMENTS) { - r_value = 0; - } - if (level < 11 && skillid == BRASS_INSTRUMENTS) { - r_value = 0; - } - if (level < 14 && skillid == WIND_INSTRUMENTS) { - r_value = 0; - } - if (r_value > 235) { - r_value = 235; - } - break; - } - default: - r_value = 0; - break; - }// Class Switch - break; - } -//////////////////////////////////////////////////////// - default: - #if EQDEBUG - std::cout << "Unknown arcane skill: " << skillid << std::endl; - #endif - break; - }// Switch skill - if (r_value > 252) { - r_value = 252; - } - return r_value; -} - -uint16 Mob::MaxSkill_class(uint16 skillid, uint16 class_, uint16 level) const -{ - uint16 r_value = 0; - switch (skillid) { - // Rogue - case APPLY_POISON: - case MAKE_POISON: - case PICK_POCKETS: - case BACKSTAB: { - switch (class_) { - // Melee - case ROGUE: - case ROGUEGM: { - r_value = ((level * 5) + 5); - switch (skillid) { - case APPLY_POISON: { - // 18 200 200 - if (level < 18) { - r_value = 0; - } - if (r_value > 200) { - r_value = 200; - } - break; - } - case MAKE_POISON: { - // 20 200 250 - if (level < 20) { - r_value = 0; - } - if (level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 250) { - r_value = 250; - } - break; - } - case PICK_POCKETS: { - // 7 200 210 - if (level < 7) { - r_value = 0; - } - if (level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 210) { - r_value = 210; - } - break; - } - case BACKSTAB: { - // 10 200 225 - if (level < 10) { - r_value = 0; - } - if (level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 225) { - r_value = 225; - } - break; - } - default: - r_value = 0; - break; - } - break; - } - default: - r_value = 0; - break; - }// Class Switch - break; - } - // Monk - case BLOCKSKILL: { - switch (class_) { - case BEASTLORD: - case BEASTLORDGM: { - r_value = (((level - 25) * 5) + 5); - // 12 200 230 - if (level < 25) { - r_value = 0; - } - if (level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 230) { - r_value = 230; - } - break; - } - case MONK: - case MONKGM: { - r_value = ((level * 5) + 5); - // 12 200 230 - if (level < 12) { - r_value = 0; - } - if (level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 230) { - r_value = 230; - } - break; - } - } - break; - } - case FEIGN_DEATH: - case MEND: - case DRAGON_PUNCH: - case EAGLE_STRIKE: - case FLYING_KICK: - case ROUND_KICK: - case TIGER_CLAW: { - switch (class_) { - case MONK: - case MONKGM: { - r_value = ((level * 5) + 5); - switch (skillid) { - case MEND: { - // 1 200 200 - if (r_value > 200) { - r_value = 200; - } - break; - } - case ROUND_KICK: { - // 5 200 225 - if (level < 5) { - r_value = 0; - } - if (level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 225) { - r_value = 225; - } - break; - } - case TIGER_CLAW: { - // 10 200 225 - if (level < 10) { - r_value = 0; - } - if (level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 225) { - r_value = 225; - } - break; - } - case FEIGN_DEATH: { - // 17 200 200 - if (level < 17) { - r_value = 0; - } - if (r_value > 200) { - r_value = 200; - } - break; - } - case EAGLE_STRIKE: { - // 20 200 225 - if (level < 20) { - r_value = 0; - } - if (level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 225) { - r_value = 225; - } - break; - } - case DRAGON_PUNCH: { - // 25 200 225 - if (level < 25) { - r_value = 0; - } - if (level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 225) { - r_value = 225; - } - break; - } - case FLYING_KICK: { - // 30 200 225 - if (level < 30) { - r_value = 0; - } - if (level < 51 && r_value > 200) { - r_value = 200; - } - if (r_value > 225) { - r_value = 225; - } - break; - } - default: - r_value = 0; - break; - } - break; - } - default: - r_value = 0; - break; - }// Class Switch - break; - } - //Berzerkers - case BERSERKING: { - switch (class_) { - case BERSERKER: - case BERSERKERGM: { - r_value = ((level * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - } - default: - r_value = 0; - break; - } - break; - } - // Shaman - case ALCHEMY: { - switch (class_) { - case SHAMAN: - case SHAMANGM: { - // 25 130 180 - r_value = ((level * 5) + 5); - if (level < 25) { - r_value = 0; - } - if (level < 51 && r_value > 130) { - r_value = 130; - } - if (r_value > 180) { - r_value = 180; - } - break; - } - default: - r_value = 0; - break; - }// Class Switch - break; - } -/////////////////////////////////////////// -////////////////////////////////////////// -// Shared skill - // Shared Rogue - case HIDE: { - switch (class_) { - // True class - case ROGUE: - case ROGUEGM: { - r_value = ((level * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - break; - } - // Hybrids - case RANGER: - case RANGERGM: - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { //75 cap - if (level >= 35) { - r_value = (((level - 35) * 5) + 5); - if (r_value > 75) { - r_value = 75; - } - } - break; - } - case BARD: - case BARDGM: { //40 cap - if (level > 25) { - r_value = (((level - 25) * 5) + 5); - if (r_value > 40) { - r_value = 40; - } - } - break; - } - default: - r_value = 0; - break; - }// Class Switch - break; - } - case SNEAK: { - switch (class_) { - // True class - case ROGUE: - case ROGUEGM: { - r_value = ((level * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - break; - } - // Hybrids - case MONK: - case MONKGM: { //113 cap - if (level >= 8) { - r_value = (((level - 8) * 5) + 5); - if (r_value > 113) { - r_value = 113; - } - } - break; - } - case RANGER: - case RANGERGM: { //75 cap - if (level >= 10) { - r_value = (((level - 10) * 5) + 5); - if (r_value > 75) { - r_value = 75; - } - } - break; - } - case BARD: - case BARDGM: { //75 cap - if (level >= 17) { - r_value = (((level - 17) * 5) + 5); - if (r_value > 75) { - r_value = 75; - } - } - break; - } - case BEASTLORD: - case BEASTLORDGM: { //50 cap - if (level >= 50) { - r_value = (((level - 50) * 5) + 5); - if (r_value > 50) { - r_value = 50; - } - } - break; - } - default: - r_value = 0; - break; - }// Class Switch - break; - } - case SENSE_TRAPS: - case PICK_LOCK: - case DISARM_TRAPS: { - switch (class_) { - // True class - case ROGUE: - case ROGUEGM: { - r_value = ((level * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - break; - } - // Hybrids - case BARD: - case BARDGM: { //100 cap - if (level >= 30) { //this is wrong I think... - r_value = (((level - 30) * 5) + 5); - if (r_value > 100) { - r_value = 100; - } - } - break; - } - default: - r_value = 0; - break; - }// Class Switch - break; - } - case SAFE_FALL: { - switch (class_) { - // Hybrids - case BARD: - case BARDGM: { //40 cap - if (level >= 24) { - r_value = (((level - 24) * 5) + 5); - if (r_value > 40) { - r_value = 40; - } - } - break; - } - // Melee - case MONK: - case MONKGM: { - if (level >= 3) { - r_value = (((level - 3) * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - } - break; - } - case ROGUE: - case ROGUEGM: { //100 cap - if (level >= 12) { - r_value = (((level - 12) * 5) + 5); - if (r_value > 100) { - r_value = 100; - } - } - break; - } - default: - r_value = 0; - break; - }// Class Switch - break; - } - case INTIMIDATION: { - switch (class_) { - case BARD: - case BARDGM: { //100 cap - if (level >= 26) { - r_value = (((level - 26) * 5) + 5); - if (r_value > 100) { - r_value = 100; - } - } - break; - } - // Melee - case MONK: - case MONKGM: { - if (level >= 18) { - r_value = (((level - 18) * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - } - break; - } - case BERSERKER: - case BERSERKERGM: { - if (level >= 20) { - r_value = (((level - 20) * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - } - break; - } - case ROGUE: - case ROGUEGM: { - if (level >= 22) { - r_value = (((level - 22) * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - } - break; - } - default: - r_value = 0; - break; - }// Class Switch - break; - } - // Druid/Ranger/Bard - case FORAGE: { - switch (class_) { - case RANGER: - case RANGERGM: { - if (level > 3) { - r_value = (((level - 3) * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - } - break; - } - case DRUID: - case DRUIDGM: { - r_value = ((level * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - break; - } - case MONK: - case MONKGM: - case BARD: - case BARDGM: - r_value = 55; - break; - default: - r_value = 50; - break; - }// Class Switch - break; - } - case TRACKING: { - switch (class_) { - case RANGER: - case RANGERGM: - case BARD: - case BARDGM: - case DRUID: - case DRUIDGM: - r_value = 200; - break; - default: - r_value = 0; - break; - }// Class Switch - break; - } -//////////////////////////////////////////////////////// - default: - #if EQDEBUG - std::cout << "Unknown class skill: " << skillid << std::endl; - #endif - break; - }// Switch skill - if (r_value > 252) { - r_value = 252; - } - return r_value; -} - -uint16 Mob::MaxSkill(uint16 skillid, uint16 class_, uint16 level) const -{ - uint16 r_value = 0; - switch (skillid) { - case _1H_BLUNT: - case _2H_BLUNT: - case PIERCING: - case HAND_TO_HAND: - case _1H_SLASHING: - case _2H_SLASHING: { - r_value = MaxSkill_weapon(skillid, class_, level); - break; - } - case OFFENSE: - case THROWING: - case ARCHERY: - case DOUBLE_ATTACK: - case DUAL_WIELD: - case KICK: - case BASH: { - r_value = MaxSkill_offensive(skillid, class_, level); - break; - } - case DEFENSE: - case PARRY: - case RIPOSTE: - case DODGE: - case TAUNT: - case DISARM: { - r_value = MaxSkill_defensive(skillid, class_, level); - break; - } - case MEDITATE: - case ABJURE: - case ALTERATION: - case CHANNELING: - case CONJURATION: - case DIVINATION: - case EVOCATION: - case SPECIALIZE_ABJURE: - case SPECIALIZE_ALTERATION: - case SPECIALIZE_CONJURATION: - case SPECIALIZE_DIVINATION: - case SPECIALIZE_EVOCATION: - case RESEARCH: - case BRASS_INSTRUMENTS: - case SINGING: - case STRINGED_INSTRUMENTS: - case WIND_INSTRUMENTS: - case PERCUSSION_INSTRUMENTS: { - r_value = MaxSkill_arcane(skillid, class_, level); - break; - } -/////////////////////////////////////////// -/////////////////////////////////////////// -// Class skills - // Rogue - case APPLY_POISON: - case MAKE_POISON: - case PICK_POCKETS: - case BACKSTAB: - // Monk - case FEIGN_DEATH: - case MEND: - case DRAGON_PUNCH: - case EAGLE_STRIKE: - case FLYING_KICK: - case ROUND_KICK: - case TIGER_CLAW: - case BLOCKSKILL: - case ALCHEMY: - case HIDE: - case SNEAK: - case SENSE_TRAPS: - case PICK_LOCK: - case DISARM_TRAPS: - case SAFE_FALL: - case INTIMIDATION: - // Druid/Ranger/Bard - case FORAGE: - case TRACKING: { - r_value = MaxSkill_class(skillid, class_, level); - break; - } -/////////////////////////////////////////// -/////////////////////////////////////////// -// Tradeskills - case BAKING: - case TAILORING: - case BLACKSMITHING: - case FLETCHING: - case BREWING: - case JEWELRY_MAKING: - case POTTERY: - case FISHING: { - // Check for Any Trade above 200, check for X (aa skill) Trades above 200 - r_value = 250; - break; - } -///////////////////////////////////// -///////////////////////////////////// - // Gnome - case TINKERING: { - if ( race == GNOME && level > 24 ) { - r_value = ((level * 5) + 5); - break; - } - r_value = 0; - break; - } -///////////////////////////////////////// -// Common -///////////////////////////////////////// - case BIND_WOUND: { - switch (class_) { - case BARD: - case BARDGM: { - r_value = ((level * 5) + 5); - if (level >= 50) { - if (r_value > 210) { - r_value = 210; - } - } else { - if (r_value > 200) { - r_value = 200; - } - } - break; - } - case CLERIC: - case CLERICGM: { - r_value = ((level * 5) + 5); - if (level >= 50) { - if (r_value > 201) { - r_value = 201; - } - } else { - if (r_value > 200) { - r_value = 200; - } - } - break; - } - case DRUID: - case DRUIDGM: - case SHAMAN: - case SHAMANGM: { - r_value = ((level * 5) + 5); - if (r_value > 200) { - r_value = 200; - } - break; - } - case MAGICIAN: - case MAGICIANGM: - case ENCHANTER: - case ENCHANTERGM: - case NECROMANCER: - case NECROMANCERGM: - case WIZARD: - case WIZARDGM: { - r_value = ((level * 5) + 5); - if (r_value > 100) { - r_value = 100; - } - break; - } - case BEASTLORD: - case BEASTLORDGM: - case BERSERKER: - case BERSERKERGM: - case MONK: - case MONKGM: { - r_value = ((level * 5) + 5); - if (level >= 50) { - if (r_value > 210) { - r_value = 210; - } - } else { - if (r_value > 200) { - r_value = 200; - } - } - break; - } - case PALADIN: - case PALADINGM: { - if (level > 10) { - r_value = (((level - 10) * 5) + 5); - if (level >= 50) { - if (r_value > 210) { - r_value = 210; - } - } else { - if (r_value > 200) { - r_value = 200; - } - } - } - break; - } - case RANGER: - case RANGERGM: { - if (level > 15) { - r_value = (((level - 15) * 5) + 5); - if (level >= 50) { - if (r_value > 200) { - r_value = 200; - } - } else { - if (r_value > 150) { - r_value = 150; - } - } - } - break; - } - case ROGUE: - case ROGUEGM: { - r_value = ((level * 5) + 5); - if (level >= 50) { - if (r_value > 210) { - r_value = 210; - } - } else { - if (r_value > 176) { - r_value = 176; - } - } - break; - } - case SHADOWKNIGHT: - case SHADOWKNIGHTGM: { - r_value = ((level * 5) + 5); - if (level >= 50) { - if (r_value > 200) { - r_value = 200; - } - } else { - if (r_value > 150) { - r_value = 150; - } - } - break; - } - case WARRIOR: - case WARRIORGM: { - if (level > 5) { - r_value = (((level - 5) * 5) + 5); - if (level >= 50) { - if (r_value > 210) { - r_value = 210; - } - } else { - if (r_value > 175) { - r_value = 175; - } - } - } - break; - } - default: - r_value = 0; - break; - } - break; - } - case SENSE_HEADING: - case SWIMMING: - case ALCOHOL_TOLERANCE: - case BEGGING: { - r_value = 5 + (level * 5); - if (r_value > 200) { - r_value = 200; - } - break; - } - //case BERSERKING: - default: { - // Unknown skill we should like print something to a log/debug here - r_value = 0; - break; - } - } - if (r_value >= 253) { - r_value = 252; - } - return r_value; -} -