aboutsummaryrefslogtreecommitdiff
path: root/src/game/Spell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Spell.cpp')
-rw-r--r--src/game/Spell.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index d43b0b16dd1..0b7e8f401be 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -5142,6 +5142,15 @@ SpellCastResult Spell::CheckCast(bool strict)
break;
}
+ case 44795: // Parachute
+ {
+ float x, y, z;
+ m_caster->GetPosition(x, y, z);
+ float ground_Z = m_caster->GetMap()->GetVmapHeight(x, y, z, true);
+ if (fabs(ground_Z - z) < 0.1f)
+ return SPELL_FAILED_DONT_REPORT;
+ break;
+ }
default:
break;
}
@@ -5231,8 +5240,8 @@ SpellCastResult Spell::CheckCast(bool strict)
// allow always ghost flight spells
if (m_originalCaster && m_originalCaster->GetTypeId() == TYPEID_PLAYER && m_originalCaster->isAlive())
{
- //if (!((Player*)m_originalCaster)->IsKnowHowFlyIn(m_originalCaster->GetMapId(),m_originalCaster->GetZoneId()))
- if (m_originalCaster->GetZoneId() == 4197 || m_originalCaster->GetZoneId() == 4395)
+ // 4197 = Wintergrasp || 4395 = Dalaran && 4564 = Krasus Landing
+ if (m_originalCaster->GetZoneId() == 4197 || m_originalCaster->GetZoneId() == 4395 && m_originalCaster->GetAreaId() != 4564)
return m_IsTriggeredSpell ? SPELL_FAILED_DONT_REPORT : SPELL_FAILED_NOT_HERE;
}
break;