소스 검색

Summoner, Novice and Level 151+ HP/SP updated (fixes #1181)
* Summoner HP/SP values are now accurate for both HP/SP tables and the automatic calculation
* Summoner HP/SP adjustments in the code are now at the correct place and only used when the HP/SP tables are not used
* Super Novices now gain +2000 HP at both level 99 and level 150 and the bonus stays even on level 100-149 and 151+ (fixes #979)
* Normal Novices no longer get a HP boost
* Updated HP/SP tables to official values for level 151-175 and extrapolated new values for up to level 500
* Removed 3rd classes from the HP/SP tables in pre-re and replaced them with dummy data (using Novice values)
-- Note: This way updates like this one don't need to be done twice. If you want to use 3rd classes in pre-re just copy over the lines you need from the re folder or even better, use the import folder. You should use it for all customizations you do for easier updating.

Playtester 9 년 전
부모
커밋
33efbd0869
5개의 변경된 파일9개의 추가작업 그리고 17개의 파일을 삭제
  1. 0 0
      db/pre-re/job_basehpsp_db.txt
  2. 1 1
      db/re/job_basehpsp_db.txt
  3. 1 1
      db/re/job_db1.txt
  4. 5 0
      src/map/pc.c
  5. 2 15
      src/map/status.c

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
db/pre-re/job_basehpsp_db.txt


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
db/re/job_basehpsp_db.txt


+ 1 - 1
db/re/job_db1.txt

@@ -272,4 +272,4 @@
 // Rebellion
 4215,   28000,90   ,650  ,469  ,540  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,520  ,620  ,570  ,970  ,1070 ,2000 ,2000 ,600
 // Summoner
-4218,	20000,75   ,500  ,700  ,490  ,570  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,590  ,2000 ,2000 ,2000 ,2000 ,470  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,590  ,590
+4218,	20000,70   ,500  ,500  ,490  ,570  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,590  ,2000 ,2000 ,2000 ,2000 ,470  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,590  ,590

+ 5 - 0
src/map/pc.c

@@ -10689,6 +10689,8 @@ static unsigned int pc_calc_basehp(uint16 level, uint16 class_) {
 #endif
 	for (i = 2; i <= level; i++)
 		base_hp += floor(((job_info[idx].hp_factor/100.) * i) + 0.5); //Don't have round()
+	if (class_ == JOB_SUMMONER)
+		base_hp += floor((base_hp / 2) + 0.5);
 	return (unsigned int)base_hp;
 }
 
@@ -10717,6 +10719,9 @@ static unsigned int pc_calc_basesp(uint16 level, uint16 class_) {
 			else
 				base_sp = 9 + 3*level;
 			break;
+		case JOB_SUMMONER:
+			base_sp -= floor(base_sp / 2);
+			break;
 	}
 
 	return (unsigned int)base_sp;

+ 2 - 15
src/map/status.c

@@ -2798,15 +2798,8 @@ static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) {
 #ifndef HP_SP_TABLES
 			if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.base_level >= 99)
 				bonus += 2000; // Supernovice lvl99 hp bonus.
-
-			// Summoner starts with 60 HP and gains additional HP by base level calculations.
-			if ((sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER) {
-					bonus += 18;
-					if (sd->status.base_level > 2)
-						bonus += sd->status.base_level - 2;
-					if (sd->status.base_level > 14)
-						bonus += (sd->status.base_level - 13) / 2;
-			}
+			if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.base_level >= 150)
+				bonus += 2000; // Supernovice lvl150 hp bonus.
 #endif
 		}
 
@@ -2930,12 +2923,6 @@ static int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) {
 				if (pc_checkskill(sd, SU_TUNABELLY) == 5 && pc_checkskill(sd, SU_TUNAPARTY) == 5 && pc_checkskill(sd, SU_BUNCHOFSHRIMP) == 5 && pc_checkskill(sd, SU_FRESHSHRIMP) == 5)
 					bonus += 200;
 			}
-
-			// Summoner starts at 8 SP and gain 2 SP per even base lv and 3 SP per odd base lv.
-			if ((sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER) {
-				bonus -= 4;
-				bonus += (sd->status.base_level - 1) / 2;
-			}
 		}
 
 		//Bonus by SC

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.