diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/chrif.c | 4 | ||||
-rw-r--r-- | src/map/map.c | 7 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/map/chrif.c b/src/map/chrif.c index b8990f87e..f4def8091 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -215,10 +215,8 @@ int chrif_save(struct map_session_data *sd, int flag) charsave_savechar(sd->char_id, &sd->status);
if (flag) //Character final saved.
sd->state.finalsave = 1;
- if (flag == 1) {
+ if (flag == 1)
chrif_char_offline(sd); //Tell char server that character went offline.
- map_quit_ack(sd); //Remove from memory.
- }
return 0;
}
#endif
diff --git a/src/map/map.c b/src/map/map.c index 70dc79cac..abcd26440 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -1706,6 +1706,13 @@ int map_quit(struct map_session_data *sd) { sd->st = NULL; sd->npc_id = 0; } +#ifndef TXT_ONLY + if(charsave_method) + { //Let player be free'd on closing the connection. + idb_remove(pc_db,sd->status.account_id); + return 0; + } +#endif if(sd->fd) { //Player will be free'd on save-ack. [Skotlex] if (session[sd->fd]) |