Thanks for the recommendation but I advise against using that old multiple boxes approach.
You could use a very low poly character for collision only but with the same bones/ skeleton. When you call your hitscan weapon code copy the animation to the invisible low poly mesh, call c_updatehull (?) and c_trace without USE_BOX.
I once wrote the following anim copy function, could be optimized probably:

Code:
void ent_anim_copy(ENTITY* eTarget, ENTITY* eSource)
{
	int i,numBones,hparent;
	ANGLE angle,angle2,angle3,eSourcePanInv;

	numBones = ent_bones(eSource);
	ent_bonereset_all(eTarget);
	ang_diff(&eSourcePanInv,nullvector,&(eSource->pan));
	for(i = 0; i < numBones; i++)
	{
		ang_for_bone(&angle,eSource,i+1); // use bone handles/ indices instead of names
		ang_add(&angle,&eSourcePanInv);
		hparent = ent_boneparent(eSource,NULL,i+1);
		if(hparent > 0)
		{
			ang_for_bone(&angle2,eSource,hparent); // eTarget's bone is already rotated by parent bone's rotation => undo it!
			ang_add(&angle2,&eSourcePanInv);
			ang_diff(&angle3,nullvector,&angle2); // best way to do this? I doubt it.
			ang_add(&angle,&angle3);
		}
		ent_bonerotate(eTarget,i+1,&angle);
	}
}



"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends