diff --git a/conf/leech.conf.dist b/conf/leech.conf.dist index 8571f08..496c1a7 100644 --- a/conf/leech.conf.dist +++ b/conf/leech.conf.dist @@ -30,3 +30,11 @@ Leech.DungeonsOnly = 1 # Leech.Amount = 0.05 +# +# Leech.RequiredItemId +# Description: Allows setting an item required in bags to activate leech. +# Default: 0 - No Item Required +# xxxxx - Specify the item ID +# + +Leech.RequiredItemId = 0 diff --git a/src/Leech.cpp b/src/Leech.cpp index 582e1e6..e56a1f9 100644 --- a/src/Leech.cpp +++ b/src/Leech.cpp @@ -23,7 +23,16 @@ public: } Player* player = isPet ? attacker->GetOwner()->ToPlayer() : attacker->ToPlayer(); - if (sConfigMgr->GetOption("Leech.DungeonsOnly", true) && !(player->GetMap()->IsDungeon())) + +uint32 requiredItem = sConfigMgr->GetOption("Leech.RequiredItemId", 0u); +if (requiredItem != 0) +{ + if (!player || !player->HasItemCount(requiredItem, 1, false)) + { + return; + } +} +if (sConfigMgr->GetOption("Leech.DungeonsOnly", true) && !(player->GetMap()->IsDungeon())) { return; }