diff options
| author | Shauren <shauren.trinity@gmail.com> | 2016-01-12 19:08:37 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-01-12 19:08:37 +0100 |
| commit | 3c3cde028cbcab64d463707e192fc333d8cadda0 (patch) | |
| tree | 063001766192e333c035a9009d89b889b963f7a9 /src/server/game/Entities | |
| parent | e203d78d2a6daa2dc28fc41769e416753a10c08c (diff) | |
Core/Quests: Fixed quest sharing
Closes #12304
Closes #16183
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Creature/GossipDef.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 8 |
2 files changed, 3 insertions, 9 deletions
diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp index be8553ed47a..711196f6a2b 100644 --- a/src/server/game/Entities/Creature/GossipDef.cpp +++ b/src/server/game/Entities/Creature/GossipDef.cpp @@ -408,10 +408,10 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, ObjectGuid npcGU data << questTitle; data << questDetails; data << questObjectives; - data << uint8(activateAccept ? 1 : 0); // auto finish + data << uint8(activateAccept ? 1 : 0); // CGQuestInfo::m_autoLaunched data << uint32(quest->GetFlags()); // 3.3.3 questFlags data << uint32(quest->GetSuggestedPlayers()); - data << uint8(0); // IsFinished? value is sent back to server in quest accept packet + data << uint8(0); // CGQuestInfo::m_startQuestCheat if (quest->HasFlag(QUEST_FLAGS_HIDDEN_REWARDS)) { diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 4fdf25e41c3..95e76a25763 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -15638,13 +15638,7 @@ QuestStatus Player::GetQuestStatus(uint32 quest_id) const bool Player::CanShareQuest(uint32 quest_id) const { Quest const* qInfo = sObjectMgr->GetQuestTemplate(quest_id); - if (qInfo && qInfo->HasFlag(QUEST_FLAGS_SHARABLE)) - { - QuestStatusMap::const_iterator itr = m_QuestStatus.find(quest_id); - if (itr != m_QuestStatus.end()) - return itr->second.Status == QUEST_STATUS_INCOMPLETE; - } - return false; + return qInfo && qInfo->HasFlag(QUEST_FLAGS_SHARABLE) && IsActiveQuest(quest_id); } void Player::SetQuestStatus(uint32 questId, QuestStatus status, bool update /*= true*/) |
