var move_vec[3] = 0,0,0;
var walk_speed = 16;
var falling =0;
var fall_distance = 0;
action player_move
{
player = me;
camera.genius=player;
wait(1);
while (player !=NULL)
{
move_vec[0] = (key_w - key_s)*walk_speed *time;
move_vec[1] = (key_a - key_d) *walk_speed *time;
vec_set(temp,my.x);
temp.z-=4000;
fall_distance = c_trace(my.x,temp,ignore_me+ignore_sprites+USE_BOX);
If (fall_distance >64 && sign(fall_distance) != -1)
{
falling = 1;
}
else
{
if ( fall_distance < 64 && falling == 0 )
{
move_vec.z = -fall_distance*time;
}
}
If (fall_distance >32)
{
falling = 1; // now I'm falling
if (move_vec.z > -20*time)
{
move_vec.z -= .5*time;
}
falling = 0;
}
if (fall_distance < 0)
{
move_vec.z = -fall_distance*time;
}
my.pan -= mouse_force.x*walk_speed*time_step;
camera.tilt += mouse_force.y*walk_speed*time_step;
camera.pan = my.pan;
camera.tilt = clamp(camera.tilt,-70,70);
c_move(me,move_vec,nullvector,glide+USE_BOX);
vec_set (Camera.x,player.x);
camera.z += 27;
wait(1);
}
}