From 3cdf7a3d70acf7465bc36d334e1943231b66035e Mon Sep 17 00:00:00 2001 From: l-Aad-l <7024626+l-Aad-l@users.noreply.github.com> Date: Fri, 1 Dec 2023 17:47:46 -0500 Subject: [PATCH] Updated passtime --- .github/workflows/main.yml | 5 +- .github/workflows/pr.yml | 5 +- .github/workflows/release.yml | 5 +- .gitignore | 2 +- addons/sourcemod/gamedata/passtime-fixes.txt | 42 ++++ addons/sourcemod/plugins/p4sstime.smx | Bin 0 -> 17015 bytes addons/sourcemod/plugins/passtimecontrol.smx | Bin 8037 -> 0 bytes .../scripting/disabled/passthestats.sp | 213 ------------------ .../scripting/disabled/passtimecontrol.sp | 201 ----------------- cfg/rgl_base.cfg | 3 +- cfg/rgl_off.cfg | 8 +- cfg/rgl_pt_base.cfg | 21 +- cfg/rgl_pt_push.cfg | 5 +- 13 files changed, 68 insertions(+), 442 deletions(-) create mode 100644 addons/sourcemod/gamedata/passtime-fixes.txt create mode 100644 addons/sourcemod/plugins/p4sstime.smx delete mode 100644 addons/sourcemod/plugins/passtimecontrol.smx delete mode 100644 addons/sourcemod/scripting/disabled/passthestats.sp delete mode 100644 addons/sourcemod/scripting/disabled/passtimecontrol.sp diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6996943..3e712ca 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -126,7 +126,7 @@ jobs: - name: Compile RGL Suite Plugins against SM ${{ steps.setup-sp.outputs.version }} run: | - for plugin in "rglqol" "rglupdater" "tf2Halftime" "improved_match_timer" "disabled/roundtimer_override" "disabled/passthestats" + for plugin in "rglqol" "rglupdater" "tf2Halftime" "improved_match_timer" "disabled/roundtimer_override" do echo -e "\nCompiling $plugin.sp..." spcomp -E -w234 -O2 -v2 -i $SCRIPTS_PATH/include $plugin.sp @@ -155,8 +155,7 @@ jobs: run: | mv tf2Halftime.smx disabled/ mv roundtimer_override.smx disabled/ - mv passthestats.smx disabled/ - mv passtimecontrol.smx disabled/ + mv p4sstime.smx disabled/ working-directory: ${{ env.PLUGINS_PATH }}/ - name: Rebuild updatefile.txt diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 0d1fe7c..e3e94a9 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -51,7 +51,7 @@ jobs: - name: Compile RGL Suite Plugins against SM ${{ steps.setup-sp.outputs.version }} run: | - for plugin in "rglqol" "rglupdater" "improved_match_timer" "disabled/roundtimer_override" "disabled/passthestats" + for plugin in "rglqol" "rglupdater" "improved_match_timer" "disabled/roundtimer_override" do echo -e "\nCompiling $plugin.sp..." spcomp -E -w234 -O2 -v2 -i $SCRIPTS_PATH/include $plugin.sp @@ -67,8 +67,7 @@ jobs: - name: Disable optional plugins run: | mv roundtimer_override.smx disabled/ - mv passthestats.smx disabled/ - mv passtimecontrol.smx disabled/ + mv p4sstime.smx disabled/ working-directory: ${{ env.PLUGINS_PATH }}/ - name: Rebuild updatefile.txt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 515404f..e791b4c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -89,7 +89,7 @@ jobs: - name: Compile RGL Suite Plugins against SM ${{ steps.setup-sp.outputs.version }} run: | - for plugin in "rglqol" "rglupdater" "tf2Halftime" "improved_match_timer" "disabled/roundtimer_override" "disabled/passthestats" + for plugin in "rglqol" "rglupdater" "tf2Halftime" "improved_match_timer" "disabled/roundtimer_override" do echo -e "\nCompiling $plugin.sp..." spcomp -E -w234 -O2 -v2 -i $SCRIPTS_PATH/include $plugin.sp @@ -118,8 +118,7 @@ jobs: run: | mv tf2Halftime.smx disabled mv roundtimer_override.smx disabled/ - mv passthestats.smx disabled/ - mv passtimecontrol.smx disabled/ + mv p4sstime.smx disabled/ working-directory: ${{ env.PLUGINS_PATH }}/ - name: Rebuild updatefile.txt diff --git a/.gitignore b/.gitignore index 9182b8a..9c40ba6 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,4 @@ README.txt # ignore smx builds *.smx -!passtimecontrol.smx \ No newline at end of file +!p4sstime.smx \ No newline at end of file diff --git a/addons/sourcemod/gamedata/passtime-fixes.txt b/addons/sourcemod/gamedata/passtime-fixes.txt new file mode 100644 index 0000000..4295738 --- /dev/null +++ b/addons/sourcemod/gamedata/passtime-fixes.txt @@ -0,0 +1,42 @@ +/** + * Copyright (C) 2022 Mikusch + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +"Games" +{ + "tf" + { + "Offsets" + { + "CBaseProjectile::CanCollideWithTeammates" + { + "library" "server" + "linux" "230" + "windows" "229" + } + } + "Functions" + { + "CBaseProjectile::CanCollideWithTeammates" + { + "offset" "CBaseProjectile::CanCollideWithTeammates" + "hooktype" "entity" + "return" "bool" + "this" "entity" + } + } + } +} diff --git a/addons/sourcemod/plugins/p4sstime.smx b/addons/sourcemod/plugins/p4sstime.smx new file mode 100644 index 0000000000000000000000000000000000000000..f677963ef9de81e2f6d78a6f9a5d1cf31da387e6 GIT binary patch literal 17015 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 MTHYl7UuQ9#xHBU6Y5)KL literal 0 HcmV?d00001 diff --git a/addons/sourcemod/plugins/passtimecontrol.smx b/addons/sourcemod/plugins/passtimecontrol.smx deleted file mode 100644 index 6894a0f4f34fb11c991667e80aa85ae31fc42736..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8037 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 diff --git a/addons/sourcemod/scripting/disabled/passthestats.sp b/addons/sourcemod/scripting/disabled/passthestats.sp deleted file mode 100644 index 06a1c8b..0000000 --- a/addons/sourcemod/scripting/disabled/passthestats.sp +++ /dev/null @@ -1,213 +0,0 @@ -#include -#include -#include - -//adding support for maps other than arena2 -#define PLUGIN_VERSION "1.6.0" -#define NAME_SIZE 25 - -public Plugin myinfo = { - name = "[TF2] Pass the Stats", - author = "easye", - description = "Stats for Competitve 4v4 Passtime", - version = "PLUGIN_VERSION", - url="https://github.com/eaasye/passtime" -} - - -//playerArray: 0 = scores, saves = 1, 2 = interceptions, 3 = steals -int playerArray[MAXPLAYERS][4]; -float bluGoal[3], redGoal[3]; -ConVar statsEnable, statsDelay, saveRadius; - - -public void OnPluginStart() { - statsEnable = CreateConVar("sm_passtime_stats", "1", "Enables passtime stats") - statsDelay = CreateConVar("sm_passtime_stats_delay", "7.5", "Delay for passtime stats to be displayed after a game is won") - saveRadius = CreateConVar("sm_passtime_stats_save_radius", "200", "The Radius in hammer units from the goal that an intercept is considered a save") - CreateConVar("sm_passthestats_version", PLUGIN_VERSION, "*DONT MANUALLY CHANGE* PassTheStats Plugin Version", FCVAR_NOTIFY | FCVAR_DONTRECORD | FCVAR_SPONLY); - char mapName[64], prefix[16]; - GetCurrentMap(mapName, sizeof(mapName)); - prefix[0] = mapName[0], prefix[1] = mapName[1]; - if - (StrEqual("pa", prefix)) statsEnable.SetInt(1); - else - statsEnable.SetInt(0); - - HookEvent("teamplay_round_win", Event_TeamWin, EventHookMode_Post); - HookEvent("pass_score", Event_PassScore, EventHookMode_Post); - HookEvent("pass_pass_caught", Event_PassCaught, EventHookMode_Post); - HookEvent("pass_ball_stolen", Event_PassStolen, EventHookMode_Post); -} - -public void OnMapStart() { - GetGoalLocations(); -} - -public void OnClientDisconnect(int client) { - playerArray[client][0] = 0, playerArray[client][1] = 0, playerArray[client][2] = 0, playerArray[client][3] = 0; -} - - -public Action Event_PassScore(Event event, const char[] name, bool dontbroadcast) { - if (!statsEnable.BoolValue) return Plugin_Handled; - - int client = event.GetInt("scorer") - if (!IsValidClient(client)) return Plugin_Handled; - char playerName[NAME_SIZE]; - GetClientName(client, playerName, sizeof(playerName)); - PrintToChatAll("\x0700ffff[PASS] %s\x073BC43B scored a goal!", playerName); - playerArray[client][0]++; - return Plugin_Handled; -} - -public Action Event_PassCaught(Event event, const char[] name, bool dontBroadcast) { - if (!statsEnable.BoolValue) return Plugin_Handled; - - int passer = event.GetInt("passer"); - int catcher = event.GetInt("catcher"); - if (TF2_GetClientTeam(passer) == TF2_GetClientTeam(catcher)) return Plugin_Handled; - if (TF2_GetClientTeam(passer) == TFTeam_Spectator || TF2_GetClientTeam(catcher) == TFTeam_Spectator) return Plugin_Handled; - - char passerName[NAME_SIZE], catcherName[NAME_SIZE]; - GetClientName(passer, passerName, sizeof(passerName)); - GetClientName(catcher, catcherName, sizeof(catcherName)); - if (InGoalieZone(catcher)) { - PrintToChatAll("\x0700ffff[PASS] %s \x07ffff00 blocked \x0700ffff%s!", catcherName, passerName); - playerArray[catcher][1]++; - } - else { - PrintToChatAll("\x0700ffff[PASS] %s \x07ff00ffintercepted \x0700ffff%s!", catcherName, passerName); - playerArray[catcher][2]++; - } - - return Plugin_Handled; -} - -public Action Event_PassStolen(Event event, const char[] name, bool dontBroadcast) { - if (!statsEnable.BoolValue) return Plugin_Handled; - - int thief = event.GetInt("attacker"); - int victim = event.GetInt("victim"); - char thiefName[NAME_SIZE], victimName[NAME_SIZE]; - GetClientName(thief, thiefName, sizeof(thiefName)); - GetClientName(victim, victimName, sizeof(victimName)); - PrintToChatAll("\x0700ffff[PASS] %s\x07ff8000 stole from\x0700ffff %s!", thiefName, victimName); - playerArray[thief][3]++; - - return Plugin_Handled; -} - -public Action Event_TeamWin(Event event, const char[] name, bool dontBroadcast) { - if (!statsEnable.BoolValue) return Plugin_Handled; - CreateTimer(statsDelay.FloatValue, Timer_DisplayStats) - return Plugin_Handled; -} - -//this is really fucking sloppy but shrug -public Action Timer_DisplayStats(Handle timer) { - int redTeam[16], bluTeam[16]; - int redCursor, bluCursor = 0; - for (int x=1; x < MaxClients+1; x++) { - if (!IsValidClient(x)) continue; - - if (TF2_GetClientTeam(x) == TFTeam_Red) { - redTeam[redCursor] = x; - redCursor++; - } - - else if (TF2_GetClientTeam(x) == TFTeam_Blue) { - bluTeam[bluCursor] = x; - bluCursor++; - } - } - for (int x=1; x < MaxClients+1; x++) { - if (!IsValidClient2(x)) continue; - - if (TF2_GetClientTeam(x) == TFTeam_Red) { - for (int i=0; i < bluCursor; i++) { - char playerName[NAME_SIZE]; - GetClientName(bluTeam[i], playerName, sizeof(playerName)) - PrintToChat(x, "\x0700ffff[PASS]\x074EA6C1 %s:\x073BC43B goals %d,\x07ffff00 saves %d,\x07ff00ff intercepts %d,\x07ff8000 steals %d", playerName, playerArray[bluTeam[i]][0], playerArray[bluTeam[i]][1], playerArray[bluTeam[i]][2], playerArray[bluTeam[i]][3]) - } - - for (int i=0; i < redCursor; i++) { - char playerName[NAME_SIZE]; - GetClientName(redTeam[i], playerName, sizeof(playerName)) - PrintToChat(x, "\x0700ffff[PASS]\x07C43F3B %s:\x073BC43B goals %d,\x07ffff00 saves %d,\x07ff00ff intercepts %d,\x07ff8000 steals %d", playerName, playerArray[redTeam[i]][0], playerArray[redTeam[i]][1], playerArray[redTeam[i]][2], playerArray[redTeam[i]][3]) - } - } - - else if (TF2_GetClientTeam(x) == TFTeam_Blue|| TF2_GetClientTeam(x) == TFTeam_Spectator) { - for (int i=0; i < redCursor; i++) { - char playerName[NAME_SIZE]; - GetClientName(redTeam[i], playerName, sizeof(playerName)) - PrintToChat(x, "\x0700ffff[PASS]\x07C43F3B %s:\x073BC43B goals %d,\x07ffff00 saves %d,\x07ff00ff intercepts %d,\x07ff8000 steals %d", playerName, playerArray[redTeam[i]][0], playerArray[redTeam[i]][1], playerArray[redTeam[i]][2], playerArray[redTeam[i]][3]) - } - - for (int i=0; i < bluCursor; i++) { - char playerName[NAME_SIZE]; - GetClientName(bluTeam[i], playerName, sizeof(playerName)) - PrintToChat(x, "\x0700ffff[PASS]\x074EA6C1 %s:\x073BC43B goals %d,\x07ffff00 saves %d,\x07ff00ff intercepts %d,\x07ff8000 steals %d", playerName, playerArray[bluTeam[i]][0], playerArray[bluTeam[i]][1], playerArray[bluTeam[i]][2], playerArray[bluTeam[i]][3]) - } - - } - } - - //clear stats - for (int i=0; i < MaxClients+1;i++) { - playerArray[i][0] = 0, playerArray[i][1] = 0, playerArray[i][2] = 0, playerArray[i][3] = 0; - } - return Plugin_Continue; -} - -public bool InGoalieZone(int client) { - int team = GetClientTeam(client); - float position[3]; - GetClientAbsOrigin(client, position); - - if (team == view_as(TFTeam_Blue)) { - float distance = GetVectorDistance(position, bluGoal, false); - if (distance < saveRadius.FloatValue) return true; - } - - if (team == view_as(TFTeam_Red)) { - float distance = GetVectorDistance(position, redGoal, false); - if (distance < saveRadius.FloatValue) return true; - } - - return false; -} - -public void GetGoalLocations() { - int goal1 = FindEntityByClassname(-1, "func_passtime_goal"); - int goal2 = FindEntityByClassname(goal1, "func_passtime_goal"); - int team1 = GetEntProp(goal1, Prop_Send, "m_iTeamNum"); - if (team1 == 2) { - GetEntPropVector(goal1, Prop_Send, "m_vecOrigin", bluGoal); - GetEntPropVector(goal2, Prop_Send, "m_vecOrigin", redGoal); - } - else { - GetEntPropVector(goal2, Prop_Send, "m_vecOrigin", bluGoal); - GetEntPropVector(goal1, Prop_Send, "m_vecOrigin", redGoal); - } -} - -//i have two of these because i have no friends so i test with robots -public bool IsValidClient(int client) { - if (client > 4096) client = EntRefToEntIndex(client); - if (client < 1 || client > MaxClients) return false; - if (!IsClientInGame(client)) return false; - //if (IsFakeClient(client)) return false; - if (GetEntProp(client, Prop_Send, "m_bIsCoaching")) return false; - return true; -} - -public bool IsValidClient2(int client) { - if (client > 4096) client = EntRefToEntIndex(client); - if (client < 1 || client > MaxClients) return false; - if (!IsClientInGame(client)) return false; - if (IsFakeClient(client)) return false; - if (GetEntProp(client, Prop_Send, "m_bIsCoaching")) return false; - return true; -} \ No newline at end of file diff --git a/addons/sourcemod/scripting/disabled/passtimecontrol.sp b/addons/sourcemod/scripting/disabled/passtimecontrol.sp deleted file mode 100644 index 1040916..0000000 --- a/addons/sourcemod/scripting/disabled/passtimecontrol.sp +++ /dev/null @@ -1,201 +0,0 @@ -#include -#include - - -#define PLUGIN_VERSION "1.4.0" - -bool deadPlayers[MAXPLAYERS + 1]; -//0 = hud text, 1 = chat, 2 = sound -bool ballHudEnabled[MAXPLAYERS + 1][3]; - -ConVar stockEnable, respawnEnable, clearHud, collisionDisable; - -Menu ballHudMenu; - -public Plugin myinfo = { - name = "[TF2] PasstimeControl", - author = "EasyE", - description = "Intended for 4v4 Competitive Passtime use. Can prevent players from using shotgun, stickies, and needles. Can disable the screenoverlay blur effect after intercepting or stealing the jack.", - version = PLUGIN_VERSION, - url = "https://github.com/eaasye/passtime" -} - -public void OnPluginStart() { - RegConsoleCmd("sm_ballhud", Command_BallHud); - - HookEvent("player_spawn", Event_PlayerSpawn, EventHookMode_Post); - HookEvent("post_inventory_application", Event_PlayerResup, EventHookMode_Post); - HookEvent("player_death", Event_PlayerDeath, EventHookMode_Post); - HookEvent("pass_get", Event_PassGet, EventHookMode_Post); - HookEvent("pass_free", Event_PassFree, EventHookMode_Post); - HookEvent("pass_ball_stolen", Event_PassStolen, EventHookMode_Post); - HookEntityOutput("info_passtime_ball_spawn", "OnSpawnBall", Hook_OnSpawnBall) - AddCommandListener(OnChangeClass, "joinclass"); - - stockEnable = CreateConVar("sm_passtime_whitelist", "0", "Enables/Disables passtime stock weapon locking"); - respawnEnable = CreateConVar("sm_passtime_respawn", "0", "Enables/disables fixed respawn time"); - clearHud = CreateConVar("sm_passtime_hud", "1", "Enables/Disables blocking the blur effect after intercepting or stealing the ball"); - collisionDisable = CreateConVar("sm_passtime_collision_disable", "0", "Enables/Disables the passtime jack from colliding with ammopacks or weapons"); - CreateConVar("sm_passtimecontrol_version", PLUGIN_VERSION, "*DONT MANUALLY CHANGE* Passtime-Control Plugin Version", FCVAR_NOTIFY | FCVAR_DONTRECORD | FCVAR_SPONLY); - - ballHudMenu = new Menu(BallHudMenuHandler); - ballHudMenu.SetTitle("Jack Notifcations"); - ballHudMenu.AddItem("hudtext", "Toggle hud notifcation"); - ballHudMenu.AddItem("chattext", "Toggle chat notifcation"); - ballHudMenu.AddItem("sound", "Toggle sound notification"); -} - -public void OnClientDisconnect(int client) { - deadPlayers[client] = false; - ballHudEnabled[client][0] = false; - ballHudEnabled[client][1] = false; - ballHudEnabled[client][2] = false; -} - -public void TF2_OnConditionAdded(int client, TFCond condition) { - if (condition == TFCond_PasstimeInterception && clearHud.BoolValue) { - ClientCommand(client, "r_screenoverlay \"\""); - } -} - -public Action Command_BallHud(int client, int args) { - if (IsValidClient(client)) ballHudMenu.Display(client, MENU_TIME_FOREVER); - return Plugin_Handled; -} - -public int BallHudMenuHandler(Menu menu, MenuAction action, int param1, int param2) { - if (action == MenuAction_Select) { - char info[32]; - char status[64]; - ballHudMenu.GetItem(param2, info, sizeof(info)); - if (StrEqual(info, "hudtext")) { - ballHudEnabled[param1][0] = !ballHudEnabled[param1][0]; - ballHudMenu.Display(param1, MENU_TIME_FOREVER); - - Format(status, sizeof(status), "\x0700ffff[PASS]\x01 Hud text: %s", ballHudEnabled[param1][0] ? "\x0700ff00Enabled" : "\x07ff0000Disabled"); - PrintToChat(param1, status); - } - if (StrEqual(info, "chattext")) { - ballHudEnabled[param1][1] = !ballHudEnabled[param1][1]; - ballHudMenu.Display(param1, MENU_TIME_FOREVER); - - Format(status, sizeof(status), "\x0700ffff[PASS]\x01 Chat text: %s", ballHudEnabled[param1][1] ? "\x0700ff00Enabled" : "\x07ff0000Disabled"); - PrintToChat(param1, status); - - } - if (StrEqual(info, "sound")) { - ballHudEnabled[param1][2] = !ballHudEnabled[param1][2]; - ballHudMenu.Display(param1, MENU_TIME_FOREVER); - - Format(status, sizeof(status), "\x0700ffff[PASS]\x01 Sound notification: %s", ballHudEnabled[param1][2] ? "\x0700ff00Enabled" : "\x07ff0000Disabled"); - PrintToChat(param1, status); - } - } - return 0; -} - -/* ---EVENTS--- */ - -public Action Event_PassFree(Event event, const char[] name, bool dontBroadcast) { - int owner = event.GetInt("owner") - if (ballHudEnabled[owner][0]) { - SetHudTextParams(-1.0, 0.22, 3.0, 240, 0, 240, 255); - ShowHudText(owner, 1, ""); - } - return Plugin_Continue; -} - -public Action Event_PassGet(Event event, const char[] name, bool dontBroadcast) { - int owner = event.GetInt("owner"); - if (ballHudEnabled[owner][0]) { - SetHudTextParams(-1.0, 0.22, 3.0, 240, 0, 240, 255); - ShowHudText(owner, 1, "YOU HAVE THE JACK"); - } - - if (ballHudEnabled[owner][1]) { - PrintToChat(owner, "\x07ffff00[PASS]\x0700ff00 YOU HAVE THE JACK!!!"); - } - - if (ballHudEnabled[owner][2]) { - ClientCommand(owner, "playgamesound Passtime.BallSmack"); - } - return Plugin_Continue; -} - -public Action Event_PassStolen(Event event, const char[] name, bool dontBroadcast) { - int owner = event.GetInt("victim"); - if (ballHudEnabled[owner][0]) { - SetHudTextParams(-1.0, 0.22, 3.0, 240, 0, 240, 255); - ShowHudText(owner, 1, ""); - } - return Plugin_Continue; -} - -public Action Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast) { - int client = GetClientOfUserId(GetEventInt(event, "userid")) - deadPlayers[client] = true; - return Plugin_Continue; -} - -public Action Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast) { - int client = GetClientOfUserId(GetEventInt(event, "userid")) - deadPlayers[client] = false; - RemoveShotty(client); - return Plugin_Continue; -} - -public Action Event_PlayerResup(Event event, const char[] name, bool dontBroadcast) { - int client = GetClientOfUserId(GetEventInt(event, "userid")) - RemoveShotty(client); - return Plugin_Continue; -} - -public Action OnChangeClass(int client, const char[] strCommand, int args) { - if(deadPlayers[client] == true && respawnEnable.BoolValue) { - PrintCenterText(client, "You cant change class yet."); - return Plugin_Handled; - } - - return Plugin_Continue; -} - -public void Hook_OnSpawnBall(const char[] name, int caller, int activator, float delay) { - int ball = FindEntityByClassname(-1, "passtime_ball"); - if(collisionDisable.BoolValue) SetEntityCollisionGroup(ball, 4); -} - -/* ---FUNCTIONS--- */ - -public void RemoveShotty(int client) { - if(stockEnable.BoolValue) { - TFClassType class = TF2_GetPlayerClass(client); - int iWep; - if (class == TFClass_DemoMan || class == TFClass_Soldier) iWep = GetPlayerWeaponSlot(client, 1) - else if (class == TFClass_Medic) iWep = GetPlayerWeaponSlot(client, 0); - - if(iWep >= 0) { - char classname[64]; - GetEntityClassname(iWep, classname, sizeof(classname)); - - if (StrEqual(classname, "tf_weapon_shotgun_soldier") || StrEqual(classname, "tf_weapon_pipebomblauncher")) { - PrintToChat(client, "\x07ff0000 [PASS] Shotgun/Stickies equipped"); - TF2_RemoveWeaponSlot(client, 1); - } - - if (StrEqual(classname, "tf_weapon_syringegun_medic")) { - PrintToChat(client, "\x07ff0000 [PASS] Syringe Gun equipped"); - TF2_RemoveWeaponSlot(client, 0); - } - - } - } -} - -public bool IsValidClient(int client) { - if (client > 4096) client = EntRefToEntIndex(client); - if (client < 1 || client > MaxClients) return false; - if (!IsClientInGame(client)) return false; - if (IsFakeClient(client)) return false; - if (GetEntProp(client, Prop_Send, "m_bIsCoaching")) return false; - return true; -} \ No newline at end of file diff --git a/cfg/rgl_base.cfg b/cfg/rgl_base.cfg index 443f8b0..09a7177 100644 --- a/cfg/rgl_base.cfg +++ b/cfg/rgl_base.cfg @@ -11,8 +11,7 @@ sm plugins unload disabled/roundtimer_override // unloads the old improved mat sm plugins unload roundtimer_override // unloads the old improved match timer from any server that may still have it enabled sm plugins unload improved_match_timer // unloads the improved match timer, not used by all formats sm plugins unload tf2Halftime // unloads tf2Halftime plugin -sm plugins unload disabled/passthestats // unloads passthestats plugin -sm plugins unload disabled/passtimecontrol // unloads passtimecontrol plugin +sm plugins unload disabled/p4sstime // unloads p4sstime plugin // TF2 Comp Fixes sm_deterministic_fall_damage 0 // patched by Valve July 7, 2022 with tf_fall_damage_disablespread diff --git a/cfg/rgl_off.cfg b/cfg/rgl_off.cfg index 86d624d..8ed532b 100644 --- a/cfg/rgl_off.cfg +++ b/cfg/rgl_off.cfg @@ -124,6 +124,7 @@ mp_time_between_capscoring "30" // delay between scoring of owned c tf_passtime_score_crit_sec "5.0f" // how long a scoring team's crits last tf_passtime_powerball_passpoints "25" // how many ball meter points are awarded for a complete pass tf_passtime_powerball_airtimebonus "40" // ball meter points added per second of time a pass is in the air. +tf_passtime_overtime_idle_sec "5" // defaults to 5 tf_tournament_classlimit_scout "-1" // defaults tf_tourney classlimits tf_tournament_classlimit_soldier "-1" // ^ @@ -177,7 +178,7 @@ sv_client_min_interp_ratio "1" // clamps client interp settings (d sv_client_max_interp_ratio "5" // ^ sv_client_predict "-1" // does not force cl_predict 1 - +sv_quota_stringcmdspersecond "40" // reset to default sv_allow_votes "1" // enables vote system @@ -206,8 +207,7 @@ sm plugins unload rglqol // unloads the qol plugin so that it sm plugins unload improved_match_timer // unloads the improved match timer //Pass time plugin -sm plugins unload disabled/passtimecontrol // loads passtimecontrol -sm plugins unload disabled/passthestats // loads passthestats +sm plugins unload disabled/p4sstime // unloads passtimecontrol exec "server" // execs the settings in your server.cfg servercfgfile "server" // execs your server cfg file on map change @@ -217,4 +217,4 @@ servercfgfile "server" // execs your server cfg file on map ch //sv_shutdown // sets a graceful shutdown to occur when server is empty say "Thanks for playing! Please note that STV is not immediately unloaded via this config, as slot count issues would occur and lead to potentional crashes." -say "A server restart has been scheduled to occur when all players have left the server, to turn off STV. Use sv_shutdown_cancel to prevent this. \ No newline at end of file +// say "A server restart has been scheduled to occur when all players have left the server to turn off STV. Use sv_shutdown_cancel to prevent this." \ No newline at end of file diff --git a/cfg/rgl_pt_base.cfg b/cfg/rgl_pt_base.cfg index 7941d4d..4736ff7 100644 --- a/cfg/rgl_pt_base.cfg +++ b/cfg/rgl_pt_base.cfg @@ -28,12 +28,17 @@ tf_passtime_score_crit_sec "0" tf_passtime_powerball_passpoints "0" tf_passtime_powerball_airtimebonus "0" +// sv_client_cmdrate_difference "30" +sv_quota_stringcmdspersecond "200" // prevent players from being kicked for issuing too many commands to the server +tf_passtime_overtime_idle_sec "30" // extend overtime period before round reset to allow for more interesting play + //Pass time plugin -sm plugins load disabled/passtimecontrol // loads passtimecontrol -sm plugins load disabled/passthestats // loads passthestats - -sm_passtime_whitelist "1" -sm_passtime_respawn "1" -sm_passtime_stats "1" -sm_passtime_hud "1" -sm_passtime_disable_collisions "1" \ No newline at end of file +sm plugins load disabled/p4sstime // loads p4sstime + +sm_pt_whitelist "1" +sm_pt_respawn "1" +sm_pt_stats "1" +sm_pt_hud "1" +sm_pt_drop_collision "1" +sm_pt_catapultprint "0" +sm_pt_practice "0" \ No newline at end of file diff --git a/cfg/rgl_pt_push.cfg b/cfg/rgl_pt_push.cfg index 2fd323f..f6ca323 100644 --- a/cfg/rgl_pt_push.cfg +++ b/cfg/rgl_pt_push.cfg @@ -11,14 +11,11 @@ mp_winlimit "3" // unsets server winlimit mp_windifference "0" // unsets windifference mp_maxrounds "0" // sets maxrounds to 2 -mp_showrespawntimes "1" // show the min respawn times for the teams, needed? -mp_time_between_capscoring "0" // delay between scoring of owned capture points -sv_client_cmdrate_difference "30" mp_tournament_restart // restarts the tournament to apply above settings say "RGL Fours Pass Time Push Config Executed." -say "First to win 3 rounds the match. First to 5 scores wins a round." +say "First to win 3 rounds wins the match. First to 5 scores wins a round." say "To be safe, please ***CHANGELEVEL*** to reload all settings properly and prevent any crashes." say "Exec rgl_off or restart your server 90 seconds after you have fully finished playing." \ No newline at end of file