diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Conditions/ConditionMgr.cpp | 9 | ||||
-rwxr-xr-x | src/server/game/Conditions/ConditionMgr.h | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index e2027e8884e..9391636c619 100755 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -61,7 +61,12 @@ bool Condition::Meets(WorldObject* object, WorldObject* invoker) case CONDITION_ITEM: { if (Player* player = object->ToPlayer()) - condMeets = (mConditionValue2 && player->HasItemCount(mConditionValue1, mConditionValue2)) || (!mConditionValue2 && !player->HasItemCount(mConditionValue1, mConditionValue2));//HasItemCount returns false if 0 count is used + { + // don't allow 0 items (it's checked during table load) + ASSERT(mConditionValue2); + bool checkBank = mConditionValue3 ? true : false; + condMeets = player->HasItemCount(mConditionValue1, mConditionValue2, checkBank); + } break; } case CONDITION_ITEM_EQUIPPED: @@ -1142,8 +1147,6 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) sLog->outErrorDb("Item condition has 0 set for item count in value2 (%u), skipped", cond->mConditionValue2); return false; } - if (cond->mConditionValue3) - sLog->outErrorDb("Item condition has useless data in value3 (%u)!", cond->mConditionValue3); break; } case CONDITION_ITEM_EQUIPPED: diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h index 19bdd929b58..1a666abbf2b 100755 --- a/src/server/game/Conditions/ConditionMgr.h +++ b/src/server/game/Conditions/ConditionMgr.h @@ -30,7 +30,7 @@ enum ConditionType { // value1 value2 value3 CONDITION_NONE = 0, // 0 0 0 always true CONDITION_AURA = 1, // spell_id effindex use target? true if player (or target, if value3) has aura of spell_id with effect effindex - CONDITION_ITEM = 2, // item_id count 0 true if has #count of item_ids + CONDITION_ITEM = 2, // item_id count bank true if has #count of item_ids (if 'bank' is set it searches in bank slots too) CONDITION_ITEM_EQUIPPED = 3, // item_id 0 0 true if has item_id equipped CONDITION_ZONEID = 4, // zone_id 0 0 true if in zone_id CONDITION_REPUTATION_RANK = 5, // faction_id min_rank 0 true if has min_rank for faction_id |