|
Патчи на рассмотрении Рассматриваемые к принятию патчи |
|
Опции темы | Поиск в этой теме | Опции просмотра |
11.06.2012, 15:00 | #1 | |
YTDB Dev
Регистрация: 06.03.2010
Сообщений: 259
Сказал(а) спасибо: 28
Поблагодарили 280 раз(а) в 136 сообщениях
|
[patch] Модификация CONDITION_QUEST_NONE
Возможный патч:
Код:
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 180142b..762372c 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -7605,8 +7605,12 @@ bool PlayerCondition::Meets(Player const * player) const } case CONDITION_QUEST_NONE: { - if (!player->IsCurrentQuest(m_value1) && !player->GetQuestRewardStatus(m_value1)) - return true; + switch(m_value2) + { + case 0: return !player->IsCurrentQuest(m_value1) && !player->GetQuestRewardStatus(m_value1); + case 1: return !player->IsCurrentQuest(m_value1); + case 2: return !player->GetQuestRewardStatus(m_value1); + } return false; } case CONDITION_ITEM_WITH_BANK: @@ -7819,7 +7823,7 @@ bool PlayerCondition::IsValid(uint16 entry, ConditionType condition, uint32 valu return false; } - if (value2 && condition != CONDITION_QUESTTAKEN) + if (value2 && (condition == CONDITION_QUESTREWARDED || condition == CONDITION_QUESTAVAILABLE)) sLog.outErrorDb("Quest condition (entry %u, type %u) has useless data in value2 (%u)!", entry, condition, value2); break; } diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h index 229d9b2..d719c10 100644 --- a/src/game/ObjectMgr.h +++ b/src/game/ObjectMgr.h @@ -362,7 +362,7 @@ enum ConditionType CONDITION_QUESTAVAILABLE = 19, // quest_id 0 for case when loot/gossip possible only if player can start quest CONDITION_ACHIEVEMENT = 20, // ach_id 0, 1 (0: has achievement, 1: hasn't achievement) for player CONDITION_ACHIEVEMENT_REALM = 21, // ach_id 0, 1 (0: has achievement, 1: hasn't achievement) for server - CONDITION_QUEST_NONE = 22, // quest_id 0 (quest did not take and not rewarded) + CONDITION_QUEST_NONE = 22, // quest_id 0, 1 or 2 (0: quest did not take and not rewarded, 1: quest did not take, 2: quest did not rewarded) CONDITION_ITEM_WITH_BANK = 23, // item_id count check present req. amount items in inventory or bank CONDITION_NOITEM_WITH_BANK = 24, // item_id count check not present req. amount items in inventory or bank CONDITION_NOT_ACTIVE_GAME_EVENT = 25, // event_id 0 Чтобы можно было создавать цепочки в госсипах, пример: Цепочка Цитата:
госсип должен быть, но сразу всплыла загадка - если игрок взял квест 11250 и от него отказался то первое условие уже не сработает, а второе еще не сработает.)) поэтому вижу путь проще, модифицировать кондицию так, чтобы получилось: если игрок сдал(8 кондиция) 11248 и у него нет предмета(24) и он не брал вознаграждение за квест 11250(22-2) будет грораздо проще и работоспособней.)) |
|
2 пользователя(ей) сказали cпасибо: | KiriX (13.06.2012), schmoozerd (15.06.2012) |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10520] Implement CONDITION_QUEST_NONE | newsbot | CMaNGOS Commits | 0 | 23.09.2010 11:50 |
Add support for CONDITION_QUEST_NONE | tempura | Принятые патчи | 4 | 21.09.2010 21:53 |
модификация ядра. | FreeBSD | Запросы | 7 | 21.03.2010 08:07 |