action follow_player
{
while(player == 0){wait(1);}
c_setminmax(me);
temp.z -= 10000;
my.z -=c_trace(my.pos,temp,use_polygon|ignore_me|ignore_passable|ignore_passents)-9;
my.health = 100;//I've got 100 Healthpoints
my.shadow = on;
my.cast = on;
mat_shadow.alpha = 60;
while (my.health > 0)//as long as I live
{
if (vec_dist (my.x, player.x) < 500 && player.health > 0)
{
vec_set(temp, player.x);
vec_sub(temp, my.x);
vec_to_angle(my.pan, temp);
vec_set (temp, my.x);
}
if (vec_dist (my.x, player.x) > 60)//&&(mouse_right == 1)
{
vec_set(temp, player.x);
vec_sub(temp, my.x);
vec_to_angle(my.pan, temp);
temp.z -= 10000;
my.z -=c_trace(my.pos,temp,use_polygon|ignore_me|ignore_passable|ignore_passents)-9;
walk_percent = (walk_percent +12*time_step*player_speed_land_walk)%100;
ent_animate(me,"walk",walk_percent,anm_cycle);
c_move(me,vector(2*time_step,0,0),vector(0,0,my.PlayerGravity),glide|ignore_me|ignore_passable|ignore_passents);
}
if (vec_dist (my.x, player.x) < 500)&&(mouse_right != 1)
{
temp.z -= 10000;
my.z -=c_trace(my.pos,temp,use_polygon|ignore_me|ignore_passable|ignore_passents)-9;
stand_percent = (stand_percent +0.05*time_step)%100;
ent_animate(me,"stand",stand_percent,anm_cycle);
}
wait(1);
}
}