|
@@ -244,7 +244,7 @@ void quest_update_objective(TBL_PC *sd, int mob_id)
|
|
for( i = 0; i < sd->avail_quests; i++ ) {
|
|
for( i = 0; i < sd->avail_quests; i++ ) {
|
|
struct quest_db *qi = NULL;
|
|
struct quest_db *qi = NULL;
|
|
|
|
|
|
- if( sd->quest_log[i].state != Q_ACTIVE ) // Skip inactive quests
|
|
|
|
|
|
+ if( sd->quest_log[i].state == Q_COMPLETE ) // Skip complete quests
|
|
continue;
|
|
continue;
|
|
|
|
|
|
qi = quest_search(sd->quest_log[i].quest_id);
|
|
qi = quest_search(sd->quest_log[i].quest_id);
|
|
@@ -356,6 +356,8 @@ int quest_check(TBL_PC *sd, int quest_id, enum quest_check_type type)
|
|
|
|
|
|
switch( type ) {
|
|
switch( type ) {
|
|
case HAVEQUEST:
|
|
case HAVEQUEST:
|
|
|
|
+ if (sd->quest_log[i].state == Q_INACTIVE) // Player has the quest but it's in the inactive state; send it as Q_ACTIVE.
|
|
|
|
+ return 1;
|
|
return sd->quest_log[i].state;
|
|
return sd->quest_log[i].state;
|
|
case PLAYTIME:
|
|
case PLAYTIME:
|
|
return (sd->quest_log[i].time < (unsigned int)time(NULL) ? 2 : sd->quest_log[i].state == Q_COMPLETE ? 1 : 0);
|
|
return (sd->quest_log[i].time < (unsigned int)time(NULL) ? 2 : sd->quest_log[i].state == Q_COMPLETE ? 1 : 0);
|