Просмотр исходного кода

Fixed Basilica Blocking Attacks in Renewal (#9224)

- Basilica is no longer blocking attacks in renewal
- Removed unused status change SC_BASILICA_CELL
  * The skill is just a self-buff in renewal, no units are placed
- Fixes #9220
Playtester 1 месяц назад
Родитель
Сommit
90ac9645b8
7 измененных файлов с 10 добавлено и 39 удалено
  1. 0 9
      db/pre-re/status.yml
  2. 0 11
      db/re/status.yml
  3. 2 5
      src/map/battle.cpp
  4. 4 8
      src/map/clif.cpp
  5. 2 4
      src/map/pc.cpp
  6. 1 1
      src/map/script_constants.hpp
  7. 1 1
      src/map/status.hpp

+ 0 - 9
db/pre-re/status.yml

@@ -6470,15 +6470,6 @@ Body:
       NoDispell: true
       NoBanishingBuster: true
       NoClearance: true
-  - Status: Basilica_Cell
-    States:
-      NoCast: true
-    Flags:
-      NoDispell: true
-      NoBanishingBuster: true
-      NoClearance: true
-      NoClearbuff: true
-      RemoveOnChangeMap: true
   - Status: Entry_Queue_Apply_Delay
     Icon: EFST_ENTRY_QUEUE_APPLY_DELAY
     Flags:

+ 0 - 11
db/re/status.yml

@@ -1276,8 +1276,6 @@ Body:
     DurationLookup: HP_BASILICA
     CalcFlags:
       All: true
-    States:
-      NoAttack: true
     Flags:
       NoSave: true
       NoClearance: true
@@ -7131,15 +7129,6 @@ Body:
   - Status: Adaptation
     Icon: EFST_ADAPTATION
     DurationLookup: BD_ADAPTATION
-  - Status: Basilica_Cell
-    States:
-      NoCast: true
-    Flags:
-      NoDispell: true
-      NoBanishingBuster: true
-      NoClearance: true
-      NoClearbuff: true
-      RemoveOnChangeMap: true
   - Status: Entry_Queue_Apply_Delay
     Icon: EFST_ENTRY_QUEUE_APPLY_DELAY
     Flags:

+ 2 - 5
src/map/battle.cpp

@@ -1415,12 +1415,9 @@ bool battle_status_block_damage(struct block_list *src, struct block_list *targe
 	}
 
 	if ((sc->getSCE(SC_PNEUMA) && (flag&(BF_MAGIC | BF_LONG)) == BF_LONG) ||
-#ifdef RENEWAL
-		(sc->getSCE(SC_BASILICA_CELL)
-#else
-		(sc->getSCE(SC_BASILICA)
+#ifndef RENEWAL
+		(sc->getSCE(SC_BASILICA) != nullptr && !status_bl_has_mode(src, MD_STATUSIMMUNE)) ||
 #endif
-		&& !status_bl_has_mode(src, MD_STATUSIMMUNE) && skill_id != SP_SOULEXPLOSION) ||
 		(sc->getSCE(SC_ZEPHYR) && !(flag&BF_MAGIC && skill_id) && !(skill_get_inf(skill_id)&(INF_GROUND_SKILL | INF_SELF_SKILL))) ||
 		sc->getSCE(SC__MANHOLE) ||
 		sc->getSCE(SC_KINGS_GRACE) ||

+ 4 - 8
src/map/clif.cpp

@@ -12764,12 +12764,10 @@ static void clif_parse_UseSkillToPos_homun(struct homun_data *hd, map_session_da
 		return;
 	}
 
-#ifdef RENEWAL
-	if (hd->sc.getSCE(SC_BASILICA_CELL))
-#else
+#ifndef RENEWAL
 	if (hd->sc.getSCE(SC_BASILICA))
-#endif
 		return;
+#endif
 	lv = hom_checkskill(hd, skill_id);
 	if( skill_lv > lv )
 		skill_lv = lv;
@@ -12817,12 +12815,10 @@ static void clif_parse_UseSkillToPos_mercenary(s_mercenary_data *md, map_session
 		return;
 	}
 
-#ifdef RENEWAL
-	if (md->sc.getSCE(SC_BASILICA_CELL))
-#else
+#ifndef RENEWAL
 	if (md->sc.getSCE(SC_BASILICA))
-#endif
 		return;
+#endif
 	lv = mercenary_checkskill(md, skill_id);
 	if( skill_lv > lv )
 		skill_lv = lv;

+ 2 - 4
src/map/pc.cpp

@@ -15056,13 +15056,10 @@ void pc_bonus_script_clear(map_session_data *sd, uint32 flag) {
  * @param sd: Target player
  */
 void pc_cell_basilica(map_session_data *sd) {
+#ifndef RENEWAL
 	nullpo_retv(sd);
 
-#ifdef RENEWAL
-	enum sc_type type = SC_BASILICA_CELL;
-#else
 	enum sc_type type = SC_BASILICA;
-#endif
 
 	if (!map_getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKBASILICA)) {
 		if (sd->sc.getSCE(type))
@@ -15070,6 +15067,7 @@ void pc_cell_basilica(map_session_data *sd) {
 	}
 	else if (!sd->sc.getSCE(type))
 		sc_start(&sd->bl,&sd->bl, type,100,0,INFINITE_TICK);
+#endif
 }
 
 /** [Cydh]

+ 1 - 1
src/map/script_constants.hpp

@@ -1651,7 +1651,7 @@
 	export_constant(SC_ENTRY_QUEUE_APPLY_DELAY);
 	export_constant(SC_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT);
 	export_constant(SC_ADAPTATION);
-	export_constant(SC_BASILICA_CELL);
+	export_deprecated_constant(SC_BASILICA_CELL); // Apr. 2025
 	export_constant(SC_LIGHTOFMOON);
 	export_constant(SC_LIGHTOFSUN);
 	export_constant(SC_LIGHTOFSTAR);

+ 1 - 1
src/map/status.hpp

@@ -1031,7 +1031,7 @@ enum sc_type : int16 {
 	SC_WEAPONBLOCK_ON,
 	SC_SPORE_EXPLOSION,
 	SC_ADAPTATION,
-	SC_BASILICA_CELL, // Used in renewal mode for cell_basilica only
+	SC_BASILICA_CELL, // Deprecated
 
 	SC_ENTRY_QUEUE_APPLY_DELAY,
 	SC_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT,