Try using this instead...
Code:
SDKHook(client, SDKHook_OnTakeDamageAlive, OnTakeDamage);
public Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon, float damageForce[3], float damagePosition[3], int damagecustom)
{
PrintToChat(victim, "OnTakeDamage > %N attacked %N for %f damage", attacker, victim, damage);
SDKHooks_TakeDamage(victim, victim, victim, damage, damagetype, weapon, damageForce, damagePosition);
}
if that doesn't work try this...
Code:
SDKHook(client, SDKHook_OnTakeDamageAlive, OnTakeDamage);
public Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon, float damageForce[3], float damagePosition[3], int damagecustom)
{
damage = 1.0;
return Plugin_Changed;
}
or this...
Code:
SDKHook(client, SDKHook_OnTakeDamageAlive, OnTakeDamage);
public Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon, float damageForce[3], float damagePosition[3], int damagecustom)
{
SDKHooks_TakeDamage(victim, victim, victim, damage, damagetype, weapon, damageForce, damagePosition);
return Plugin_Changed;
}
I find OnTakeDamageAlive to be more reliable when applying damage.