aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Spells/SpellScript.cpp12
-rw-r--r--src/server/game/Spells/SpellScript.h1
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp2
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*/)