diff --git a/db/pre-re/job_db1.txt b/db/pre-re/job_db1.txt index 9fde475d16..84f8a2ff71 100644 --- a/db/pre-re/job_db1.txt +++ b/db/pre-re/job_db1.txt @@ -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 //================================ diff --git a/src/map/pc.c b/src/map/pc.c index ddf70b169c..72f0d65e75 100755 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -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); } } }