diff options
author | Inkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-07-26 09:52:08 +0000 |
---|---|---|
committer | Inkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-07-26 09:52:08 +0000 |
commit | 53ba0c7362dffa576c58f7dc2decbeab0269d67b (patch) | |
tree | 4c5848b6868fc5c3427d8f4f168e4383f20a6897 /src | |
parent | e9a090774cb956ebb122698374be2a5360dd8b00 (diff) | |
download | hercules-53ba0c7362dffa576c58f7dc2decbeab0269d67b.tar.gz hercules-53ba0c7362dffa576c58f7dc2decbeab0269d67b.tar.bz2 hercules-53ba0c7362dffa576c58f7dc2decbeab0269d67b.tar.xz hercules-53ba0c7362dffa576c58f7dc2decbeab0269d67b.zip |
Fixed mob counts and quest states are not saved properly sometimes
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13964 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/common/mmo.h | 2 | ||||
-rw-r--r-- | src/map/pc.h | 1 | ||||
-rw-r--r-- | src/map/quest.c | 10 | ||||
-rw-r--r-- | src/map/script.c | 1 |
4 files changed, 7 insertions, 7 deletions
diff --git a/src/common/mmo.h b/src/common/mmo.h index 029f5e115..61c2f5217 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -135,7 +135,7 @@ struct quest { int mob[MAX_QUEST_OBJECTIVES]; int count[MAX_QUEST_OBJECTIVES]; quest_state state; - + bool save_quest; int num_objectives; }; diff --git a/src/map/pc.h b/src/map/pc.h index 925db7184..c219c8f45 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -380,7 +380,6 @@ struct map_session_data { //Quest log system [Kevin] [Inkfish] int num_quests; int avail_quests; - bool save_quest[MAX_QUEST_DB]; struct quest quest_log[MAX_QUEST_DB]; // temporary debug [flaviojs] diff --git a/src/map/quest.c b/src/map/quest.c index f146ca325..360cebd29 100644 --- a/src/map/quest.c +++ b/src/map/quest.c @@ -184,7 +184,7 @@ void quest_update_objective(TBL_PC * sd, int mob) if( sd->quest_log[i].mob[j] == mob ) { sd->quest_log[i].count[j]++; - sd->save_quest[i] = true; + sd->quest_log[i].save_quest = true; //clif_send_quest_info(sd, &sd->quest_log[i]); //TODO: Figure out the real packet [Inkfish] //break; } @@ -207,7 +207,7 @@ int quest_update_status(TBL_PC * sd, int quest_id, int status) if( status != Q_COMPLETE ) { clif_send_quest_status(sd, quest_id, (bool)status); - sd->save_quest[i] = true; + sd->quest_log[i].save_quest = true; } else { @@ -220,7 +220,7 @@ int quest_update_status(TBL_PC * sd, int quest_id, int status) memcpy(&sd->quest_log[i], &sd->quest_log[sd->avail_quests],sizeof(struct quest)); memcpy(&sd->quest_log[sd->avail_quests], &tmp_quest,sizeof(struct quest)); - sd->save_quest[sd->avail_quests] = true; + sd->quest_log[sd->avail_quests].save_quest = true; } return 0; @@ -231,7 +231,7 @@ int quest_save(TBL_PC * sd) int i; for( i = 0; i < sd->num_quests; i++ ) - if( sd->save_quest[i] ) + if( sd->quest_log[i].save_quest ) intif_quest_save(sd->status.char_id, &sd->quest_log[i]); return 0; @@ -253,7 +253,7 @@ int quest_save_ack(int char_id, int quest_id, int success) return -1; if(success) - sd->save_quest[i] = false; + sd->quest_log[i].save_quest = false; else { ShowError("Quest %d for character %d could not be saved!\n", quest_id, char_id); diff --git a/src/map/script.c b/src/map/script.c index fd1fa5b0e..a2a60c13d 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -13447,6 +13447,7 @@ BUILDIN_FUNC(completequest) TBL_PC * sd = script_rid2sd(st); quest_update_status(sd, script_getnum(st, 2), Q_COMPLETE); + intif_quest_save(sd->status.char_id, &sd->quest_log[sd->avail_quests]); return 0; } |