Kaynağa Gözat

Fixes Spirit Handler MAPID
* Minor reversions to checks.
* Adjusts Spirit Handler to just JOBL_UPPER.

aleos 2 yıl önce
ebeveyn
işleme
1498e9143f
4 değiştirilmiş dosya ile 7 ekleme ve 7 silme
  1. 1 1
      src/map/clif.cpp
  2. 1 1
      src/map/map.hpp
  3. 2 2
      src/map/pc.cpp
  4. 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_SUMMONER ) == MAPID_SUMMONER ){
+	if( ( sd->class_ & MAPID_BASEMASK ) == MAPID_SUMMONER ){
 		costs = entry->doram;
 	}else{
 		costs = entry->human;

+ 1 - 1
src/map/map.hpp

@@ -233,7 +233,7 @@ enum e_mapid : uint64{
 	MAPID_SKY_EMPEROR,
 	MAPID_NIGHT_WATCH = JOBL_FOURTH|JOBL_THIRD|JOBL_UPPER|MAPID_REBELLION,
 	MAPID_SHINKIRO_SHIRANUI,
-	MAPID_SPIRIT_HANDLER = JOBL_FOURTH|JOBL_THIRD|JOBL_UPPER|MAPID_SUMMONER,
+	MAPID_SPIRIT_HANDLER = JOBL_UPPER|MAPID_SUMMONER,
 //4-2 Jobs
 	MAPID_IMPERIAL_GUARD = JOBL_FOURTH|JOBL_THIRD|JOBL_UPPER|MAPID_CRUSADER,
 	MAPID_ELEMENTAL_MASTER,

+ 2 - 2
src/map/pc.cpp

@@ -13494,7 +13494,7 @@ void JobDatabase::loadingFinished() {
 			}
 
 			// Summoner / Spirit Handler
-			if( ( class_ & MAPID_SUMMONER ) == MAPID_SUMMONER ){
+			if( ( class_ & MAPID_BASEMASK ) == MAPID_SUMMONER ){
 				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_SUMMONER) == MAPID_SUMMONER) ? battle_config.max_summoner_aspd : 
+			(sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER) ? 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_SUMMONER) == MAPID_SUMMONER ? battle_config.summoner_size : SZ_MEDIUM);
+	base_status->size = (sd->class_&JOBL_BABY) ? SZ_SMALL : ((sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER ? 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_SUMMONER) == MAPID_SUMMONER) ? battle_config.summoner_race : RC_PLAYER_HUMAN;
+	base_status->race = ((sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER) ? 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_SUMMONER) == MAPID_SUMMONER)
+			if (sd && (sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER)
 				val4 = 10; // Ranged ATK increase
 			break;
 		case SC_SHRIMP: