melia
melia copied to clipboard
Fix job levels being reset when adding new jobs via >addjob
This PR fixes an issue where existing job levels would be incorrectly reduced when adding a new job with the
>addjob command.
Root Cause
The Job.Level property is dynamically calculated from TotalExp and the character's current rank (sum of all job circles). When a new job is added, the rank increases, which changes the EXP curve - the same TotalExp value now corresponds to a lower level at the higher rank.
Steps to reproduce (before this fix):
- Create new archer character
-
>joblevelup 14(Archer is now level 15) -
>addjob 3002(Hunter) -
>joblevelup 44(Hunter is now level 45) -
>addjob 3005(Sapper) - Hunter drops from level 45 to level 9 (not shown in client) -
>joblevelup 44(Sapper is now level 45) - Attempt to increase Hunter's Praise skill → FAIL, because Praise requires job level 31
Fix
Before adding a new job, store the current levels of all existing jobs. After adding the job (which increases the rank), recalculate TotalExp for each existing job to maintain their levels at the new rank.