#pragma semicolon 1
#pragma newdecls required
#include <sdkhooks>
#include <sdktools>
#include <cstrike>
public Plugin myinfo =
{
name = "Only HS",
author = "Someone",
version = "1.0",
url = "http://hlmod.ru"
};
bool g_bEnable, g_bKnife, g_b1x1;
public void OnPluginStart()
{
ConVar CVAR;
(CVAR = CreateConVar("sm_only_hs_enable", "1", "Включить/Выключить HS.", _, true, 0.0, true, 1.0)).AddChangeHook(ChangeCvar_Enable);
g_bEnable = CVAR.BoolValue;
(CVAR = CreateConVar("sm_only_hs_knife_enable", "1", "Включить/Выключить ножи.", _, true, 0.0, true, 1.0)).AddChangeHook(ChangeCvar_Knife);
g_bKnife = CVAR.BoolValue;
}
public void OnMapStart()
{
CreateTimer(1.0, TIMER, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}
public Action TIMER(Handle hTimer)
{
if(GameRules_GetProp("m_bWarmupPeriod") != 1)
{
int iT, iCT;
for(int i = 1; i <= MaxClients;i++) if(IsClientInGame(i) && IsPlayerAlive(i))
{
if(GetClientTeam(i) == 2) iT++;
else if(GetClientTeam(i) == 3) iCT++;
}
if(iT == 1 && iCT == 1)
{
g_b1x1 = true;
}
else g_b1x1 = false;
}
}
public void ChangeCvar_Enable(ConVar convar, const char[] oldValue, const char[] newValue)
{
g_bEnable = convar.BoolValue;
}
public void ChangeCvar_Knife(ConVar convar, const char[] oldValue, const char[] newValue)
{
g_bKnife = convar.BoolValue;
}
public void OnClientPutInServer(int iClient)
{
SDKHook(iClient, SDKHook_OnTakeDamage, OnTakeDamage);
}
public Action OnTakeDamage(int iVictim, int &iAttacker, int &iInflictor, float &fDamage, int &iDamageType, int &weapon, float damageForce[3], float damagePosition[3], int damagecustom)
{
if(g_bEnable)
{
if(iDamageType & CS_DMG_HEADSHOT)
{
return Plugin_Continue;
}
if(iDamageType & DMG_BULLET || (weapon & 160 && !g_bKnife && !g_b1x1))
{
return Plugin_Handled;
}
return Plugin_Continue;
}
return Plugin_Continue;
}