Finaly find it, it come from this:
In status.c, status_calc_regen, minimum value is 1, means all job whatever if they have skill or sitting regen bonus, will display this "1" heal regen
if (regen->skill != NULL) {
regen->skill->hp = cap_value(regen->skill->hp, 1, INT16_MAX);
regen->skill->sp = cap_value(regen->skill->sp, 1, INT16_MAX);
}
if (regen->sitting != NULL) {
regen->sitting->hp = cap_value(regen->sitting->hp, 1, INT16_MAX);
regen->sitting->sp = cap_value(regen->sitting->sp, 1, INT16_MAX);
}
We've change for this and it's work fine
if (regen->skill != NULL) {
regen->skill->hp = cap_value(regen->skill->hp, 0, INT16_MAX);
regen->skill->sp = cap_value(regen->skill->sp, 0, INT16_MAX);
}
if (regen->sitting != NULL) {
regen->sitting->hp = cap_value(regen->sitting->hp, 0, INT16_MAX);
regen->sitting->sp = cap_value(regen->sitting->sp, 0, INT16_MAX);
}