Now, you are not restricting the jump at all if not on the ground. Change line 64 to
The other problem is that your 'fall' method is only being called one time per jump -- when the jump is initiated in the 'jump' method. Also, there is no restriction as to how far you can fall. Your actor will, once falling is fixed, fall half-way into the bottom edge of the world unless regulated. Line 19 still shows no acceleration due to gravity.
if (isOnGround() && Greenfoot.getRandomNumber(100) == 3)