mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-29 13:22:48 +01:00
Core/Quests: Implemented handling all QuestPackageItem types
Closes #18209
This commit is contained in:
@@ -282,14 +282,25 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPackets::Quest::Quest
|
||||
if (questPackageItem->ItemID != uint32(packet.ItemChoiceID))
|
||||
continue;
|
||||
|
||||
rewardProto = sObjectMgr->GetItemTemplate(questPackageItem->ItemID);
|
||||
if (rewardProto)
|
||||
if (_player->CanSelectQuestPackageItem(questPackageItem))
|
||||
{
|
||||
if (rewardProto->IsUsableBySpecialization(_player))
|
||||
{
|
||||
itemValid = true;
|
||||
break;
|
||||
}
|
||||
itemValid = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!itemValid)
|
||||
{
|
||||
if (std::vector<QuestPackageItemEntry const*> const* questPackageItems = sDB2Manager.GetQuestPackageItemsFallback(quest->GetQuestPackageID()))
|
||||
{
|
||||
for (QuestPackageItemEntry const* questPackageItem : *questPackageItems)
|
||||
{
|
||||
if (questPackageItem->ItemID != uint32(packet.ItemChoiceID))
|
||||
continue;
|
||||
|
||||
itemValid = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user