PDA

Просмотр полной версии : [fix] SPELL_ATTR_EX5_NO_DURATION


SeT
11.09.2010, 22:21
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
И никаких комментариев. Может стоить добавить что-то?
Я думаю, что к такому простому патчу нечего добавить.
Пример спелла - 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
А близзы непонятные иногда ребята)