Forráskód Böngészése

Adds Spirit Handler to Summoner checks
* Fixes #7039.
* Adds the Spirit Handler job to the basic Summoner job checks.
Thanks to @laziem!

aleos 3 éve
szülő
commit
9603a2bd1b
3 módosított fájl, 9 hozzáadás és 9 törlés
  1. 1 1
      src/map/clif.cpp
  2. 5 5
      src/map/pc.cpp
  3. 3 3
      src/map/status.cpp

+ 1 - 1
src/map/clif.cpp

@@ -22451,7 +22451,7 @@ bool clif_parse_stylist_buy_sub( struct map_session_data* sd, _look look, int16
 
 	std::shared_ptr<s_stylist_costs> costs;
 
-	if( ( sd->class_ & MAPID_BASEMASK ) == MAPID_SUMMONER ){
+	if( ( sd->class_ & MAPID_BASEMASK ) == MAPID_SUMMONER || ( sd->class_ & MAPID_BASEMASK ) == MAPID_SPIRIT_HANDLER ){
 		costs = entry->doram;
 	}else{
 		costs = entry->human;

+ 5 - 5
src/map/pc.cpp

@@ -2427,8 +2427,8 @@ void pc_clean_skilltree(struct map_session_data *sd)
 uint64 pc_calc_skilltree_normalize_job_sub( struct map_session_data *sd ){
 	int skill_point = pc_calc_skillpoint( sd );
 
-	if( sd->class_ & MAPID_SUMMONER ){
-		// Novice's skill points for basic skill.
+	if( sd->class_ & MAPID_SUMMONER || sd->class_ & MAPID_SPIRIT_HANDLER ){
+		// Summoner's skill points for base skills.
 		std::shared_ptr<s_job_info> summoner_job = job_db.find( JOB_SUMMONER );
 
 		int summoner_skills = summoner_job->max_job_level - 1;
@@ -13493,8 +13493,8 @@ void JobDatabase::loadingFinished() {
 				}
 			}
 
-			// Summoner
-			if( ( class_ & MAPID_BASEMASK ) == MAPID_SUMMONER ){
+			// Summoner / Spirit Handler
+			if( ( class_ & MAPID_BASEMASK ) == MAPID_SUMMONER || ( class_ & MAPID_BASEMASK ) == MAPID_SPIRIT_HANDLER ){
 				max = battle_config.max_summoner_parameter;
 				break;
 			}
@@ -14462,7 +14462,7 @@ short pc_maxaspd(struct map_session_data *sd) {
 
 	return (( sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : (
 			((sd->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO || (sd->class_&MAPID_UPPERMASK) == MAPID_REBELLION) ? battle_config.max_extended_aspd : (
-			(sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER) ? battle_config.max_summoner_aspd : 
+			((sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER || (sd->class_&MAPID_BASEMASK) == MAPID_SPIRIT_HANDLER)) ? battle_config.max_summoner_aspd : 
 			battle_config.max_aspd ));
 }
 

+ 3 - 3
src/map/status.cpp

@@ -3555,7 +3555,7 @@ int status_calc_pc_sub(struct map_session_data* sd, uint8 opt)
 	// Give them all modes except these (useful for clones)
 	base_status->mode = static_cast<e_mode>(MD_MASK&~(MD_STATUSIMMUNE|MD_IGNOREMELEE|MD_IGNOREMAGIC|MD_IGNORERANGED|MD_IGNOREMISC|MD_DETECTOR|MD_ANGRY|MD_TARGETWEAK));
 
-	base_status->size = (sd->class_&JOBL_BABY) ? SZ_SMALL : (((sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER) ? battle_config.summoner_size : SZ_MEDIUM);
+	base_status->size = (sd->class_&JOBL_BABY) ? SZ_SMALL : (((sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER || (sd->class_&MAPID_BASEMASK) == MAPID_SPIRIT_HANDLER) ? battle_config.summoner_size : SZ_MEDIUM);
 	if (battle_config.character_size && pc_isriding(sd)) { // [Lupus]
 		if (sd->class_&JOBL_BABY) {
 			if (battle_config.character_size&SZ_BIG)
@@ -3566,7 +3566,7 @@ int status_calc_pc_sub(struct map_session_data* sd, uint8 opt)
 	}
 	base_status->aspd_rate = 1000;
 	base_status->ele_lv = 1;
-	base_status->race = ((sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER) ? battle_config.summoner_race : RC_PLAYER_HUMAN;
+	base_status->race = ((sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER || (sd->class_&MAPID_BASEMASK) == MAPID_SPIRIT_HANDLER) ? battle_config.summoner_race : RC_PLAYER_HUMAN;
 	base_status->class_ = CLASS_NORMAL;
 
 	sd->autospell.clear();
@@ -11963,7 +11963,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
 		case SC_ARCLOUSEDASH:
 			val2 = 15 + 5 * val1; // AGI
 			val3 = 25; // Move speed increase
-			if (sd && (sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER)
+			if (sd && ((sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER || (sd->class_&MAPID_BASEMASK) == MAPID_SPIRIT_HANDLER))
 				val4 = 10; // Ranged ATK increase
 			break;
 		case SC_SHRIMP: