diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 7eaf696e6..24790d47f 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -14271,7 +14271,7 @@ void Player::KilledMonsterCredit( uint32 entry, ObjectGuid guid ) continue; // just if !ingroup || !noraidgroup || raidgroup QuestStatusData& q_status = mQuestStatus[questid]; - if( q_status.m_status == QUEST_STATUS_INCOMPLETE && (!GetGroup() || !GetGroup()->isRaidGroup() || qInfo->GetType() == QUEST_TYPE_RAID)) + if( q_status.m_status == QUEST_STATUS_INCOMPLETE && (!GetGroup() || !GetGroup()->isRaidGroup() || qInfo->IsAllowedInRaid()) { if( qInfo->HasFlag( QUEST_MANGOS_FLAGS_KILL_OR_CAST) ) { @@ -14514,8 +14514,7 @@ bool Player::HasQuestForItem( uint32 itemid ) const continue; // hide quest if player is in raid-group and quest is no raid quest - if (GetGroup() && GetGroup()->isRaidGroup() && qinfo->GetType() != QUEST_TYPE_RAID - && !InBattleGround()) + if (GetGroup() && GetGroup()->isRaidGroup() && qinfo->IsAllowedInRaid() && !InBattleGround()) continue; // There should be no mixed ReqItem/ReqSource drop @@ -19805,7 +19804,7 @@ bool Player::HasQuestForGO(int32 GOId) const if(!qinfo) continue; - if(GetGroup() && GetGroup()->isRaidGroup() && qinfo->GetType() != QUEST_TYPE_RAID) + if(GetGroup() && GetGroup()->isRaidGroup() && qinfo->IsAllowedInRaid()) continue; for (int j = 0; j < QUEST_OBJECTIVES_COUNT; ++j) diff --git a/src/game/QuestDef.h b/src/game/QuestDef.h index 0fe16eec7..8639f9c52 100644 --- a/src/game/QuestDef.h +++ b/src/game/QuestDef.h @@ -242,6 +242,7 @@ class Quest bool IsWeekly() const { return QuestFlags & QUEST_FLAGS_WEEKLY; } bool IsDailyOrWeekly() const { return QuestFlags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY); } bool IsAutoAccept() const { return QuestFlags & QUEST_FLAGS_AUTO_ACCEPT; } + bool IsAllowedInRaid() const { return Type == QUEST_TYPE_RAID || Type == QUEST_TYPE_RAID_10 || Type == QUEST_TYPE_RAID_25; } // multiple values std::string ObjectiveText[QUEST_OBJECTIVES_COUNT]; diff --git a/src/game/QuestHandler.cpp b/src/game/QuestHandler.cpp index d4fccd995..7520775c1 100644 --- a/src/game/QuestHandler.cpp +++ b/src/game/QuestHandler.cpp @@ -408,7 +408,7 @@ void WorldSession::HandleQuestConfirmAccept(WorldPacket& recv_data) if (!pOriginalPlayer) return; - if (pQuest->GetType() == QUEST_TYPE_RAID) + if (pQuest->IsAllowedInRaid()) { if (!_player->IsInSameRaidWith(pOriginalPlayer)) return; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index c53d0fb0d..47686f5f6 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9926" + #define REVISION_NR "9927" #endif // __REVISION_NR_H__