diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 38796e2f0..41a9d79a2 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -19154,7 +19154,10 @@ void Unit::ExitVehicle(Position const* /*exitPosition*/) return; GetVehicleBase()->RemoveAurasByType(SPELL_AURA_CONTROL_VEHICLE, GetGUID()); - ToPlayer()->SetCanTeleport(true); + if (Player* player = ToPlayer()) + { + player->SetCanTeleport(true); + } //! The following call would not even be executed successfully as the //! SPELL_AURA_CONTROL_VEHICLE unapply handler already calls _ExitVehicle without //! specifying an exitposition. The subsequent call below would return on if (!m_vehicle). diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index e941a42a8..ebedfbb0d 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -6036,7 +6036,8 @@ SpellCastResult Spell::CheckCast(bool strict) if (m_pathFinder->GetPathType() & (PATHFIND_NOPATH | PATHFIND_INCOMPLETE) || target->GetExactDistSq(endPos.x, endPos.y, endPos.z) > maxdist * maxdist || m_pathFinder->getPathLength() > (40.0f + (m_caster->HasAura(58097) ? 5.0f : 0.0f))) return SPELL_FAILED_NOPATH; } - m_caster->ToPlayer()->SetCanTeleport(true); + if (Player* player = m_caster->ToPlayer()) + player->SetCanTeleport(true); break; } case SPELL_EFFECT_SKINNING: