.float multijump_ready;
.float prevjumpbutton;
+.float nexspeed;
+
/*
=============
PlayerJump
curspeed = max(
vlen(vec2(self.velocity)), // current xy speed
- vlen(vec2(antilag_takebackavgvelocity(self, time - 0.25, time))) // average xy topspeed over the last 0.25 secs
+ vlen(vec2(antilag_takebackavgvelocity(self, max(self.lastteleporttime + sys_frametime, time - 0.25), time))) // average xy topspeed over the last 0.25 secs
);
- makevectors(self.v_angle); // this always is '0 y 0'
+ makevectors(self.v_angle_y * '0 1 0');
wishvel = v_forward * self.movement_x + v_right * self.movement_y;
wishdir = normalize(wishvel);
}
}
}
+
+ float f;
+ float xyspeed;
+ f = cvar("g_balance_nex_velocitydependent_falloff_factor");
+ xyspeed = vlen('1 0 0' * self.velocity_x + '0 1 0' * self.velocity_y);
+ if(xyspeed > self.nexspeed)
+ self.nexspeed = min(xyspeed, cvar("g_balance_nex_velocitydependent_maxspeed"));
+ else
+ self.nexspeed = (1 - f) * self.nexspeed;
:end
if(self.flags & FL_ONGROUND)
self.lastground = time;