diff options
| -rw-r--r-- | src/server/game/Spells/SpellScript.cpp | 12 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellScript.h | 1 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_dk.cpp | 2 | 
3 files changed, 14 insertions, 1 deletions
diff --git a/src/server/game/Spells/SpellScript.cpp b/src/server/game/Spells/SpellScript.cpp index 579fb0f9418..c0bcd477e5b 100644 --- a/src/server/game/Spells/SpellScript.cpp +++ b/src/server/game/Spells/SpellScript.cpp @@ -583,9 +583,21 @@ int32 SpellScript::GetEffectValue() const          TC_LOG_ERROR("scripts", "Script: `%s` Spell: `%u`: function SpellScript::GetEffectValue was called, but function has no effect in current hook!", m_scriptName->c_str(), m_scriptSpellId);          return 0;      } +      return m_spell->damage;  } +void SpellScript::SetEffectValue(int32 value) +{ +    if (!IsInEffectHook()) +    { +        TC_LOG_ERROR("scripts", "Script: `%s` Spell: `%u`: function SpellScript::SetEffectValue was called, but function has no effect in current hook!", m_scriptName->c_str(), m_scriptSpellId); +        return; +    } + +    m_spell->damage = value; +} +  Item* SpellScript::GetCastItem()  {      return m_spell->m_CastItem; diff --git a/src/server/game/Spells/SpellScript.h b/src/server/game/Spells/SpellScript.h index 1a438323d4d..6378a8bed9b 100644 --- a/src/server/game/Spells/SpellScript.h +++ b/src/server/game/Spells/SpellScript.h @@ -412,6 +412,7 @@ class SpellScript : public _SpellScript          // method avalible only in EffectHandler method          int32 GetEffectValue() const; +        void SetEffectValue(int32 value);          // returns: cast item if present.          Item* GetCastItem(); diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index d39156e3770..e8108f03e7d 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -703,7 +703,7 @@ class spell_dk_ghoul_explode : public SpellScriptLoader              void HandleDamage(SpellEffIndex /*effIndex*/)              {                  int32 value = int32(GetCaster()->CountPctFromMaxHealth(GetSpellInfo()->Effects[EFFECT_2].CalcValue(GetCaster()))); -                SetHitDamage(value); +                SetEffectValue(value);              }              void Suicide(SpellEffIndex /*effIndex*/)  | 
