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)
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