Jump to content

Recommended Posts

Posted

What bug does the patch fix? What features does the patch add?

it should fix talent torment the weak

For which repository revision was the patch created?

8285

Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread.

http://getmangos.eu/community/viewtopic.php?id=8251&highlight=torment+the+weak

diff --git a/Unit2.cpp b/Unit.cpp
index 0e055b1..309602d 100644
--- a/Unit2.cpp
+++ b/Unit.cpp
@@ -7955,14 +7955,44 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
            }
        }
    }
-
+    
    // Custom scripted damage
-    // Ice Lance
-    if (spellProto->SpellFamilyName == SPELLFAMILY_MAGE && spellProto->SpellIconID == 186)
-    {
-        if (pVictim->isFrozen())
-            DoneTotalMod *= 3.0f;
-    }
+     switch(spellProto->SpellFamilyName)
+    {
+        case SPELLFAMILY_MAGE:
+        {
+            // Ice Lance
+            if (spellProto->SpellIconID == 186)
+            {
+                if (pVictim->isFrozen())
+                    DoneTotalMod *= 3.0f;
+            }
+            //Torment the weak
+            if ((spellProto->SpellIconID == 188 || //Frostbolt
+                spellProto->SpellIconID == 1485 || //Arcane Barrage
+                spellProto->SpellIconID == 2294 || //Arcane Blast
+                spellProto->SpellIconID == 2946 || //Frostfire Bolt
+                spellProto->SpellIconID == 225 || //Arcane Missle
+                spellProto->SpellIconID == 185) //Fireball
+                 && pVictim->HasAuraType(SPELL_AURA_MOD_DECREASE_SPEED))
+            {
+                //Search for Torment the weak dummy aura
+               Unit::AuraList const& ttw = pVictim->GetAurasByType(SPELL_AURA_DUMMY);
+                for(Unit::AuraList::const_iterator i = ttw.begin(); i != ttw.end(); ++i)
+                {
+                    if ((*i)->GetSpellProto()->SpellIconID == 2215)
+                    {
+                        DoneTotalMod *= ((*i)->GetModifier()->m_amount+100.0f) / 100.0f;
+                        break;
+                    }
+                }
+            }
+            break;
+        }
+        default:
+            break;
+    }
+    

    // ..taken
    AuraList const& mModDamagePercentTaken = pVictim->GetAurasByType(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN);

i know the "if" under comment(//Torment the weak) looks kinda lame but im not familiar with spellfamilyflags, so anyone feel like translating these iconid into familyflags? i'd be greatful :D

plz test and share comments :)

  • 39 years later...
Posted

nice, can you explain me a thing:

 DoneTotalMod *= ((*i)->GetModifier()->m_amount+100.0f) / 100.0f;

what this should do...?

and as suggestion, you could for exemple

+ switch(spellProto->SpellFamilyName)
+    {
+        case SPELLFAMILY_MAGE:
+        {

you can just change it to

+if(spellProto->SpellFamilyName==SPELLFAMILY_MAGE)
+{

so you don't have the problem of default case :)

let me know what you think :)

Posted
Code:

DoneTotalMod *= ((*i)->GetModifier()->m_amount+100.0f) / 100.0f;

what this should do...?

This is the part where the factor of this aura is applied to the total mod, I think ;)

i know the "if" under comment(//Torment the weak) looks kinda lame but im not familiar with spellfamilyflags, so anyone feel like translating these iconid into familyflags? i'd be greatful

Don't be that lazy^^. This would be probably the biggest peace of work in this patch :-P. Looks horrible with those icon checks. (Maybe you can find it even in the EffectSpellClassMask of the dummy aura, so you don't have to care about that but that is quite unprobable)

Posted

Spellname:        |  FamilyFlags2:  FamilyFlags1:  |  Combined:
------------------+--------------------------------+----------------------------
Frostbolt:        |  0x0            0x20           |  0x0000000000000020
Arcane Barrage:   |  0x8000         0x0            |  0x0000800000000000
Arcane Blast:     |  0x0            0x20000000     |  0x0000000020000000
Frostfire Bolt:   |  0x1000         0x0            |  0x0000100000000000
Arcane Missiles:  |  0x0            0x00200000     |  0x0000000000200000
Fireball:         |  0x0            0x1            |  0x0000000000000001
------------------+--------------------------------+----------------------------
Combined:         |                                |  0x0000900020200021

so, if i'm not mistaken, the line should read something like

if (spellProto->SpellFamilyFlags & UI64LIT(0x0000900020200021) && 
   (pVictim->HasAuraType(SPELL_AURA_MOD_DECREASE_SPEED) ||
   pVictim->HasAuraType(SPELL_AURA_MELEE_SLOW)))
{
   // Itterate over Dummys and find icon 2215 to change DoneTotalMod 
}

/e: I've to admit, i'm confused about SpellFamilyFlags3. It doesn't matter in this case, but I'd appreciate some enlightenment ;)

But If I'm actually wrong (again) than the Flag would be "0x000000080000900020200021" as Fireball has 0x8 set for it.

Posted

-edit-

after some more thoughts, if you are sure that family flags for all mage spells only have exclusive bits set (i.e. all pairs of flags combined with bitwise 'and' is zero), this should work.

It looks like every spell (with ranks) has only one bit set, but i never examined that further...

Posted

I am afraid, that check for pVictim->HasAuraType(SPELL_AURA_MOD_DECREASE_SPEED) wil not be sufficent:

From patch 3.0.8 notes

Torment the Weak: Now works with Arcane Blast and does bonus damage against targets afflicted with any type of slow (such as the combat slow from Thunder Clap).

Posted

duh, stupid me. Should have looked for periodic triggers.

also forgot this ACE_LITERAL-thing

corrected it in above post

mod_melee_slow added also.. but wouldn't it it also be affected by cast-speed and ranged-speed slowing effects..?

Posted
mod_melee_slow added also.. but wouldn't it it also be affected by cast-speed and ranged-speed slowing effects..?

Yes, it's supposed to. For example, Curse of Tongues is supposed to make it be applied.

Posted

With pointed porbem fixes patch added to [8340]. Thank you to all authors and commenters :)

Alternative patch already written by MaS0n
It more not finsihed that suggested in this thread patch (with my fixes).
works fine
You by self write it refernced thread that it have real problems with affect all victim states.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use