aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Spells/Auras/SpellEffects.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/server/game/Spells/Auras/SpellEffects.cpp b/src/server/game/Spells/Auras/SpellEffects.cpp
index e6e181815a1..a922686d2c4 100644
--- a/src/server/game/Spells/Auras/SpellEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellEffects.cpp
@@ -2553,6 +2553,27 @@ void Spell::EffectTeleportUnits(uint32 /*i*/)
if (!unitTarget || unitTarget->isInFlight())
return;
+ // Pre effects
+ uint8 uiMaxSafeLevel = 0;
+ switch (m_spellInfo->Id)
+ {
+ case 48129: // Scroll of Recall
+ uiMaxSafeLevel = 40;
+ case 60320: // Scroll of Recall II
+ if (!uiMaxSafeLevel)
+ uiMaxSafeLevel = 70;
+ case 60321: // Scroll of Recal III
+ if (!uiMaxSafeLevel)
+ uiMaxSafeLevel = 80;
+
+ if (unitTarget->getLevel() > uiMaxSafeLevel)
+ {
+ unitTarget->AddAura(60444,unitTarget); //Apply Lost! Aura
+ return;
+ }
+ break;
+ }
+
// If not exist data for dest location - return
if (!m_targets.HasDst())
{