Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Патчи на рассмотрении (http://mangos.ytdb.ru/forumdisplay.php?f=49)
-   -   [fix] SPELL_ATTR_EX5_NO_DURATION (http://mangos.ytdb.ru/showthread.php?t=2389)

SeT 11.09.2010 22:21

[fix] SPELL_ATTR_EX5_NO_DURATION
 
Вложений: 1
Код:

diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h
index 82da3a6..bca2ccb 100644
--- a/src/game/SharedDefines.h
+++ b/src/game/SharedDefines.h
@@ -397,7 +397,7 @@ const uint32 ItemQualityColors[MAX_ITEM_QUALITY] = {
 #define SPELL_ATTR_EX5_UNK7                      0x00000080            // 7
 #define SPELL_ATTR_EX5_UNK8                      0x00000100            // 8
 #define SPELL_ATTR_EX5_START_PERIODIC_AT_APPLY    0x00000200            // 9  begin periodic tick at aura apply
-#define SPELL_ATTR_EX5_UNK10                      0x00000400            // 10
+#define SPELL_ATTR_EX5_NO_DURATION                0x00000400            // 10 not send duration to client
 #define SPELL_ATTR_EX5_UNK11                      0x00000800            // 11
 #define SPELL_ATTR_EX5_UNK12                      0x00001000            // 12
 #define SPELL_ATTR_EX5_UNK13                      0x00002000            // 13 haste affects duration (e.g. 8050 since 3.3.3)
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index f924761..41381bf 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -7892,7 +7892,7 @@ void SpellAuraHolder::_AddSpellAuraHolder()
        if (m_auras[i])
            flags |= (1 << i);
    }
-    flags |= ((GetCasterGUID() == GetTarget()->GetGUID()) ? AFLAG_NOT_CASTER : AFLAG_NONE) | ((GetSpellMaxDuration(m_spellProto) > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE);
+    flags |= ((GetCasterGUID() == GetTarget()->GetGUID()) ? AFLAG_NOT_CASTER : AFLAG_NONE) | ((GetSpellMaxDuration(m_spellProto) > 0 && !(m_spellProto->AttributesEx5 & SPELL_ATTR_EX5_NO_DURATION)) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE);
    SetAuraFlags(flags);
 
    SetAuraLevel(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL));


LordJZ 12.09.2010 08:20

И никаких комментариев. Может стоить добавить что-то?

SeT 12.09.2010 10:50

Цитата:

Сообщение от LordJZ (Сообщение 13929)
И никаких комментариев. Может стоить добавить что-то?

Я думаю, что к такому простому патчу нечего добавить.
Пример спелла - http://www.wowhead.com/spell=61551

Fmut 12.09.2010 20:06

Просто не отображается длительность визуальной ауры в клиенте.
Спасибо.

SeT 13.09.2010 23:06

Я не прав?

zergtmn 25.03.2011 00:01

Флаг возможно правильный, но существуют спеллы без него, имеющие длительность > 0, для которых duration не приходит в SMSG_AURA_UPDATE.

И не понятно, почему у 28878 есть этот флаг.

SeT 25.03.2011 19:52

А близзы непонятные иногда ребята)


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

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