فهرست منبع

* Miracle should only be dispelled on map change.
* The "party invite" and "view equip" state messages are ought to be sent on every map change instead of login.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13793 54d463be-8e91-2dee-dedb-b68131a5f0ec

Inkfish 16 سال پیش
والد
کامیت
2b1109483f
4فایلهای تغییر یافته به همراه7 افزوده شده و 6 حذف شده
  1. 1 0
      Changelog-Trunk.txt
  2. 4 5
      src/map/clif.c
  3. 2 0
      src/map/pc.c
  4. 0 1
      src/map/unit.c

+ 1 - 0
Changelog-Trunk.txt

@@ -6,6 +6,7 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 09/05/19
 	* Added missing packet 0x2c9 and fixed 0x2da's length error. [Inkfish]
 	* Fiberlock now can trap multiple enemies on the same cell and its triggering area was reduced to 1x1. [Inkfish]
+	* Miracle should only be dispelled on map change. [Inkfish]
 09/05/18
 	* Item-bonuses now use the official default durations for status changes [Playtester]
 	* status calc code cleanup [ultramage]

+ 4 - 5
src/map/clif.c

@@ -8117,11 +8117,6 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
 			clif_status_load(&sd->bl, SI_NIGHT, 1);
 		}
 
-#if PACKETVER >= 20070918
-		clif_partyinvitationstate(sd);
-		clif_equipcheckbox(sd);
-#endif
-
 		// Notify everyone that this char logged in [Skotlex].
 		map_foreachpc(clif_friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 1);
 
@@ -8147,6 +8142,10 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
 
 	if( sd->state.changemap )
 	{// restore information that gets lost on map-change
+#if PACKETVER >= 20070918
+		clif_partyinvitationstate(sd);
+		clif_equipcheckbox(sd);
+#endif
 		if( (battle_config.bg_flee_penalty != 100 || battle_config.gvg_flee_penalty != 100) &&
 			(map_flag_gvg(sd->state.pmap) || map_flag_gvg(sd->bl.m) || map[sd->state.pmap].flag.battleground || map[sd->bl.m].flag.battleground) )
 			status_calc_bl(&sd->bl, SCB_FLEE); //Refresh flee penalty

+ 2 - 0
src/map/pc.c

@@ -3838,6 +3838,8 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y
 				status_change_end(&sd->bl,SC_MOON_COMFORT,-1);
 			if (sd->sc.data[SC_STAR_COMFORT])
 				status_change_end(&sd->bl,SC_STAR_COMFORT,-1);
+			if (sd->sc.data[SC_MIRACLE])
+				status_change_end(&sd->bl,SC_MIRACLE,-1);
 			if (sd->sc.data[SC_KNOWLEDGE]) {
 				struct status_change_entry *sce = sd->sc.data[SC_KNOWLEDGE];
 				if (sce->timer != -1)

+ 0 - 1
src/map/unit.c

@@ -1769,7 +1769,6 @@ int unit_remove_map_(struct block_list *bl, int clrtype, const char* file, int l
 		if (sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_SELF)
 			status_change_end(bl,SC_GOSPEL,-1);
 		status_change_end(bl,SC_CHANGE,-1);
-		status_change_end(bl,SC_MIRACLE,-1);
 	}
 
 	if (bl->type&BL_CHAR) {