diff options
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | src/map/quest.c | 20 |
2 files changed, 10 insertions, 12 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 1bbd73c5d..366025bef 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -1,5 +1,7 @@ Date Added +2011/04/20 + * Fixed quest_check checking exactly 3 quest objectives instead of MAX_QUEST_OBJECTIVES (since r13959). [Gepard] 2011/04/17 * Updated packet for the view players' equip feature for 2010-11-24aRagexeRE+ and made it support robes (follow up to r14797). [Ai4rei] - Fixed spawn/walking packets using wrong variable for shifting buffer reference (since r14797). diff --git a/src/map/quest.c b/src/map/quest.c index 3e43fcda6..4960d8a93 100644 --- a/src/map/quest.c +++ b/src/map/quest.c @@ -279,17 +279,13 @@ int quest_check(TBL_PC * sd, int quest_id, quest_check_type type) return (sd->quest_log[i].time < (unsigned int)time(NULL) ? 2 : sd->quest_log[i].state == Q_COMPLETE ? 1 : 0); case HUNTING: { - int j = sd->quest_index[i]; - - if( sd->quest_log[i].count[0] < quest_db[j].count[0] || sd->quest_log[i].count[1] < quest_db[j].count[1] || sd->quest_log[i].count[2] < quest_db[j].count[2] ) - { - if( sd->quest_log[i].time < (unsigned int)time(NULL) ) - return 1; - - return 0; - } - - return 2; + int j; + ARR_FIND(0, MAX_QUEST_OBJECTIVES, j, sd->quest_log[i].count[j] < quest_db[sd->quest_index[i]].count[j]); + if( j == MAX_QUEST_OBJECTIVES ) + return 2; + if( sd->quest_log[i].time < (unsigned int)time(NULL) ) + return 1; + return 0; } default: ShowError("quest_check_quest: Unknown parameter %d",type); @@ -334,7 +330,7 @@ int quest_read_db(void) continue; else { - ShowError("quest_read_db: insufficient columes in line %s\n", line); + ShowError("quest_read_db: insufficient columns in line %s\n", line); continue; } } |