Jump to content

Recommended Posts

Posted

If i may try to quote Vladimir in a gramatically more correct form:

Spell has aura SPELL_AURA_MOD_IGNORE_SHAPESHIFT that provides removing form requirement for spells.

So setting form is clearly a horrible hack.

Note the words "horrible hack"...

This is no solution, it's a workaround.

Someone better find out WHY you cannot cast said spells when in Shadow Dance instead of overwriting this form and pretend that everything is cool.

Is it blocked by server or already by client?

It might be a similar problem as Warrior's Charge enabling taltents that need an invisible aura to be sent to client before you can even use the action button...

  • Replies 53
  • Created
  • Last Reply

Top Posters In This Topic

Posted

I agree. I also believe you're correct about the aura. Since it does mimic the same problems, it's most likely being blocked by the client. I'm simply keeping the post up so people can review it and possible get something better going. At least, for the time being; it's better than nothing.

  • 2 weeks later...
Posted

any news/updates?

test this?

this is no my code :)

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 3a0862d..0d28cb8 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2637,6 +2637,9 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
        case FORM_SHADOW:
        case FORM_STEALTH:
            break;
+        case FORM_SHADOWDANCE:
+            PowerType = POWER_ENERGY;
+            break;
        case FORM_TREE:
            modelid = 864;
            break;
@@ -2682,7 +2685,8 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
        if(m_target->m_ShapeShiftFormSpellId)
            m_target->RemoveAurasDueToSpell(m_target->m_ShapeShiftFormSpellId, this);

-        m_target->SetByteValue(UNIT_FIELD_BYTES_2, 3, form);
+        // For Shadow Dance we must apply Stealth form (30) instead of current (13)
+        m_target->SetByteValue(UNIT_FIELD_BYTES_2, 3, (form == FORM_SHADOWDANCE) ? uint8(FORM_STEALTH) : form);

        if(modelid > 0)
            m_target->SetDisplayId(modelid);
@@ -2747,6 +2751,10 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
                        m_target->SetPower(POWER_RAGE, Rage_val);
                    break;
                }
+                // Shadow Dance - apply stealth mode stand flag
+                case FORM_SHADOWDANCE:
+                    m_target->SetStandFlags(UNIT_STAND_FLAGS_CREEP);
+                    break;
                default:
                    break;
            }
@@ -2779,6 +2787,10 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
                if(Aura* dummy = m_target->GetDummyAura(37324) )
                    m_target->CastSpell(m_target, 37325, true, NULL, dummy);
                break;
+            // Shadow Dance - remove stealth mode stand flag
+            case FORM_SHADOWDANCE:
+                m_target->RemoveStandFlags(UNIT_STAND_FLAGS_CREEP);
+                break;
            default:
                break;
        }
diff --git a/src/game/Unit.h b/src/game/Unit.h
index faefbef..3f0e578 100644
--- a/src/game/Unit.h
+++ b/src/game/Unit.h
@@ -167,6 +167,7 @@ enum ShapeshiftForm
    FORM_GHOUL              = 0x07,
    FORM_DIREBEAR           = 0x08,
    FORM_CREATUREBEAR       = 0x0E,
+    FORM_SHADOWDANCE        = 0x0D,
    FORM_CREATURECAT        = 0x0F,
    FORM_GHOSTWOLF          = 0x10,
    FORM_BATTLESTANCE       = 0x11,

  • 2 weeks later...
Posted
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 993753e..93ba68b 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2974,6 +2974,7 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
    switch(form)
    {
        case FORM_CAT:
+        case FORM_SHADOW_DANCE:
            PowerType = POWER_ENERGY;
            break;
        case FORM_BEAR:
@@ -3040,7 +3041,8 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
        if(m_target->m_ShapeShiftFormSpellId)
            m_target->RemoveAurasDueToSpell(m_target->m_ShapeShiftFormSpellId, this);

-        m_target->SetByteValue(UNIT_FIELD_BYTES_2, 3, form);
+        // For Shadow Dance we must apply Stealth form (30) instead of current (13)
+        m_target->SetByteValue(UNIT_FIELD_BYTES_2, 3, (form == FORM_SHADOW_DANCE) ? uint8(FORM_STEALTH) : form);

        if(modelid > 0)
            m_target->SetDisplayId(modelid);
@@ -3105,6 +3107,10 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
                        m_target->SetPower(POWER_RAGE, Rage_val);
                    break;
                }
+                // Shadow Dance - apply stealth mode stand flag
+                case FORM_SHADOW_DANCE:
+                    m_target->SetStandFlags(UNIT_STAND_FLAGS_CREEP);
+                    break;
                default:
                    break;
            }
@@ -3137,6 +3143,10 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
                if(Aura* dummy = m_target->GetDummyAura(37324) )
                    m_target->CastSpell(m_target, 37325, true, NULL, dummy);
                break;
+            // Shadow Dance - remove stealth mode stand flag
+            case FORM_SHADOW_DANCE:
+                m_target->RemoveStandFlags(UNIT_STAND_FLAGS_CREEP);
+                break;
            default:
                break;
        }

Posted
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 993753e..93ba68b 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2974,6 +2974,7 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
    switch(form)
    {
        case FORM_CAT:
+        case FORM_SHADOW_DANCE:
            PowerType = POWER_ENERGY;
            break;
        case FORM_BEAR:
@@ -3040,7 +3041,8 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
        if(m_target->m_ShapeShiftFormSpellId)
            m_target->RemoveAurasDueToSpell(m_target->m_ShapeShiftFormSpellId, this);

-        m_target->SetByteValue(UNIT_FIELD_BYTES_2, 3, form);
+        // For Shadow Dance we must apply Stealth form (30) instead of current (13)
+        m_target->SetByteValue(UNIT_FIELD_BYTES_2, 3, (form == FORM_SHADOW_DANCE) ? uint8(FORM_STEALTH) : form);

        if(modelid > 0)
            m_target->SetDisplayId(modelid);
@@ -3105,6 +3107,10 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
                        m_target->SetPower(POWER_RAGE, Rage_val);
                    break;
                }
+                // Shadow Dance - apply stealth mode stand flag
+                case FORM_SHADOW_DANCE:
+                    m_target->SetStandFlags(UNIT_STAND_FLAGS_CREEP);
+                    break;
                default:
                    break;
            }
@@ -3137,6 +3143,10 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real)
                if(Aura* dummy = m_target->GetDummyAura(37324) )
                    m_target->CastSpell(m_target, 37325, true, NULL, dummy);
                break;
+            // Shadow Dance - remove stealth mode stand flag
+            case FORM_SHADOW_DANCE:
+                m_target->RemoveStandFlags(UNIT_STAND_FLAGS_CREEP);
+                break;
            default:
                break;
        }

thank you works with 9013 mangos:)

  • 1 month later...
  • 3 weeks later...
Posted
I added it (manually) and it didnt gave any error.

Try adding it again.

========== Build: 11 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

luck

edit: btw, i tested it, it "works" but not like it should be.

When you enter shadow dance, you are NOT stealthed (which is ok) but you have like... stealth movements, (while walking, etc)

but yeah, it kinda works.

As I will add it manually? Can someone guide me? plz

sorry for English

Posted

When a rogue shadow dances, he gets access to his stealth action bar but he does not stealth he can just use moves like Ambush and Cheap Shot. The rogue also moves at normal non stealthed speed.

  • 2 weeks later...
  • 3 weeks later...
  • 1 month later...
  • 3 weeks later...
Posted

When you click Shadow Dance, it applies a feature of stealth (Skill bar), nothing more can come from it. What the form does is apply the aura (Apply Aura: Shapeshift Ignored SpellClass - Wowhead), giving the player access to the skills. You need to add some things to the original Stealth "form" that can make this executable and not just Shadow Dance because Shadow Dance does multiple things so it needs to be applied in the places it affects.

  • 4 weeks later...
Posted

I have been testing in lastest rev, patch posted above works up to a certain point, because for example:

1. You are in Stealth form with Master of Subtlety

2. Use Shadowdance............................................+

------------------------------------------------------------

3. Shadowdance buff replace stealth buff, Master of Subtlety remains

It looks like cannot be at the same time

Posted
without any patches, Shadowdance doesn't work on latest rev(and i mean latest, not any before)?

spells are blocked client side, you can't use stealth spells in shadow dance form, and gives you an empty shapeshift bar for that form.

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