diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/map.c | 3 | ||||
-rw-r--r-- | src/map/pc.c | 3 |
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; |