#include <cstrike>
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <clientprefs>
#pragma semicolon 1
// Define
#define PLUGIN_VERSION "1.2.8"
// Ints
int kills[MAXPLAYERS+1];
// Convars
ConVar sPluginEnabled;
ConVar sSoundEnabled;
ConVar sOverlaysType;
ConVar sDefaultVolume;
ConVar sLoop;
Handle g_Cookie;
Handle g_Cookie2;
Handle g_VolumeCookie;
Handle g_Timer[MAXPLAYERS+1];
float Volume[MAXPLAYERS + 1];
public Plugin myinfo =
{
name = "[ANY] SLAYER Kill Streak",
author = "SLAYER",
description = "Show Animated Overlays on kill Streak with Sounds",
version = PLUGIN_VERSION,
url = "https://forums.alliedmods.net/member.php?u=293943"
};
public void OnPluginStart()
{
g_Cookie = RegClientCookie("KillStreek_Overlays", "Item On/Off", CookieAccess_Private);
g_Cookie2 = RegClientCookie("KillStreek_Sounds", "Item On/Off", CookieAccess_Private);
g_VolumeCookie = RegClientCookie("KillStreek_Sounds_Volume", "sounds volume", CookieAccess_Private);
sPluginEnabled = CreateConVar("killstreak_enabled", "1", "Enabled/Disabled Kill Streak Plugin", FCVAR_NOTIFY, true, 0.0, true, 1.0);
sSoundEnabled = CreateConVar("killstreak_enable_sound", "1", "Enabled/Disabled Kill Streak Sounds (0 = Disabled, 1 = Enabled)", FCVAR_NOTIFY, true, 0.0, true, 1.0);
sOverlaysType = CreateConVar("killstreak_overlays_color", "3", "Kill Streak Overlays Color (0 = Disabled, 1 = Red, 2 = Green, 3 = Team)", FCVAR_NOTIFY);
sDefaultVolume = CreateConVar("killstreak_sounds_defaultvolume", "1.0", "Default KillSteak Sound Volume.", FCVAR_NOTIFY, true, 0.0, true, 1.0);
sLoop = CreateConVar("killstreak_sounds_loop", "1", "Loop the Sounds after a player killed 6 enemies? Useful for Deathmatch/GunGame", FCVAR_NOTIFY, true, 0.0, true, 1.0);
HookEvent("round_start", Event_RoundStart, EventHookMode_PostNoCopy);
HookEvent("player_death", Event_PlayerDeath);
RegConsoleCmd("sm_killstreak", DisplayKillStreakMenu, "Dispaly Kill Streak Menu");
HookConVarChange(sPluginEnabled, OnConvarChanged);HookConVarChange(sSoundEnabled, OnConvarChanged);HookConVarChange(sOverlaysType, OnConvarChanged);HookConVarChange(sDefaultVolume , OnConvarChanged);
for(int i = 1; i <= MaxClients; i++)
{
if(IsValidClient(i) && !IsFakeClient(i) && !AreClientCookiesCached(i)) OnClientCookiesCached(i);
}
AutoExecConfig(true, "SLAYER_KillStreak");
}
public OnConvarChanged(ConVar convar, const char[] oldValue, const char[] newValue)
{
if(convar == sPluginEnabled){if(convar.BoolValue){sPluginEnabled.BoolValue = true;PrintToChatAll("Kill Streak Plugin is now Enabled!");}else{sPluginEnabled.BoolValue = false;PrintToChatAll("Kill Streak Plugin is now Disabled!");}}
if(convar == sSoundEnabled){if(convar.BoolValue){sSoundEnabled.BoolValue = true;}else{sSoundEnabled.BoolValue = false;}}
if(convar == sOverlaysType){sOverlaysType.IntValue = StringToInt(newValue);}
if(convar == sDefaultVolume){sDefaultVolume.FloatValue = StringToFloat(newValue);}
}
public void OnClientPutInServer(int client)
{
if (IsValidClient(client) && !IsFakeClient(client))OnClientCookiesCached(client);
}
public void OnClientCookiesCached(int client)
{
if(!IsValidClient(client) && IsFakeClient(client))return;
char scookie[1024];
GetClientCookie(client, g_VolumeCookie, scookie, sizeof(scookie));
if(!StrEqual(scookie, ""))
{
Volume[client] = StringToFloat(scookie);
}
else if(StrEqual(scookie,"")) Volume[client] = sDefaultVolume.FloatValue;
}
public void OnMapStart()
{
DownloadableContent();
}
public Action DisplayKillStreakMenu(int client, int args)
{
KillStreakMenu(client);
return Plugin_Handled;
}
public CookieMenu_Menu(client, CookieMenuAction:action, any:info, char[] sBuffer, iBufferSize)
{
if(action != CookieMenuAction_DisplayOption)
KillStreakMenu(client);
}
public Action KillStreakMenu(int client)
{
if(!sPluginEnabled.BoolValue)
{
ReplyToCommand(client, "\x04[KillStreak] \x01KillStreak Plugin is Disabled");
return Plugin_Stop;
}
if(IsValidClient(client) && !IsFakeClient(client))
{
char sCookie[32];
GetClientCookie(client, g_Cookie, sCookie, sizeof(sCookie));
Handle g_KillStreakMenu = CreateMenu(SettingsMenu);
SetMenuTitle(g_KillStreakMenu, "KillStreak Settings");
GetClientCookie(client, g_Cookie, sCookie, sizeof(sCookie));
if(sOverlaysType.IntValue != 0)AddMenuItem(g_KillStreakMenu, "Overlays", bool:StringToInt(sCookie)?"KillStreak Overlays [Enabled]":"KillStreak Overlays [Disabled]");
GetClientCookie(client, g_Cookie2, sCookie, sizeof(sCookie));
if(sSoundEnabled.BoolValue)AddMenuItem(g_KillStreakMenu, "Sounds", bool:StringToInt(sCookie)?"KillStreak Sounds [Enabled]":"KillStreak Sounds [Disabled]");
AddMenuItem(g_KillStreakMenu, "Volume", "KillStreak Volume");
SetMenuExitButton(g_KillStreakMenu, true);
DisplayMenu(g_KillStreakMenu, client, 30);
return Plugin_Handled;
}
return Plugin_Continue;
}
public SettingsMenu(Menu g_KillStreakMenu, MenuAction:action, client, Item)
{
switch(action)
{
case MenuAction_Select:
{
char sitems[64];
int cookievalue = GetIntCookie(client, g_Cookie);
GetMenuItem(g_KillStreakMenu, Item, sitems, sizeof(sitems));
if(StrEqual(sitems, "Overlays"))
{
char sCookie[32];
GetClientCookie(client, g_Cookie, sCookie, sizeof(sCookie));
SetClientCookie(client, g_Cookie, bool:StringToInt(sCookie)?"0":"1");
if(cookievalue == 0)
{
PrintToChat(client,"\x04[KillStreak] \x04KillStreak \x01Overlays are now \x04Disabled");
}
else
{
PrintToChat(client,"\x04[KillStreak] \x04KillStreak \x01Overlays are now \x04Enabled");
}
KillStreakMenu(client);
}
if(StrEqual(sitems, "Volume"))
{
KillStreakVolumeMenu(client);
}
if(StrEqual(sitems, "Sounds"))
{
char sCookie[32];
int cookievalue1 = GetIntCookie(client, g_Cookie2);
GetClientCookie(client, g_Cookie2, sCookie, sizeof(sCookie));
SetClientCookie(client, g_Cookie2, bool:StringToInt(sCookie)?"0":"1");
if(cookievalue1 == 0)
{
PrintToChat(client,"\x04[KillStreak] \x04KillStreak \x01Sounds are now \x04Disabled");
}
else
{
PrintToChat(client,"\x04[KillStreak] \x04KillStreak \x01Sounds are now \x04Enabled");
}
KillStreakMenu(client);
}
}
case MenuAction_End:
{
CloseHandle(g_KillStreakMenu);
}
}
return 0;
}
public Action KillStreakVolumeMenu(int client)
{
if(!sPluginEnabled.BoolValue)
{
ReplyToCommand(client, "\x04[KillStreak] \x01KillStreak Plugin is Disabled");
return Plugin_Stop;
}
if(IsValidClient(client) && !IsFakeClient(client))
{
Handle g_KillStreakVolumeMenu = CreateMenu(VolumeMenuHandler);
char vol[32];
if(Volume[client] > 0.00)Format(vol, sizeof(vol), "%0.2f", Volume[client]);
else {Format(vol, sizeof(vol), "%0.2f", sDefaultVolume.FloatValue);}
char title[200];
Format(title, sizeof(title), "Select KillStreak Volume\nCurrent Volume: %s", vol);
SetMenuTitle(g_KillStreakVolumeMenu, title);
AddMenuItem(g_KillStreakVolumeMenu, "0.1", "10%");
AddMenuItem(g_KillStreakVolumeMenu, "0.2", "20%");
AddMenuItem(g_KillStreakVolumeMenu, "0.4", "40%");
AddMenuItem(g_KillStreakVolumeMenu, "0.6", "60%");
AddMenuItem(g_KillStreakVolumeMenu, "0.8", "80%");
AddMenuItem(g_KillStreakVolumeMenu, "1.0", "100%");
SetMenuExitBackButton(g_KillStreakVolumeMenu, true);
SetMenuExitButton(g_KillStreakVolumeMenu, true);
DisplayMenu(g_KillStreakVolumeMenu, client, 0);
return Plugin_Handled;
}
return Plugin_Continue;
}
public VolumeMenuHandler(Menu g_KillStreakVolumeMenu, MenuAction:action, client, Item)
{
switch(action)
{
case MenuAction_Cancel:
{
if(Item == MenuCancel_ExitBack)KillStreakMenu(client);
}
case MenuAction_Select:
{
char sitems[64];
GetMenuItem(g_KillStreakVolumeMenu, Item, sitems, sizeof(sitems));
Volume[client] = StringToFloat(sitems);
PrintToChat(client, "\x04[KillStreak] \x04KillStreak \x01Volume is set to \x04%0.2f", Volume[client]);
SetClientCookie(client, g_VolumeCookie, sitems);
KillStreakVolumeMenu(client);
}
case MenuAction_End:
{
CloseHandle(g_KillStreakVolumeMenu);
}
}
return 0;
}
int GetIntCookie(int client, Handle handle)
{
char sCookieValue[11];
GetClientCookie(client, handle, sCookieValue, sizeof(sCookieValue));
return StringToInt(sCookieValue);
}
stock bool IsValidClient(int client)
{
if(client <= 0 ) return false;
if(client > MaxClients) return false;
if(!IsClientConnected(client)) return false;
return IsClientInGame(client);
}
public Event_PlayerDisconnect(Handle event, const char[] name, bool dontBroadcast)
{
int attacker = GetClientOfUserId(GetEventInt(event, "userid"));
kills[attacker] = 0;
delete g_Timer[attacker];
}
public void Event_RoundStart(Handle event, const char[] name, bool dontBroadcast)
{
if(sPluginEnabled.BoolValue) // check plugin is enabled or disabled
{
for(new i = 1; i < MAXPLAYERS; i++)
{
delete g_Timer[i];
kills[i] = 0;
}
}
}
public Event_PlayerDeath(Handle event, const char[] name, bool dontBroadcast)
{
if (sPluginEnabled.BoolValue == false)return;
int victim = GetClientOfUserId(GetEventInt(event, "userid"));
int attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
if(attacker == 0){return;}
if(GetClientTeam(attacker) != GetClientTeam(victim))
{
kills[attacker]++;
}
int iFlags = GetCommandFlags("r_screenoverlay");
SetCommandFlags("r_screenoverlay", iFlags &~ FCVAR_CHEAT);
delete g_Timer[attacker];
if(kills[attacker] == 1)
{
if(sSoundEnabled.BoolValue && GetIntCookie(attacker, g_Cookie2) == 0)EmitSoundToClient(attacker, "slayer/overlays/firstblood.mp3", SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NONE, _, Volume[attacker]);
if(sOverlaysType.IntValue > 0)
{
if(sOverlaysType.IntValue > 1)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 3 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/onekillgreen.vmt");
if(sOverlaysType.IntValue == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/onekillgreen.vmt");
}
if(sOverlaysType.IntValue == 1 || sOverlaysType.IntValue == 3)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/onekillred.vmt");
if(sOverlaysType.IntValue == 1 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/onekillred.vmt");
}
}
g_Timer[attacker] = CreateTimer(1.6, RemoveOverlay, attacker);
}
if(kills[attacker] == 2)
{
if(sSoundEnabled.BoolValue && GetIntCookie(attacker, g_Cookie2) == 0)EmitSoundToClient(attacker, "slayer/overlays/doublekill.mp3", SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NONE, _, Volume[attacker]);
if(sOverlaysType.IntValue > 0)
{
if(sOverlaysType.IntValue > 1)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 3 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/twokillgreen.vmt");
if(sOverlaysType.IntValue == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/twokillgreen.vmt");
}
if(sOverlaysType.IntValue == 1 || sOverlaysType.IntValue == 3)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/twokillred.vmt");
if(sOverlaysType.IntValue == 1 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/twokillred.vmt");
}
}
g_Timer[attacker] = CreateTimer(1.4, RemoveOverlay, attacker);
}
if(kills[attacker] == 3)
{
if(sSoundEnabled.BoolValue && GetIntCookie(attacker, g_Cookie2) == 0)EmitSoundToClient(attacker, "slayer/overlays/triplekill.mp3", SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NONE, _, Volume[attacker]);
if(sOverlaysType.IntValue > 0)
{
if(sOverlaysType.IntValue > 1)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 3 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/threekillgreen.vmt");
if(sOverlaysType.IntValue == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/threekillgreen.vmt");
}
if(sOverlaysType.IntValue == 1 || sOverlaysType.IntValue == 3)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 2 && GetIntCookie(attacker, g_Cookie) == 0)EmitSoundToClient(attacker, "slayer/overlays/triplekill.mp3", SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NONE, _, Volume[attacker]);
if(sOverlaysType.IntValue == 1 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/threekillred.vmt");
}
}
g_Timer[attacker] = CreateTimer(1.6, RemoveOverlay, attacker);
}
if(kills[attacker] == 4)
{
if(sSoundEnabled.BoolValue && GetIntCookie(attacker, g_Cookie2) == 0)EmitSoundToClient(attacker, "slayer/overlays/qudrakill.mp3", SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NONE, _, Volume[attacker]);
if(sOverlaysType.IntValue > 0)
{
if(sOverlaysType.IntValue > 1)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 3 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/fourkillgreen.vmt");
if(sOverlaysType.IntValue == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/fourkillgreen.vmt");
}
if(sOverlaysType.IntValue == 1 || sOverlaysType.IntValue == 3)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/fourkillred.vmt");
if(sOverlaysType.IntValue == 1 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/fourkillred.vmt");
}
}
g_Timer[attacker] = CreateTimer(1.4, RemoveOverlay, attacker);
}
if(kills[attacker] == 5)
{
if(sSoundEnabled.BoolValue){
if (IsValidClient(attacker) && !IsFakeClient(attacker) && GetIntCookie(attacker, g_Cookie2) == 0)
{
EmitSoundToClient(attacker, "slayer/overlays/pentakill.mp3", SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NONE, _, Volume[attacker]);
}
}
if(sOverlaysType.IntValue > 0)
{
if(sOverlaysType.IntValue > 1)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 3 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/fivekillgreen.vmt");
if(sOverlaysType.IntValue == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/fivekillgreen.vmt");
}
if(sOverlaysType.IntValue == 1 || sOverlaysType.IntValue == 3)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/fivekillred.vmt");
if(sOverlaysType.IntValue == 1 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/fivekillred.vmt");
}
}
g_Timer[attacker] = CreateTimer(3.7, RemoveOverlay, attacker);
}
if(kills[attacker] == 6)
{
if(sSoundEnabled.BoolValue){
if (IsValidClient(attacker) && !IsFakeClient(attacker) && GetIntCookie(attacker, g_Cookie2) == 0)
{
EmitSoundToClient(attacker, "slayer/overlays/hexakill.mp3", SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NONE, _, Volume[attacker]);
}
}
if(sOverlaysType.IntValue > 0)
{
if(sOverlaysType.IntValue > 1)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 3 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/sixkillgreen.vmt");
if(sOverlaysType.IntValue == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/sixkillgreen.vmt");
}
if(sOverlaysType.IntValue == 1 || sOverlaysType.IntValue == 3)
{
if(sOverlaysType.IntValue == 3 && GetClientTeam(attacker) == 2 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/sixkillred.vmt");
if(sOverlaysType.IntValue == 1 && GetIntCookie(attacker, g_Cookie) == 0)ClientCommand(attacker, "r_screenoverlay slayer/overlays/sixkillred.vmt");
}
}
if (sLoop.BoolValue)kills[attacker] = 0;
g_Timer[attacker] = CreateTimer(3.7, RemoveOverlay, attacker);
}
}
public Action RemoveOverlay(Handle timer, any:client)
{
if(IsClientInGame(client))
{
int iFlags = GetCommandFlags("r_screenoverlay");
SetCommandFlags("r_screenoverlay", iFlags &~ FCVAR_CHEAT);
ClientCommand(client, "r_screenoverlay \"\"");
SetCommandFlags("r_screenoverlay", iFlags);
}
g_Timer[client] = null;
}
void DownloadableContent()
{
AddFileToDownloadsTable("materials/slayer/overlays/onekillgreen.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/twokillgreen.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/threekillgreen.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/fourkillgreen.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/fivekillgreen.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/sixkillgreen.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/onekillgreen.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/twokillgreen.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/threekillgreen.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/fourkillgreen.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/fivekillgreen.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/sixkillgreen.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/onekillred.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/twokillred.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/threekillred.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/fourkillred.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/fivekillred.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/sixkillred.vmt");
AddFileToDownloadsTable("materials/slayer/overlays/onekillred.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/twokillred.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/threekillred.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/fourkillred.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/fivekillred.vtf");
AddFileToDownloadsTable("materials/slayer/overlays/sixkillred.vtf");
AddFileToDownloadsTable("sound/slayer/overlays/firstblood.mp3");
AddFileToDownloadsTable("sound/slayer/overlays/doublekill.mp3");
AddFileToDownloadsTable("sound/slayer/overlays/triplekill.mp3");
AddFileToDownloadsTable("sound/slayer/overlays/qudrakill.mp3");
AddFileToDownloadsTable("sound/slayer/overlays/pentakill.mp3");
AddFileToDownloadsTable("sound/slayer/overlays/hexakill.mp3");
PrecacheModel("materials/slayer/overlays/onekillgreen.vmt", true);
PrecacheModel("materials/slayer/overlays/twokillgreen.vmt", true);
PrecacheModel("materials/slayer/overlays/threekillgreen.vmt", true);
PrecacheModel("materials/slayer/overlays/fourkillgreen.vmt", true);
PrecacheModel("materials/slayer/overlays/fivekillgreen.vmt", true);
PrecacheModel("materials/slayer/overlays/sixkillgreen.vmt", true);
PrecacheModel("materials/slayer/overlays/onekillred.vmt", true);
PrecacheModel("materials/slayer/overlays/twokillred.vmt", true);
PrecacheModel("materials/slayer/overlays/threekillred.vmt", true);
PrecacheModel("materials/slayer/overlays/fourkillred.vmt", true);
PrecacheModel("materials/slayer/overlays/fivekillred.vmt", true);
PrecacheModel("materials/slayer/overlays/sixkillred.vmt", true);
PrecacheSound("slayer/overlays/firstblood.mp3", true);
PrecacheSound("slayer/overlays/doublekill.mp3", true);
PrecacheSound("slayer/overlays/triplekill.mp3", true);
PrecacheSound("slayer/overlays/qudrakill.mp3", true);
PrecacheSound("slayer/overlays/pentakill.mp3", true);
PrecacheSound("slayer/overlays/hexakill.mp3", true);
}