Fixed max HP/SP of extended classes in pre-re

- Fixed max HP/SP of extended classes being way too low in pre-renewal (related to #358)
* It's impossible to make it 100% accurate without tables, but I made it as accurate as possible for now
* More updates to max HP/SP will follow when I have time
This commit is contained in:
Playtester
2015-04-14 22:15:56 +02:00
parent 4169defd93
commit df2f850c74
2 changed files with 25 additions and 5 deletions

View File

@@ -52,9 +52,9 @@
// Super Novice
23, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 650
// Gunslinger
24, 28000,75 , 0 ,400 ,500 ,2000, 2000, 2000, 2000, 2000, 2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 700 , 750 , 700 ,1500 ,1500 ,2000 ,2000
24, 28000,89 , 0 ,462 ,500 ,2000, 2000, 2000, 2000, 2000, 2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 700 , 750 , 700 ,1500 ,1500 ,2000 ,2000
// Ninja
25, 26000,80 , 0 ,300 ,400 ,500 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 750 ,2000
25, 26000,80 , 0 ,530 ,400 ,500 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 750 ,2000
// Novice High
4001, 20000,0 ,500 ,100 ,500 ,650 ,700 ,2000 ,2000 ,2000 ,800 ,2000 ,700 ,700 ,650 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 650
// Swordman High
@@ -148,9 +148,9 @@
// Taekwon
4046, 28000,70 ,500 ,200 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
// Star Gladiator
4047, 28000,90 ,650 ,400 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
4047, 28000,90 ,650 ,470 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
// Star Gladiator (Union)
4048, 28000,90 ,650 ,400 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
4048, 28000,90 ,650 ,470 ,400 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
// Soul Linker
4049, 24000,75 ,500 ,900 ,500 ,575 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 625
//================================

View File

@@ -10478,11 +10478,31 @@ static unsigned int pc_calc_basehp(uint16 level, uint16 class_idx) {
uint16 i;
base_hp = 35 + level * (job_info[class_idx].hp_multiplicator/100.);
#ifndef RENEWAL
if(level >= 10 && (class_idx == JOB_NINJA || class_idx == JOB_GUNSLINGER)) base_hp += 90;
#endif
for (i = 2; i <= level; i++)
base_hp += floor(((job_info[class_idx].hp_factor/100.) * i) + 0.5); //Don't have round()
return (unsigned int)base_hp;
}
/** [Playter]
* Calculates base sp of player.
* @param level Base level of player
* @param idx Index of class
* @return base_sp
*/
static unsigned int pc_calc_basesp(uint16 level, uint16 class_idx) {
double base_sp;
base_sp = 10 + floor(level * (job_info[class_idx].sp_factor / 100.));
#ifndef RENEWAL
if(level >= 10 && class_idx == JOB_NINJA) base_sp -= 20;
if(level >= 10 && class_idx == JOB_GUNSLINGER) base_sp -= 17;
#endif
return (unsigned int)base_sp;
}
//Reading job_db1.txt line, (class,weight,HPFactor,HPMultiplicator,SPFactor,aspd/lvl...)
static bool pc_readdb_job1(char* fields[], int columns, int current){
int idx, class_;
@@ -10850,7 +10870,7 @@ void pc_readdb(void) {
if (job_info[idx].base_hp[j] == 0)
job_info[idx].base_hp[j] = pc_calc_basehp(j+1,idx);
if (job_info[idx].base_sp[j] == 0)
job_info[idx].base_sp[j] = 10 + (unsigned int)floor((j+1) * (job_info[idx].sp_factor / 100.));
job_info[idx].base_sp[j] = pc_calc_basesp(j+1,idx);
}
}
}