aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Object/Object.cpp2
-rwxr-xr-xsrc/server/game/Entities/Object/Object.h6
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp2
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.h6
-rwxr-xr-xsrc/server/game/Handlers/MiscHandler.cpp8
-rwxr-xr-xsrc/server/game/Handlers/MovementHandler.cpp20
-rw-r--r--src/server/game/Handlers/VehicleHandler.cpp13
-rwxr-xr-xsrc/server/game/Server/WorldSession.cpp85
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraEffects.cpp22
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp4
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp2
-rw-r--r--src/server/scripts/Northrend/sholazar_basin.cpp6
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp2
13 files changed, 81 insertions, 97 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index d8ee305230e..fe89a346911 100755
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1186,7 +1186,7 @@ void MovementInfo::OutDebug()
sLog->outString("pitch: %f", pitch);
sLog->outString("fallTime: %u", fallTime);
- if (flags & MOVEMENTFLAG_JUMPING)
+ if (flags & MOVEMENTFLAG_FALLING)
sLog->outString("j_zspeed: %f j_sinAngle: %f j_cosAngle: %f j_xyspeed: %f", j_zspeed, j_sinAngle, j_cosAngle, j_xyspeed);
if (flags & MOVEMENTFLAG_SPLINE_ELEVATION)
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 24ddd7973ab..972be794464 100755
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -482,9 +482,6 @@ struct MovementInfo
// spline
float splineElevation;
- //! Server side only:
- bool Violated;
-
MovementInfo()
{
pos.Relocate(0, 0, 0, 0);
@@ -497,7 +494,6 @@ struct MovementInfo
t_guid = 0;
t_pos.Relocate(0, 0, 0, 0);
t_seat = -1;
- Violated = false;
}
uint32 GetMovementFlags() { return flags; }
@@ -510,6 +506,8 @@ struct MovementInfo
void AddExtraMovementFlag(uint16 flag) { flags2 |= flag; }
bool HasExtraMovementFlag(uint16 flag) const { return flags2 & flag; }
+ void SetFallTime(uint32 time) { fallTime = time; }
+
void OutDebug();
};
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 478db7d1374..151f7491567 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -17117,7 +17117,7 @@ void Unit::BuildMovementPacket(ByteBuffer *data) const
*data << (uint32)m_movementInfo.fallTime;
// 0x00001000
- if (GetUnitMovementFlags() & MOVEMENTFLAG_JUMPING)
+ if (GetUnitMovementFlags() & MOVEMENTFLAG_FALLING)
{
*data << (float)m_movementInfo.j_zspeed;
*data << (float)m_movementInfo.j_sinAngle;
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 0e24fdffa9d..cde2c67429c 100755
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -678,8 +678,8 @@ enum MovementFlags
MOVEMENTFLAG_ONTRANSPORT = 0x00000200, // Used for flying on some creatures
MOVEMENTFLAG_DISABLE_GRAVITY = 0x00000400, // Former MOVEMENTFLAG_LEVITATING. This is used when walking is not possible.
MOVEMENTFLAG_ROOT = 0x00000800, // Must not be set along with MOVEMENTFLAG_MASK_MOVING
- MOVEMENTFLAG_JUMPING = 0x00001000,
- MOVEMENTFLAG_FALLING = 0x00002000, // damage dealt on that type of falling
+ MOVEMENTFLAG_FALLING = 0x00001000, // damage dealt on that type of falling
+ MOVEMENTFLAG_FALLING_FAR = 0x00002000,
MOVEMENTFLAG_PENDING_STOP = 0x00004000,
MOVEMENTFLAG_PENDING_STRAFE_STOP = 0x00008000,
MOVEMENTFLAG_PENDING_FORWARD = 0x00010000,
@@ -701,7 +701,7 @@ enum MovementFlags
// TODO: Check if PITCH_UP and PITCH_DOWN really belong here..
MOVEMENTFLAG_MASK_MOVING =
MOVEMENTFLAG_FORWARD | MOVEMENTFLAG_BACKWARD | MOVEMENTFLAG_STRAFE_LEFT | MOVEMENTFLAG_STRAFE_RIGHT |
- MOVEMENTFLAG_PITCH_UP | MOVEMENTFLAG_PITCH_DOWN | MOVEMENTFLAG_JUMPING | MOVEMENTFLAG_FALLING | MOVEMENTFLAG_ASCENDING | MOVEMENTFLAG_DESCENDING |
+ MOVEMENTFLAG_PITCH_UP | MOVEMENTFLAG_PITCH_DOWN | MOVEMENTFLAG_FALLING | MOVEMENTFLAG_FALLING | MOVEMENTFLAG_ASCENDING | MOVEMENTFLAG_DESCENDING |
MOVEMENTFLAG_SPLINE_ELEVATION,
MOVEMENTFLAG_MASK_TURNING =
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index 319cd96c332..17f96a0fcda 100755
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -374,7 +374,7 @@ void WorldSession::HandleLogoutRequestOpcode(WorldPacket & /*recv_data*/)
if (GetPlayer()->isInCombat())
reason = 1;
- else if (GetPlayer()->m_movementInfo.HasMovementFlag(MOVEMENTFLAG_JUMPING | MOVEMENTFLAG_FALLING))
+ else if (GetPlayer()->m_movementInfo.HasMovementFlag(MOVEMENTFLAG_FALLING | MOVEMENTFLAG_FALLING_FAR))
reason = 3; // is jumping or falling
else if (GetPlayer()->duel || GetPlayer()->HasAura(9454)) // is dueling or frozen by GM via freeze command
reason = 2; // FIXME - Need the correct value
@@ -1621,12 +1621,6 @@ void WorldSession::HandleMoveSetCanFlyAckOpcode(WorldPacket & recv_data)
recv_data.read_skip<float>(); // unk2
- if (movementInfo.Violated)
- {
- recv_data.rfinish();
- return;
- }
-
_player->m_mover->m_movementInfo.flags = movementInfo.GetMovementFlags();
}
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index a93bec6a616..f1217e58b3f 100755
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -278,14 +278,6 @@ void WorldSession::HandleMovementOpcodes(WorldPacket & recv_data)
return;
}
- //! If some anti-cheat checks in WorldSession::ReadMovementInfo failed, do not process
- //! the change of movement server-sided.
- if (movementInfo.Violated)
- {
- recv_data.rfinish();
- return;
- }
-
/* handle special cases */
if (movementInfo.flags & MOVEMENTFLAG_ONTRANSPORT)
{
@@ -495,12 +487,6 @@ void WorldSession::HandleMoveNotActiveMover(WorldPacket &recv_data)
MovementInfo mi;
ReadMovementInfo(recv_data, &mi);
- if (mi.Violated)
- {
- recv_data.rfinish();
- return;
- }
-
mi.guid = old_mover_guid;
_player->m_movementInfo = mi;
@@ -529,12 +515,6 @@ void WorldSession::HandleMoveKnockBackAck(WorldPacket & recv_data)
MovementInfo movementInfo;
ReadMovementInfo(recv_data, &movementInfo);
- if (movementInfo.Violated)
- {
- recv_data.rfinish();
- return;
- }
-
_player->m_movementInfo = movementInfo;
WorldPacket data(MSG_MOVE_KNOCK_BACK, 66);
diff --git a/src/server/game/Handlers/VehicleHandler.cpp b/src/server/game/Handlers/VehicleHandler.cpp
index 161571998a1..cfd73c2c987 100644
--- a/src/server/game/Handlers/VehicleHandler.cpp
+++ b/src/server/game/Handlers/VehicleHandler.cpp
@@ -43,12 +43,6 @@ void WorldSession::HandleDismissControlledVehicle(WorldPacket &recv_data)
mi.guid = guid;
ReadMovementInfo(recv_data, &mi);
- if (mi.Violated)
- {
- recv_data.rfinish();
- return;
- }
-
_player->m_movementInfo = mi;
_player->ExitVehicle();
@@ -89,13 +83,6 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data)
MovementInfo movementInfo;
ReadMovementInfo(recv_data, &movementInfo);
-
- if (movementInfo.Violated)
- {
- recv_data.rfinish();
- return;
- }
-
vehicle_base->m_movementInfo = movementInfo;
uint64 accessory; // accessory guid
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index e6634019c09..e4f8c2a39ac 100755
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -796,7 +796,7 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo* mi)
data >> mi->fallTime;
- if (mi->HasMovementFlag(MOVEMENTFLAG_JUMPING))
+ if (mi->HasMovementFlag(MOVEMENTFLAG_FALLING))
{
data >> mi->j_zspeed;
data >> mi->j_sinAngle;
@@ -808,56 +808,63 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo* mi)
data >> mi->splineElevation;
//! Anti-cheat checks. Please keep them in seperate if() blocks to maintain a clear overview.
- #define VIOLATE_AND_RETURN \
+ //! Might be subject to latency, so just remove improper flags.
+ #ifdef TRINITY_DEBUG
+ #define REMOVE_VIOLATING_FLAGS(check, maskToRemove) \
{ \
- sLog->outDebug(LOG_FILTER_UNITS, "WorldSession::ReadMovementInfo: Violation of MovementFlags found. " \
- "MovementFlags: %u, MovementFlags2: %u for player GUID: %u. Player will not be relocated.", \
- mi->GetMovementFlags(), mi->GetExtraMovementFlags(), GetPlayer()->GetGUIDLow()); \
- mi->Violated = true; \
- return; \
- } \
- /*! This must be a packet spoofing attempt. MOVEMENTFLAG_ROOT sent from the client is not valid,
- and when used in conjunction with any of the moving movement flags such as MOVEMENTFLAG_FORWARD
- it will freeze clients that receive this player's movement info.
+ if (check) \
+ { \
+ sLog->outDebug(LOG_FILTER_UNITS, "WorldSession::ReadMovementInfo: Violation of MovementFlags found (%s). " \
+ "MovementFlags: %u, MovementFlags2: %u for player GUID: %u. Mask %u will be removed.", \
+ STRINGIZE(check), mi->GetMovementFlags(), mi->GetExtraMovementFlags(), GetPlayer()->GetGUIDLow(), maskToRemove); \
+ mi->RemoveMovementFlag((maskToRemove)); \
+ } \
+ }
+ #else
+ #define REMOVE_VIOLATING_FLAGS(check, maskToRemove) \
+ if (check) \
+ mi->RemoveMovementFlag((maskToRemove));
+ #endif
+
+
+ /*! This must be a packet spoofing attempt. MOVEMENTFLAG_ROOT sent from the client is not valid
+ in conjunction with any of the moving movement flags such as MOVEMENTFLAG_FORWARD.
+ It will freeze clients that receive this player's movement info.
*/
- if (mi->HasMovementFlag(MOVEMENTFLAG_ROOT))
- VIOLATE_AND_RETURN;
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_ROOT) && mi->HasMovementFlag(MOVEMENTFLAG_MASK_MOVING),
+ MOVEMENTFLAG_MASK_MOVING);
- //! Cannot hover and jump at the same time
- if (mi->HasMovementFlag(MOVEMENTFLAG_HOVER) && mi->HasMovementFlag(MOVEMENTFLAG_JUMPING))
- VIOLATE_AND_RETURN;
+ //! Cannot hover without SPELL_AURA_HOVER
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_HOVER) && !GetPlayer()->HasAuraType(SPELL_AURA_HOVER),
+ MOVEMENTFLAG_HOVER);
//! Cannot ascend and descend at the same time
- if (mi->HasMovementFlag(MOVEMENTFLAG_ASCENDING) && mi->HasMovementFlag(MOVEMENTFLAG_DESCENDING))
- VIOLATE_AND_RETURN;
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_ASCENDING) && mi->HasMovementFlag(MOVEMENTFLAG_DESCENDING),
+ MOVEMENTFLAG_ASCENDING | MOVEMENTFLAG_DESCENDING);
//! Cannot move left and right at the same time
- if (mi->HasMovementFlag(MOVEMENTFLAG_LEFT) && mi->HasMovementFlag(MOVEMENTFLAG_RIGHT))
- VIOLATE_AND_RETURN;
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_LEFT) && mi->HasMovementFlag(MOVEMENTFLAG_RIGHT),
+ MOVEMENTFLAG_LEFT | MOVEMENTFLAG_RIGHT);
//! Cannot strafe left and right at the same time
- if (mi->HasMovementFlag(MOVEMENTFLAG_STRAFE_LEFT) && mi->HasMovementFlag(MOVEMENTFLAG_STRAFE_RIGHT))
- VIOLATE_AND_RETURN;
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_STRAFE_LEFT) && mi->HasMovementFlag(MOVEMENTFLAG_STRAFE_RIGHT),
+ MOVEMENTFLAG_STRAFE_LEFT | MOVEMENTFLAG_STRAFE_RIGHT);
//! Cannot pitch up and down at the same time
- if (mi->HasMovementFlag(MOVEMENTFLAG_PITCH_UP) && mi->HasMovementFlag(MOVEMENTFLAG_PITCH_DOWN))
- VIOLATE_AND_RETURN;
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_PITCH_UP) && mi->HasMovementFlag(MOVEMENTFLAG_PITCH_DOWN),
+ MOVEMENTFLAG_PITCH_UP | MOVEMENTFLAG_PITCH_DOWN);
//! Cannot move forwards and backwards at the same time
- if (mi->HasMovementFlag(MOVEMENTFLAG_FORWARD) && mi->HasMovementFlag(MOVEMENTFLAG_BACKWARD))
- VIOLATE_AND_RETURN;
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_FORWARD) && mi->HasMovementFlag(MOVEMENTFLAG_BACKWARD),
+ MOVEMENTFLAG_FORWARD | MOVEMENTFLAG_BACKWARD);
//! Cannot walk on water without SPELL_AURA_WATER_WALK
- if (mi->HasMovementFlag(MOVEMENTFLAG_WATERWALKING) && !GetPlayer()->HasAuraType(SPELL_AURA_WATER_WALK))
- VIOLATE_AND_RETURN;
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_WATERWALKING) && !GetPlayer()->HasAuraType(SPELL_AURA_WATER_WALK),
+ MOVEMENTFLAG_WATERWALKING);
//! Cannot feather fall without SPELL_AURA_FEATHER_FALL
- if (mi->HasMovementFlag(MOVEMENTFLAG_FALLING_SLOW) && !GetPlayer()->HasAuraType(SPELL_AURA_FEATHER_FALL))
- VIOLATE_AND_RETURN;
-
- //! Cannot hover without SPELL_AURA_HOVER
- if (mi->HasMovementFlag(MOVEMENTFLAG_HOVER) && !GetPlayer()->HasAuraType(SPELL_AURA_HOVER))
- VIOLATE_AND_RETURN;
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_FALLING_SLOW) && !GetPlayer()->HasAuraType(SPELL_AURA_FEATHER_FALL),
+ MOVEMENTFLAG_FALLING_SLOW);
/*! Cannot fly if no fly auras present. Exception is being a GM.
Note that we check for account level instead of Player::IsGameMaster() because in some
@@ -865,12 +872,12 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo* mi)
e.g. aerial combat.
*/
- if (mi->HasMovementFlag(MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY) && GetSecurity() == SEC_PLAYER &&
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY) && GetSecurity() == SEC_PLAYER &&
!GetPlayer()->m_mover->HasAuraType(SPELL_AURA_FLY) &&
- !GetPlayer()->m_mover->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED))
- VIOLATE_AND_RETURN;
+ !GetPlayer()->m_mover->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED),
+ MOVEMENTFLAG_FLYING | MOVEMENTFLAG_CAN_FLY);
- #undef VIOLATE_AND_RETURN
+ #undef REMOVE_VIOLATING_FLAGS
}
void WorldSession::WriteMovementInfo(WorldPacket* data, MovementInfo* mi)
@@ -899,7 +906,7 @@ void WorldSession::WriteMovementInfo(WorldPacket* data, MovementInfo* mi)
*data << mi->fallTime;
- if (mi->HasMovementFlag(MOVEMENTFLAG_JUMPING))
+ if (mi->HasMovementFlag(MOVEMENTFLAG_FALLING))
{
*data << mi->j_zspeed;
*data << mi->j_sinAngle;
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index bfa51219d71..5e44c777cbd 100755
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -2855,13 +2855,21 @@ void AuraEffect::HandleAuraAllowFlight(AuraApplication const* aurApp, uint8 mode
//! Not entirely sure if this should be sent for creatures as well, but I don't think so.
target->SetCanFly(apply);
if (!apply)
+ {
target->RemoveUnitMovementFlag(MOVEMENTFLAG_FLYING);
+ target->AddUnitMovementFlag(MOVEMENTFLAG_FALLING);
+ target->m_movementInfo.SetFallTime(0);
+ }
+
Player* player = target->ToPlayer();
if (!player)
player = target->m_movedPlayer;
if (player)
player->SendMovementCanFlyChange();
+
+ //! We still need to initiate a server-side MoveFall here,
+ //! which requires MSG_MOVE_FALL_LAND on landing.
}
void AuraEffect::HandleAuraWaterWalk(AuraApplication const* aurApp, uint8 mode, bool apply) const
@@ -2880,11 +2888,13 @@ void AuraEffect::HandleAuraWaterWalk(AuraApplication const* aurApp, uint8 mode,
if (apply)
target->AddUnitMovementFlag(MOVEMENTFLAG_WATERWALKING);
- else
+ else
+ {
target->RemoveUnitMovementFlag(MOVEMENTFLAG_WATERWALKING);
+ target->AddUnitMovementFlag(MOVEMENTFLAG_FALLING);
+ }
target->SendMovementWaterWalking();
-
}
void AuraEffect::HandleAuraFeatherFall(AuraApplication const* aurApp, uint8 mode, bool apply) const
@@ -3242,13 +3252,21 @@ void AuraEffect::HandleAuraModIncreaseFlightSpeed(AuraApplication const* aurApp,
{
target->SetCanFly(apply);
if (!apply)
+ {
target->RemoveUnitMovementFlag(MOVEMENTFLAG_FLYING);
+ target->AddUnitMovementFlag(MOVEMENTFLAG_FALLING);
+ target->m_movementInfo.SetFallTime(0);
+ }
+
Player* player = target->ToPlayer();
if (!player)
player = target->m_movedPlayer;
if (player)
player->SendMovementCanFlyChange();
+
+ //! We still need to initiate a server-side MoveFall here,
+ //! which requires MSG_MOVE_FALL_LAND on landing.
}
//! Someone should clean up these hacks and remove it from this function. It doesn't even belong here.
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 21d49ccf151..ecd20a03665 100755
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -3505,7 +3505,7 @@ void Spell::update(uint32 difftime)
// check if the player caster has moved before the spell finished
if ((m_caster->GetTypeId() == TYPEID_PLAYER && m_timer != 0) &&
m_caster->isMoving() && (m_spellInfo->InterruptFlags & SPELL_INTERRUPT_FLAG_MOVEMENT) &&
- (m_spellInfo->Effects[0].Effect != SPELL_EFFECT_STUCK || !m_caster->HasUnitMovementFlag(MOVEMENTFLAG_FALLING)))
+ (m_spellInfo->Effects[0].Effect != SPELL_EFFECT_STUCK || !m_caster->HasUnitMovementFlag(MOVEMENTFLAG_FALLING_FAR)))
{
// don't cancel for melee, autorepeat, triggered and instant spells
if (!IsNextMeleeSwingSpell() && !IsAutoRepeat() && !IsTriggered())
@@ -4756,7 +4756,7 @@ SpellCastResult Spell::CheckCast(bool strict)
if (m_caster->GetTypeId() == TYPEID_PLAYER && m_caster->ToPlayer()->isMoving())
{
// skip stuck spell to allow use it in falling case and apply spell limitations at movement
- if ((!m_caster->HasUnitMovementFlag(MOVEMENTFLAG_FALLING) || m_spellInfo->Effects[0].Effect != SPELL_EFFECT_STUCK) &&
+ if ((!m_caster->HasUnitMovementFlag(MOVEMENTFLAG_FALLING_FAR) || m_spellInfo->Effects[0].Effect != SPELL_EFFECT_STUCK) &&
(IsAutoRepeat() || (m_spellInfo->AuraInterruptFlags & AURA_INTERRUPT_FLAG_NOT_SEATED) != 0))
return SPELL_FAILED_MOVING;
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
index 6520d58da20..fa260cb298d 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
@@ -456,7 +456,7 @@ class boss_krick : public CreatureScript
case EVENT_OUTRO_10:
//! HACK: Creature's can't have MOVEMENTFLAG_FLYING
me->RemoveUnitMovementFlag(MOVEMENTFLAG_FLYING);
- me->AddUnitMovementFlag(MOVEMENTFLAG_FALLING);
+ me->AddUnitMovementFlag(MOVEMENTFLAG_FALLING_FAR);
me->GetMotionMaster()->MovePoint(0, outroPos[6]);
_events.ScheduleEvent(EVENT_OUTRO_11, 2000);
break;
diff --git a/src/server/scripts/Northrend/sholazar_basin.cpp b/src/server/scripts/Northrend/sholazar_basin.cpp
index 5260ea33eb6..1f00ca51d0b 100644
--- a/src/server/scripts/Northrend/sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/sholazar_basin.cpp
@@ -90,12 +90,12 @@ public:
case 17:
case 18:
me->RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
- me->RemoveUnitMovementFlag(MOVEMENTFLAG_JUMPING);
+ me->RemoveUnitMovementFlag(MOVEMENTFLAG_FALLING);
me->SetSpeed(MOVE_SWIM, 0.85f, true);
me->AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_DISABLE_GRAVITY);
break;
case 19:
- me->SetUnitMovementFlags(MOVEMENTFLAG_JUMPING);
+ me->SetUnitMovementFlags(MOVEMENTFLAG_FALLING);
break;
case 28:
player->GroupEventHappens(QUEST_FORTUNATE_MISUNDERSTANDINGS, me);
@@ -139,7 +139,7 @@ public:
{
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, false, player->GetGUID());
CAST_AI(npc_escortAI, (creature->AI()))->SetMaxPlayerDistance(35.0f);
- creature->SetUnitMovementFlags(MOVEMENTFLAG_JUMPING);
+ creature->SetUnitMovementFlags(MOVEMENTFLAG_FALLING);
DoScriptText(SAY_START_IRO, creature);
switch (player->GetTeam()){
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
index c3b8306cd8d..72123683d63 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
@@ -143,7 +143,7 @@ class boss_omor_the_unscarred : public CreatureScript
if (Player* temp = Unit::GetPlayer(*me, PlayerGUID))
{
//if unit dosen't have this flag, then no pulling back (script will attempt cast, even if orbital strike was resisted)
- if (temp->HasUnitMovementFlag(MOVEMENTFLAG_FALLING))
+ if (temp->HasUnitMovementFlag(MOVEMENTFLAG_FALLING_FAR))
{
me->InterruptNonMeleeSpells(false);
DoCast(temp, SPELL_SHADOW_WHIP);