PHP Code:
#include <sourcemod>
#include <sdktools>
#pragma semicolon 1
#define PLUGIN_VERSION "1"
new Handle:sm_headshot = INVALID_HANDLE;
new Handle:sm_knife1 = INVALID_HANDLE;
new Handle:sm_hegrenade1 = INVALID_HANDLE;
new Handle:sm_headshot_overlay_version = INVALID_HANDLE;
public Plugin:myinfo =
{
name = "CSVK.RU Over",
author = "csvk.ru",
description = "csvk.ru",
version = PLUGIN_VERSION,
url = "csvk.ru"
};
public OnPluginStart()
{
// Hook events
HookEvent("player_death", player_death);
// Create convars
sm_headshot = CreateConVar("sm_headshot", "csvk_kill/headshot", "Patch to overlay1");
sm_knife1 = CreateConVar("sm_knife1", "csvk_kill/knife", "Patch to overlay2");
sm_hegrenade1 = CreateConVar("sm_hegrenade1", "csvk_kill/hegrenade", "Patch to overlay2");
sm_headshot_overlay_version = CreateConVar("sm_headshot_overlay_version", PLUGIN_VERSION, "Headshot overlay version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
HookConVarChange(sm_headshot_overlay_version, VersionChange);
}
public VersionChange(Handle:convar, const String:oldValue[], const String:newValue[])
{
SetConVarString(convar, PLUGIN_VERSION);
}
public OnMapStart()
{
decl String:file[512];
BuildPath(Path_SM, file, 255, "configs/headshot_downloads.ini");
new Handle:fileh = OpenFile(file, "r");
if (fileh != INVALID_HANDLE)
{
decl String:buffer[512];
decl String:buffer_full[PLATFORM_MAX_PATH];
while(ReadFileLine(fileh, buffer, sizeof(buffer)))
{
TrimString(buffer);
if ( (StrContains(buffer, "//") == -1) && (!StrEqual(buffer, "")) )
{
PrintToServer("Reading overlay_downloads line :: %s", buffer);
Format(buffer_full, sizeof(buffer_full), "materials/%s", buffer);
if (FileExists(buffer_full))
{
PrintToServer("Precaching %s", buffer);
PrecacheDecal(buffer, true);
AddFileToDownloadsTable(buffer_full);
PrintToServer("Adding %s to downloads table", buffer_full);
}
else
{
PrintToServer("File does not exist! %s", buffer_full);
}
}
}
}
}
public player_death(Handle:event, const String:name[], bool:dontBroadcast)
{
new headshot = GetEventInt(event, "headshot");
new client = GetClientOfUserId(GetEventInt(event, "attacker"));
decl String:overlaypath[PLATFORM_MAX_PATH];
if (headshot == 1)
{
GetConVarString(sm_headshot, overlaypath, sizeof(overlaypath));
ClientCommand(client, "r_screenoverlay \"%s\"", overlaypath);
CreateTimer(1.5, LoadStuff, GetClientSerial(client));
}
/*
decl String:weapon[32];
GetClientWeapon(client, weapon, sizeof(weapon));
if ( StrEqual( weapon, "weapon_knife" ) )
{
GetConVarString(sm_knife1, overlaypath, sizeof(overlaypath));
ClientCommand(client, "r_screenoverlay \"%s\"", overlaypath);
CreateTimer(1.5, LoadStuff, GetClientSerial(client));
}
}
*/
decl String:weapon[64];
GetEventString(event, "weapon", weapon, sizeof(weapon));
if(strcmp(weapon, "hegrenade") == 0)
{
GetConVarString(sm_hegrenade1, overlaypath, sizeof(overlaypath));
ClientCommand(client, "r_screenoverlay \"%s\"", overlaypath);
CreateTimer(1.5, LoadStuff, GetClientSerial(client));
}
else if (strcmp(weapon, "knife") == 0)
{
GetConVarString(sm_knife1, overlaypath, sizeof(overlaypath));
ClientCommand(client, "r_screenoverlay \"%s\"", overlaypath);
CreateTimer(1.5, LoadStuff, GetClientSerial(client));
}
}
public Action:LoadStuff(Handle:timer, any:serial)
{
new client = GetClientFromSerial(serial); // Validate the client serial
ClientCommand(client, "r_screenoverlay \"\"");
}