Да проще чтоб вообще себя не выводил из строя и вообще не дамагило) У себя я это делал примерно так:
Покупка крика:
...
CurrentPoints[param1] -= cost[param1];
FireResist=1;
Create_PointHurt(param1);
...
Дамаг в SDK:
public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype,&weapon, Float:damageForce[3], Float:damagePosition[3])
{
if (damagetype == -2130706422 || damagetype == -1056964598) //(либо иные типы атаки поинт харт)
{ //(пример для зажигательного патрона)
if (GetClientTeam(victim) == TEAM_SURVIVORS && IsClientInGame(victim))
{
if (FireResist == 1)
{
damage = 0.0;
return Plugin_Changed;
}
}
}
Ну или снятие FireResist == 0 можно в сдк запихнуть либо в делете_ентити поинт_харт.