Ya, skill caps all seem to work properly server side. They just don't display right. You can use the #showstats command to see your AC going up when you defense skills over cap.
One thing I figured I would mention is that in the source, it looks like there are settings for max skills. I don't know if that is just old code that isn't used anymore since the skills table is where it is supposed to be set now. But, if you look at the zone/maxskill.h file in the source, you can see code that seems to be setting the max skills:
Code:
int16 Mob::MaxSkill_weapon(int16 skillid, int16 class_, int16 level) const{
if (skillid > HIGHEST_SKILL)
return 0;
int16 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;
}
If this code is still used, I wonder if it might conflict with the skills table information. That is my best guess if the issue isn't client side.