Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Принятые патчи

Важная информация

Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.

Повод для гордости.

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.03.2010, 14:36   #1
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию Add support for CONDITION_QUEST_NONE

NeatElves

Цитата:
Поясняю для чего, пример - на офф сервере заканчивается лунный фестиваль, у предков есть госсипы с подсказками - где искать других, когда находиш и сдаеш квест - строчка подсказки, указывающая на конкретного из меню исчезает. Посмотрел тут и перенес к нам, проверил, работает..))
Автор коммита - Brian
Код:
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
index b1540da..0ea938d 100644
--- a/src/game/ObjectMgr.cpp
+++ b/src/game/ObjectMgr.cpp
@@ -7409,6 +7409,11 @@ bool PlayerCondition::Meets(Player const * player) const
             QuestStatus status = player->GetQuestStatus(value1);
             return (status == QUEST_STATUS_INCOMPLETE);
         }
+        case CONDITION_QUEST_NONE:
+        {
+             QuestStatus status = player->GetQuestStatus(value1);
+             return (status == QUEST_STATUS_NONE);
+         }
         case CONDITION_AD_COMMISSION_AURA:
         {
             Unit::AuraMap const& auras = player->GetAuras();
diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h
index 4442f56..dd85ab7 100644
--- a/src/game/ObjectMgr.h
+++ b/src/game/ObjectMgr.h
@@ -313,9 +313,10 @@ enum ConditionType
     CONDITION_RACE_CLASS            = 14,                   // race_mask    class_mask
     CONDITION_LEVEL                 = 15,                   // player_level 0, 1 or 2 (0: equal to, 1: equal or higher than, 2: equal or less than)
     CONDITION_NOITEM                = 16,                   // item_id      count
+    CONDITION_QUEST_NONE            = 17,                   // quest_id     0
 };
 
-#define MAX_CONDITION                 17                    // maximum value in ConditionType enum
+#define MAX_CONDITION                 18                    // maximum value in ConditionType enum
 
 struct PlayerCondition
 {
Как бы Нофантази показать...)
tempura вне форума  
Старый 07.03.2010, 16:59   #2
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

QUEST_STATUS_NONE и для неначатого квеста тоже, для сданного надо еще rewarded проверять
Vladimir вне форума  
Старый 07.03.2010, 18:00   #3
timmit
YTDB Dev
 
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
timmit На верном пути
По умолчанию

(status == QUEST_STATUS_NONE && status == QUEST_STATUS_COMPLETE)

?
timmit вне форума  
Старый 07.03.2010, 18:13   #4
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

QUEST_STATUS_COMPLETE = квест у которого готовы все цели но который не сдан

QUEST_STATUS_NONE = квест не активен, или не начинался иди сдан уже
QUEST_STATUS_NONE && rewarded = квест сдан (для повторяемых, сдан хотябы один раз)
Vladimir вне форума  
Старый 21.09.2010, 21:53   #5
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Меню должно отображаться, если квест не на руках и никогда не сдавался:
Код:
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
index c8681f9..98efb7c 100644
--- a/src/game/ObjectMgr.cpp
+++ b/src/game/ObjectMgr.cpp
@@ -8108,6 +8108,12 @@ bool PlayerCondition::Meets(Player const * player) const
             }
             return false;
         }
+        case CONDITION_QUEST_NONE:
+        {
+            if (!player->IsCurrentQuest(value1) && !player->GetQuestRewardStatus(value1))
+                return true;
+            return false;
+        }
         default:
             return false;
     }
@@ -8219,6 +8225,7 @@ bool PlayerCondition::IsValid(ConditionType condition, uint32 value1, uint32 val
         case CONDITION_QUESTREWARDED:
         case CONDITION_QUESTTAKEN:
         case CONDITION_QUESTAVAILABLE:
+        case CONDITION_QUEST_NONE:
         {
             Quest const *Quest = sObjectMgr.GetQuestTemplate(value1);
             if (!Quest)
diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h
index a3e5e65..83bd582 100644
--- a/src/game/ObjectMgr.h
+++ b/src/game/ObjectMgr.h
@@ -607,9 +607,10 @@ 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)
 };
 
-#define MAX_CONDITION                 22                    // maximum value in ConditionType enum
+#define MAX_CONDITION                 23                    // maximum value in ConditionType enum
 
 struct PlayerCondition
 {
virusav вне форума  
2 пользователя(ей) сказали cпасибо:
evilstar (21.09.2010), Limpnau (24.09.2010)
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10520] Implement CONDITION_QUEST_NONE newsbot CMaNGOS Commits 0 23.09.2010 11:50
Add support for CONDITION_TITLE timmit Патчи на рассмотрении 6 09.03.2010 08:41
[9544] support CONDITION_NOITEM timmit Принятые патчи 12 07.03.2010 15:50


Текущее время: 00:49. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot