Just changing the trait_start_level and the statpoint.yml didn't work for me. Therefore, I looked through the code and found a way to do this. However, I am not sure if all of these changes are necessary.
First, I added TraitPoints: x in statpoint.yml from level 101 onward and changed the trait_start_level to 100 like mentioned above:
void PlayerStatPointDatabase::loadingFinished(){
const uint16 trait_start_level = 100;
Then in pc.cpp, you can find JOBL_FOURTH branches and remove the JOBL_FOURTH check. Here are the ones that I changed:
if ((sd->class_&JOBL_FOURTH) != 0) {
sd->status.trait_point += battle_config.trait_points_job_change;
}
if ((b_class & JOBL_FOURTH) && !(previous_class & JOBL_FOURTH)) {// Change to a 4th job.
sd->status.trait_point += battle_config.trait_points_job_change;
clif_updatestatus(sd, SP_TRAITPOINT);
clif_updatestatus(sd, SP_UPOW);
clif_updatestatus(sd, SP_USTA);
clif_updatestatus(sd, SP_UWIS);
clif_updatestatus(sd, SP_USPL);
clif_updatestatus(sd, SP_UCON);
clif_updatestatus(sd, SP_UCRT);
}
if( class_ & JOBL_FOURTH ){
max = battle_config.max_fourth_parameter;
break;
}
// Set trait status limit
if( class_ & JOBL_FOURTH ){
max = battle_config.max_trait_parameter;
}else{
max = 0;
}