I have this Code to attach a Weapon to a Player. Maybee you can use it for your Project:

Code:
VECTOR Vertex_pos_1
VECTOR Vertex_pos_2
VECTOR Vertex_pos_3
VECTOR Vertex_norm
VECTOR Vertex_ebene_1
VECTOR Vertex_ebene_2
VECTOR Vertex_roll

void SETZE_ANGEH_GST(vertex_1,vertex_2,vertex_3,plus_pan,plus_tilt,plus_roll)
{
	proc_mode = PROC_LATE;
	
	vec_for_vertex (Vertex_pos_1,you,vertex_1);                                                     // Hole Vertex - Positionen
	vec_for_vertex (Vertex_pos_2,you,vertex_2);
	vec_for_vertex (Vertex_pos_3,you,vertex_3);
	
	vec_for_normal (Vertex_norm,you,vertex_2);
	vec_add (Vertex_norm,Vertex_pos_2);
	
	vec_set (my.x, Vertex_norm);                                                                    // Set my Position to vertex_2
	
	vec_sub(Vertex_pos_1,Vertex_pos_2);                                                             // Set pan and tilt
	vec_to_angle(my.pan,Vertex_pos_1);
	my.pan  += plus_pan;
	my.tilt += plus_tilt;
	
	my.roll = 0;		                                                                              // Set roll
	vec_sub(Vertex_pos_2,Vertex_pos_3);
	
	vec_set (Vertex_ebene_1, vector(0,1,0));	
	vec_rotate (Vertex_ebene_1, my.pan);
	
	vec_set (Vertex_ebene_2, vector(0,0,1));	
	vec_rotate (Vertex_ebene_2, my.pan);                                                            // This Vectors set the plane	
	
	Vertex_roll.x = vec_dot (Vertex_ebene_1, Vertex_pos_2);	
	Vertex_roll.y = vec_dot (Vertex_ebene_2, Vertex_pos_2);
	
	vec_to_angle (Temp_ang1, Vertex_roll);
	my.roll = Temp_ang1.pan + plus_roll;
}


Call this function in a while loop. The vertex_1 - vertex_3 are 3 vertices in position of a "L" at the tank, where do you want to set your turret. Play with the vars pan_plus.

EDIT: Or a easier way: Use a bone at the Position where you want add your turrent, set the turrent with vec_for_bone and ang_for_bone, and turn your turrent with ent_bonerotate

Last edited by Widi; 01/25/10 21:44.