MakeHimJump is the only code capable of making Jumping false. However, MakeHimJump only executes when MakeHimJump is false. Once your code sets jumping to true, it is unable to set it back to false because that part of the code was disabled.
EDIT: Removed Mathf.Round calls as they are not needed.
In response to your issues with random, it is because you are getting a new random number every few milliseconds. You should instead try getting it every second or so. For example:
JS:
public var lt : float = -2;
function Update()
{
if (lt == null || lt == 0)
{
lt = -2;
}
if (Time.time - lt >= 0.9)
{
lt = Time.time;
generateRandomNumber();
}
}
function generateRandomNumber()
{
//Do any kind of number generation here
}
c#:
public float lt;
public void Update()
{
if (lt == null || lt == 0)
{
lt = -2;
}
if (Time.time - lt >= 0.9f)
{
lt = Time.time;
generateRandomNumber();
}
}
public void generateRandomNumber()
{
//Do any kind of number generation here
}