Jump to content

Buff Time Increasing Glyphs


Recommended Posts

  • 1 month later...
Posted

       if (unitPlayer && target == this)
       {
           switch(spellProto->SpellFamilyName)
           {
               case SPELLFAMILY_DRUID:
                   if (spellProto->SpellFamilyFlags & UI64LIT(0x100))
                   {
                       // Glyph of Thorns
                       if (Aura * aur = GetAura(57862, 0))
                           duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                   }
                   break;
               case SPELLFAMILY_PALADIN:
                   if (spellProto->SpellFamilyFlags & UI64LIT(0x00000002))
                   {
                       // Glyph of Blessing of Might
                       if (Aura * aur = GetAura(57958, 0))
                           duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                   }
                   else if (spellProto->SpellFamilyFlags & UI64LIT(0x00010000))
                   {
                       // Glyph of Blessing of Wisdom
                       if (Aura * aur = GetAura(57979, 0))
                           duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                   }
                   break;
               default:
                   break;
           }
       }

i will provide a patchfile maybe later

this is addition for CalculateSpellDuration Method.

Posted
Updated : - added Bufftimeincreasing for Glyph of Horn of Winter (DK)

       if (unitPlayer && target == this)
       {
           switch(spellProto->SpellFamilyName)
           {
               case SPELLFAMILY_DRUID:
                   if (spellProto->SpellFamilyFlags & UI64LIT(0x100))
                   {
                       // Glyph of Thorns
                       if (Aura * aur = GetAura(57862, 0))
                           duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                   }
                   break;
               case SPELLFAMILY_PALADIN:
                   if (spellProto->SpellFamilyFlags & UI64LIT(0x00000002))
                   {
                       // Glyph of Blessing of Might
                       if (Aura * aur = GetAura(57958, 0))
                           duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                   }
                   else if (spellProto->SpellFamilyFlags & UI64LIT(0x00010000))
                   {
                       // Glyph of Blessing of Wisdom
                       if (Aura * aur = GetAura(57979, 0))
                           duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                   }
                   break;
               default:
                   break;
           }
       }
       else if(unitPlayer)
       {
           switch(spellProto->SpellFamilyName)
           {          
               case SPELLFAMILY_DEATHKNIGHT:
                   // Glyph of Horn of Winter
                   if(spellProto->Id == 57330 || spellProto->Id == 57623)
                   {
                       if(Aura * aur = GetAura(58680,0))
                           duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                   }
                   break;
               default:
                   break;
           }
       }

i will provide a patchfile maybe later

this is addition for CalculateSpellDuration Method.

This is cool but where to apply ? :) since the original post at pastebin.org is expired

Posted

yes i realized this today sry i do not play much so i just suggested this would not work also without further investigations =)

@ xard : i already mentioned which method needs to be modified should not hard to find right place ;)

Posted

and here is your patchfile ;)

diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 24354a8..a880583 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -10689,6 +10689,37 @@ int32 Unit::CalculateSpellDuration(SpellEntry const* spellProto, uint8 effect_in
    else
        duration = minduration;

+    if (unitPlayer && target == this)
+    {
+        switch(spellProto->SpellFamilyName)
+        {
+            case SPELLFAMILY_DRUID:
+                if (spellProto->SpellFamilyFlags & UI64LIT(0x100))
+                {
+                    // Glyph of Thorns
+                    if (Aura *aur = GetAura(57862, 0))
+                        duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
+                }
+                break;
+            case SPELLFAMILY_PALADIN:
+                if (spellProto->SpellIconID == 298 && spellProto->SpellFamilyFlags & UI64LIT(0x00000002))
+                {
+                    // Glyph of Blessing of Might
+                    if (Aura *aur = GetAura(57958, 0))
+                        duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
+                }
+                else if (spellProto->SpellIconID == 306 && spellProto->SpellFamilyFlags & UI64LIT(0x00010000))
+                {
+                    // Glyph of Blessing of Wisdom
+                    if (Aura *aur = GetAura(57979, 0))
+                        duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
+                }
+                break;
+            default:
+                break;
+        }
+    }
+       
    if (duration > 0)
    {
        int32 mechanic = GetEffectMechanic(spellProto, effect_index);

Posted

from reading i'm sure they should not affect Greater Blessing of X (Thorns is out of question)

From a look into the Spell.dbc i now realize, that the FamilyFlags of Blessings and Greater Blessings are identical. So its more than likely, that this patch will affect Greater Blessings whereras it should not....

oh well...

/e: fixed

  • 2 months later...
Posted
One more question:

Should those glyphs also affect the group buffs and do they with this patch?

no they should only affect buffs casted @ original caster as my patch does

  • 1 year later...
×
×
  • 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