diff options
Diffstat (limited to 'src/game/Spell.cpp')
-rw-r--r-- | src/game/Spell.cpp | 13 |
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; |