summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormomacabu <momacabu@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-11-23 03:37:38 +0000
committermomacabu <momacabu@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-11-23 03:37:38 +0000
commitd67c0dd4f78b1a1a6aae9e54791bd93daea5904f (patch)
treea12e52b39231fb73b4e52e6d859edb35f39dce4d
parentfa0e7ac66029cda08041f6ed9410bbafbe7a58b7 (diff)
downloadhercules-d67c0dd4f78b1a1a6aae9e54791bd93daea5904f.tar.gz
hercules-d67c0dd4f78b1a1a6aae9e54791bd93daea5904f.tar.bz2
hercules-d67c0dd4f78b1a1a6aae9e54791bd93daea5904f.tar.xz
hercules-d67c0dd4f78b1a1a6aae9e54791bd93daea5904f.zip
Follow up to r16946, where not all npc interactions (input, menu) where properly terminated.
*Buddha of mine I also horrendously misplaced the code.* git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16949 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--src/map/pc.c13
-rw-r--r--src/map/status.c3
2 files changed, 13 insertions, 3 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index b73a633d8..6f85aa532 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -6493,6 +6493,19 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
if( (bg = bg_team_search(sd->bg_id)) != NULL && bg->die_event[0] )
npc_event(sd, bg->die_event, 0);
}
+
+ // Clear anything NPC-related when you die and was interacting with one.
+ if (sd->npc_id)
+ {
+ if (sd->state.using_fake_npc)
+ sd->state.using_fake_npc = 0;
+ if (sd->state.menu_or_input)
+ sd->state.menu_or_input = 0;
+ if (sd->npc_menu)
+ sd->npc_menu = 0;
+
+ npc_event_dequeue(sd);
+ }
npc_script_event(sd,NPCE_DIE);
diff --git a/src/map/status.c b/src/map/status.c
index 10431bace..9b4a58676 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1343,9 +1343,6 @@ int status_damage(struct block_list *src,struct block_list *target,int hp, int s
clif_clearunit_area(target,CLR_DEAD);
skill_unit_move(target,gettick(),4);
skill_cleartimerskill(target);
-
- if(target->type == BL_PC && ((TBL_PC*)target)->npc_id && flag == 1)
- npc_event_dequeue((TBL_PC*)target);
}
return hp+sp;