Ru-MaNGOS

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

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

Патчи на рассмотрении Рассматриваемые к принятию патчи

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 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 вне форума   Ответить с цитированием
Старый 30.10.2013, 21:38   #2
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

Во-первых, если уж фиксить, то не надо имхо запиливать отдельный хандлер в SpellAuras.cpp, а делать как написано
Цитата:
implemented in Unit:ealMeleeDamage
Найти там цикл перебора аур типа damage shield и туда дописать нужный код

Во-вторых аура этого бонуса содержит такие данные

Код:
Id: 6 (SPELL_EFFECT_APPLY_AURA)
BasePoints = 15
Targets (1, 0) (TARGET_SELF, NO_TARGET)
Aura Id 107 (SPELL_AURA_ADD_FLAT_MODIFIER), value = 15, misc = 0 (SPELLMOD_DAMAGE), miscB = 0, periodic = 0
SpellClassMask = 00000000 00000000 00000008
+ 7294 - Retribution Aura (Rank 1)
+ 10298 - Retribution Aura (Rank 2)
+ 10299 - Retribution Aura (Rank 3)
+ 10300 - Retribution Aura (Rank 4)
+ 10301 - Retribution Aura (Rank 5)
+ 27150 - Retribution Aura (Rank 6)
- 41106 - Battle Aura
+ 54043 - Retribution Aura (Rank 7)
- 63531 - Sanctified Retribution
И должна работать без дополнительных заморочек, по факту
MaS0n вне форума   Ответить с цитированием
Старый 31.10.2013, 18:48   #3
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Я отталкиваюсь от опыта проекта мангос. И исходя из этого, таких отдельных хандлеров в SpellAuras.cpp хватает. )))

Да, и теоретические домыслы на подобии "должно работать" - по факту оказываются неработоспособными. ))

Хотя я и не пробовал вашего решения, но все же если реализуете, то это пойдет тоглько на пользу сообществу форума и проекту мангос.
Den вне форума   Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[11504] Druid tier 10 2p bonus affect work newsbot CMaNGOS Commits 0 18.05.2011 05:00
[11504][patch] Restore tier 10 2p bonus affect work Den Принятые патчи 1 18.05.2011 04:57
[11453] Fixed tier 8 4p bonus affect work newsbot CMaNGOS Commits 0 09.05.2011 05:01
[11453] Restore tier 8 4p bonus affect work Den Принятые патчи 1 09.05.2011 04:49
[11440][patch] Restore itemset 650 4p bonus affect work Den Принятые патчи 1 08.05.2011 05:43


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


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