[9927] Support new raid allowed quest types.

This commit is contained in:
VladimirMangos 2010-05-18 15:36:09 +04:00
parent 611b53fab8
commit d5c7e7b7d2
4 changed files with 6 additions and 6 deletions

View file

@ -14271,7 +14271,7 @@ void Player::KilledMonsterCredit( uint32 entry, ObjectGuid guid )
continue; continue;
// just if !ingroup || !noraidgroup || raidgroup // just if !ingroup || !noraidgroup || raidgroup
QuestStatusData& q_status = mQuestStatus[questid]; 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) ) if( qInfo->HasFlag( QUEST_MANGOS_FLAGS_KILL_OR_CAST) )
{ {
@ -14514,8 +14514,7 @@ bool Player::HasQuestForItem( uint32 itemid ) const
continue; continue;
// hide quest if player is in raid-group and quest is no raid quest // hide quest if player is in raid-group and quest is no raid quest
if (GetGroup() && GetGroup()->isRaidGroup() && qinfo->GetType() != QUEST_TYPE_RAID if (GetGroup() && GetGroup()->isRaidGroup() && qinfo->IsAllowedInRaid() && !InBattleGround())
&& !InBattleGround())
continue; continue;
// There should be no mixed ReqItem/ReqSource drop // There should be no mixed ReqItem/ReqSource drop
@ -19805,7 +19804,7 @@ bool Player::HasQuestForGO(int32 GOId) const
if(!qinfo) if(!qinfo)
continue; continue;
if(GetGroup() && GetGroup()->isRaidGroup() && qinfo->GetType() != QUEST_TYPE_RAID) if(GetGroup() && GetGroup()->isRaidGroup() && qinfo->IsAllowedInRaid())
continue; continue;
for (int j = 0; j < QUEST_OBJECTIVES_COUNT; ++j) for (int j = 0; j < QUEST_OBJECTIVES_COUNT; ++j)

View file

@ -242,6 +242,7 @@ class Quest
bool IsWeekly() const { return QuestFlags & QUEST_FLAGS_WEEKLY; } bool IsWeekly() const { return QuestFlags & QUEST_FLAGS_WEEKLY; }
bool IsDailyOrWeekly() const { return QuestFlags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY); } bool IsDailyOrWeekly() const { return QuestFlags & (QUEST_FLAGS_DAILY | QUEST_FLAGS_WEEKLY); }
bool IsAutoAccept() const { return QuestFlags & QUEST_FLAGS_AUTO_ACCEPT; } 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 // multiple values
std::string ObjectiveText[QUEST_OBJECTIVES_COUNT]; std::string ObjectiveText[QUEST_OBJECTIVES_COUNT];

View file

@ -408,7 +408,7 @@ void WorldSession::HandleQuestConfirmAccept(WorldPacket& recv_data)
if (!pOriginalPlayer) if (!pOriginalPlayer)
return; return;
if (pQuest->GetType() == QUEST_TYPE_RAID) if (pQuest->IsAllowedInRaid())
{ {
if (!_player->IsInSameRaidWith(pOriginalPlayer)) if (!_player->IsInSameRaidWith(pOriginalPlayer))
return; return;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "9926" #define REVISION_NR "9927"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__