diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index cfcdcc04e44..22b9ebd63f0 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -16968,7 +16968,7 @@ void Player::SendQuestComplete(Quest const* quest) const } } -void Player::SendQuestReward(Quest const* quest, uint32 XP) const +void Player::SendQuestReward(Quest const* quest, uint32 XP) { uint32 questId = quest->GetQuestId(); sGameEventMgr->HandleQuestComplete(questId); @@ -16996,8 +16996,13 @@ void Player::SendQuestReward(Quest const* quest, uint32 XP) const data << uint32(questId); data << uint32(quest->GetRewardSkillId()); // 4.x bonus skill id - data.WriteBit(0); // FIXME: unknown bits, common values sent - data.WriteBit(1); + bool canTakeNextRewardQuest = false; + if (uint32 nextQuestId = quest->GetNextQuestInChain()) + if (Quest const* quest = sObjectMgr->GetQuestTemplate(nextQuestId)) + canTakeNextRewardQuest = CanTakeQuest(quest, false); + + data.WriteBit(0); // FIXME: unknown bit, common values sent + data.WriteBit(canTakeNextRewardQuest); // Can take next reward quest data.FlushBits(); SendDirectMessage(&data); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 1cf0c542506..08a29fc89cb 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1441,7 +1441,7 @@ class TC_GAME_API Player : public Unit, public GridObject bool CanShareQuest(uint32 questId) const; void SendQuestComplete(Quest const* quest) const; - void SendQuestReward(Quest const* quest, uint32 XP) const; + void SendQuestReward(Quest const* quest, uint32 XP); void SendQuestFailed(uint32 questId, InventoryResult reason = EQUIP_ERR_OK) const; void SendQuestTimerFailed(uint32 questId) const; void SendCanTakeQuestResponse(QuestFailedReason msg) const;