#include <sdktools_stringtables>
#include <sdktools_sound>
#pragma semicolon 1
#pragma newdecls required
Handle hTimer[MAXPLAYERS +1];
#define dSound "sound/wasted/wasted.mp3" // Загрузка звука
#define wSound "*/wasted/wasted.mp3" // Кеширование и воспроизведение звука
#define dOverlayVtf "materials/wasted/wasted.vtf" // Загрузка vtf(сам оверлей)
#define dOverlayVmt "materials/wasted/wasted.vmt" // Загрузка vmt(настройки оверлей)
#define wOverlayVtf "wasted/wasted.vtf" // Кеширование модели(оверлей)
#define wOverlayVmt "wasted/wasted.vmt" // показать overlay игроку
#define TimeDel 3.0 // Время через которое оверлей исчезнет
#define Fade 1500 // Время продолжительности подсветки экрана (сейчас 3 секунды, вроде как, наверное, не точно, эксперементируйте)
//laziness... char Buffer[64], FormatEx... != Explode optimization Lisoh, use #define;
public void OnPluginStart()
{
HookEvent("player_death", PlayerDeath);
}
public void OnMapStart()
{
AddFileToDownloadsTable(dSound);
PrecacheSound(wSound, true);
AddFileToDownloadsTable(dOverlayVtf);
AddFileToDownloadsTable(dOverlayVmt);
PrecacheDecal(wOverlayVtf, true);
}
public Action PlayerDeath(Event event, const char[] name, bool dbc)
{
int iClient = GetClientOfUserId(event.GetInt("userid"));
if(iClient)
{
EmitSoundToClient(iClient, wSound);
ClientCommand(iClient, "r_screenoverlay %s", wOverlayVmt);
hTimer[iClient] = CreateTimer(TimeDel, DelOverlay, GetClientUserId(iClient), TIMER_FLAG_NO_MAPCHANGE);
PerformFade(iClient, Fade, {220, 220, 220, 150}); //PerformFade(клиент, продолжительность, {красный, зеленый, синий, прозрачность})
}
}
public Action DelOverlay(Handle timer, any UserId)
{
int iClient = GetClientOfUserId(UserId);
if(iClient) ClientCommand(iClient, "r_screenoverlay 0");
hTimer[iClient] = null;
return Plugin_Stop;
}
public void OnClientDisconnect(int iClient)
{
if((hTimer[iClient]) != null)
{
KillTimer(hTimer[iClient]);
hTimer[iClient] = null;
}
}
void PerformFade(int iClient, int Duration, const Color[4]) //http://hlmod.ru/threads/plagin-pri-ubijstve-sinij-ehkran.30024/
{
int Flags = 0x0001; Handle message = StartMessageOne("Fade", iClient);
PbSetInt(message, "duration", Duration);
PbSetInt(message, "hold_time", Fade);
PbSetInt(message, "flags", Flags);
PbSetColor(message, "clr", Color);
EndMessage();
}