Well you could hook OnTakeDamage in OnWeaponSwitch and if it's not a knife you unhook OnTakeDamage
Maybe is not 100% safe but try it.
PHP Code:
#include <sourcemod>
#include <sdkhooks>
public OnClientPutInServer(int client)
{
SDKHook(client, SDKHook_WeaponSwitch, OnWeaponSwitch);
}
public Action:OnWeaponSwitch(client, weapon)
{
char WeaponName[32];
GetEdictClassname(weapon, WeaponName, sizeof(WeaponName));
if(StrEqual(WeaponName, "weapon_knife", false))
{
SDKHook(client, SDKHook_OnTakeDamage, Event_OnTakeDamage);
}
else
{
SDKUnhook(client, SDKHook_OnTakeDamage, Event_OnTakeDamage);
}
}
public Action Event_OnTakeDamage(int victim, int &attacker, int &inflictor, float &fDamage, int &damagetype, int &weapon, float a_fDmgForce[3], float a_fDmgPosition[3])
{
fDamage *= 0.6;
return Plugin_Changed;
}
__________________