diff --git a/src/char_sql/char.c b/src/char_sql/char.c index 5ba6c6b29d..66bb68cecd 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -1216,7 +1216,7 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything memcpy(&p->quest_log[i].objectives[j], &tmp_quest_obj, sizeof(tmp_quest_obj)); p->quest_log[i].num_objectives = j+1; } - p->num_quests = i+1; + p->num_quests = i; strcat(t_msg, " quests"); SqlStmt_Free(stmt2); diff --git a/src/map/chrif.c b/src/map/chrif.c index cc75359efe..18c6486270 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -164,7 +164,6 @@ static bool chrif_auth_logout(TBL_PC* sd, enum sd_state state) if(sd->fd && state == ST_LOGOUT) { //Disassociate player, and free it after saving ack returns. [Skotlex] //fd info must not be lost for ST_MAPCHANGE as a final packet needs to be sent to the player. - chrif_char_offline(sd); if (session[sd->fd]) session[sd->fd]->session_data = NULL; sd->fd = 0; diff --git a/src/map/quest.c b/src/map/quest.c index 499d78d6c1..f01ff45266 100644 --- a/src/map/quest.c +++ b/src/map/quest.c @@ -35,6 +35,10 @@ //Send quest info on login int quest_pc_login(TBL_PC * sd) { + + if(sd->num_quests == 0) + return 1; + clif_send_questlog(sd); clif_send_questlog_info(sd); return 0;