From 73ac24c65c1d37a07167ca8b72a845636f67bfb1 Mon Sep 17 00:00:00 2001 From: zaCade Date: Sat, 8 Dec 2018 21:20:37 +0100 Subject: [PATCH] Misc: Move shared stuff to shared git. --- AdminCheats/scripting/AdminCheats.sp | 130 - AdminIcon/scripting/AdminIcon.sp | 73 - .../scripting/AdvancedTargeting.sp | 493 --- .../scripting/include/AdvancedTargeting.inc | 26 - AntiFlood/scripting/AntiFlood.sp | 71 - AntiJumpSpam/scripting/AntiJumpSpam.sp | 115 - AntiPingMask/scripting/AntiPingMask.sp | 79 - AutoRecorder/scripting/AutoRecorder.sp | 227 -- .../scripting/ConVarSuppression.sp | 118 - Extend/gamedata/Extend.games.txt | 25 - Extend/scripting/Extend.sp | 387 -- ExtraCommands/scripting/ExtraCommands.sp | 1377 ------- FixAngles/scripting/FixAngles.sp | 47 - FixGameUI/scripting/FixGameUI.sp | 129 - .../gamedata/FixPlayerEquip.games.txt | 14 - FixPlayerEquip/scripting/FixPlayerEquip.sp | 112 - .../gamedata/FixPointTeleport.games.txt | 19 - .../scripting/FixPointTeleport.sp | 101 - Flashlight/scripting/Flashlight.sp | 44 - ForceInputs/scripting/ForceInputs.sp | 206 -- FullUpdate/gamedata/FullUpdate.games.txt | 20 - FullUpdate/scripting/FullUpdate.sp | 106 - FullUpdate/scripting/include/FullUpdate.inc | 24 - GlowColors/configs/GlowColors.cfg | 18 - GlowColors/scripting/GlowColors.sp | 535 --- InfoMessage/configs/info_messages/event.txt | 8 - .../configs/info_messages/falldamage.txt | 6 - InfoMessage/configs/info_messages/nemesis.txt | 12 - InfoMessage/configs/info_messages/test.txt | 10 - InfoMessage/configs/info_messages/zmmode.txt | 12 - InfoMessage/scripting/InfoMessage.sp | 115 - KnifeAlert/scripting/KnifeAlert.sp | 112 - MapAdmin/configs/MapAdmin.cfg | 3137 ---------------- MapAdmin/scripting/MapAdmin.sp | 342 -- NameFilter/configs/NameFilter.cfg | 21 - NameFilter/scripting/NameFilter.sp | 350 -- NapalmLagFix/gamedata/napalmlagfix.games.txt | 28 - NapalmLagFix/scripting/NapalmLagFix.sp | 70 - .../gamedata/NoGrenadeRinging.games.txt | 15 - .../scripting/NoGrenadeRinging.sp | 49 - NoShake/scripting/NoShake.sp | 91 - .../scripting/PlayerVisibility.sp | 339 -- .../configs/PointServerCommandFilter.cfg | 139 - .../PointServerCommandFilter.example.cfg | 74 - .../scripting/PointServerCommandFilter.sp | 592 --- QuickSwitch/scripting/QuickSwitch.sp | 73 - RoundTime/scripting/RoundTime.sp | 28 - .../ZE_FFVII_Mako_Reactor_V6_B08.cfg | 67 - .../ze_FFVII_Mako_Reactor_v1_4_1.cfg | 49 - .../savelevel/ze_FFVII_Mako_Reactor_v3_1.cfg | 49 - .../savelevel/ze_FFXII_Feywood_b3_1.cfg | 60 - .../savelevel/ze_FFXII_Paramina_Rift_v1_3.cfg | 92 - .../savelevel/ze_FFXII_Paramina_Rift_v1_4.cfg | 92 - .../configs/savelevel/ze_TESV_Skyrim_v3.cfg | 76 - .../savelevel/ze_harry_potter_v1_3.cfg | 76 - .../savelevel/ze_harry_potter_v2_1.cfg | 76 - .../savelevel/ze_lila_panic_escape_v3_1.cfg | 92 - .../ze_lotr_minas_tirith_v2_2fix.cfg | 92 - .../savelevel/ze_lotr_minas_tirith_v3_5.cfg | 92 - .../savelevel/ze_tesv_skyrim_v4fix.cfg | 76 - SaveLevel/scripting/SaveLevel.sp | 521 --- SelectiveBhop/scripting/SelectiveBhop.sp | 416 --- .../scripting/include/SelectiveBhop.inc | 26 - SlopeFix/scripting/SlopeFix.sp | 150 - .../materials/decals/spraymanager/1.vmt | 6 - .../materials/decals/spraymanager/1.vtf | Bin 8400 -> 0 bytes .../materials/decals/spraymanager/2.vmt | 6 - .../materials/decals/spraymanager/2.vtf | Bin 8400 -> 0 bytes .../materials/decals/spraymanager/3.vmt | 8 - .../materials/decals/spraymanager/3.vtf | Bin 5552 -> 0 bytes SprayManager/scripting/SprayManager.sp | 3201 ----------------- Status/gamedata/serverfps.games.txt | 45 - Status/scripting/Status.sp | 204 -- Status/scripting/include/serverfps.inc | 49 - StopSound/scripting/StopSound.sp | 693 ---- .../translations/plugin.stopsound.phrases.txt | 68 - SvGravityFix/scripting/SvGravityFix.sp | 38 - TeamManager/scripting/TeamManager.sp | 206 -- Teleport/scripting/Teleport.sp | 330 -- WeaponCleaner/scripting/WeaponCleaner.sp | 304 -- .../configs/custom-chatcolors.cfg | 59 - .../configs/custom-chatcolorsbans.cfg | 3 - .../configs/custom-chatcolorsreplace.cfg | 67 - .../scripting/custom-chatcolors.sp | 3113 ---------------- custom-chatcolors/scripting/include/ccc.inc | 191 - .../translations/allchat.phrases.txt | 58 - entWatch/gamedata/plugin.entWatch.txt | 28 - entWatch/scripting/entWatch.sp | 2644 -------------- entWatch/scripting/include/entWatch.inc | 150 - entWatch/translations/entWatch.phrases.txt | 47 - entWatch/translations/fr/entWatch.phrases.txt | 47 - entWatch/translations/ru/entWatch.phrases.txt | 47 - 92 files changed, 23833 deletions(-) delete mode 100644 AdminCheats/scripting/AdminCheats.sp delete mode 100644 AdminIcon/scripting/AdminIcon.sp delete mode 100644 AdvancedTargeting/scripting/AdvancedTargeting.sp delete mode 100644 AdvancedTargeting/scripting/include/AdvancedTargeting.inc delete mode 100644 AntiFlood/scripting/AntiFlood.sp delete mode 100644 AntiJumpSpam/scripting/AntiJumpSpam.sp delete mode 100644 AntiPingMask/scripting/AntiPingMask.sp delete mode 100644 AutoRecorder/scripting/AutoRecorder.sp delete mode 100644 ConVarSuppression/scripting/ConVarSuppression.sp delete mode 100644 Extend/gamedata/Extend.games.txt delete mode 100644 Extend/scripting/Extend.sp delete mode 100644 ExtraCommands/scripting/ExtraCommands.sp delete mode 100644 FixAngles/scripting/FixAngles.sp delete mode 100644 FixGameUI/scripting/FixGameUI.sp delete mode 100644 FixPlayerEquip/gamedata/FixPlayerEquip.games.txt delete mode 100644 FixPlayerEquip/scripting/FixPlayerEquip.sp delete mode 100644 FixPointTeleport/gamedata/FixPointTeleport.games.txt delete mode 100644 FixPointTeleport/scripting/FixPointTeleport.sp delete mode 100644 Flashlight/scripting/Flashlight.sp delete mode 100644 ForceInputs/scripting/ForceInputs.sp delete mode 100644 FullUpdate/gamedata/FullUpdate.games.txt delete mode 100644 FullUpdate/scripting/FullUpdate.sp delete mode 100644 FullUpdate/scripting/include/FullUpdate.inc delete mode 100644 GlowColors/configs/GlowColors.cfg delete mode 100644 GlowColors/scripting/GlowColors.sp delete mode 100644 InfoMessage/configs/info_messages/event.txt delete mode 100644 InfoMessage/configs/info_messages/falldamage.txt delete mode 100644 InfoMessage/configs/info_messages/nemesis.txt delete mode 100644 InfoMessage/configs/info_messages/test.txt delete mode 100644 InfoMessage/configs/info_messages/zmmode.txt delete mode 100644 InfoMessage/scripting/InfoMessage.sp delete mode 100644 KnifeAlert/scripting/KnifeAlert.sp delete mode 100644 MapAdmin/configs/MapAdmin.cfg delete mode 100644 MapAdmin/scripting/MapAdmin.sp delete mode 100644 NameFilter/configs/NameFilter.cfg delete mode 100644 NameFilter/scripting/NameFilter.sp delete mode 100644 NapalmLagFix/gamedata/napalmlagfix.games.txt delete mode 100644 NapalmLagFix/scripting/NapalmLagFix.sp delete mode 100644 NoGrenadeRinging/gamedata/NoGrenadeRinging.games.txt delete mode 100644 NoGrenadeRinging/scripting/NoGrenadeRinging.sp delete mode 100644 NoShake/scripting/NoShake.sp delete mode 100644 PlayerVisibility/scripting/PlayerVisibility.sp delete mode 100644 PointServerCommandFilter/configs/PointServerCommandFilter.cfg delete mode 100644 PointServerCommandFilter/configs/PointServerCommandFilter.example.cfg delete mode 100644 PointServerCommandFilter/scripting/PointServerCommandFilter.sp delete mode 100644 QuickSwitch/scripting/QuickSwitch.sp delete mode 100644 RoundTime/scripting/RoundTime.sp delete mode 100644 SaveLevel/configs/savelevel/ZE_FFVII_Mako_Reactor_V6_B08.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_FFVII_Mako_Reactor_v1_4_1.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_FFVII_Mako_Reactor_v3_1.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_FFXII_Feywood_b3_1.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_FFXII_Paramina_Rift_v1_3.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_FFXII_Paramina_Rift_v1_4.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_TESV_Skyrim_v3.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_harry_potter_v1_3.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_harry_potter_v2_1.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_lila_panic_escape_v3_1.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_lotr_minas_tirith_v2_2fix.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_lotr_minas_tirith_v3_5.cfg delete mode 100644 SaveLevel/configs/savelevel/ze_tesv_skyrim_v4fix.cfg delete mode 100644 SaveLevel/scripting/SaveLevel.sp delete mode 100644 SelectiveBhop/scripting/SelectiveBhop.sp delete mode 100644 SelectiveBhop/scripting/include/SelectiveBhop.inc delete mode 100644 SlopeFix/scripting/SlopeFix.sp delete mode 100755 SprayManager/content/materials/decals/spraymanager/1.vmt delete mode 100755 SprayManager/content/materials/decals/spraymanager/1.vtf delete mode 100755 SprayManager/content/materials/decals/spraymanager/2.vmt delete mode 100755 SprayManager/content/materials/decals/spraymanager/2.vtf delete mode 100755 SprayManager/content/materials/decals/spraymanager/3.vmt delete mode 100755 SprayManager/content/materials/decals/spraymanager/3.vtf delete mode 100644 SprayManager/scripting/SprayManager.sp delete mode 100644 Status/gamedata/serverfps.games.txt delete mode 100644 Status/scripting/Status.sp delete mode 100644 Status/scripting/include/serverfps.inc delete mode 100644 StopSound/scripting/StopSound.sp delete mode 100644 StopSound/translations/plugin.stopsound.phrases.txt delete mode 100644 SvGravityFix/scripting/SvGravityFix.sp delete mode 100644 TeamManager/scripting/TeamManager.sp delete mode 100644 Teleport/scripting/Teleport.sp delete mode 100644 WeaponCleaner/scripting/WeaponCleaner.sp delete mode 100644 custom-chatcolors/configs/custom-chatcolors.cfg delete mode 100644 custom-chatcolors/configs/custom-chatcolorsbans.cfg delete mode 100644 custom-chatcolors/configs/custom-chatcolorsreplace.cfg delete mode 100644 custom-chatcolors/scripting/custom-chatcolors.sp delete mode 100644 custom-chatcolors/scripting/include/ccc.inc delete mode 100644 custom-chatcolors/translations/allchat.phrases.txt delete mode 100644 entWatch/gamedata/plugin.entWatch.txt delete mode 100644 entWatch/scripting/entWatch.sp delete mode 100644 entWatch/scripting/include/entWatch.inc delete mode 100644 entWatch/translations/entWatch.phrases.txt delete mode 100644 entWatch/translations/fr/entWatch.phrases.txt delete mode 100644 entWatch/translations/ru/entWatch.phrases.txt diff --git a/AdminCheats/scripting/AdminCheats.sp b/AdminCheats/scripting/AdminCheats.sp deleted file mode 100644 index 36dac769..00000000 --- a/AdminCheats/scripting/AdminCheats.sp +++ /dev/null @@ -1,130 +0,0 @@ -#include - -#pragma semicolon 1 -#pragma newdecls required - -#define PLUGIN_VERSION "1.0" -public Plugin myinfo = -{ - name = "AdminCheats", - author = "BotoX", - description = "Allows usage of (most) cheat commands for admins.", - version = PLUGIN_VERSION, - url = "" -}; - -ConVar g_CVar_sv_cheats; - -public void OnPluginStart() -{ - g_CVar_sv_cheats = FindConVar("sv_cheats"); - g_CVar_sv_cheats.Flags &= ~FCVAR_NOTIFY; - g_CVar_sv_cheats.Flags &= ~FCVAR_REPLICATED; - g_CVar_sv_cheats.AddChangeHook(OnConVarChanged); - g_CVar_sv_cheats.SetInt(1); - - MakeCheatCommand("give"); - - int NumHooks = 0; - char sConCommand[128]; - bool IsCommand; - int Flags; - Handle hSearch = FindFirstConCommand(sConCommand, sizeof(sConCommand), IsCommand, Flags); - do - { - if(IsCommand && Flags & FCVAR_CHEAT) - { - AddCommandListener(OnCheatCommand, sConCommand); - NumHooks++; - } - } - while(FindNextConCommand(hSearch, sConCommand, sizeof(sConCommand), IsCommand, Flags)); - - AddCommandListener(OnCheatCommand, "kill"); NumHooks++; - AddCommandListener(OnCheatCommand, "explode"); NumHooks++; - - PrintToServer("Hooked %d cheat commands.", NumHooks); - - UpdateClients(); -} - -public void OnPluginEnd() -{ - g_CVar_sv_cheats.SetInt(0); - g_CVar_sv_cheats.Flags |= FCVAR_NOTIFY; - g_CVar_sv_cheats.Flags |= FCVAR_REPLICATED; -} - -public void OnConVarChanged(ConVar convar, const char[] oldValue, const char[] newValue) -{ - g_CVar_sv_cheats.SetInt(1); - CreateTimer(0.1, Timer_UpdateClients); -} - -public Action Timer_UpdateClients(Handle timer, Handle hndl) -{ - UpdateClients(); -} - -public void UpdateClients() -{ - for(int i = 1; i <= MaxClients; i++) - { - if(IsClientInGame(i) && !IsFakeClient(i) && IsClientAuthorized(i)) - OnClientPostAdminCheck(i); - } -} - -public void OnClientPutInServer(int client) -{ - if(IsFakeClient(client)) - return; - - SendConVarValue(client, g_CVar_sv_cheats, "0"); -} - -public void OnClientPostAdminCheck(int client) -{ - if(IsFakeClient(client)) - return; - - if(g_CVar_sv_cheats.BoolValue && CheckCommandAccess(client, "", ADMFLAG_CHEATS)) - SendConVarValue(client, g_CVar_sv_cheats, "1"); - else - SendConVarValue(client, g_CVar_sv_cheats, "0"); -} - -public Action OnCheatCommand(int client, const char[] command, int argc) -{ - if(client == 0) - return Plugin_Continue; - - if(IsClientAuthorized(client) && CheckCommandAccess(client, "", ADMFLAG_CHEATS)) - return Plugin_Continue; - - if(!argc && (StrEqual(command, "kill") || StrEqual(command, "explode"))) - return Plugin_Continue; - - return Plugin_Handled; -} - -public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon, int &subtype, int &cmdnum, int &tickcount, int &seed, int mouse[2]) -{ - if(!impulse) - return Plugin_Continue; - - if(impulse == 100 || impulse == 201) - return Plugin_Continue; - - if(IsClientAuthorized(client) && CheckCommandAccess(client, "", ADMFLAG_CHEATS)) - return Plugin_Continue; - - return Plugin_Handled; -} - -stock void MakeCheatCommand(const char[] name) -{ - int Flags = GetCommandFlags(name); - if(Flags != INVALID_FCVAR_FLAGS) - SetCommandFlags(name, FCVAR_CHEAT | Flags); -} diff --git a/AdminIcon/scripting/AdminIcon.sp b/AdminIcon/scripting/AdminIcon.sp deleted file mode 100644 index 8e91798b..00000000 --- a/AdminIcon/scripting/AdminIcon.sp +++ /dev/null @@ -1,73 +0,0 @@ -#pragma semicolon 1 -#pragma newdecls required - -#include -#include -#include - -bool g_bIsAdmin[MAXPLAYERS + 1] = {false, ...}; - -public Plugin myinfo = -{ - name = "AdminIcon", - author = "BotoX", - description = "Gives admins a defuser.", - version = "1.0", - url = "" -}; - -public void OnPluginStart() -{ - for(int client = 1; client <= MaxClients; client++) - { - g_bIsAdmin[client] = false; - if(IsClientInGame(client) && !IsFakeClient(client) && IsClientAuthorized(client)) - OnClientPostAdminCheck(client); - } -} - -public void OnClientConnected(int client) -{ - g_bIsAdmin[client] = false; -} - -public void OnClientDisconnect(int client) -{ - g_bIsAdmin[client] = false; -} - -public void OnClientPostAdminCheck(int client) -{ - if(IsFakeClient(client)) - return; - - if(GetAdminFlag(GetUserAdmin(client), Admin_Generic)) - g_bIsAdmin[client] = true; -} - -public void OnGameFrame() -{ - for(int client = 1; client <= MaxClients; client++) - { - if(g_bIsAdmin[client]) - { - if(IsClientObserver(client)) - SetEntProp(client, Prop_Send, "m_bHasDefuser", 0); - else - SetEntProp(client, Prop_Send, "m_bHasDefuser", 1); - } - } -} - -public void OnEntityCreated(int entity, const char[] classname) -{ - if(IsValidEntity(entity) && StrEqual(classname, "item_defuser")) - { - SDKHook(entity, SDKHook_Spawn, OnWeaponSpawned); - } -} - -public void OnWeaponSpawned(int entity) -{ - AcceptEntityInput(entity, "Kill"); -} diff --git a/AdvancedTargeting/scripting/AdvancedTargeting.sp b/AdvancedTargeting/scripting/AdvancedTargeting.sp deleted file mode 100644 index 130bf0de..00000000 --- a/AdvancedTargeting/scripting/AdvancedTargeting.sp +++ /dev/null @@ -1,493 +0,0 @@ -#pragma semicolon 1 - -#pragma dynamic 128*1024 - -#include -#include -#include -#include -#include - -#pragma newdecls required - -Handle g_FriendsArray[MAXPLAYERS + 1] = {INVALID_HANDLE, ...}; -bool g_bLateLoad = false; - -#include "SteamAPI.secret" //#define STEAM_API_KEY here - -public Plugin myinfo = -{ - name = "Advanced Targeting", - author = "BotoX + Obus", - description = "Adds extra targeting methods", - version = "1.2", - url = "https://github.com/CSSZombieEscape/sm-plugins/tree/master/AdvancedTargeting/" -} - -public void OnPluginStart() -{ - AddMultiTargetFilter("@admins", Filter_Admin, "Admins", false); - AddMultiTargetFilter("@!admins", Filter_NotAdmin, "Not Admins", false); - AddMultiTargetFilter("@friends", Filter_Friends, "Steam Friends", false); - AddMultiTargetFilter("@!friends", Filter_NotFriends, "Not Steam Friends", false); - AddMultiTargetFilter("@random", Filter_Random, "a Random Player", false); - AddMultiTargetFilter("@randomct", Filter_RandomCT, "a Random CT", false); - AddMultiTargetFilter("@randomt", Filter_RandomT, "a Random T", false); - - RegConsoleCmd("sm_admins", Command_Admins, "Currently online admins."); - RegConsoleCmd("sm_friends", Command_Friends, "Currently online friends."); - - if(g_bLateLoad) - { - char sSteam32ID[32]; - for(int i = 1; i <= MaxClients; i++) - { - if(IsClientInGame(i) && !IsFakeClient(i) && IsClientAuthorized(i) && - GetClientAuthId(i, AuthId_Steam2, sSteam32ID, sizeof(sSteam32ID))) - { - OnClientAuthorized(i, sSteam32ID); - } - } - } -} - -public void OnPluginEnd() -{ - RemoveMultiTargetFilter("@admins", Filter_Admin); - RemoveMultiTargetFilter("@!admins", Filter_NotAdmin); - RemoveMultiTargetFilter("@friends", Filter_Friends); - RemoveMultiTargetFilter("@!friends", Filter_NotFriends); - RemoveMultiTargetFilter("@random", Filter_Random); - RemoveMultiTargetFilter("@randomct", Filter_RandomCT); - RemoveMultiTargetFilter("@randomt", Filter_RandomT); -} - -public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max) -{ - CreateNative("IsClientFriend", Native_IsClientFriend); - CreateNative("ReadClientFriends", Native_ReadClientFriends); - RegPluginLibrary("AdvancedTargeting"); - - g_bLateLoad = late; - return APLRes_Success; -} - -public Action Command_Admins(int client, int args) -{ - char aBuf[1024]; - char aBuf2[MAX_NAME_LENGTH]; - for(int i = 1; i <= MaxClients; i++) - { - if(IsClientInGame(i) && !IsFakeClient(i) && GetAdminFlag(GetUserAdmin(i), Admin_Generic)) - { - GetClientName(i, aBuf2, sizeof(aBuf2)); - StrCat(aBuf, sizeof(aBuf), aBuf2); - StrCat(aBuf, sizeof(aBuf), ", "); - } - } - - if(strlen(aBuf)) - { - aBuf[strlen(aBuf) - 2] = 0; - ReplyToCommand(client, "[SM] Admins currently online: %s", aBuf); - } - else - ReplyToCommand(client, "[SM] Admins currently online: none"); - - return Plugin_Handled; -} - -public Action Command_Friends(int client, int args) -{ - if(!client) - return Plugin_Handled; - - if(g_FriendsArray[client] == INVALID_HANDLE) - { - PrintToChat(client, "[SM] Could not read your friendslist, your profile must be set to public!"); - return Plugin_Handled; - } - - char aBuf[1024]; - char aBuf2[MAX_NAME_LENGTH]; - for(int i = 1; i <= MaxClients; i++) - { - if(IsClientInGame(i) && !IsFakeClient(i) && IsClientAuthorized(i)) - { - int Steam3ID = GetSteamAccountID(i); - - if(FindValueInArray(g_FriendsArray[client], Steam3ID) != -1) - { - GetClientName(i, aBuf2, sizeof(aBuf2)); - StrCat(aBuf, sizeof(aBuf), aBuf2); - StrCat(aBuf, sizeof(aBuf), ", "); - } - } - } - - if(strlen(aBuf)) - { - aBuf[strlen(aBuf) - 2] = 0; - PrintToChat(client, "[SM] Friends currently online: %s", aBuf); - } - else - PrintToChat(client, "[SM] Friends currently online: none"); - - return Plugin_Handled; -} - -public bool Filter_Admin(const char[] sPattern, Handle hClients, int client) -{ - for(int i = 1; i <= MaxClients; i++) - { - if(IsClientInGame(i) && !IsFakeClient(i) && GetAdminFlag(GetUserAdmin(i), Admin_Generic)) - { - PushArrayCell(hClients, i); - } - } - - return true; -} - -public bool Filter_NotAdmin(const char[] sPattern, Handle hClients, int client) -{ - for(int i = 1; i <= MaxClients; i++) - { - if(IsClientInGame(i) && !IsFakeClient(i) && !GetAdminFlag(GetUserAdmin(i), Admin_Generic)) - { - PushArrayCell(hClients, i); - } - } - - return true; -} - -public bool Filter_Friends(const char[] sPattern, Handle hClients, int client) -{ - if(g_FriendsArray[client] == INVALID_HANDLE) - { - PrintToChat(client, "[SM] Could not read your friendslist, your profile must be set to public!"); - return false; - } - - for(int i = 1; i <= MaxClients; i++) - { - if(i != client && IsClientInGame(i) && !IsFakeClient(i) && IsClientAuthorized(i)) - { - int Steam3ID = GetSteamAccountID(i); - - if(FindValueInArray(g_FriendsArray[client], Steam3ID) != -1) - PushArrayCell(hClients, i); - } - } - - return true; -} - -public bool Filter_NotFriends(const char[] sPattern, Handle hClients, int client) -{ - if(g_FriendsArray[client] == INVALID_HANDLE) - { - PrintToChat(client, "[SM] Could not read your friendslist, your profile must be set to public!"); - return false; - } - - for(int i = 1; i <= MaxClients; i++) - { - if(i != client && IsClientInGame(i) && !IsFakeClient(i) && IsClientAuthorized(i)) - { - int Steam3ID = GetSteamAccountID(i); - - if(FindValueInArray(g_FriendsArray[client], Steam3ID) == -1) - PushArrayCell(hClients, i); - } - } - - return true; -} - -public bool Filter_Random(const char[] sPattern, Handle hClients, int client) -{ - int iRand = GetRandomInt(1, MaxClients); - - if(IsClientInGame(iRand) && IsPlayerAlive(iRand)) - PushArrayCell(hClients, iRand); - else - Filter_Random(sPattern, hClients, client); - - return true; -} - -public bool Filter_RandomCT(const char[] sPattern, Handle hClients, int client) -{ - int iCTCount = GetTeamClientCount(CS_TEAM_CT); - - if(!iCTCount) - return false; - - int[] iCTs = new int[iCTCount]; - - int iCurIndex; - - for(int i = 1; i <= MaxClients; i++) - { - if(!IsClientInGame(i) || GetClientTeam(i) != CS_TEAM_CT) - continue; - - if(!IsPlayerAlive(i)) - { - iCTCount--; - continue; - } - - iCTs[iCurIndex] = i; - iCurIndex++; - } - - PushArrayCell(hClients, iCTs[GetRandomInt(0, iCTCount-1)]); - - return true; -} - -public bool Filter_RandomT(const char[] sPattern, Handle hClients, int client) -{ - int iTCount = GetTeamClientCount(CS_TEAM_T); - - if(!iTCount) - return false; - - int[] iTs = new int[iTCount]; - - int iCurIndex; - - for(int i = 1; i <= MaxClients; i++) - { - if(!IsClientInGame(i) || GetClientTeam(i) != CS_TEAM_T) - continue; - - if(!IsPlayerAlive(i)) - { - iTCount--; - continue; - } - - iTs[iCurIndex] = i; - iCurIndex++; - } - - PushArrayCell(hClients, iTs[GetRandomInt(0, iTCount-1)]); - - return true; -} - -public void OnClientAuthorized(int client, const char[] auth) -{ - if(IsFakeClient(client)) - return; - - char sSteam64ID[32]; - Steam32IDtoSteam64ID(auth, sSteam64ID, sizeof(sSteam64ID)); - - static char sRequest[256]; - FormatEx(sRequest, sizeof(sRequest), "http://api.steampowered.com/ISteamUser/GetFriendList/v0001/?key=%s&steamid=%s&relationship=friend&format=vdf", STEAM_API_KEY, sSteam64ID); - - Handle hRequest = SteamWorks_CreateHTTPRequest(k_EHTTPMethodGET, sRequest); - if (!hRequest || - !SteamWorks_SetHTTPRequestContextValue(hRequest, client) || - !SteamWorks_SetHTTPCallbacks(hRequest, OnTransferComplete) || - !SteamWorks_SendHTTPRequest(hRequest)) - { - CloseHandle(hRequest); - } -} - -public void OnClientDisconnect(int client) -{ - if(g_FriendsArray[client] != INVALID_HANDLE) - CloseHandle(g_FriendsArray[client]); - - g_FriendsArray[client] = INVALID_HANDLE; -} - -public int OnTransferComplete(Handle hRequest, bool bFailure, bool bRequestSuccessful, EHTTPStatusCode eStatusCode, int client) -{ - if(bFailure || !bRequestSuccessful || eStatusCode != k_EHTTPStatusCode200OK) - { - // Private profile or maybe steam down? - //LogError("SteamAPI HTTP Response failed: %d", eStatusCode); - CloseHandle(hRequest); - return; - } - - int Length; - SteamWorks_GetHTTPResponseBodySize(hRequest, Length); - - char[] sData = new char[Length]; - SteamWorks_GetHTTPResponseBodyData(hRequest, sData, Length); - //SteamWorks_GetHTTPResponseBodyCallback(hRequest, APIWebResponse, client); - - CloseHandle(hRequest); - - APIWebResponse(sData, client); -} - -public void APIWebResponse(const char[] sData, int client) -{ - KeyValues Response = new KeyValues("SteamAPIResponse"); - if(!Response.ImportFromString(sData, "SteamAPIResponse")) - { - LogError("ImportFromString(sData, \"SteamAPIResponse\") failed."); - delete Response; - return; - } - - if(!Response.JumpToKey("friends")) - { - LogError("JumpToKey(\"friends\") failed."); - delete Response; - return; - } - - // No friends? - if(!Response.GotoFirstSubKey()) - { - //LogError("GotoFirstSubKey() failed."); - delete Response; - return; - } - - if(g_FriendsArray[client] != INVALID_HANDLE) - CloseHandle(g_FriendsArray[client]); - - g_FriendsArray[client] = CreateArray(); - - char sCommunityID[32]; - do - { - Response.GetString("steamid", sCommunityID, sizeof(sCommunityID)); - - PushArrayCell(g_FriendsArray[client], Steam64toSteam3(sCommunityID)); - } - while(Response.GotoNextKey()); - - delete Response; -} - - -stock bool Steam32IDtoSteam64ID(const char[] sSteam32ID, char[] sSteam64ID, int Size) -{ - if(strlen(sSteam32ID) < 11 || strncmp(sSteam32ID[0], "STEAM_0:", 8)) - { - sSteam64ID[0] = 0; - return false; - } - - int iUpper = 765611979; - int isSteam64ID = StringToInt(sSteam32ID[10]) * 2 + 60265728 + sSteam32ID[8] - 48; - - int iDiv = isSteam64ID / 100000000; - int iIdx = 9 - (iDiv ? (iDiv / 10 + 1) : 0); - iUpper += iDiv; - - IntToString(isSteam64ID, sSteam64ID[iIdx], Size - iIdx); - iIdx = sSteam64ID[9]; - IntToString(iUpper, sSteam64ID, Size); - sSteam64ID[9] = iIdx; - - return true; -} - -stock int Steam64toSteam3(const char[] sSteam64ID) -{ - if(strlen(sSteam64ID) != 17) - return 0; - - // convert SteamID64 to array of integers - int aSteam64ID[17]; - for(int i = 0; i < 17; i++) - aSteam64ID[i] = sSteam64ID[i] - 48; - - // subtract individual SteamID64 identifier (0x0110000100000000) - int aSteam64IDIdent[] = {7, 6, 5, 6, 1, 1, 9, 7, 9, 6, 0, 2, 6, 5, 7, 2, 8}; - int Carry = 0; - for(int i = 16; i >= 0; i--) - { - if(aSteam64ID[i] < aSteam64IDIdent[i] + Carry) - { - aSteam64ID[i] = aSteam64ID[i] - aSteam64IDIdent[i] - Carry + 10; - Carry = 1; - } - else - { - aSteam64ID[i] = aSteam64ID[i] - aSteam64IDIdent[i] - Carry; - Carry = 0; - } - } - - char aBuf[17]; - int j = 0; - bool ZereosDone = false; - for(int i = 0; i < 17; i++) - { - if(!ZereosDone && !aSteam64ID[i]) - continue; - ZereosDone = true; - - aBuf[j++] = aSteam64ID[i] + 48; - } - - return StringToInt(aBuf); -} - -public int Native_IsClientFriend(Handle plugin, int numParams) -{ - int client = GetNativeCell(1); - int friend = GetNativeCell(2); - - if(client > MaxClients || client <= 0 || friend > MaxClients || friend <= 0) - { - ThrowNativeError(SP_ERROR_NATIVE, "Client is not valid."); - return -1; - } - - if(!IsClientInGame(client) || !IsClientInGame(friend)) - { - ThrowNativeError(SP_ERROR_NATIVE, "Client is not in-game."); - return -1; - } - - if(IsFakeClient(client) || IsFakeClient(friend)) - { - ThrowNativeError(SP_ERROR_NATIVE, "Client is fake-client."); - return -1; - } - - if(g_FriendsArray[client] == INVALID_HANDLE) - return -1; - - if(IsClientAuthorized(friend)) - { - int Steam3ID = GetSteamAccountID(friend); - - if(FindValueInArray(g_FriendsArray[client], Steam3ID) != -1) - return 1; - } - - return 0; -} - -public int Native_ReadClientFriends(Handle plugin, int numParams) -{ - int client = GetNativeCell(1); - - if(client > MaxClients || client <= 0) - { - ThrowNativeError(SP_ERROR_NATIVE, "Client is not valid."); - return -1; - } - - if(g_FriendsArray[client] != INVALID_HANDLE) - return 1; - - return 0; -} diff --git a/AdvancedTargeting/scripting/include/AdvancedTargeting.inc b/AdvancedTargeting/scripting/include/AdvancedTargeting.inc deleted file mode 100644 index 8ffd3ad2..00000000 --- a/AdvancedTargeting/scripting/include/AdvancedTargeting.inc +++ /dev/null @@ -1,26 +0,0 @@ -#if defined _AdvancedTargeting_Included - #endinput -#endif -#define _AdvancedTargeting_Included - -native int IsClientFriend(int client, int friend); -native int ReadClientFriends(int client); - -public SharedPlugin __pl_AdvancedTargeting = -{ - name = "AdvancedTargeting", - file = "AdvancedTargeting.smx", -#if defined REQUIRE_PLUGIN - required = 1, -#else - required = 0, -#endif -}; - -#if !defined REQUIRE_PLUGIN -public __pl_AdvancedTargeting_SetNTVOptional() -{ - MarkNativeAsOptional("IsClientFriend"); - MarkNativeAsOptional("ReadClientFriends"); -} -#endif diff --git a/AntiFlood/scripting/AntiFlood.sp b/AntiFlood/scripting/AntiFlood.sp deleted file mode 100644 index 8fa66f84..00000000 --- a/AntiFlood/scripting/AntiFlood.sp +++ /dev/null @@ -1,71 +0,0 @@ -#include - -#pragma semicolon 1 -#pragma newdecls required - -int g_Client_CommandCount[MAXPLAYERS + 1]; -float g_Client_LastFlood[MAXPLAYERS + 1]; - -#define MAX_COMMANDS 100 -#define INTERVAL 1.0 - -public Plugin myinfo = -{ - name = "AntiFlood", - author = "BotoX", - description = "", - version = "1.0", - url = "" -}; - -public void OnPluginStart() -{ - /* Late load */ - for(int client = 1; client <= MaxClients; client++) - { - if(IsClientInGame(client)) - OnClientConnected(client); - } - - AddCommandListener(OnAnyCommand, ""); -} - -public void OnClientConnected(int client) -{ - g_Client_CommandCount[client] = 0; - g_Client_LastFlood[client] = 0.0; -} - -//public Action OnClientCommand(int client, int args) -public Action OnAnyCommand(int client, const char[] command, int argc) -{ - if(FloodCheck(client)) - return Plugin_Handled; - - return Plugin_Continue; -} - -public void OnClientSettingsChanged(int client) -{ - FloodCheck(client); -} - -bool FloodCheck(int client) -{ - if(client <= 0 || client > MaxClients) - return false; - - if(++g_Client_CommandCount[client] <= MAX_COMMANDS) - return false; - - float Time = GetGameTime(); - if(Time >= g_Client_LastFlood[client] + INTERVAL) - { - g_Client_LastFlood[client] = Time; - g_Client_CommandCount[client] = 0; - return false; - } - - KickClientEx(client, "STOP FLOODING THE SERVER!!!"); - return true; -} diff --git a/AntiJumpSpam/scripting/AntiJumpSpam.sp b/AntiJumpSpam/scripting/AntiJumpSpam.sp deleted file mode 100644 index d34550a2..00000000 --- a/AntiJumpSpam/scripting/AntiJumpSpam.sp +++ /dev/null @@ -1,115 +0,0 @@ -#pragma semicolon 1 - -#include -#include - -#undef REQUIRE_PLUGIN -#tryinclude -#define REQUIRE_PLUGIN - -#pragma newdecls required - -bool g_bZRLoaded; - -ConVar g_cvarJumpsUntilBlock = null; -ConVar g_cvarIntervalBetweenJumps = null; -ConVar g_cvarCooldownInterval = null; - -float g_fLastJumpTime[MAXPLAYERS + 1]; - -int g_iFastJumpCount[MAXPLAYERS + 1]; - -public Plugin myinfo = -{ - name = "Anti Jump Spam", - author = "Obus", - description = "Prevents clients from spamming jump to avoid knockback in crawl spaces.", - version = "1.0.0", - url = "" -} - -public void OnPluginStart() -{ - g_cvarJumpsUntilBlock = CreateConVar("sm_ajs_jumpsuntilblock", "5", "Successive jumps until anti jump-spam kicks in."); - g_cvarIntervalBetweenJumps = CreateConVar("sm_ajs_jumpinterval", "0.2", "If a client jumps faster than this their jumps will be blocked after the amount of jumps specified in \"sm_ajs_jumpsuntilblock\" is reached."); - g_cvarCooldownInterval = CreateConVar("sm_ajs_cooldowninterval", "0.0", "Changes the amount of time required for a jump to not be considered spam anymore. (Setting this to 0 makes the interval sm_ajs_jumpinterval * 2)"); - - AutoExecConfig(true, "plugin.antijumpspam"); -} - -public void OnAllPluginsLoaded() -{ - g_bZRLoaded = LibraryExists("zombiereloaded"); -} - -public void OnLibraryAdded(const char[] sName) -{ - if (strcmp(sName, "zombiereloaded", false) == 0) - g_bZRLoaded = true; -} - -public void OnLibraryRemoved(const char[] sName) -{ - if (strcmp(sName, "zombiereloaded", false) == 0) - g_bZRLoaded = false; -} - -public void OnClientDisconnect(int client) -{ - g_fLastJumpTime[client] = 0.0; - g_iFastJumpCount[client] = 0; -} - -public Action OnPlayerRunCmd(int client, int &buttons) -{ - static bool bHoldingJump[MAXPLAYERS + 1]; - -#if defined _zr_included - if (!IsPlayerAlive(client) || (g_bZRLoaded && !ZR_IsClientZombie(client)) || (!g_bZRLoaded && GetClientTeam(client) != CS_TEAM_T)) - return Plugin_Continue; -#else - if (!IsPlayerAlive(client) || GetClientTeam(client) != CS_TEAM_T) - return Plugin_Continue; -#endif - - if (buttons & IN_JUMP && GetEntityFlags(client) & FL_ONGROUND) - { - float fCurTime = GetEngineTime(); - float fTimeSinceLastJump = fCurTime - g_fLastJumpTime[client]; - - if (!bHoldingJump[client]) - { - if (fTimeSinceLastJump > (g_cvarCooldownInterval.FloatValue > 0.0 ? g_cvarCooldownInterval.FloatValue : g_cvarIntervalBetweenJumps.FloatValue * 2.0) && g_iFastJumpCount[client] > 0) - { - int iJumpsToDeduct = RoundToFloor(fTimeSinceLastJump / (g_cvarCooldownInterval.FloatValue > 0.0 ? g_cvarCooldownInterval.FloatValue : g_cvarIntervalBetweenJumps.FloatValue * 2)); - - iJumpsToDeduct = iJumpsToDeduct <= g_iFastJumpCount[client] ? iJumpsToDeduct : g_iFastJumpCount[client]; - - g_iFastJumpCount[client] -= iJumpsToDeduct; - } - } - - if (g_iFastJumpCount[client] >= g_cvarJumpsUntilBlock.IntValue) - { - buttons &= ~IN_JUMP; - - return Plugin_Continue; - } - - if (!bHoldingJump[client]) - { - bHoldingJump[client] = true; - - if (fTimeSinceLastJump < g_cvarIntervalBetweenJumps.FloatValue) - g_iFastJumpCount[client]++; - - g_fLastJumpTime[client] = fCurTime; - } - } - else if (bHoldingJump[client]) - { - bHoldingJump[client] = false; - } - - return Plugin_Continue; -} diff --git a/AntiPingMask/scripting/AntiPingMask.sp b/AntiPingMask/scripting/AntiPingMask.sp deleted file mode 100644 index 40a2cae2..00000000 --- a/AntiPingMask/scripting/AntiPingMask.sp +++ /dev/null @@ -1,79 +0,0 @@ -#pragma semicolon 1 -#pragma newdecls required - -#include -#include - -#define REMIND_INTERVAL 5.0 - -bool g_IsMasked[MAXPLAYERS + 1] = {false, ...}; - -public Plugin myinfo = -{ - name = "AntiPingMask", - author = "BotoX", - description = "Shows real ping when client tries to mask it.", - version = "1.0", - url = "" -}; - -public void OnClientDisconnect(int client) -{ - g_IsMasked[client] = false; -} - -public void OnMapStart() -{ - CreateTimer(REMIND_INTERVAL, Timer_Remind, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE); -} - -public Action Timer_Remind(Handle Timer, any Data) -{ - for(int client = 1; client <= MaxClients; client++) - { - if(g_IsMasked[client] && IsClientInGame(client)) - PrintToChat(client, "[SM] Please turn off your pingmask! (cl_cmdrate 100)"); - } -} - -public void OnClientSettingsChanged(int client) -{ - static char sCmdRate[32]; - GetClientInfo(client, "cl_cmdrate", sCmdRate, sizeof(sCmdRate)); - bool bBadCmdRate = !IsNatural(sCmdRate); - - if(bBadCmdRate) - g_IsMasked[client] = true; - else - g_IsMasked[client] = false; -} - -public void OnGameFrame() -{ - for(int client = 1; client <= MaxClients; client++) - { - if(g_IsMasked[client]) - ForcePing(client); - } -} - -public void ForcePing(int client) -{ - int iResEnt = GetPlayerResourceEntity(); - if(iResEnt == -1) - return; - - int iLatency = RoundToNearest(GetClientAvgLatency(client, NetFlow_Outgoing) * 1000.0); - SetEntProp(iResEnt, Prop_Send, "m_iPing", iLatency, _, client); -} - -stock bool IsNatural(const char[] sString) -{ - for(int i = 0; sString[i]; i++) - { - if(!IsCharNumeric(sString[i])) - return false; - } - - return true; -} diff --git a/AutoRecorder/scripting/AutoRecorder.sp b/AutoRecorder/scripting/AutoRecorder.sp deleted file mode 100644 index 3b9feb86..00000000 --- a/AutoRecorder/scripting/AutoRecorder.sp +++ /dev/null @@ -1,227 +0,0 @@ -#pragma semicolon 1 -#include - -ConVar g_hTvEnabled; -ConVar g_hAutoRecord; -ConVar g_hMinPlayersStart; -ConVar g_hIgnoreBots; -ConVar g_hTimeStart; -ConVar g_hTimeStop; -ConVar g_hFinishMap; -ConVar g_hDemoPath; - -bool g_bRestartRecording = false; -bool g_bIsRecording = false; -bool g_bIsManual = false; - -int g_iRestartRecording; - -// Default: o=rx,g=rx,u=rwx | 755 -#define DIRECTORY_PERMISSIONS (FPERM_O_READ|FPERM_O_EXEC | FPERM_G_READ|FPERM_G_EXEC | FPERM_U_READ|FPERM_U_WRITE|FPERM_U_EXEC) - -public Plugin myinfo = -{ - name = "Auto Recorder", - author = "Stevo.TVR", - description = "Automates SourceTV recording based on player count and time of day.", - version = "1.2.0", - url = "http://www.theville.org" -} - -public void OnPluginStart() -{ - g_hAutoRecord = CreateConVar("sm_autorecord_enable", "1", "Enable automatic recording", _, true, 0.0, true, 1.0); - g_hMinPlayersStart = CreateConVar("sm_autorecord_minplayers", "4", "Minimum players on server to start recording", _, true, 0.0); - g_hIgnoreBots = CreateConVar("sm_autorecord_ignorebots", "1", "Ignore bots in the player count", _, true, 0.0, true, 1.0); - g_hTimeStart = CreateConVar("sm_autorecord_timestart", "-1", "Hour in the day to start recording (0-23, -1 disables)"); - g_hTimeStop = CreateConVar("sm_autorecord_timestop", "-1", "Hour in the day to stop recording (0-23, -1 disables)"); - g_hFinishMap = CreateConVar("sm_autorecord_finishmap", "1", "If 1, continue recording until the map ends", _, true, 0.0, true, 1.0); - g_hDemoPath = CreateConVar("sm_autorecord_path", "demos/", "Path to store recorded demos"); - - AutoExecConfig(true, "autorecorder"); - - RegAdminCmd("sm_record", Command_Record, ADMFLAG_KICK, "Starts a SourceTV demo"); - RegAdminCmd("sm_stoprecord", Command_StopRecord, ADMFLAG_KICK, "Stops the current SourceTV demo"); - - HookEvent("round_start", OnRoundStart); - - g_hTvEnabled = FindConVar("tv_enable"); - - static char sPath[PLATFORM_MAX_PATH]; - GetConVarString(g_hDemoPath, sPath, sizeof(sPath)); - - if(!DirExists(sPath)) - CreateDirectory(sPath, DIRECTORY_PERMISSIONS); - - HookConVarChange(g_hMinPlayersStart, OnConVarChanged); - HookConVarChange(g_hIgnoreBots, OnConVarChanged); - HookConVarChange(g_hTimeStart, OnConVarChanged); - HookConVarChange(g_hTimeStop, OnConVarChanged); - HookConVarChange(g_hDemoPath, OnConVarChanged); - - CreateTimer(300.0, Timer_CheckStatus, _, TIMER_REPEAT); - - StopRecord(); - CheckStatus(); -} - -public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) -{ - if(g_bRestartRecording && g_iRestartRecording <= GetTime()) - { - StopRecord(); - CheckStatus(); - } -} - -public void OnConVarChanged(ConVar convar, const char[] oldValue, const char[] newValue) -{ - if(convar == g_hDemoPath) - { - if(!DirExists(newValue)) - CreateDirectory(newValue, DIRECTORY_PERMISSIONS); - } - else - CheckStatus(); -} - -public void OnMapEnd() -{ - if(g_bIsRecording) - { - StopRecord(); - g_bIsManual = false; - - g_bRestartRecording = false; - g_iRestartRecording = -1; - } -} - -public void OnClientPutInServer(int client) -{ - CheckStatus(); -} - -public void OnClientDisconnect_Post(int client) -{ - CheckStatus(); -} - -public Action Timer_CheckStatus(Handle hTimer) -{ - CheckStatus(); -} - -public Action Command_Record(int client, int args) -{ - if(g_bIsRecording) - { - ReplyToCommand(client, "[SM] SourceTV is already recording!"); - return Plugin_Handled; - } - - StartRecord(); - g_bIsManual = true; - - ReplyToCommand(client, "[SM] SourceTV is now recording..."); - - return Plugin_Handled; -} - -public Action Command_StopRecord(int client, int args) -{ - if(!g_bIsRecording) - { - ReplyToCommand(client, "[SM] SourceTV is not recording!"); - return Plugin_Handled; - } - - StopRecord(); - - if(g_bIsManual) - { - g_bIsManual = false; - CheckStatus(); - } - - ReplyToCommand(client, "[SM] Stopped recording."); - - return Plugin_Handled; -} - -void CheckStatus() -{ - if(GetConVarBool(g_hAutoRecord) && !g_bIsManual) - { - int iMinClients = GetConVarInt(g_hMinPlayersStart); - - int iTimeStart = GetConVarInt(g_hTimeStart); - int iTimeStop = GetConVarInt(g_hTimeStop); - bool bReverseTimes = (iTimeStart > iTimeStop); - - static char sCurrentTime[4]; - FormatTime(sCurrentTime, sizeof(sCurrentTime), "%H", GetTime()); - int iCurrentTime = StringToInt(sCurrentTime); - - if(GetPlayerCount() >= iMinClients+1 && (iTimeStart < 0 || (iCurrentTime >= iTimeStart && (bReverseTimes || iCurrentTime < iTimeStop)))) - { - StartRecord(); - } - else if(g_bIsRecording && !GetConVarBool(g_hFinishMap) && (iTimeStop < 0 || iCurrentTime >= iTimeStop)) - { - StopRecord(); - } - } -} - -int GetPlayerCount() -{ - if(!GetConVarBool(g_hIgnoreBots)) - return GetClientCount(false) - 1; - - int iNumPlayers = 0; - for(int i = 1; i <= MaxClients; i++) - { - if(IsClientConnected(i) && !IsFakeClient(i)) - iNumPlayers++; - } - - return iNumPlayers; -} - -void StartRecord() -{ - if(GetConVarBool(g_hTvEnabled) && !g_bIsRecording) - { - static char sPath[PLATFORM_MAX_PATH]; - static char sMap[PLATFORM_MAX_PATH]; - static char sTime[16]; - - GetConVarString(g_hDemoPath, sPath, sizeof(sPath)); - FormatTime(sTime, sizeof(sTime), "%Y%m%d-%H%M%S", GetTime()); - GetCurrentMap(sMap, sizeof(sMap)); - - // replace slashes in map path name with dashes, to prevent fail on workshop maps - ReplaceString(sMap, sizeof(sMap), "/", "-", false); - - ServerCommand("tv_record \"%s/auto-%s-%s\"", sPath, sTime, sMap); - g_bIsRecording = true; - - LogMessage("Recording to auto-%s-%s.dem", sTime, sMap); - - g_bRestartRecording = true; - g_iRestartRecording = GetTime() + 1800; - } -} - -void StopRecord() -{ - if(GetConVarBool(g_hTvEnabled)) - { - ServerCommand("tv_stoprecord"); - g_bIsRecording = false; - - g_bRestartRecording = false; - g_iRestartRecording = -1; - } -} diff --git a/ConVarSuppression/scripting/ConVarSuppression.sp b/ConVarSuppression/scripting/ConVarSuppression.sp deleted file mode 100644 index 8625c97d..00000000 --- a/ConVarSuppression/scripting/ConVarSuppression.sp +++ /dev/null @@ -1,118 +0,0 @@ -#pragma semicolon 1 -#include - -#define PLUGIN_PREFIX "\x04[ConVar Suppression]\x03 " -#define PLUGIN_VERSION "1.0" - -new Handle:g_hGlobalTrie = INVALID_HANDLE; - -public Plugin:myinfo = -{ - name = "ConVar Suppression", /* https://www.youtube.com/watch?v=ZhjtChtUmBE&hd=1 */ - author = "Kyle Sanderson", - description = "Atleast we have candy.", - version = PLUGIN_VERSION, - url = "http://www.SourceMod.net/" -}; - -public OnPluginStart() -{ - g_hGlobalTrie = CreateTrie(); - HookEvent("server_cvar", Event_ServerCvar, EventHookMode_Pre); - RegAdminCmd("sm_suppressconvar", OnSupressConVar, ADMFLAG_ROOT, "Supress a ConVar from displaying changes to Clients."); - - CreateConVar("sm_convarsuppression_version", PLUGIN_VERSION, "Version string for ConVar Supression.", FCVAR_REPLICATED|FCVAR_DONTRECORD|FCVAR_NOTIFY); - - AutoExecConfig(true, "plugin.ConVarSupression"); -} - -public Action:OnSupressConVar(client, argc) -{ - if (client && !IsClientInGame(client)) /* Isn't needed, but makes me feel safe inside. */ - { - return Plugin_Handled; - } - - decl String:sCommand[256]; - - if (argc < 2) - { - if (!GetCmdArg(0, sCommand, sizeof(sCommand))) - { - return Plugin_Handled; - } - - ReplyToCommand(client, "%s%s ", PLUGIN_PREFIX, sCommand); - return Plugin_Handled; - } - - if (!GetCmdArg(2, sCommand, sizeof(sCommand))) - { - return Plugin_Handled; - } - - TrimString(sCommand); - new iValue = -1; - - if (!IsCharNumeric(sCommand[0])) - { - switch (CharToLower(sCommand[0])) - { - case 'd': - { - iValue = 0; - } - - case 'e': - { - iValue = 1; - } - } - } - else - { - iValue = StringToInt(sCommand); - } - - if (!GetCmdArg(1, sCommand, sizeof(sCommand))) - { - return Plugin_Handled; - } - - switch (iValue) - { - case 0: - { - RemoveFromTrie(g_hGlobalTrie, sCommand); - if (client) - { - ReplyToCommand(client, "%sRemoved ConVar: %s", PLUGIN_PREFIX, sCommand); - } - } - - case 1: - { - SetTrieValue(g_hGlobalTrie, sCommand, 1, true); - if (client) - { - ReplyToCommand(client, "%sAdded Hook for ConVar: %s", PLUGIN_PREFIX, sCommand); - } - } - - default: - { - ReplyToCommand(client, "%sIllegal Input for Enabled/Disabled with ConVar: %s", PLUGIN_PREFIX, sCommand); - } - } - - return Plugin_Handled; -} - -public Action:Event_ServerCvar(Handle:event, const String:name[], bool:dontBroadcast) -{ - decl String:sConVarName[64]; - new iValue; - - GetEventString(event, "cvarname", sConVarName, sizeof(sConVarName)); - return (GetTrieValue(g_hGlobalTrie, sConVarName, iValue) && iValue) ? Plugin_Handled : Plugin_Continue; -} \ No newline at end of file diff --git a/Extend/gamedata/Extend.games.txt b/Extend/gamedata/Extend.games.txt deleted file mode 100644 index 3c6177e2..00000000 --- a/Extend/gamedata/Extend.games.txt +++ /dev/null @@ -1,25 +0,0 @@ -"Games" -{ - "#default" - { - "Addresses" - { - "GameOver" - { - "linux" - { - "signature" "g_fGameOver" - } - } - } - - "Signatures" - { - "g_fGameOver" - { - "library" "server" - "linux" "@g_fGameOver" - } - } - } -} diff --git a/Extend/scripting/Extend.sp b/Extend/scripting/Extend.sp deleted file mode 100644 index 442bcca4..00000000 --- a/Extend/scripting/Extend.sp +++ /dev/null @@ -1,387 +0,0 @@ -#pragma semicolon 1 -#pragma newdecls required - -#include -#include - -#define VOTE_NO "###no###" -#define VOTE_YES "###yes###" - -ConVar g_cvarExtendVoteTime = null; -ConVar g_cvarExtendVotePercent = null; -ConVar g_cvarMpMaxRounds = null; -ConVar g_cvarMpFragLimit = null; -ConVar g_cvarMpWinLimit = null; -ConVar g_cvarMpTimeLimit = null; - -bool g_bGameOver = false; -Address g_pGameOver; - -public Plugin myinfo = -{ - name = "Map extend tools", - author = "Obus + BotoX", - description = "Adds map extension commands.", - version = "1.0", - url = "" -}; - -public void OnPluginStart() -{ - LoadTranslations("common.phrases"); - LoadTranslations("basevotes.phrases"); - - g_cvarMpMaxRounds = FindConVar("mp_maxrounds"); - g_cvarMpFragLimit = FindConVar("mp_fraglimit"); - g_cvarMpWinLimit = FindConVar("mp_winlimit"); - g_cvarMpTimeLimit = FindConVar("mp_timelimit"); - - g_cvarExtendVoteTime = CreateConVar("sm_extendvote_time", "15", "Time that will be added to mp_timelimit shall the extend vote succeed", FCVAR_NONE, true, 1.0); - g_cvarExtendVotePercent = CreateConVar("sm_extendvote_percent", "0.6", "Percentage of \"yes\" votes required to consider the vote successful", FCVAR_NONE, true, 0.05, true, 1.0); - - AutoExecConfig(true, "plugin.Extend"); - - if (g_cvarMpMaxRounds != null) - RegAdminCmd("sm_extend_rounds", Command_Extend_Rounds, ADMFLAG_GENERIC, "Add more rounds to mp_maxrounds"); - else - LogMessage("Failed to find \"mp_maxrounds\" console variable, related commands will be disabled."); - - if (g_cvarMpFragLimit != null) - RegAdminCmd("sm_extend_frags", Command_Extend_Frags, ADMFLAG_GENERIC, "Add more frags to mp_fraglimit"); - else - LogMessage("Failed to find \"mp_fraglimit\" console variable, related commands will be disabled."); - - if (g_cvarMpWinLimit != null) - RegAdminCmd("sm_extend_wins", Command_Extend_Wins, ADMFLAG_GENERIC, "Add more wins to mp_winlimit"); - else - LogMessage("Failed to find \"mp_winlimit\" console variable, related commands will be disabled."); - - if (g_cvarMpTimeLimit != null) - { - RegAdminCmd("sm_extend", Command_Extend, ADMFLAG_GENERIC, "Add more time to mp_timelimit"); - RegAdminCmd("sm_extend_time", Command_Extend, ADMFLAG_GENERIC, "Add more time to mp_timelimit"); - RegAdminCmd("sm_extendvote", Command_ExtendVote, ADMFLAG_GENERIC, "sm_extendvote [time] - Start an extendvote"); - RegAdminCmd("sm_voteextend", Command_ExtendVote, ADMFLAG_GENERIC, "sm_voteextend [time] - Start an extendvote"); - RegAdminCmd("sm_extend_vote", Command_ExtendVote, ADMFLAG_GENERIC, "sm_extend_vote [time] - Start an extendvote"); - } - else - { - LogMessage("Failed to find \"mp_timelimit\" console variable, related commands will be disabled."); - } - - Handle hGameConf = LoadGameConfigFile("Extend.games"); - if(hGameConf == INVALID_HANDLE) - { - g_bGameOver = false; - LogError("Couldn't load Extend.games game config! GameOver cancel disabled."); - return; - } - - if(!(g_pGameOver = GameConfGetAddress(hGameConf, "GameOver"))) - { - g_bGameOver = false; - CloseHandle(hGameConf); - LogError("Couldn't get GameOver address from game config! GameOver cancel disabled."); - return; - } - - g_bGameOver = true; - CloseHandle(hGameConf); -} - -public Action Command_Extend_Rounds(int client, int argc) -{ - if (argc < 1) - { - ReplyToCommand(client, "[SM] Usage: sm_extend_rounds "); - return Plugin_Handled; - } - - char sArgs[16]; - - GetCmdArg(1, sArgs, sizeof(sArgs)); - - if (sArgs[0] == '-') - { - int iRoundsToDeduct; - - if (!StringToIntEx(sArgs[1], iRoundsToDeduct)) - { - ReplyToCommand(client, "[SM] Invalid value"); - return Plugin_Handled; - } - - g_cvarMpMaxRounds.IntValue -= iRoundsToDeduct; - - LogAction(client, -1, "\"%L\" deducted \"%d\" rounds from \"mp_maxrounds\"", client, iRoundsToDeduct); - - return Plugin_Handled; - } - - int iRoundsToAdd; - - if (!StringToIntEx(sArgs, iRoundsToAdd)) - { - ReplyToCommand(client, "[SM] Invalid value"); - return Plugin_Handled; - } - - g_cvarMpMaxRounds.IntValue += iRoundsToAdd; - CancelGameOver(); - - LogAction(client, -1, "\"%L\" added \"%d\" rounds to \"mp_maxrounds\"", client, iRoundsToAdd); - - return Plugin_Handled; -} - -public Action Command_Extend_Frags(int client, int argc) -{ - if (argc < 1) - { - ReplyToCommand(client, "[SM] Usage: sm_extend_frags "); - return Plugin_Handled; - } - - char sArgs[16]; - - GetCmdArg(1, sArgs, sizeof(sArgs)); - - if (sArgs[0] == '-') - { - int iFragsToDeduct; - - if (!StringToIntEx(sArgs[1], iFragsToDeduct)) - { - ReplyToCommand(client, "[SM] Invalid value"); - return Plugin_Handled; - } - - g_cvarMpFragLimit.IntValue -= iFragsToDeduct; - - LogAction(client, -1, "\"%L\" deducted \"%d\" frags from \"mp_fraglimit\"", client, iFragsToDeduct); - - return Plugin_Handled; - } - - int iFragsToAdd; - - if (!StringToIntEx(sArgs, iFragsToAdd)) - { - ReplyToCommand(client, "[SM] Invalid value"); - return Plugin_Handled; - } - - g_cvarMpFragLimit.IntValue += iFragsToAdd; - CancelGameOver(); - - LogAction(client, -1, "\"%L\" added \"%d\" frags to \"mp_fraglimit\"", client, iFragsToAdd); - - return Plugin_Handled; -} - -public Action Command_Extend_Wins(int client, int argc) -{ - if (argc < 1) - { - ReplyToCommand(client, "[SM] Usage: sm_extend_wins "); - return Plugin_Handled; - } - - char sArgs[16]; - - GetCmdArg(1, sArgs, sizeof(sArgs)); - - if (sArgs[0] == '-') - { - int iWinsToDeduct; - - if (!StringToIntEx(sArgs[1], iWinsToDeduct)) - { - ReplyToCommand(client, "[SM] Invalid value"); - return Plugin_Handled; - } - - g_cvarMpWinLimit.IntValue -= iWinsToDeduct; - - LogAction(client, -1, "\"%L\" deducted \"%d\" wins from \"mp_winlimit\"", client, iWinsToDeduct); - - return Plugin_Handled; - } - - int iWinsToAdd; - - if (!StringToIntEx(sArgs, iWinsToAdd)) - { - ReplyToCommand(client, "[SM] Invalid value"); - return Plugin_Handled; - } - - g_cvarMpWinLimit.IntValue += iWinsToAdd; - CancelGameOver(); - - LogAction(client, -1, "\"%L\" added \"%d\" wins to \"mp_winlimit\"", client, iWinsToAdd); - - return Plugin_Handled; -} - -public Action Command_Extend(int client, int argc) -{ - if (argc < 1) - { - ReplyToCommand(client, "[SM] Usage: sm_extend