sure:

it is important that the weapons are not "networked" entitys, that would be a total waste of bandwith.

on every client, create them with ent_createlocal(..) for every player.
I've used proc_local to start functions for every player entity, that is a very helpful function, look it up in the manual if you don't know it yet.

give them the following function: (through ent_createlocal of course)

Code:
function attached_wp_act()
{
	set (me, PASSABLE);
	set (me, UNTOUCHABLE);
	proc_mode = PROC_LATE;  // important part: keeps the gun from lagging one frame behind!!


	while (you)
	{
		if (you == NULL) {break;}

		vec_for_vertex(my.x, you, 5); // position at vertex 5 of player, change to fit your model!!
		vec_set (my.pan, you.pan); //  make it point into the same direction as the player


		wait(1);
	}
	ent_remove(me);
}



this is from the lite-c code, it might not work correctly, but it should tongue