First, unless you need it for specific reasons the switch on sHitLoc is useless
Second, a SMAW won't always hit the player directly
Third you should debug (print) the values you're using and you'll find the answer yourself
Simply add this in your if and you will see useful/relevant values and understand why something isn't working easily
print(idamage);
print(sweapon);
print(smeansofdeath):
Also don't randomly try to guess weapon names, debug them like mentioned above
This might give you an idea
https://github.com/Resxt/Plutonium-IW5-Scripts/blob/main/small_scripts/disable_damages.gsc
I simply added this to modify SMAW's damages. To modify launchers damage in general you would use sMeansOfDeath instead probably. Here I also check if the attacker isn't the victim too so that you can still damage yourself
if (isDefined(eAttacker.guid) && isDefined(self.guid))
{
if (eAttacker.guid == self.guid)
{
if (sWeapon == "iw5_smaw_mp")
{
iDamage = 0;
}
}
}