#include #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); }