Basically I found a workaround for a problem I was having with skills not being able to be set to certain level no matter what you change the skill_caps table to. Only problem is it doesn't display at the trainer until that level.
What I'm wondering is, is there a way to set it so the trainer will actually show the level the skill can be trained via the skill_caps table or even a hard coded way server side. As this is a problem with 4 skills I have found so far. The problem isn't that its not taking the correct info from the skill_caps table, its that its still allowing the client to train said skill at level 10 for pick lock for example on bards. When I had it set to 40. The below code prevents that but also doesn't permit it to be seen by the client until 40.
Just hoping someone has a workaround that will actually show it and display it correctly.
I added this to client_process.cpp in OPGMTraining.
Code:
if( sk == PICK_LOCK && GetClass() == BARD && GetLevel() < 40 ){
gmtrain->skills[sk] = 0;
}
else if ( sk == PICK_LOCK && GetClass() == BARD && GetLevel() >= 40 ){
gmtrain->skills[sk] = GetMaxSkillAfterSpecializationRules(sk, MaxSkill(sk, GetClass(), RuleI(Character, MaxLevel)));
}