#pragma semicolon 1
#include <sdkhooks>
static const float DAMAGE = 3.14;
public OnPluginStart()
{
for(new i = 1; i <= MaxClients; i++) if(IsClientValid(i)) SDKHook(i, SDKHook_OnTakeDamage, OnTakeDamage);
}
public OnClientPutInServer(client)
{
SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public Action OnTakeDamage(int victim, int& attacker, int& inflictor, float& damage, int& damagetype)
{
if(damagetype & DMG_SLASH && IsClientValid(attacker) && IsClientValid(victim))
{
static char wpn[32];
GetClientWeapon(attacker, wpn, sizeof(wpn));
if(StrContains(wpn, "knife", false) != -1 || StrContains(wpn, "bayonet", false) != -1)
{
damage = DAMAGE;
return Plugin_Changed;
}
}
return Plugin_Continue;
}
stock bool IsClientValid(int client)
{
return client > 0 && client <= MaxClients && IsClientInGame(client);
}