From 78698463ff6b20255148fb647e9ad33a487bb09d Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 11 Sep 2022 14:13:10 +0200 Subject: Core/Spells: Remove all hardcoded restrictions for pick pocket spell effect and rely only on presence of pickpocket loot in db --- src/server/game/Spells/SpellInfo.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/server/game/Spells/SpellInfo.cpp') diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index b8802af30ab..a1c84545a6a 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -25,6 +25,7 @@ #include "Item.h" #include "ItemTemplate.h" #include "Log.h" +#include "LootMgr.h" #include "Map.h" #include "ObjectAccessor.h" #include "Pet.h" @@ -2132,10 +2133,12 @@ SpellCastResult SpellInfo::CheckTarget(WorldObject const* caster, WorldObject co if (HasAttribute(SPELL_ATTR0_CU_PICKPOCKET)) { - if (unitTarget->GetTypeId() == TYPEID_PLAYER) - return SPELL_FAILED_BAD_TARGETS; - else if ((unitTarget->GetCreatureTypeMask() & CREATURE_TYPEMASK_HUMANOID_OR_UNDEAD) == 0) - return SPELL_FAILED_TARGET_NO_POCKETS; + Creature const* targetCreature = unitTarget->ToCreature(); + if (!targetCreature) + return SPELL_FAILED_BAD_TARGETS; + + if (!LootTemplates_Pickpocketing.HaveLootFor(targetCreature->GetCreatureTemplate()->pickpocketLootId)) + return SPELL_FAILED_TARGET_NO_POCKETS; } // Not allow disarm unarmed player -- cgit v1.2.3