diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index e2d0a746e..37bfeaac9 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -2078,7 +2078,6 @@ namespace Game.Entities movementInfo.Pos.posZ, height, GetPositionZ(), movementInfo.jump.fallTime, height, damage, safe_fall); } } - RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags.Landing); // No fly zone - Parachute } public void UpdateFallInformationIfNeed(MovementInfo minfo, ClientOpcodes opcode) { diff --git a/Source/Game/Handlers/MovementHandler.cs b/Source/Game/Handlers/MovementHandler.cs index 68f230fcf..02efc40a1 100644 --- a/Source/Game/Handlers/MovementHandler.cs +++ b/Source/Game/Handlers/MovementHandler.cs @@ -136,6 +136,10 @@ namespace Game if (opcode == ClientOpcodes.MoveFallLand && plrMover && !plrMover.IsInFlight()) plrMover.HandleFall(movementInfo); + // interrupt parachutes upon falling or landing in water + if (opcode == ClientOpcodes.MoveFallLand || opcode == ClientOpcodes.MoveStartSwim) + mover.RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags.Landing); // Parachutes + if (plrMover && movementInfo.HasMovementFlag(MovementFlag.Swimming) != plrMover.IsInWater()) { // now client not include swimming flag in case jumping under water