Override TraceLine function with register_forward().
Here is an example from AXN how to disable a HEADSHOT.
Code:
void TraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr)
{
TRACE_LINE(v1, v2, fNoMonsters, pentToSkip, ptr);
if(ptr->iHitgroup == HITGROUP_HEAD && axn_noheadshot->value != 0)
{
ptr->iHitgroup = HITGROUP_GENERIC;
}
RETURN_META(MRES_SUPERCEDE);
}
You have to just hack a trace result structure for your own needs.