Probier es mal so:

Code:
#define speed_z skill50
var key_space_off = 0;
VECTOR temp;
...
vec_set(temp,vector(my.x,my.y,my.z-500));
c_trace(my.x,temp,IGNORE_ME | IGNORE_PASSABLE);
if(!trace_hit) vec_set(target,temp);

if(my.z+my.min_z+5 > target.z || my.speed_z > 0)
{
	my.speed_z = maxv(my.speed_z-10*time_step,-80);
	c_move(me,nullvector,vector(0,0,my.speed_z*time_step),IGNORE_PASSABLE | GLIDE);
}
else
{
	my.speed_z = 0;
	my.z += (target.z-my.min_z+3-my.z)*time_step; //or set the position directly... (3 and 5 act as a simple buffer)
	if(key_space)
	{
		if(key_space_off)
		{
			my.speed_z = 50;
			key_space_off = 0;
		}
	}
	else key_space_off = 1;
}



"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends