#include #include public Plugin myinfo = { name = "Toggle Friendly Fire", author = "Retard", description = "Toggles Friendly Fire On/Off at random moments.", version = "1.0", url = "https://deadzone.lol" }; Handle timerToggleFFOn = null; Handle timerToggleFFOff = null; bool g_bFriendlyFire = false; bool g_bPluginEnabled = true; public void OnPluginStart() { RegConsoleCmd("sm_friendlyfire", CmdToggleFriendlyFire, "Toggle the Friendly Fire script. Admins with 'z' flag only."); StartFFOnTimer(); } public Action CmdToggleFriendlyFire(int client, int args) { if (CheckCommandAccess(client, "sm_friendlyfire", ADMFLAG_ROOT)) { g_bPluginEnabled = !g_bPluginEnabled; if (g_bPluginEnabled) { PrintToChat(client, "Friendly Fire script has been enabled!"); StartFFOnTimer(); } else { if (g_bFriendlyFire) { Handle hCvar = FindConVar("mp_friendlyfire"); if (hCvar != INVALID_HANDLE) { SetConVarInt(hCvar, 0); } g_bFriendlyFire = false; PrintToChatAll("[DEBUG] Friendly Fire is now OFF"); } PrintToChat(client, "Friendly Fire script has been disabled!"); if (timerToggleFFOn != null) { KillTimer(timerToggleFFOn); timerToggleFFOn = null; } if (timerToggleFFOff != null) { KillTimer(timerToggleFFOff); timerToggleFFOff = null; } } } else { PrintToChat(client, "You do not have permission to use this command."); } return Plugin_Handled; } void StartFFOnTimer() { if (!g_bPluginEnabled) return; if (timerToggleFFOn != null) KillTimer(timerToggleFFOn); float randomTimeToTurnOn = GetRandomFloat(60.0, 600.0); // Between 1 and 10 minutes timerToggleFFOn = CreateTimer(randomTimeToTurnOn, TurnOnFriendlyFire); } public Action TurnOnFriendlyFire(Handle timer, any data) { g_bFriendlyFire = true; Handle hCvar = FindConVar("mp_friendlyfire"); if(hCvar == INVALID_HANDLE) { SetFailState("Failed to find 'mp_friendlyfire' cvar!"); } SetConVarInt(hCvar, 1); PrintToChatAll("[DEBUG] Friendly Fire is now ON"); StartFFOffTimer(); return Plugin_Continue; } void StartFFOffTimer() { if (timerToggleFFOff != null) KillTimer(timerToggleFFOff); float randomTimeToTurnOff = GetRandomFloat(30.0, 150.0); // Between 30 seconds and 2.5 minutes timerToggleFFOff = CreateTimer(randomTimeToTurnOff, TurnOffFriendlyFire); } public Action TurnOffFriendlyFire(Handle timer, any data) { g_bFriendlyFire = false; Handle hCvar = FindConVar("mp_friendlyfire"); if(hCvar == INVALID_HANDLE) { SetFailState("Failed to find 'mp_friendlyfire' cvar!"); } SetConVarInt(hCvar, 0); PrintToChatAll("[DEBUG] Friendly Fire is now OFF"); StartFFOnTimer(); return Plugin_Continue; } public void OnPluginEnd() { if(timerToggleFFOn != null) { KillTimer(timerToggleFFOn); } if(timerToggleFFOff != null) { KillTimer(timerToggleFFOff); } }