summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/map.c3
-rw-r--r--src/map/pc.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/map/map.c b/src/map/map.c
index b58033f1f..fb488cf15 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -1569,6 +1569,9 @@ int map_quit(struct map_session_data *sd)
if (sd->npc_timer_id != -1) //Cancel the event timer.
npc_timerevent_quit(sd);
+ if (sd->npc_id)
+ npc_event_dequeue(sd);
+
npc_script_event(sd, NPCE_LOGOUT);
//Unit_free handles clearing the player related data,
diff --git a/src/map/pc.c b/src/map/pc.c
index 0df3cda48..91017cf22 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -4005,6 +4005,9 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y
if(!sd->mapindex || map_mapname2ipport(mapindex,&ip,&port))
return 2;
+ if (sd->npc_id)
+ npc_event_dequeue(sd);
+ npc_script_event(sd, NPCE_LOGOUT);
//remove from map, THEN change x/y coordinates
unit_remove_map_pc(sd,clrtype);
sd->mapindex = mapindex;