#pragma semicolon 1

#include <sourcemod>
#include <sdkhooks>
#include <sdktools>

new m_flNextSecondaryAttack;

public Plugin:myinfo =
{
	name = "Simple NoScope",
	author = "Bara",
	description = "",
	version = "1.0.0",
	url = "www.bara.in"
};

public OnPluginStart()
{
	if(GetEngineVersion() != Engine_CSS && GetEngineVersion() != Engine_CSGO)
	{
		SetFailState("Only CSS and CSGO Support");
	}

	m_flNextSecondaryAttack = FindSendPropOffs("CBaseCombatWeapon", "m_flNextSecondaryAttack");

	for(new i = 1; i <= MaxClients; i++)
	{
		if(IsClientValid(i))
		{
			SDKHook(i, SDKHook_PreThink, OnPreThink);
		}
	}
}

public OnClientPutInServer(i)
{
	SDKHook(i, SDKHook_PreThink, OnPreThink);
}

public Action:OnPreThink(client)
{
	SetNoScope(GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon"));
	return Plugin_Continue;
}

stock SetNoScope(weapon)
{
	if(IsValidEdict(weapon))
	{
		decl String:sClass[MAX_NAME_LENGTH];
		GetEdictClassname(weapon, sClass, sizeof(sClass));

		if (StrEqual(sClass[7], "ssg08") || StrEqual(sClass[7], "aug") || StrEqual(sClass[7], "sg550") || StrEqual(sClass[7], "sg552") || StrEqual(sClass[7], "sg556") || StrEqual(sClass[7], "awp") || StrEqual(sClass[7], "scar20") || StrEqual(sClass[7], "g3sg1"))
		{
			SetEntDataFloat(weapon, m_flNextSecondaryAttack, GetGameTime() + 2.0);
		}
	}
}

stock bool:IsClientValid(client)
{
	if(client > 0 && client <= MaxClients && IsClientInGame(client))
	{
		return true;
	}
	return false;
}
