new String:_sGrenadeOverlay[32],
String:_sHeadShotOverlay[32],
String:_sKnifeOverlay[32],
String:_sKillOverlayNaming[32],
_iMaxKillStreak,
_aiKillStreak[MAXPLAYERS+1];
public Plugin:myinfo =
{
name = "Kill Message Overlays Basic Triggers",
author = "Siang Chun & Black Haze & AlmazON edition",
description = "Basic Triggers for Kill Message Overlays",
version = "1.3e",
url = "bslw.co.uk & beernweed.com"
}
public OnPluginStart()
{
HookEvent("player_death", Event_PlayerDeath);
decl Handle:h;
HookConVarChange(h= CreateConVar("sm_killmessage_bs_grenade", "kill_grenade", "Name of the grenade kill overlay (no extension)"), GO);
GetConVarString(h, _sGrenadeOverlay, 32);
HookConVarChange(h= CreateConVar("sm_killmessage_bs_headshot", "kill_headshot", "Name of the headshot kill overlay (no extension)"), HO);
GetConVarString(h, _sHeadShotOverlay, 32);
HookConVarChange(h= CreateConVar("sm_killmessage_bs_knife", "kill_knife", "Name of the knife kill overlay (no extension)"), KO);
GetConVarString(h, _sKnifeOverlay, 32);
HookConVarChange(h= CreateConVar("sm_killmessage_bs_killnaming", "kill_", "Naming convention for the kill overlays (numbers are added automatically,no extension)"), KN);
GetConVarString(h, _sKillOverlayNaming, 32);
HookConVarChange(h= CreateConVar("sm_killmessage_bs_maxkillstreak", "10", "Amount of kills allowed in a killstreak (it'll restart at 1 after the end)"), KS);
_iMaxKillStreak = GetConVarInt(h);
CloseHandle(h);
AutoExecConfig(true, "killmessage_basicsupport");
}
public OnConfigsExecuted()
{
ServerCommand("sm_killmessage_prepare %s",_sGrenadeOverlay);
ServerCommand("sm_killmessage_prepare %s",_sHeadShotOverlay);
ServerCommand("sm_killmessage_prepare %s",_sKnifeOverlay);
for(new i=1; i<=_iMaxKillStreak; i++) ServerCommand("sm_killmessage_prepare %s%i",_sKillOverlayNaming,i);
}
public GO(Handle:c, String:o[], const String:n[]) strcopy(_sGrenadeOverlay, 32, n);
public HO(Handle:c, String:o[], const String:n[]) strcopy(_sHeadShotOverlay, 32, n);
public KO(Handle:c, String:o[], const String:n[]) strcopy(_sKnifeOverlay, 32, n);
public KN(Handle:c, String:o[], const String:n[]) strcopy(_sKillOverlayNaming, 32, n);
public KS(Handle:c, String:o[], String:n[]) _iMaxKillStreak = GetConVarInt(c);
public OnClientPostAdminCheck(client) _aiKillStreak[client] = 0;
public Event_PlayerDeath(Handle:event, String:name[], bool:dontBroadcast)
{
decl userid, player;
_aiKillStreak[GetClientOfUserId(player=GetEventInt(event, "userid"))] = 0;
if((userid = GetEventInt(event, "attacker")) != player && (player = GetClientOfUserId(userid)) && IsFakeClient(player)==false)
{
if(++_aiKillStreak[player]>_iMaxKillStreak) _aiKillStreak[player] = 1;
decl String:weapon[11];
GetEventString(event, "weapon",weapon, 11);
if(strcmp(weapon, "hegrenade")==0) ServerCommand("sm_killmessage_show %i %s 2.3",userid,_sGrenadeOverlay);
else if(strcmp(weapon, "bayonet")==0 || StrContains(weapon, "knife") !=-1) ServerCommand("sm_killmessage_show %i %s 2.3",userid,_sKnifeOverlay);
else if(GetEventBool(event, "headshot")) ServerCommand("sm_killmessage_show %i %s 1.7",userid,_sHeadShotOverlay);
else ServerCommand("sm_killmessage_show %i %s%i 1.7",userid,_sKillOverlayNaming,_aiKillStreak[player]);
}
}