I did this for my game on this way:

Code:
while(1)
{
	VECTOR to;
	if(mouse_right)		// Recktsklick ist Bewegung und Angreifen
	{
		//while(mouse_right)	{wait(1);}
		vec_set(to, mouse_dir3d);
		vec_normalize(to, 3000);
		vec_add(to, mouse_pos3d);
		c_trace(camera.x,to.x,IGNORE_ME|SCAN_TEXTURE);
		vec_set(maus_ziel.x,hit.x);
	}
	//[...]
	wait(1);
}


the vector maus_ziel is now the aim. If the distance from player and this vector (vec_dist) is more than 50 Quants, I turned the player to this position and moved him forwart, till the distance is < 50 Quants or he was stucked.