瀏覽代碼

Fixed monster status changes not getting reseted before respawning. bugreport:7449

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17225 54d463be-8e91-2dee-dedb-b68131a5f0ec
lemongrass3110 12 年之前
父節點
當前提交
ba76b0e753
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      src/map/mob.c

+ 6 - 0
src/map/mob.c

@@ -2094,6 +2094,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
 	struct status_data *status;
 	struct map_session_data *sd = NULL, *tmpsd[DAMAGELOG_SIZE];
 	struct map_session_data *mvp_sd = NULL, *second_sd = NULL, *third_sd = NULL;
+	struct status_change *sc;
 
 	struct {
 		struct party_data *p;
@@ -2106,6 +2107,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
 	bool rebirth, homkillonly;
 
 	status = &md->status;
+	sc = &md->sc;
 
 	if( src && src->type == BL_PC )
 	{
@@ -2636,6 +2638,10 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
 	if (battle_config.mvp_tomb_enabled && md->spawn->state.boss)
 		mvptomb_create(md, mvp_sd ? mvp_sd->status.name : NULL, time(NULL));
 
+	// Remove all status changes before creating a respawn
+	if( sc )
+		memset( sc, 0, sizeof( struct status_change ) );
+
 	if( !rebirth )
 		mob_setdelayspawn(md); //Set respawning.
 	return 3; //Remove from map.