aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-01-12 19:41:27 +0100
committerShauren <shauren.trinity@gmail.com>2016-01-12 19:41:27 +0100
commit48940e292fdde1042f096cac507c2b1b54e8146b (patch)
tree93ae438d0bb86db1dee199be724ff835cbe167ee /src
parent3ea6324507ff77c6d911d9e84eafce8631dbfd59 (diff)
Core/Quests: Fixed party accept quests
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index faf6677c901..002adc19a86 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -133,7 +133,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvData)
CLOSE_GOSSIP_CLEAR_DIVIDER();
return;
}
- if (_player->GetGroup() != playerQuestObject->GetGroup() || (_player != playerQuestObject && !playerQuestObject->GetGroup()))
+ if (!_player->IsInSameRaidWith(playerQuestObject))
{
CLOSE_GOSSIP_CLEAR_DIVIDER();
return;
@@ -468,17 +468,22 @@ void WorldSession::HandleQuestConfirmAccept(WorldPacket& recvData)
if (!_player->IsInSameRaidWith(originalPlayer))
return;
- if (!originalPlayer->CanShareQuest(questId))
+ if (!originalPlayer->IsActiveQuest(questId))
return;
if (!_player->CanTakeQuest(quest, true))
return;
if (_player->CanAddQuest(quest, true))
+ {
_player->AddQuestAndCheckCompletion(quest, NULL); // NULL, this prevent DB script from duplicate running
- _player->SetDivider(ObjectGuid::Empty);
+ if (quest->GetSrcSpell() > 0)
+ _player->CastSpell(_player, quest->GetSrcSpell(), true);
+ }
}
+
+ _player->SetDivider(ObjectGuid::Empty);
}
void WorldSession::HandleQuestgiverCompleteQuest(WorldPacket& recvData)