Jump to content

[one] correct wrong backport [s1261] of commit [11543]


Auntie Mangos

Recommended Posts

Hi

commits I'm talking about:

[11543] Fixed change form to same (powershifting) https://github.com/mangos/mangos/commit/9b4dcbbc01d65dd9f39c35814025a70daba730e6

[s1261] Added function Object::SendForcedObjectUpdate() https://github.com/mangos-one/server/commit/2654c01b1b25cfb6b9294c61f4cab3920a2e937e

The commit in master fixes a problem about shapeshifting, more exact powershifting. This is frequently used by Druids in Cat Form for max dps as it gains 40 energy everytime used. The addressed bug was, that shifting too fast from cat form to caster form and back to cat form made you stuck in cat form but unable to use cat spells. This was fixed by the SendForcedObjectUpdate fix in master.

When backporting that patch, one line was left out commented not to be needed for pre 3.x.

I'm pretty sure by my research now, that this is not the case. With this line (as in master) the above works just fine.

You can test this with the following one-line macro:

/cast !Cat Form

While in cat form, you should only see a small cloud for a very short time and be back in catform nearly instantly when used, giving you 40 energy (if skilled in feral tree). This does only work if the line is commented in. The original bug discussion took place here : http://getmangos.eu/community/topic/15889/fixedbug-powershifting/

I request to correct the backport as follows:

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index dde1c83..9494f3d 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2606,7 +2606,7 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
        target->RemoveSpellsCausingAura(SPELL_AURA_MOD_SHAPESHIFT, GetHolder());

        // need send to client not form active state, or at re-apply form client go crazy
-        // target->SendForcedObjectUpdate();                -- not need in pre-3.x
+        target->SendForcedObjectUpdate();                //-- not need in pre-3.x

        if (modelid > 0)
            target->SetDisplayId(modelid);

Link to comment
Share on other sites

  • 41 years later...

After this fix, if you use /cast !Cat Form while being in cat form you indeed correctly powershift and stay in cat form but the action bar is as if you were in no form :(

EDIT: Though it can still be accepted if its same as on master (which I came to believe based on code)

Link to comment
Share on other sites

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? :)

Link to comment
Share on other sites

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