Jump to content

betagan

Members
  • Posts

    10
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by betagan

  1. I was able to reproduce your problem.

    Looks like there is another difference when it comes to object updates between master and one that I did not yet encounter.

    The "hacky" fix in the above linked bug discussion still works fine (always updating the shapeshift bits) , so I guess it's about the way vladimir implemented his proper fix with SendForcedObjectUpdate.

    Maybe he can have another look at this? :)

  2. No It is NOT the way it worked on 2.4.3.

    example: relic macros (druid/pala). you have your macros to switch the correct relict (lets say +healing on rejuvenation), then cast that spell. same for your other healing spells. I'm really sure this worked on retail. The ticks of rejuv would stay the same.

    I'm not sure however about the lifebloom issue. refreshing the lifebloom stacks MIGHT cause recalculation. But NOT the periodic tick.

  3. Uhm, you're right about the spell power :(

    But I think the threat redirection was somewhat intended. The status quo however is a real nerf to this spell as you (and the tank) have to be much more careful about it. That's why I'd like it changed.

    The Behaviour is the same for spell 33076 as well. This is Prayer of mending (priest).

    Did I get your point right, you'd look for a better place in

    void Spell::DoAllEffectOnTarget(TargetInfo *target)

    or another function in Spell? I tried to avoid that as it means another check whenever any spell is cast but maybe we got to do that :(

    PS:

    I just read on http://www.wowwiki.com/Prayer_of_Mending that, at least for ProM, the Healing indeed seems to have been counted to the target:

    The threat generated by ProM was changed to be given to the casting priest with patch 3.0.2. This was a side effect of changing the way ProM healing was registered so that it counted as the casting priest's healing.

    Nothing said about the healing bonuses, however I do think the ones from the originalCaster should still be used

  4. Hi,

    This patch tries to fix the following bug:

    The threat generated from spell 379 triggered by spell 974 (Shaman's Earth Shield) should be added to the shield's target. So far, it is added to the caster (shaman).

    Proof is given by the 3.0.2 Patch Notes:

    Patch 3.0.2 (2008-10-14): Earth Shield threat is now added to the healer. Previously the threat was added to the target being healed.

    Where Previoulsy does include 2.4.3 (mangos/one).

    I created it for repository version: s1009

    I wrote "tries to fix" because I do not consider this a good fix. The trade-off is that to have the threat count correctly, I made the healing count towards the target as well. Thus the combat log will read "$target healed $target for .." and I dont think this is the case on retail though I dont know exactly.

    diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp
    index f7acb4f..dfe0aae 100644
    --- a/src/game/UnitAuraProcHandler.cpp
    +++ b/src/game/UnitAuraProcHandler.cpp
    @@ -1498,7 +1498,16 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura
                    basepoints[0] = triggerAmount;
                    target = this;
                    triggered_spell_id = 379;
    -                break;
    +                
    +                // simulate Earth Shield be casted by the target, 
    +                // thus making the target receive the threat instead of the shaman
    +                // trade-off: the healing counts towards the target in combat log
    +                CastCustomSpell(target, triggered_spell_id,
    +                        basepoints[EFFECT_INDEX_0] ? &basepoints[EFFECT_INDEX_0] : NULL,
    +                        NULL,
    +                        NULL,
    +                        true, castItem, triggeredByAura, this->GetObjectGuid());
    +                    return SPELL_AURA_PROC_OK;
                }
                // Lightning Overload
                if (dummySpell->SpellIconID == 2018)            // only this spell have SpellFamily Shaman SpellIconID == 2018 and dummy aura
    

    Any thoughts on this patch or suggestions for a better approach are welcome, ofc.

    Betagan

  5. Hi,

    This patch fixes the bug, that the bloom (final heal) of lifeboom (druid heal spell) should not be affected by the number of stacks of that spell. While the periodic healing stacks, the final heal should always be the same for 1, 2 or 3 stacks in TBC (patch 2.4.3).

    Quote from patch notes 2.1.0:

    The final heal, however, is still unaffected by stacking multiple applications of this spell.
    To my knowledge, this never changed and wowwiki still claims the same in august 2008 [1]. It had been correctly implemented in Mangos 8xxx but got changed for 3.x.x and never was corrected in the Mangos ONE branch so far.

    The patch was written by me.

    diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
    index e17c285..8297038 100644
    --- a/src/game/SpellAuras.cpp
    +++ b/src/game/SpellAuras.cpp
    @@ -2652,6 +2652,13 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
                                ((*itr)->GetSpellProto()->SpellFamilyFlags & UI64LIT(0x1000000000)))
                                return;
    
    +                    // this is only roughly correct, used as fallback in case GetCaster fails (still includes talents twice/thrice) 
    +                    m_modifier.m_amount -= (m_stackAmount - 1) * 600;
    +                    if (Unit* caster = GetCaster()) {
    +                        // this is correct calculation
    +                        m_modifier.m_amount = caster->SpellHealingBonusDone(target, GetSpellProto(), 600, SPELL_DIRECT_DAMAGE);
    +                        m_modifier.m_amount = target->SpellHealingBonusTaken(caster, GetSpellProto(), m_modifier.m_amount, SPELL_DIRECT_DAMAGE);
    +                    }
                        // final heal
                        if(target->IsInWorld())
                            target->CastCustomSpell(target, 33778, &m_modifier.m_amount, NULL, NULL, true, NULL, this, GetCasterGUID());
    

    References:

    [1] http://www.wowwiki.com/index.php?title=Lifebloom&oldid=1587267

×
×
  • 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