the weapon has no ammo?

For example, bind e uses crosshair 1, bind q uses crosshair 2.

When the weapon binded to e is empty, I switch to another weapon, and if by mistake I press e, it switches to crosshair 1, but im still in the weapon binded to q since the weapon binded to e is empty and I have cg_noAmmoChange set to "1" and cg_switchtoempty "0"

This is annoying. Is there a way to ignore weapons that are empty so even if you press the bind, the crosshair stays the same?

I wish Syncerror worked on stuff like this back then instead of dumb shit.