#include
#pragma semicolon 1
#pragma newdecls required
char g_sWeaponsCanUse [][] =
{
"weapon_knife",
"weapon_decoy",
"weapon_flashbang",
"weapon_hegrenade",
"weapon_smokegrenade",
"weapon_molotov",
"weapon_incgrenade",
"weapon_awp"
};
public void OnPluginStart()
{
for(int i = 1; i <= MaxClients; i++)
if(IsValidClient(i))
OnClientPutInServer(i);
}
public void OnClientPutInServer(int client)
{
SDKHook(client, SDKHook_WeaponCanUse, WeaponCanUse);
}
public void OnClientDisconnect(int client)
{
SDKUnhook(client, SDKHook_WeaponCanUse, WeaponCanUse);
}
public Action WeaponCanUse(int client, int weapon)
{
if(!IsValidClient(client) || !IsPlayerAlive(client))
return Plugin_Continue;
char weapons[32];
GetEdictClassname(weapon, weapons, sizeof(weapons));
for(int i = 0; i < sizeof(g_sWeaponsCanUse); i ++)
{
if(StrEqual(g_sWeaponsCanUse[i], weapons))
return Plugin_Continue;
}
return Plugin_Handled;
}
stock bool IsValidClient(int client)
{
if(client <= 0 ) return false;
if(client > MaxClients) return false;
if(!IsClientConnected(client)) return false;
if(IsFakeClient(client)) return false;
return IsClientInGame(client);
}