All right, I've made it so that weapons have infinite ammo, but now I'm stuck with something:
'GiveNamedItem' SDKCalls refuse to work when the item is weapon_hegrenade (or weapon_flashbang, or anything like that). So there's no way for it to give grenades. I have no idea what about weapon_hegrenade is special that means it doesn't work whilst weapon_ak47 does. It's occured to me that maybe weapon_hegrenade is the wrong name, but it seems to work in CSS when I go 'use weapon_hegrenade'.
Edit: Figured it out. As it turns out, weapon_hegrenade is too big to fit into String:weapon[16];, and I feel really silly!
Mike