From 0ca62b97e0447db18069fe28a3e9badec35c6268 Mon Sep 17 00:00:00 2001 From: Aokromes Date: Sun, 27 Nov 2016 02:45:32 +0100 Subject: [PATCH] =?UTF-8?q?Core/Spells:=20Updated=20spell=20required=20ite?= =?UTF-8?q?ms=20check,=20EquippedItemInventor=E2=80=A6=20=E2=80=A6yTypeMas?= =?UTF-8?q?k=20should=20only=20be=20used=20for=20enchantments?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Entities/Item/Item.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index faef4ca3e7..268b2d8407 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -805,13 +805,13 @@ bool Item::IsFitToSpellRequirements(SpellInfo const* spellInfo) const { ItemTemplate const* proto = GetTemplate(); + bool const isEnchantSpell = spellInfo->HasEffect(SPELL_EFFECT_ENCHANT_ITEM) || spellInfo->HasEffect(SPELL_EFFECT_ENCHANT_ITEM_TEMPORARY) || spellInfo->HasEffect(SPELL_EFFECT_ENCHANT_ITEM_PRISMATIC); if (spellInfo->EquippedItemClass != -1) // -1 == any item class { // Special case - accept vellum for armor/weapon requirements - if ((spellInfo->EquippedItemClass == ITEM_CLASS_ARMOR || - spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON) && proto->IsVellum()) - if (spellInfo->IsAbilityOfSkillType(SKILL_ENCHANTING)) // only for enchanting spells - return true; + if (isEnchantSpell && ((spellInfo->EquippedItemClass == ITEM_CLASS_ARMOR && proto->IsArmorVellum()) + || (spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON && proto->IsWeaponVellum()))) + return true; if (spellInfo->EquippedItemClass != int32(proto->Class)) return false; // wrong item class @@ -823,7 +823,7 @@ bool Item::IsFitToSpellRequirements(SpellInfo const* spellInfo) const } } - if (spellInfo->EquippedItemInventoryTypeMask != 0) // 0 == any inventory type + if (isEnchantSpell && spellInfo->EquippedItemInventoryTypeMask != 0) // 0 == any inventory type { // Special case - accept weapon type for main and offhand requirements if (proto->InventoryType == INVTYPE_WEAPON &&