Go Back   EQEmulator Home > EQEmulator Forums > Archives > Archive::Development > Archive::Development

Archive::Development Archive area for Development's posts that were moved here after an inactivity period of 90 days.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 02-16-2003, 11:49 PM
Bigpull
Discordant
 
Join Date: Feb 2003
Posts: 305
Default Client::MaxSkill()

Old
Code:
int8 Client::MaxSkill(int16 skillid, int16 class_, int16 level) {
        switch (skillid) {
                case OFFENSE:
                case DEFENSE: {
                        int16 tmp = level * 5;
                        if (tmp > 200)
                                tmp = 200;
                        return tmp;
                }
                default: {
                        return level*4;
                }
        }
}
And the new
Code:
int8 Client::MaxSkill(int16 skillid, int16 class_, int16 level) {
  int16 r_value = 0;
  switch (skillid) {
///////////////
// Melee Weapon/ Hand to Hand
///////////////
    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:{
          r_value = 5 + (level*5);
          if ( level < 51 && r_value > 200)
              r_value = 200;
          if ( level > 51 && 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:{
          r_value = 5 + (level*5);
          if ( level < 51 && r_value > 240)
            if ( r_value > 240 )
              r_value = 240;
            if ( r_value > 252 )
              r_value = 252;
          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:{
          r_value = 5 + (level*5);
          if ( level > 50 ){
            if ( r_value > 250 )
              r_value = 250;
          }
          else if ( level < 51 ){
            if ( r_value > 200 && skillid != PIERCING )
              r_value = 200;
            switch (skillid){
              case PIERCING:{
                if (r_value > 210)
                  r_value = 210;
                break;
              }
              default:  break;
            }
          }
          switch (skillid) {
            case HAND_TO_HAND:{
              if ( r_value > 100 )
                r_value = 100;
              break;
            }
            default: break;
          }
          break;
        }
        // Priest classes
        case CLERIC:{
          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:{
          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:{
          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:{
          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 SHADOWKNIGHT:{
          r_value = 5 + (level*5);
          if ( level > 50 ){
            if ( r_value > 225 )
              r_value = 225;
          }
          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 BARD:{
          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:{
          r_value = 4 + (level*4);
          if ( level > 51 ){
            if ( r_value > 225 && skillid != HAND_TO_HAND )
              r_value = 225;
          }
          if ( r_value > 250 )
              r_value = 250
;
          if ( level < 51 && r_value > 200 )
              r_value = 200;
          switch (skillid) {
            case HAND_TO_HAND:{
              r_value = 5 + (level*5);
              if ( level < 51 )
                r_value = 200;
              if ( r_value > 250 )
                r_value = 250;
              break;
            }
            case _1H_SLASHING:
            case _2H_SLASHING:{
              r_value = 0;
              break;
            }
            default: break;
          }
          break;
        }
        // Pure casters
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:{
          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;
          }
	}
	default: break;
      }// End Class
    }// End Weapons
///////////////////////////////////////
// Combat non weapon
////////////////////////////////////////
// Attack
    case OFFENSE:{
      switch (class_) {
        // Melee
        case WARRIOR:
        case ROGUE:{
          // 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:{
          // 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 SHAMAN:
        case CLERIC:{
          // 200 200 4*level+4
          r_value = ((level*4) + 4);
          if (r_value > 200)
            r_value = 200;
          break;
        }
        // Hybrid
        case BEASTLORD:{
          // 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 SHADOWKNIGHT:
        case BARD:{
          // 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:{
          // 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 WIZARD:
        case MAGICIAN:
        case ENCHANTER:{
          // 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 ROGUE:{
          // 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 MONK:{
          // 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 BARD:
        case RANGER:{
          // 113
          r_value = ((level*5) + 5);
          if ( r_value > 113 )
            r_value = 113;
          break;
        }
        // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:

        case ENCHANTER:{
          // 75
          r_value = ((level*3) + 3);
          if ( r_value > 75 )
            r_value = 75;
          break;
        }
        // No skill classes
        case DRUID:
        case SHAMAN:
        case CLERIC:
        case PALADIN:
        case SHADOWKNIGHT:
        default:
          r_value = 0;
        break;
      }
      break;
    }
    case ARCHERY:{
      switch (class_) {
        // Melee
        case ROGUE:
        case WARRIOR:{
          // 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 SHADOWKNIGHT:{
          // 75 75
          r_value = ((level*5) + 5);
          if ( r_value > 75 )
            r_value = 75;
          break;
        }
        case RANGER:{
          // 240 240
          r_value = ((level*5) + 5);
          if ( r_value > 240 )
            r_value = 240;
          break;
        }
        // Pure
        // No skill classes
         // Melee
        case MONK:
         // Priest
        case DRUID:
        case SHAMAN:
        case CLERIC:
         // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:
         // Hybrid
        case BEASTLORD:
        case BARD:
        default:
          r_value = 0;
        break;
      }
      break;
    }
    case DOUBLE_ATTACK:{
      switch (class_) {
        // Melee
        case ROGUE:{
          // 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 WARRIOR:{
          // 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:{
          // 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 SHADOWKNIGHT:{
          // 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:{
          // 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 SHAMAN:
        case CLERIC:
         // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:
         // Hybrid
        case BEASTLORD:
        case BARD:
        default:
          r_value = 0;
        break;
      }
      break;
    }
    case DUEL_WIELD:{
      switch (class_) {
        // Melee
         case WARRIOR:
         case ROGUE:
         case MONK:
        // Hybrid
        case BEASTLORD:
        case BARD:
        case RANGER:

        // No skill classes
         // Melee
         // Priest
        case DRUID:
        case SHAMAN:
        case CLERIC:
         // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:
         // Hybrid
        case PALADIN:
        case SHADOWKNIGHT:
        default:
          r_value = 0;
        break;
      }// Class switch
    }
    case KICK:{
      switch (class_) {
        // Melee
        case WARRIOR:{
          // 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:{
          // 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:{
          // 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:{
          // 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:
         // Melee
         // Priest
        case DRUID:
        case SHAMAN:
        case CLERIC:
         // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:
         // Hybrid
        case PALADIN:
        case SHADOWKNIGHT:
        case BARD:
        default:
          r_value = 0;
        break;
      }
      break;
    }
    ///////////
    // FIXME Where is slam?
    case BASH:{
      r_value = ((level*5)+5);
      switch (class_) {
        // Melee
        case WARRIOR:{
          // 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:{
        // 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 SHADOWKNIGHT:{
        // 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 ROGUE:
         // Priest
        case DRUID:
        case SHAMAN:
         // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:
         // Hybrid
        case BEASTLORD:
        case RANGER:
        case BARD:{
          switch (race) {
            case BARBARIAN:
            case TROLL:
            case OGRE:{
              r_value = 50;
              break;
            }
            default: break;
          }
          r_value = 0;
          break;
        }
      }
      break;
    }
/////////////////////////////////////
/////////////////////////////////////
// Defensive skills
    case DEFENSE:{
      switch (class_) {
        // Melee
        case WARRIOR:{
          // 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:{
          // 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:{
          // 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 SHAMAN:
        case CLERIC:{
          // 200 200 4*level+4
          r_value = ((level*4) + 4);
          if (r_value > 200)
            r_value = 200;
          break;
        }
        // Hybrid
        case BEASTLORD:{
          // 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 SHADOWKNIGHT:{
          // 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:{
          // 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:{
          // 200 200 5*level+5
          r_value = ((level*5) + 5);
          if (r_value > 200)
            r_value = 200;
          break;
        }
        // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:{
          // 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:{
          // 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:{
          // 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;
        }

        // Hybrid
        case BARD:{
          // 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 SHADOWKNIGHT:{
          // 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:{
          // 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:
         // Priest
        case DRUID:
        case SHAMAN:
        case CLERIC:
         // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:
         // Hybrid
        case BEASTLORD:
        default:
          r_value = 0;
        break;
      }
      break;
    }
    case RIPOSTE:{
      switch (class_) {
        // Melee
        case WARRIOR:{
        // 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:{
        // 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:{
        // 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:{
        // 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:{
        // 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 SHADOWKNIGHT:{
        // 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:{
        // 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 SHAMAN:
        case CLERIC:
         // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:
         // Hybrid
        default:
          r_value = 0;
        break;

      }
      break;
    }
    case DODGE:{
      switch (class_) {
        // Melee
        case WARRIOR:{
          // 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:{
          // 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:{
          // 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 SHAMAN:
        case CLERIC:{
          // 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 PALADIN:
        case SHADOWKNIGHT:
        case BARD:{
          // 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:{
          // 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 WIZARD:
        case MAGICIAN:
        case ENCHANTER:{
          // 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;
      }
    }
      // Other
    case TAUNT:{
      switch (class_) {
        // Melee
        case WARRIOR:{
        // 1 200 200
          r_value = ((level*5) + 5);
          if (r_value > 200)
            r_value = 200;
          break;
        }
        // Priest
        // Hybrid
        case PALADIN:
        case SHADOWKNIGHT:{
        // 1 180 180
          r_value = ((level*5) + 5);
          if (r_value > 180)
            r_value = 180;
          break;
        }
        case RANGER:{
        // 1 150 150
          r_value = ((level*5) + 5);
          if (r_value > 150)
            r_value = 150;
          break;

        }
        // Pure

        // No skill classes
         // Melee
        case ROGUE:
        case MONK:
         // Priest
        case DRUID:
        case SHAMAN:
        case CLERIC:
         // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:
         // Hybrid
        case BEASTLORD:
        case BARD:
        default:  break;
      }
    }
    case DISARM:{
      switch (class_) {
        // Melee
        case WARRIOR:{
        // 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 MONK:{
        // 27 200 200
          r_value = ((level*5) + 5);
          if (level < 27)
            r_value = 0;
          if (r_value > 200)
            r_value = 200;
          break;
        }
        // Priest
        // Hybrid
        case PALADIN:
        case SHADOWKNIGHT:{
        // 40 70 70
          r_value = ((level*5) + 5);
          if (level < 40)
            r_value = 0;
          if (r_value > 70)
            r_value = 70;
          break;
        }
        case RANGER:{
        // 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 SHAMAN:
        case CLERIC:
         // Pure
        case NECROMANCER:
        case WIZARD:
        case MAGICIAN:
        case ENCHANTER:
         // Hybrid
        case BARD:
        case BEASTLORD:
        default:  break;
      }
    }
///////////////////////////////////////////
///////////////////////////////////////////
// Spell Skills
    case MEDITATE:
    case ABJURE:

    case ALTERATION:
    case CHANNELING:
    case CONJURATION:
    case DIVINATION:

    case EVOCATION:{
      r_value = ((level*5) + 5);
      switch(class_){
        // Hybrid
        case RANGER:{
        // 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 PALADIN:
        case SHADOWKNIGHT:{
        // 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 DRUID:
        case SHAMAN:{
        // 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 MAGICIAN:
        case NECROMANCER:
        case WIZARD:{
        // 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:{
          r_value = 0;
          if (level > 9 && skillid == MEDITATE)
            r_value = 1;
          break;
        }
        default:
        // Unknown class
          r_value = 0;
        break;
      }// Class Switch
    }

    case SPECIALIZE_ABJURE:
    case SPECIALIZE_ALTERATION:
    case SPECIALIZE_CONJURATION:
    case SPECIALIZE_DIVINATION:
    case SPECIALIZE_EVOCATION:
    case RESEARCH:{
      r_value = ((level*5) + 5);
      switch(class_){
        // Int caster
        case ENCHANTER:
        case MAGICIAN:
        case NECROMANCER:
        case WIZARD:{
        // Res 16 200 200
          if (level < 16 && skillid == RESEARCH)
            r_value = 0;
          if (r_value > 0 && skillid == RESEARCH) {
            if (r_value > 200)
              r_value = 200;
          }
          if (r_value > 235)
            r_value = 235;
          // FIXME Only let one SPEC go above what ever limit theres supposed to be
          break;
        }
        default:{
          r_value = 0;
          break;
        }
      }// Class Switch
    }

    case BRASS_INSTRUMENTS:
    case SINGING:
    case STRINGED_INSTRUMENTS:
    case WIND_INSTRUMENTS:
    case PERCUSSION_INSTRUMENTS:{
      switch(class_){
        case BARD:{
          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
    }
///////////////////////////////////////////
///////////////////////////////////////////
// Class skills
      // Rogue
    case APPLY_POISON:
    case MAKE_POISON:
    case PICK_POCKETS:
    case BACKSTAB:{
      switch (class_) {
        // Melee
        case ROGUE: {
          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
    }
      // Monk
    case FEIGN_DEATH:
    case MEND:
    case DRAGON_PUNCH:
    case EAGLE_STRIKE:
    case FLYING_KICK:
    case ROUND_KICK:
    case TIGER_CLAW:
    case BLOCK:{
      switch(class_){
        case MONK:{
        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 BLOCK:{
              // 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;
              }
              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
    }
      // Shaman
    case ALCHEMY:{
      switch(class_){
        case SHAMAN:{
        // 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
    }
///////////////////////////////////////////
//////////////////////////////////////////
// Shared skill
      // Shared Rogue
    case HIDE:
    case SNEAK:{
      switch(class_){
        // True class
        case ROGUE:{
          break;
        }
        // Hybrids
        case MONK:
        case RANGER:
        case SHADOWKNIGHT:
        case BARD:{
          break;
        }
        default:
          r_value = 0;
        break;
      }// Class Switch
    }


    case SENSE_TRAPS:
    case PICK_LOCK:
    case DISARM_TRAPS:{
      switch(class_){
        // True class
        case ROGUE:{
          break;
        }
        // Hybrids
        case BARD:{
          break;
        }
        default:
          r_value = 0;
        break;
      }// Class Switch
    }

    case SAFE_FALL:
    case INTIMIDATION:{
      switch(class_){
        // Melee
        case MONK:
        case ROGUE:{
          break;
        }
        default:
          r_value = 0;
        break;

      }// Class Switch
    }
      // Druid/Ranger/Bard
    case FORAGE:{
      switch(class_) {
        case DRUID:
        case RANGER:{
          if (r_value > 200)
            r_value = 200;
            break;
        }
        case BARD:
          r_value = 55;
        break;
        default:
          r_value = 50;
        break;
      }
      break;
    }
    case TRACKING:{
      switch(class_){
        case RANGER:
        case BARD:
        case DRUID:
        default:
          r_value = 0;
        break;
      }// Class Switch
    }
///////////////////////////////////////////
///////////////////////////////////////////
// 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 = 200;
      break;
    }
/////////////////////////////////////
/////////////////////////////////////
    // Gnome
    case TINKERING:{
      if ( race == GNOME && level > 24 ) {
        r_value = ((level*5)+5);
        break;
      }
      r_value = 0;
      break;
    }

/////////////////////////////////////////
// Common
/////////////////////////////////////////
    case BIND_WOUND:{
      r_value = 5 + (level*5);
      if (level > 50){
        // Check for aa and class
      }
      if (r_value > 200)
        r_value = 200;
      switch (class_) {
          case ENCHANTER:
          case MAGICIAN:
          case NECROMANCER:
          case WIZARD:{
            if (  r_value > 100 )
              r_value = 100;
          }
        default:  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;
    }
  }
  return r_value;
}
Reply With Quote
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 11:32 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3