Test on non-armored players and print some debug messages to be sure they get damaged by the right values...
Also, alot of wasted calls there, consider this instead:
Code:
if (get_user_weapon(attacker) == CSW_KNIFE && !IsGrenade(inflictor))
{
new Float:fDamage = 0.0
if(g_Chain[attacker])
fDamage = 500.0
else if(g_Electro[attacker])
fDamage = 80.0
else if(g_CrowBar[attacker] && get_user_team(attacker) != get_user_team(victim))
fDamage = 50.0
if(fDamage > 0.0)
{
SetHamParamFloat(4, fDamage)
client_print(attacker, print_chat, "[debug] Damage changed to %.1f", fDamage)
}
else
client_print(attacker, print_chat, "[debug] No damage change!")
}
And why are you checking for friendlyfire only on crowbar ?
__________________