|
Регистрация | Файлы | Правила | Альбомы | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
Отвергнутые патчи Патчи, отвергнутые от приёма в 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 |
22.12.2010, 13:32 | #2 | |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Насколько следует из комментриев дроп этой вещи вообще не связанна должна быть с квестом - да она используется при создании квестового итема, но и только.
Фикс базы (для UDB) от NoFantasy: Цитата:
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
|
22.12.2010, 14:01 | #3 |
Администратор
|
В кеше квеста ReqSourceId итемы указаны.
Итемы выпадают при наличии квеста, поэтому шанс квестовый. Если шанс неквестовый, как в удб, то зачем в кеше указывается ReqSourdeCount? Получается, что при наличии квеста можно собрать намного меньше итемов, чем без него. Зачем тогда вообще поля ReqSourceId? Или речь идет о condition_value1 и condition_value2 в `creature_loot_template`? В таком случае на каждое сочетание итем-нпц надо создавать по 2 строки: 8 CONDITION_QUESTREWARDED Player must have completed a quest first 9 CONDITION_QUESTTAKEN Players must have the quest in the quest log and not completed yet ? |
22.12.2010, 17:28 | #4 | |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Цитата:
Он требуется для квеста, но выпадает когда попало. Не ставте ему квестовый шанс как предлагает NoFantasy и все...
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
|
22.12.2010, 18:42 | #5 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
Скоро точно скажу, падает ли без квеста |
|
22.12.2010, 20:30 | #6 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
ну в коментах английских к нему это написано.
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|