Если я правильно понял, и такой вариант подойдет наверно:
Код
new bool:g_bNeedBlock[MAXPLAYERS + 1];
public OnClientPutInServer(client) g_bNeedBlock[client] = false;
1. SDKHook_OnTakeDamage - проверяешь attacker/inflictor, если атакующий тот, кто тебе нужен, и damage >= GetEntProp(client, Prop_Send, "m_iHealth"), делаешь g_bNeedBlock[client] = true (если attacker/inflictor не определяются, то создать взрыв без повреждений можно, просто эффект + звук, только самому расстояние к игрокам проверять придетц и дамаг им наносить)
2. Pre хук player_death
public Action:player_death(Handle:event, const String:name[], bool:silent)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if (g_bNeedBlock[client])
{
g_bNeedBlock[client] = false;
CreateTimer(0.01, zzz, client, TIMER_FLAG_NO_MAPCHANGE);
return Plugin_Handled;
}
return Plugin_Continue;
}
public Action:zzz(Handle:timer, any:client)
{
// тут уже создаешь player_death событие с нужными параметрами
return Plugin_Stop;
}