|
Отвергнутые патчи Патчи, отвергнутые от приёма в GIT |
|
Опции темы | Поиск в этой теме | Опции просмотра |
21.12.2010, 21:11 | #1 |
Администратор
|
[patch][ReqSourceId]Дроп вспомогательных итемов
На текущий момент при комплите квеста вспомогательные итемы, указанные в ReqSourceId, перестают выпадать, а должны.
Пример: http://ru.wowhead.com/quest=12068 (также в других квестах цепочки). У квеста стоит требование принести основной итем, но при этом надо собрать 5 вспомогательных итемов, чтобы игрок мог наложить на себя ауру, увидеть квестгивера и сдать квест. Сейчас при взятии квестового итема нельзя выбить вспомогательные и сдать квест. Патч: Код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 8cf5741..bcaad71 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -14765,36 +14765,37 @@ void Player::ReputationChanged(FactionEntry const* factionEntry ) bool Player::HasQuestForItem( uint32 itemid ) const { - for( int i = 0; i < MAX_QUEST_LOG_SIZE; ++i ) + for (int i = 0; i < MAX_QUEST_LOG_SIZE; ++i) { uint32 questid = GetQuestSlotQuestId(i); - if ( questid == 0 ) + if (questid == 0) continue; QuestStatusMap::const_iterator qs_itr = mQuestStatus.find(questid); - if(qs_itr == mQuestStatus.end()) + if (qs_itr == mQuestStatus.end()) continue; QuestStatusData const& q_status = qs_itr->second; - if (q_status.m_status == QUEST_STATUS_INCOMPLETE) + if (q_status.m_status == QUEST_STATUS_INCOMPLETE || q_status.m_status == QUEST_STATUS_COMPLETE) { Quest const* qinfo = sObjectMgr.GetQuestTemplate(questid); - if(!qinfo) - continue; - - // hide quest if player is in raid-group and quest is no raid quest - if (GetGroup() && GetGroup()->isRaidGroup() && !qinfo->IsAllowedInRaid() && !InBattleGround()) + if (!qinfo) continue; - // There should be no mixed ReqItem/ReqSource drop - // This part for ReqItem drop - for (int j = 0; j < QUEST_ITEM_OBJECTIVES_COUNT; ++j) + if (q_status.m_status == QUEST_STATUS_INCOMPLETE) { - if(itemid == qinfo->ReqItemId[j] && q_status.m_itemcount[j] < qinfo->ReqItemCount[j] ) - return true; + // hide quest if player is in raid-group and quest is no raid quest + if (GetGroup() && GetGroup()->isRaidGroup() && !qinfo->IsAllowedInRaid() && !InBattleGround()) + continue; + + // There should be no mixed ReqItem drop + for (int j = 0; j < QUEST_ITEM_OBJECTIVES_COUNT; ++j) + { + if (itemid == qinfo->ReqItemId[j] && q_status.m_itemcount[j] < qinfo->ReqItemCount[j]) + return true; + } } - // This part - for ReqSource for (int j = 0; j < QUEST_SOURCE_ITEM_IDS_COUNT; ++j) { // examined item is a source item |