aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/QuestHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index c549a49adf3..85254d068b7 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -555,7 +555,10 @@ void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
Group* group = sender->GetGroup();
if (!group)
+ {
+ sender->SendPushToPartyResponse(sender, QUEST_PARTY_MSG_NOT_IN_PARTY);
return;
+ }
for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next())
{
@@ -576,6 +579,12 @@ void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
continue;
}
+ if (!receiver->SatisfyQuestDay(quest, false))
+ {
+ sender->SendPushToPartyResponse(receiver, QUEST_PARTY_MSG_NOT_ELIGIBLE_TODAY);
+ continue;
+ }
+
if (!receiver->CanTakeQuest(quest, false))
{
sender->SendPushToPartyResponse(receiver, QUEST_PARTY_MSG_CANT_TAKE_QUEST);
@@ -618,21 +627,17 @@ void WorldSession::HandleQuestPushResult(WorldPacket& recvPacket)
TC_LOG_DEBUG("network", "WORLD: Received MSG_QUEST_PUSH_RESULT");
- if (_player->GetDivider())
+ if (!_player->GetDivider())
+ return;
+
+ if (_player->GetDivider() == guid)
{
- if (_player->GetDivider() == guid)
- {
- Player* player = ObjectAccessor::FindPlayer(_player->GetDivider());
- if (player)
- {
- WorldPacket data(MSG_QUEST_PUSH_RESULT, 8 + 4 + 1);
- data << uint64(_player->GetGUID());
- data << uint8(msg); // valid values: 0-8
- player->SendDirectMessage(&data);
- }
- }
- _player->SetDivider(ObjectGuid::Empty);
+ Player* player = ObjectAccessor::FindPlayer(guid);
+ if (player)
+ player->SendPushToPartyResponse(_player, msg);
}
+
+ _player->SetDivider(ObjectGuid::Empty);
}
void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket*/)