Меню должно отображаться, если квест не на руках и никогда не сдавался:
Код:
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
index c8681f9..98efb7c 100644
--- a/src/game/ObjectMgr.cpp
+++ b/src/game/ObjectMgr.cpp
@@ -8108,6 +8108,12 @@ bool PlayerCondition::Meets(Player const * player) const
}
return false;
}
+ case CONDITION_QUEST_NONE:
+ {
+ if (!player->IsCurrentQuest(value1) && !player->GetQuestRewardStatus(value1))
+ return true;
+ return false;
+ }
default:
return false;
}
@@ -8219,6 +8225,7 @@ bool PlayerCondition::IsValid(ConditionType condition, uint32 value1, uint32 val
case CONDITION_QUESTREWARDED:
case CONDITION_QUESTTAKEN:
case CONDITION_QUESTAVAILABLE:
+ case CONDITION_QUEST_NONE:
{
Quest const *Quest = sObjectMgr.GetQuestTemplate(value1);
if (!Quest)
diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h
index a3e5e65..83bd582 100644
--- a/src/game/ObjectMgr.h
+++ b/src/game/ObjectMgr.h
@@ -607,9 +607,10 @@ enum ConditionType
CONDITION_QUESTAVAILABLE = 19, // quest_id 0 for case when loot/gossip possible only if player can start quest
CONDITION_ACHIEVEMENT = 20, // ach_id 0, 1 (0: has achievement, 1: hasn't achievement) for player
CONDITION_ACHIEVEMENT_REALM = 21, // ach_id 0, 1 (0: has achievement, 1: hasn't achievement) for server
+ CONDITION_QUEST_NONE = 22 // quest_id 0 (quest did not take and not rewarded)
};
-#define MAX_CONDITION 22 // maximum value in ConditionType enum
+#define MAX_CONDITION 23 // maximum value in ConditionType enum
struct PlayerCondition
{