aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Conditions/ConditionMgr.cpp7
-rwxr-xr-xsrc/server/game/Conditions/ConditionMgr.h3
2 files changed, 9 insertions, 1 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 5dc60f909f0..ebfdb2914cc 100755
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -90,6 +90,12 @@ bool Condition::Meets(Player * player, Unit* invoker)
condMeets = (status == QUEST_STATUS_INCOMPLETE);
break;
}
+ case CONDITION_QUEST_COMPLETE:
+ {
+ QuestStatus status = player->GetQuestStatus(mConditionValue1);
+ condMeets = (status == QUEST_STATUS_COMPLETE);
+ break;
+ }
case CONDITION_QUEST_NONE:
{
QuestStatus status = player->GetQuestStatus(mConditionValue1);
@@ -1116,6 +1122,7 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
case CONDITION_QUESTREWARDED:
case CONDITION_QUESTTAKEN:
case CONDITION_QUEST_NONE:
+ case CONDITION_QUEST_COMPLETE:
{
Quest const *Quest = sObjectMgr.GetQuestTemplate(cond->mConditionValue1);
if (!Quest)
diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h
index da3aa308c9e..5e670f882dd 100755
--- a/src/server/game/Conditions/ConditionMgr.h
+++ b/src/server/game/Conditions/ConditionMgr.h
@@ -55,7 +55,8 @@ enum ConditionType
CONDITION_SPELL = 25, // spell_id 0 +referenceID true if knows spell
CONDITION_NOITEM = 26, // item_id bank +referenceID true if player does not have any of the item (if 'bank' is set it searches in bank slots too)
CONDITION_LEVEL = 27, // level opt +referenceID true if player's level is equal to param1 (param2 can modify the statement)
- CONDITION_MAX = 28 // MAX
+ CONDITION_QUEST_COMPLETE = 28, // quest_id 0 +referenceID true if player has quest_id with all objectives complete, but not yet rewarded
+ CONDITION_MAX = 29 // MAX
};
enum LevelConditionType