EDIT: The new, accurate, averages for job advancements gains are as follows: Job: HP/ MP *1st Jobs* Warrior: 225 / 0 Magician: 0 / 125 Thief: 162.5 / 0 Archer: 162.5 / 0 Pirate: 162.5 / 0 *2nd-4th Jobs* Warrior: 325 / 0 Magician: 0 / 475 Archer: 325 / 175 Thief: 325 / 175 Pirate: 325 / 175 *Other* GM: 162.5 / 0 Super GM: 325 / 175 All values fluctuate by 50. (i.e. 300-350)
From the MapleRoyals sauce leak: Code: public void changeJob(MapleJob newJob) { this.job = newJob; this.remainingSp++; if (newJob.getId() % 10 == 2) { this.remainingSp += 2; } updateSingleStat(MapleStat.AVAILABLESP, this.remainingSp); updateSingleStat(MapleStat.JOB, newJob.getId()); if (job.getId() == 100) { //FIRST JOB WARRIOR maxhp += rand(200, 250); } else if (job.getId() == 200) { //FIRST JOB MAGICIAN maxmp += rand(100, 150); } else if (job.getId() % 100 == 0) { //FIRST JOB THIEF, BOWMAN & PIRATE maxhp += rand(100, 150); maxhp += rand(25, 50); } else if (job.getId() > 0 && job.getId() < 200) { //SECOND - FOURTH JOB WARRIOR maxhp += rand(300, 350); } else if (job.getId() < 300) { //SECOND - FOURTH JOB MAGICIAN maxmp += rand(450, 500); } else if (job.getId() > 0) { //EVERYTHING ELSE maxhp += rand(300, 350); maxmp += rand(150, 200); } if (maxhp >= 30000) { maxhp = 30000; } if (maxmp >= 30000) { maxmp = 30000; } }
If it follows what was posted then the extra mp/hp added is pseudo-random so you can't know for sure until you actually do the job adv.
This still isn't checking out. I just asked two lvl 34 thieves what their MaxHP is, and they said 1221 and 1216. If each job advancement as a thief gives 300-350 HP, and each level as a thief gives 20-24 HP (24 lvls), and each level as a Beginner gives you 12-16 HP, and you start with 50 HP, then even in the worst case scenario, you get: 9*12 + 24*20 + 300*2 + 50 = 108 + 480 + 600 + 50 = 1238 So a lvl 34 thief, should have, at the very least, 1238 HP. How were these guys under that amount?
Oh. I did the comment wrong where beginner is. There's the modulus modifier and since there are jobs that have a remainder of 0 when you divide by 100, that could be it. 300 - Archer 400 - Rogue 500 - Pirate
k, so, I'm assuming this line: else if (job.getId() % 100 == 0) { //BEGINNER maxhp += rand(100, 150); maxhp += rand(25, 50); doesn't just mean Beginner. I'm assuming the % 100 == 0 means 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, which include all 1st jobs. EDIT: Just saw your post after I posted this lol xD Glad it's all cleared up. EDIT EDIT: Beginner wouldn't even make any sense xD
I'm assuming: } else if (job.getId() % 100 == 0) { maxhp += rand(100, 150); maxhp += rand(25, 50); is a typo. It was probably supposed to be maxmp += rand(25, 50); But hey, can't complain about extra HP.
On the if / else if statement, you can see that both the first job warrior and magician classes would satisfy the condition before it reached the line where "else if (job.getId() % 100 == 0)" would be tested. Therefore, only the other three classes are affected by this "else if" statement while warriors and magicians have their own first job HP/MP increases. RIP that extra HP now that you pointed it out.
Another interesting thing I've found in the sauce is that Pirates only gain 10-12 MP per LevelUpAP placed into MP, when they lose 16 from each removal. That's a ~5 point deficit for MP Washing for Pirates, whereas most classes have a ~1 point deficit. Sucks for Pirates xD