diff --git a/cfg/SurfTimer/server_settings.cfg b/cfg/SurfTimer/server_settings.cfg index 7b39c32..b67b24f 100644 --- a/cfg/SurfTimer/server_settings.cfg +++ b/cfg/SurfTimer/server_settings.cfg @@ -43,7 +43,6 @@ mp_spectators_max 64 mp_humanteam ct mp_disconnect_kills_players 1 mp_solid_teammates 0 -mp_solid_enemies 0 mp_respawn_on_death_ct 1 mp_respawn_on_death_t 1 mp_ct_default_secondary weapon_usp_silencer diff --git a/src/ST-Events/Tick.cs b/src/ST-Events/Tick.cs index 1f9126a..05b0d5d 100644 --- a/src/ST-Events/Tick.cs +++ b/src/ST-Events/Tick.cs @@ -5,11 +5,21 @@ namespace SurfTimer; public partial class SurfTimer { - public static void OnTick() + public void OnTick() { if (CurrentMap == null) return; + foreach (var player in playerList.Values) + { + player.Timer.Tick(); + player.ReplayRecorder.Tick(player); + player.HUD.Display(); + if (player.Controller.Collision == null) continue; + if ((CollisionGroup)player.Controller.Collision.CollisionGroup == CollisionGroup.COLLISION_GROUP_DEBRIS) continue; + player.Controller.SetCollisionGroup(CollisionGroup.COLLISION_GROUP_DEBRIS); + } + // Need to disable maps from executing their cfgs. Currently idk how (But seriusly it a security issue) ConVar? bot_quota = ConVar.Find("bot_quota"); diff --git a/src/ST-UTILS/Extensions.cs b/src/ST-UTILS/Extensions.cs index fdb797e..1127fec 100644 --- a/src/ST-UTILS/Extensions.cs +++ b/src/ST-UTILS/Extensions.cs @@ -45,6 +45,17 @@ public static void Teleport(this CBaseEntity entity, VectorT? position = null, Q public static VectorT ToVector_t(this Vector vec) => new(vec.Handle); public static QAngleT ToQAngle_t(this QAngle vec) => new(vec.Handle); + public static void SetCollisionGroup(this CCSPlayerController controller, CollisionGroup collisionGroup) + { + if (!controller.IsValid || controller.Collision == null) return; + controller.Collision.CollisionAttribute.CollisionGroup = (byte)collisionGroup; + controller.Collision.CollisionGroup = (byte)collisionGroup; + + Utilities.SetStateChanged(controller, "CColisionProperity", "m_collisionGroup"); + Utilities.SetStateChanged(controller, "CCollisionProperty", "m_collisionAttribute"); + } + + /// /// Checks whether an IP is a local one. Allows testing the plugin in a local environment setup for GeoIP ///