mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-31 01:23:47 +00:00
fix(Core/Quests): Fix exploit in icc reputation rings (#15092)
This commit is contained in:
committed by
GitHub
parent
0135207765
commit
725aa27d7e
@@ -664,16 +664,22 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
|
|||||||
|
|
||||||
for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
|
for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
|
||||||
{
|
{
|
||||||
if (sObjectMgr->GetItemTemplate(quest->RequiredItemId[i]))
|
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RequiredItemId[i]))
|
||||||
{
|
{
|
||||||
DestroyItemCount(quest->RequiredItemId[i], quest->RequiredItemCount[i], true, true);
|
if (quest->RequiredItemCount[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM && !quest->IsRepeatable() && !HasQuestForItem(quest->RequiredItemId[i], quest_id, true))
|
||||||
|
DestroyItemCount(quest->RequiredItemId[i], 9999, true);
|
||||||
|
else
|
||||||
|
DestroyItemCount(quest->RequiredItemId[i], quest->RequiredItemCount[i], true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (uint8 i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i)
|
for (uint8 i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i)
|
||||||
{
|
{
|
||||||
if (sObjectMgr->GetItemTemplate(quest->ItemDrop[i]))
|
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->ItemDrop[i]))
|
||||||
{
|
{
|
||||||
DestroyItemCount(quest->ItemDrop[i], quest->ItemDropQuantity[i], true, true);
|
if (quest->ItemDropQuantity[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM && !quest->IsRepeatable() && !HasQuestForItem(quest->ItemDrop[i], quest_id))
|
||||||
|
DestroyItemCount(quest->ItemDrop[i], 9999, true);
|
||||||
|
else
|
||||||
|
DestroyItemCount(quest->ItemDrop[i], quest->ItemDropQuantity[i], true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user