This solved the problem. I still need to smooth the rotation.

Code:
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);
	}  
}