Added equipment requirement option
This commit is contained in:
parent
96b8f233e5
commit
383beffa06
@ -36,3 +36,7 @@ AutoFish.AutoLootDelayMs = 120
|
||||
# Bag item required to activate autofish
|
||||
# Values: Item ID, if 0 then no item required
|
||||
AutoFish.RequiredItemId = 0
|
||||
|
||||
# Equipped item required to activate autofish
|
||||
# Values: Item ID, if 0 then no item required
|
||||
AutoFish.RequiredEquipId = 0
|
||||
|
||||
@ -22,6 +22,7 @@ namespace
|
||||
uint32 sRecastSpell = 18248;
|
||||
uint32 sAutoLootDelayMs = 120;
|
||||
uint32 sRequiredItemId = 0;
|
||||
uint32 sRequiredEquipId = 0;
|
||||
std::vector<uint32> sBobberEntries;
|
||||
|
||||
struct GuidHash { std::size_t operator()(ObjectGuid const& g) const noexcept { return std::hash<uint64>()(g.GetRawValue()); } };
|
||||
@ -46,13 +47,26 @@ namespace
|
||||
return out;
|
||||
}
|
||||
|
||||
bool HasEquippedItem(Player* plr, uint32 entry)
|
||||
{
|
||||
if (!entry) return true;
|
||||
for (uint8 slot = EQUIPMENT_SLOT_START; slot < EQUIPMENT_SLOT_END; ++slot)
|
||||
{
|
||||
if (Item* it = plr->GetItemByPos(INVENTORY_SLOT_BAG_0, slot))
|
||||
if (it->GetEntry() == entry)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool RequirementMet(Player* plr)
|
||||
{
|
||||
if (!plr)
|
||||
if (!plr) return false;
|
||||
if (sRequiredItemId && !plr->HasItemCount(sRequiredItemId, 1, false))
|
||||
return false;
|
||||
if (sRequiredItemId == 0)
|
||||
return true;
|
||||
return plr->HasItemCount(sRequiredItemId, 1, false);
|
||||
if (sRequiredEquipId && !HasEquippedItem(plr, sRequiredEquipId))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void ScheduleRecast(Player* plr)
|
||||
@ -168,6 +182,7 @@ public:
|
||||
sRecastSpell = sConfigMgr->GetOption<uint32>("AutoFish.RecastSpell", 18248u);
|
||||
sAutoLootDelayMs = sConfigMgr->GetOption<uint32>("AutoFish.AutoLootDelayMs", 120u);
|
||||
sRequiredItemId = sConfigMgr->GetOption<uint32>("AutoFish.RequiredItemId", 0u);
|
||||
sRequiredEquipId = sConfigMgr->GetOption<uint32>("AutoFish.RequiredEquipId", 0u);
|
||||
sBobberEntries = ParseEntryList(sConfigMgr->GetOption<std::string>("AutoFish.BobberEntries", "35591"));
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user