Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Патчи на рассмотрении (http://mangos.ytdb.ru/forumdisplay.php?f=49)
-   -   Add support for CONDITION_TITLE (http://mangos.ytdb.ru/showthread.php?t=102)

timmit 07.03.2010 20:19

Add support for CONDITION_TITLE
 
Условия наличие титула, некоторые квестеры и трейдеры требуют титул. Ждать под каждый квест и вендор сд2 скрипта долго.
тема на getmangos.com http://getmangos.com/community/showt...ONDITION_TITLE
Код:

diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
index d9ca721..c85516d 100644
--- a/src/game/ObjectMgr.cpp
+++ b/src/game/ObjectMgr.cpp
@@ -7471,6 +7471,8 @@ bool PlayerCondition::Meets(Player const * player) const
        }
        case CONDITION_NOITEM:
            return !player->HasItemCount(value1, value2);
+        case CONDITION_TITLE:
+            return player->HasTitle(value1);
        default:
            return false;
    }
@@ -7667,6 +7669,15 @@ bool PlayerCondition::IsValid(ConditionType condition, uint32 value1, uint32 val
            }
 
            break;
+        case CONDITION_TITLE:
+        {
+            if (!sCharTitleStore.LookupEntry(value1))
+            {
+                sLog.outErrorDb("Specified non-existed title  %u, skipped", value1);
+                return false;
+            }
+
+            break;
        }
        case CONDITION_NONE:
            break;
diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h
index 0097673..a936f37 100644
--- a/src/game/ObjectMgr.h
+++ b/src/game/ObjectMgr.h
@@ -314,9 +314,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_TITLE                = 17,                  // title_id    0
 };
 
-#define MAX_CONDITION                17                    // maximum value in ConditionType enum
+#define MAX_CONDITION                18                    // maximum value in ConditionType enum
 
 struct PlayerCondition
 {


Vladimir 08.03.2010 14:33

А пример такого квестера/трайдера можете дать?

timmit 08.03.2010 14:57

как пример. http://ru.wowhead.com/?npc=34885
Там же на турнире есть квестеры, которые в зависимости от титула дают квесты.

Vladimir 08.03.2010 15:02

Хмм, вроде там больше от выполненого достижения...

timmit 08.03.2010 15:17

Для альянса и орды разные достижения номера, зато титул при этом один, что упрощает

Vladimir 09.03.2010 00:00

А создать отдельную ветку ну просто никак не возможно...

PSZ 09.03.2010 08:41

Я предлагал NoFantasy такой патч, он сказал, если еще найдете примеры, где это применить, кроме http://ru.wowhead.com/?npc=34885 - внесем. Иначе - единичный случай - через скрипт.

И еще.
Цитата:

+ CONDITION_TITLE = 17, // title_id 0
Судя по вашему патчу, параметром выступает не title id, а title index.


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

ru-mangos.ru - Русское сообщество MaNGOS