Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Патчи на рассмотрении (http://mangos.ytdb.ru/forumdisplay.php?f=49)
-   -   [patch] Unholy Blight (Нечестивая порча) + Glyph (http://mangos.ytdb.ru/showthread.php?t=1310)

Insider42 29.05.2010 11:07

[patch] Unholy Blight (Нечестивая порча) + Glyph
 
Суть проблемы:
1) Талант не прокает
2) Талант наносит 1 урона (с исправлением П1)
3) Нет прибавки периодического урона от Символа нечестивой порчи

Часть 1. Автор: Laise
Код:

diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index e30e0f7..877f92c 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -6638,6 +6638,13 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
                triggered_spell_id = 61607;
                break;
            }
+            // Unholy Blight
+            if (dummySpell->Id == 49194)
+            {
+                basepoints[0] = triggerAmount * damage / 1000;
+                triggered_spell_id = 50536;
+                break;
+            }
            // Vendetta
            if (dummySpell->SpellFamilyFlags & UI64LIT(0x0000000000010000))
            {

В базу
Код:

DELETE FROM `spell_proc_event` WHERE `entry` = 49194;
INSERT INTO `spell_proc_event` VALUES
(49194,0x00,15,0x00002000,0x00000000,0x00000000,0x00000000,0x00000000,0.000000,0.000000,0);

Часть 2. Автор johonson
Код:

diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 563c525..bbd5279 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -9410,6 +9410,13 @@ uint32 Unit::SpellDamageBonusDone(Unit *pVictim, SpellEntry const *spellProto, u
                    }
                }
            }
+            // Glyph of Unholy Blight
+            if (spellProto->Id == 50536)
+            {
+                if (Aura *glyphAura = GetDummyAura(63332))
+                    DoneTotalMod *= (glyphAura->GetModifier()->m_amount + 100.0f)/ 100.0f;
+                break;
+            }
            break;
        }
        default:


Insider42 19.06.2010 11:03

Игроки говорят что мол что-то со способностью не ладно, научились бажить урон через него. Кто-нибудь сталкивался? Сам проверить пока не могу

Говорят что с каждого нового лика - урон у Нечестивой порчи увеличивается все больше и больше. В итоге кинув лик в одну цель раз 10 подряд имеет очень большие цифры урона. Но ведь такого наращивания не должно происходить, есть идеи?

Null 19.06.2010 11:27

Вот из всем нам известного эмулятора:
Код:

            // Unholy Blight
            if (dummySpell->Id == 49194)
            {
                basepoints0 = triggerAmount * damage / 100;
                // Glyph of Unholy Blight
                if (AuraEffect *glyph=GetAuraEffect(63332,0))
                    basepoints0 += basepoints0 * glyph->GetAmount() / 100;
                // Find replaced aura to use it's remaining amount
                AuraEffectList const& DoTAuras = target->GetAuraEffectsByType(SPELL_AURA_PERIODIC_DAMAGE);
                for (Unit::AuraEffectList::const_iterator i = DoTAuras.begin(); i != DoTAuras.end(); ++i)
                {
                    if ((*i)->GetCasterGUID() != GetGUID() || (*i)->GetId() != 50536)
                        continue;
                    basepoints0 += ((*i)->GetAmount() * ((*i)->GetTotalTicks() - ((*i)->GetTickNumber()))) / (*i)->GetTotalTicks();
                    break;
                }
                triggered_spell_id = 50536;
                break;
            }


timmit 19.06.2010 11:28

Баг заключается в таланте + символ http://ru.wowhead.com/item=45803 итак если постояно спамить http://ru.wowhead.com/spell=47860 то урон от порчи возрастает с геометрической прогрессией, началось с 90 ед урона и закончилось 254к ед урона!

Insider42 19.06.2010 12:08

я уже придумал как это ограничить, правда я незнаю точных значений, нужна инфа с оффа. Щас создам тему и всё увидите

zergtmn 19.06.2010 19:25

Код:

            // Unholy Blight
            if (dummySpell->Id == 49194)
            {
                basepoints[0] = damage * triggerAmount / 100;

                // Glyph of Unholy Blight
                if (Aura *aura = GetDummyAura(63332))
                    basepoints[0] += basepoints[0] * aura->GetModifier()->m_amount / 100;

                // Split between 10 ticks
                basepoints[0] /= 10;
                triggered_spell_id = 50536;
                break;
            }

Точность теряется при делении, т.к. урон слишком маленький =\
+
Код:

DELETE FROM spell_bonus_data WHERE entry = 50536;
INSERT INTO spell_bonus_data VALUES
(50536, 0, 0, 0, 'Death Knight - Unholy Blight Triggered');


Insider42 19.06.2010 19:53

Не не, там не в этом дело было. Я уже написал патч в отдельной теме на все подобные спелы. Но вариант с обработкой глифа в коде таланта хорош


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

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