#include #include #include #include #include #include #pragma semicolon 1 #define WARMUP #define CONFIGLOADER #define STOCKMENU #define PERPLAYER #if defined STOCKMENU #undef REQUIRE_PLUGIN #include #endif #define PLUGIN_VERSION "3.1.7" #define ADMINCOMMANDTAG "\x01[\x04SM\x01]\x04 " #define MAXALIASES 8 #define MAXWEAPONGROUPS 7 enum GameType { GAME_CSS, GAME_CSGO }; /*new const String:g_WeaponAliasNames[][WEAPONARRAYSIZE] = {"flash", "sgren", "hegren", "assaultsuit", "kevlar", "mp5", "magnum", "nightvision"}; new const String:g_WeaponAliasReplace[][WEAPONARRAYSIZE] = {"flashbang", "smokegrenade", "hegrenade", "vesthelm", "vest", "mp5navy", "awp", "nvgs"};*/ new GameType:g_iGame; new g_iMyWeaponsMax = 31; new const String:g_WeaponGroupNames[][WEAPONARRAYSIZE] = {"pistols", "smgs", "shotguns", "rifles", "snipers", "grenades", "armor"}; new bool:g_bRestrictSound = false; new String:g_sCachedSound[PLATFORM_MAX_PATH]; new bool:g_bLateLoaded = false; new RoundType:g_nextRoundSpecial = RoundType_None; new RoundType:g_currentRoundSpecial = RoundType_None; #if defined STOCKMENU new Handle:hAdminMenu = INVALID_HANDLE; #endif #include "restrictinc/cvars.sp" #if defined WARMUP #include "restrictinc/warmup.sp" #endif #if defined CONFIGLOADER #include "restrictinc/configloader.sp" #endif #if defined STOCKMENU #include "restrictinc/adminmenu.sp" #endif #if defined PERPLAYER #include "restrictinc/perplayer.sp" #endif #include "restrictinc/weapon-tracking.sp" #include "restrictinc/natives.sp" #include "restrictinc/functions.sp" #include "restrictinc/events.sp" #include "restrictinc/admincmds.sp" public Plugin:myinfo = { name = "Weapon Restrict", author = "Dr!fter", description = "Weapon restrict", version = PLUGIN_VERSION, url = "www.spawnpoint.com" } public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max) { decl String:gamedir[PLATFORM_MAX_PATH]; GetGameFolderName(gamedir, sizeof(gamedir)); if(strcmp(gamedir, "cstrike") != 0 && strcmp(gamedir, "csgo") != 0) { strcopy(error, err_max, "This plugin is only supported on CS"); return APLRes_Failure; } if(strcmp(gamedir, "cstrike") == 0) { g_iGame = GAME_CSS; } else { g_iMyWeaponsMax = 63; g_iGame = GAME_CSGO; } g_bLateLoaded = late; RegisterNatives(); return APLRes_Success; } public OnPluginStart() { HookEvents(); RegisterAdminCommands(); RegisterForwards(); #if defined WARMUP RegisterWarmup(); #endif #if defined STOCKMENU //For late load if(LibraryExists("adminmenu")) { new Handle:topmenu; topmenu = GetAdminTopMenu(); if(topmenu != INVALID_HANDLE) OnAdminMenuReady(topmenu); } #endif LoadTranslations("common.phrases"); LoadTranslations("WeaponRestrict.phrases"); CreateConVars(); CreateTimer(0.1, LateLoadExec, _, TIMER_FLAG_NO_MAPCHANGE); } public Action:LateLoadExec(Handle:timer) { new String:file[] = "cfg/sourcemod/weapon_restrict.cfg"; if(FileExists(file)) { ServerCommand("exec sourcemod/weapon_restrict.cfg"); } }