Показать сообщение отдельно
Старый 22.06.2010, 22:08   #1
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию [patch/dev] Anti-Magic zone (Зона антимагии)

Суть проблемы:
Не учитывался бонус силы атаки для заклинания.

Предположительный фикс
Код:
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 5668769..13ea8b9 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -7410,6 +7410,12 @@ void Aura::HandleSchoolAbsorb(bool apply, bool Real)
                         DoneActualBenefit = caster->SpellBaseHealingBonusDone(GetSpellSchoolMask(spellProto)) * 0.75f;
                     }
                     break;
+                case SPELLFAMILY_DEATHKNIGHT:
+                    // Anti-magic shield
+                    if (spellProto->Id == 50461)
+                        if (Unit *owner = caster->GetOwner())
+                            DoneActualBenefit += caster->GetOwner()->GetTotalAttackPowerValue(BASE_ATTACK) * 2;
+                    break;
                 default:
                     break;
             }
У меня смутное сомнение что код должен быть чуть ниже, т.к. мы считаем для него LevelPenalty, что по-моему неверно для спеллов берущих бонус АП

Возможно также потребуется проверка на то, игрок ли caster

Патч вообще не тестировался, жду комментариев

Последний раз редактировалось Insider42; 22.06.2010 в 22:10.
Insider42 вне форума   Ответить с цитированием