From d8ac42439a45aefa64f65f1b7c894885af3d419d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E4=BD=A9=E8=8C=B9?= Date: Thu, 16 Mar 2023 11:07:27 -0600 Subject: [PATCH] Fix crash when selecting quest reward --- .../actions/TalkToQuestGiverAction.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/strategy/actions/TalkToQuestGiverAction.cpp b/src/strategy/actions/TalkToQuestGiverAction.cpp index 5f6a0064..ad914d04 100644 --- a/src/strategy/actions/TalkToQuestGiverAction.cpp +++ b/src/strategy/actions/TalkToQuestGiverAction.cpp @@ -143,10 +143,18 @@ void TalkToQuestGiverAction::RewardMultipleItem(Quest const* quest, WorldObject* { //Pick the first item of the best rewards. bestIds = BestRewards(quest); - ItemTemplate const* item = sObjectMgr->GetItemTemplate(quest->RewardChoiceItemId[*bestIds.begin()]); - bot->RewardQuest(quest, *bestIds.begin(), questGiver, true); + if (!bestIds.empty()) + { + ItemTemplate const* item = sObjectMgr->GetItemTemplate(quest->RewardChoiceItemId[*bestIds.begin()]); + bot->RewardQuest(quest, *bestIds.begin(), questGiver, true); + out << "Rewarded " << ChatHelper::FormatItem(item); + } + else + { + out << "Unable to find suitable reward. Asking for help...."; + AskToSelectReward(quest, out, true); + } - out << "Rewarded " << chat->FormatItem(item); } else if (sPlayerbotAIConfig->autoPickReward == "no") { @@ -157,7 +165,7 @@ void TalkToQuestGiverAction::RewardMultipleItem(Quest const* quest, WorldObject* { //Try to pick the usable item. If multiple list usable rewards. bestIds = BestRewards(quest); - if (bestIds.size() > 0) + if (!bestIds.empty()) { AskToSelectReward(quest, out, true); } @@ -167,7 +175,7 @@ void TalkToQuestGiverAction::RewardMultipleItem(Quest const* quest, WorldObject* ItemTemplate const* item = sObjectMgr->GetItemTemplate(quest->RewardChoiceItemId[*bestIds.begin()]); bot->RewardQuest(quest, *bestIds.begin(), questGiver, true); - out << "Rewarded " << chat->FormatItem(item); + out << "Rewarded " << ChatHelper::FormatItem(item); } } }