Game Steep WoW Fun Server
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[FIX] Shadow Dance

Ir para baixo

[FIX] Shadow Dance Empty [FIX] Shadow Dance

Mensagem  Gøuki Ter Ago 25, 2009 6:48 pm

Código:
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,

Gøuki
Administrador Geral

Mensagens : 22
Pontos : 5424
Reputação : 0
Data de inscrição : 12/08/2009

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos