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
|
# Bag item required to activate autofish
|
||||||
# Values: Item ID, if 0 then no item required
|
# Values: Item ID, if 0 then no item required
|
||||||
AutoFish.RequiredItemId = 0
|
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 sRecastSpell = 18248;
|
||||||
uint32 sAutoLootDelayMs = 120;
|
uint32 sAutoLootDelayMs = 120;
|
||||||
uint32 sRequiredItemId = 0;
|
uint32 sRequiredItemId = 0;
|
||||||
|
uint32 sRequiredEquipId = 0;
|
||||||
std::vector<uint32> sBobberEntries;
|
std::vector<uint32> sBobberEntries;
|
||||||
|
|
||||||
struct GuidHash { std::size_t operator()(ObjectGuid const& g) const noexcept { return std::hash<uint64>()(g.GetRawValue()); } };
|
struct GuidHash { std::size_t operator()(ObjectGuid const& g) const noexcept { return std::hash<uint64>()(g.GetRawValue()); } };
|
||||||
@ -46,13 +47,26 @@ namespace
|
|||||||
return out;
|
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)
|
bool RequirementMet(Player* plr)
|
||||||
{
|
{
|
||||||
if (!plr)
|
if (!plr) return false;
|
||||||
|
if (sRequiredItemId && !plr->HasItemCount(sRequiredItemId, 1, false))
|
||||||
|
return false;
|
||||||
|
if (sRequiredEquipId && !HasEquippedItem(plr, sRequiredEquipId))
|
||||||
return false;
|
return false;
|
||||||
if (sRequiredItemId == 0)
|
|
||||||
return true;
|
return true;
|
||||||
return plr->HasItemCount(sRequiredItemId, 1, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScheduleRecast(Player* plr)
|
void ScheduleRecast(Player* plr)
|
||||||
@ -168,6 +182,7 @@ public:
|
|||||||
sRecastSpell = sConfigMgr->GetOption<uint32>("AutoFish.RecastSpell", 18248u);
|
sRecastSpell = sConfigMgr->GetOption<uint32>("AutoFish.RecastSpell", 18248u);
|
||||||
sAutoLootDelayMs = sConfigMgr->GetOption<uint32>("AutoFish.AutoLootDelayMs", 120u);
|
sAutoLootDelayMs = sConfigMgr->GetOption<uint32>("AutoFish.AutoLootDelayMs", 120u);
|
||||||
sRequiredItemId = sConfigMgr->GetOption<uint32>("AutoFish.RequiredItemId", 0u);
|
sRequiredItemId = sConfigMgr->GetOption<uint32>("AutoFish.RequiredItemId", 0u);
|
||||||
|
sRequiredEquipId = sConfigMgr->GetOption<uint32>("AutoFish.RequiredEquipId", 0u);
|
||||||
sBobberEntries = ParseEntryList(sConfigMgr->GetOption<std::string>("AutoFish.BobberEntries", "35591"));
|
sBobberEntries = ParseEntryList(sConfigMgr->GetOption<std::string>("AutoFish.BobberEntries", "35591"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user