I'll have to take a look. The code is basically a copy of Client:: DoClassAttacks, with a call to database.GetSkillCap(class_, skillid, level), so I'm not sure what would be different.
Code:
int16 Bot::MaxSkill(SkillType skillid, int16 class_, int16 level) const {
return(database.GetSkillCap(class_, skillid, level));
}