diff options
-rwxr-xr-x | src/server/game/Conditions/ConditionMgr.cpp | 14 | ||||
-rwxr-xr-x | src/server/game/Conditions/ConditionMgr.h | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 7d05c8afade..a6626ca62b2 100755 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -176,6 +176,11 @@ bool Condition::Meets(Player * player, Unit* invoker) } break; } + case CONDITION_DRUNKENSTATE: + { + condMeets = (uint32)Player::GetDrunkenstateByValue(player->GetDrunkValue()) >= mConditionValue1; + break; + } default: condMeets = false; refId = 0; @@ -1270,6 +1275,15 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) } break; } + case CONDITION_DRUNKENSTATE: + { + if (cond->mConditionValue1 > DRUNKEN_SMASHED) + { + sLog.outErrorDb("DrunkState condition has invalid state (%u), skipped", cond->mConditionValue1); + return false; + } + break; + } case CONDITION_AREAID: case CONDITION_INSTANCE_DATA: break; diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h index 871fa4db868..939739c7f21 100755 --- a/src/server/game/Conditions/ConditionMgr.h +++ b/src/server/game/Conditions/ConditionMgr.h @@ -37,7 +37,7 @@ enum ConditionType CONDITION_SKILL = 7, // skill_id skill_value +referenceID true if has skill_value for skill_id CONDITION_QUESTREWARDED = 8, // quest_id 0 +referenceID true if quest_id was rewarded before CONDITION_QUESTTAKEN = 9, // quest_id 0, +referenceID true while quest active - CONDITION_UNUSED_1 = 10, // currently unused + CONDITION_DRUNKENSTATE = 10, // DrunkenState 0, +referenceID true if player is drunk enough CONDITION_NO_AURA = 11, // spell_id effindex +referenceID true if does not have aura of spell_id with effect effindex CONDITION_ACTIVE_EVENT = 12, // event_id 0 +referenceID true if event is active CONDITION_INSTANCE_DATA = 13, // entry data +referenceID true if data is set in current instance |