Показать сообщение отдельно
Старый 30.10.2013, 21:24   #1
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию [patch] Restore work Paladin 5 tier Protected 2p bonus.

Код:
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 4ceb337..254f628 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -68,7 +68,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS] =
     &Aura::HandleAuraModStun,                               // 12 SPELL_AURA_MOD_STUN
     &Aura::HandleModDamageDone,                             // 13 SPELL_AURA_MOD_DAMAGE_DONE
     &Aura::HandleNoImmediateEffect,                         // 14 SPELL_AURA_MOD_DAMAGE_TAKEN   implemented in Unit::MeleeDamageBonusTaken and Unit::SpellBaseDamageBonusTaken
-    &Aura::HandleNoImmediateEffect,                         // 15 SPELL_AURA_DAMAGE_SHIELD      implemented in Unit::DealMeleeDamage
+    &Aura::HandleAuraDamageShield,                          // 15 SPELL_AURA_DAMAGE_SHIELD      implemented in Unit::DealMeleeDamage
     &Aura::HandleModStealth,                                // 16 SPELL_AURA_MOD_STEALTH
     &Aura::HandleNoImmediateEffect,                         // 17 SPELL_AURA_MOD_STEALTH_DETECT implemented in Unit::isVisibleForOrDetect
     &Aura::HandleInvisibility,                              // 18 SPELL_AURA_MOD_INVISIBILITY
@@ -4606,6 +4606,25 @@ void Aura::HandleAuraModStun(bool apply, bool Real)
     }
 }
 
+void Aura::HandleAuraDamageShield(bool apply, bool Real)
+{
+    if (!Real)
+        return;
+
+    Unit* caster = GetCaster();
+
+    if (apply)
+    {
+        // Retribution Aura
+        if (GetSpellProto()->IsFitToFamily(SPELLFAMILY_PALADIN, UI64LIT(0x0000000000000008), 0x00000020))
+        {
+            // Increased Retribution Aura (Paladin 5 tier Protected 2p bonus)
+            if (Aura* aura = caster->GetAura(37190, EFFECT_INDEX_0))
+                m_modifier.m_amount += aura->GetModifier()->m_amount;
+        }
+    }
+}
+
 void Aura::HandleModStealth(bool apply, bool Real)
 {
     Unit* target = GetTarget();
diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h
index c185419..fbd8e9b 100644
--- a/src/game/SpellAuras.h
+++ b/src/game/SpellAuras.h
@@ -259,6 +259,7 @@ class MANGOS_DLL_SPEC Aura
         void HandleAuraModResistanceExclusive(bool Apply, bool Real);
         void HandleAuraSafeFall(bool Apply, bool Real);
         void HandleAuraModPetTalentsPoints(bool Apply, bool Real);
+        void HandleAuraDamageShield(bool Apply, bool Real);
         void HandleModStealth(bool Apply, bool Real);
         void HandleInvisibility(bool Apply, bool Real);
         void HandleInvisibilityDetect(bool Apply, bool Real);
PS Истинный ценитель тиров )))
Den вне форума   Ответить с цитированием