void moveplayer()
{
var speed_down;
VECTOR vFeet;
move_min_z = -1;
while(1)
{
my.pan -= mouse_force.x *20 *time_step;
camera.tilt += mouse_force.y *20 *time_step;
camera.tilt = clamp(camera.tilt,-90,90);
var dist_down;
if (c_trace(my.x,vector(my.x,my.y,my.z-5000),IGNORE_ME | IGNORE_PASSABLE | USE_POLYGON) > 0)
dist_down = my.z + vFeet.z - target.z;
else
dist_down = 0;
if(dist_down > 0)
dist_down = clamp(dist_down,0,accelerate(speed_down,2,0.1));
else
speed_down = 0;
var dist_ahead = 1*(key_w-key_s)*time_step;
var dist_side = 1*(key_a-key_d)*time_step;
var dist_sprint = 2* (key_w && key_shift) *time_step;
move_min_z = 500;
c_move(me,vector(dist_ahead,dist_side,0),vector(0,0,0), IGNORE_ME | IGNORE_PASSABLE | USE_POLYGON | GLIDE);
c_move(me,vector(0,0,0),vector(0,0,-dist_down), IGNORE_ME | IGNORE_PASSABLE | USE_POLYGON | GLIDE);
if(sprint_v > 2 && c_move(me,vector(dist_sprint,0,0),vector(0,0,0), IGNORE_ME | IGNORE_PASSABLE | USE_POLYGON | GLIDE))
{
sprint_act = 1;
sprint_v = sprint_v -0.7 *time_step;
}
else
sprint_act = 0;
if(sprint_act == 0)
{
sprint_v = clamp(sprint_v,0,100);
sprint_v = sprint_v +0.3 *time_step;
}
wait(1);
}
}
function walksound()
{
while(1)
{
while(sprint_act == 0 && key_w || key_a || key_s || key_d )
{
snd_play(walk_leaves01_snd,100,50);
wait(45);
snd_play(walk_leaves02_snd,100,50);
wait(35);
}
while(sprint_act == 1 && key_w && key_shift)
{
snd_play(walk_leaves01_snd,100,50);
wait(22);
snd_play(walk_leaves02_snd,100,50);
wait(22);
}
wait(1);
}
}