Fix double jump resulting in extremely fast noclip. (Thanks BDlikes)

This commit is contained in:
UnknownShadow200 2016-01-12 12:28:29 +11:00
parent f4ce55cb5c
commit 2398dded54
2 changed files with 10 additions and 8 deletions

View File

@ -10,7 +10,7 @@ namespace ClassicalSharp {
bool useLiquidGravity = false; // used by BlockDefinitions.
bool canLiquidJump = true;
bool firstJump = true, secondJump = true;
bool firstJump = false, secondJump = false;
void UpdateVelocityState( float xMoving, float zMoving ) {
if( !NoclipSlide && (noClip && xMoving == 0 && zMoving == 0) )
@ -101,8 +101,10 @@ namespace ClassicalSharp {
float yMul = Math.Max( 1f, multiply / 5 ) * modifier;
float horMul = multiply * modifier;
if( !secondJump ) { horMul *= 93f; yMul *= 10f; }
else if( !firstJump ) { horMul *= 46.5f; yMul *= 7.5f; }
if( !(flying || noClip) ) {
if( secondJump ) { horMul *= 93f; yMul *= 10f; }
else if( firstJump ) { horMul *= 46.5f; yMul *= 7.5f; }
}
if( TouchesAnyWater() && !flying && !noClip ) {
MoveNormal( xMoving, zMoving, 0.02f * horMul, waterDrag, liquidGrav, yMul );

View File

@ -116,7 +116,7 @@ namespace ClassicalSharp {
HandleInput( ref xMoving, ref zMoving );
UpdateVelocityState( xMoving, zMoving );
PhysicsTick( xMoving, zMoving );
if( onGround ) { firstJump = true; secondJump = true; }
if( onGround ) { firstJump = false; secondJump = false; }
nextPos = Position;
Position = lastPos;
@ -318,12 +318,12 @@ namespace ClassicalSharp {
} else if( key == keys[KeyBinding.NoClip] && CanNoclip && HacksEnabled ) {
noClip = !noClip;
} else if( key == keys[KeyBinding.Jump] && !onGround && !(flying || noClip) ) {
if( firstJump && CanDoubleJump && DoubleJump ) {
if( !firstJump && CanDoubleJump && DoubleJump ) {
DoNormalJump();
firstJump = false;
} else if( secondJump && CanDoubleJump && DoubleJump ) {
firstJump = true;
} else if( !secondJump && CanDoubleJump && DoubleJump ) {
DoNormalJump();
secondJump = false;
secondJump = true;
}
} else {
return false;