You don't have a while loop, now the engine 'looks into' the function only once, but it has to 'look into it' again and again to apply the values of the mouse_force each time anew.
VECTOR boden;
var speed_down = 0;
var dist_down = 0;
var dist_ahead = 0;
action Spieler()
{
player = my;
c_setminmax(my);
wait(1);
camera_pos();
set(my,POLYGON);
while(1)
{
vec_for_min(boden,me);
my.pan += 5 * mouse_force.x * time_step;
if (c_trace(my.x,vector(my.x,my.y,my.z-5000),IGNORE_ME |IGNORE_PASSABLE | USE_BOX) > 0)
{
dist_down = my.z + boden.z - target.z;
}
else
{
dist_down = 0;
}
if(dist_down>0)
{
dist_down = clamp(dist_down,0,accelerate(speed_down,5,0.1));
}
else
{
speed_down = 0;
}
var dist_ahead = 5* mouse_force.y* time_step;
c_move(me,vector(dist_ahead,0,0),vector(0,0,-dist_down),IGNORE_PASSABLE| GLIDE);
wait(1);
}
}