From ac53655184ddbcaee82940e6ed7265dee9036f06 Mon Sep 17 00:00:00 2001 From: Juzlus Date: Wed, 24 Sep 2025 03:18:32 +0200 Subject: [PATCH] v1.1.7 --- .../GlobalSuppressions.cs | 12 + .../Properties/Resources.Designer.cs | 2 +- .../src/command/Command.cs | 20 +- .../src/command/VoteSystem.cs | 4 +- .../src/jRandomSkills.cs | 27 +- jRandomSkills - SRC Files/src/menu/Menu.cs | 16 +- jRandomSkills - SRC Files/src/player/Debug.cs | 33 +- .../src/player/ISkill.cs | 2 +- .../src/player/PlayerEvents.cs | 771 ++++++++++-------- .../src/player/PlayerOnTick.cs | 11 +- .../src/player/skills/Aimbot.cs | 12 +- .../src/player/skills/Anomaly.cs | 21 +- .../src/player/skills/AntyFlash.cs | 6 +- .../src/player/skills/AntyHead.cs | 6 +- .../src/player/skills/AreaReaper.cs | 7 +- .../src/player/skills/Armored.cs | 7 +- .../src/player/skills/Assassin.cs | 6 +- .../src/player/skills/Astronaut.cs | 7 +- .../src/player/skills/Bankrupt.cs | 7 +- .../src/player/skills/Baseball.cs | 6 +- .../src/player/skills/Behind.cs | 7 +- .../src/player/skills/BladeMaster.cs | 6 +- .../src/player/skills/BunnyHop.cs | 6 +- .../src/player/skills/C4Camouflage.cs | 10 +- .../src/player/skills/Catapult.cs | 7 +- .../src/player/skills/Chicken.cs | 9 +- .../src/player/skills/ChillOut.cs | 6 +- .../src/player/skills/Cutter.cs | 6 +- .../src/player/skills/Darkness.cs | 78 +- .../src/player/skills/Dash.cs | 6 +- .../src/player/skills/Deactivator.cs | 7 +- .../src/player/skills/Deaf.cs | 7 +- .../src/player/skills/Disarmament.cs | 7 +- .../src/player/skills/Distancer.cs | 4 +- .../src/player/skills/Dracula.cs | 6 +- .../src/player/skills/Duplicator.cs | 15 +- .../src/player/skills/Dwarf.cs | 7 +- .../src/player/skills/Earthquake.cs | 7 +- .../src/player/skills/EnemySpawn.cs | 9 +- .../src/player/skills/ExplosiveShot.cs | 7 +- .../src/player/skills/FalconEye.cs | 6 +- .../src/player/skills/FastReload.cs | 6 +- .../src/player/skills/Flash.cs | 7 +- .../src/player/skills/Fortnite.cs | 7 +- .../src/player/skills/FragileBomb.cs | 7 +- .../src/player/skills/FriendlyFire.cs | 6 +- .../src/player/skills/FrozenDecoy.cs | 16 +- .../src/player/skills/Gambler.cs | 15 +- .../src/player/skills/Ghost.cs | 11 +- .../src/player/skills/Glaz.cs | 8 +- .../src/player/skills/Glitch.cs | 7 +- .../src/player/skills/Glue.cs | 6 +- .../src/player/skills/GodMode.cs | 7 +- .../src/player/skills/Grenadier.cs | 6 +- .../src/player/skills/HealingSmoke.cs | 16 +- .../src/player/skills/Hermit.cs | 6 +- .../src/player/skills/HolyHandGrenade.cs | 6 +- .../src/player/skills/Impostor.cs | 6 +- .../src/player/skills/InfiniteAmmo.cs | 6 +- .../src/player/skills/Jackal.cs | 17 +- .../src/player/skills/Jammer.cs | 7 +- .../src/player/skills/Jester.cs | 7 +- .../src/player/skills/JumpBan.cs | 7 +- .../src/player/skills/JumpingJack.cs | 6 +- .../src/player/skills/KillerFlash.cs | 6 +- .../src/player/skills/LifeSwap.cs | 7 +- .../src/player/skills/LongKnife.cs | 6 +- .../src/player/skills/LongZeus.cs | 6 +- .../src/player/skills/Magnifier.cs | 7 +- .../src/player/skills/Medic.cs | 7 +- .../src/player/skills/MoneySwap.cs | 7 +- .../src/player/skills/Muhammed.cs | 7 +- .../src/player/skills/Mute.cs | 4 +- .../src/player/skills/Ninja.cs | 10 +- .../src/player/skills/NoNades.cs | 6 +- .../src/player/skills/NoRecoil.cs | 6 +- .../src/player/skills/Noclip.cs | 7 +- .../src/player/skills/None.cs | 4 +- .../src/player/skills/OneShot.cs | 6 +- .../src/player/skills/OnlyHead.cs | 6 +- .../src/player/skills/PawelJumper.cs | 7 +- .../src/player/skills/Phoenix.cs | 7 +- .../src/player/skills/Pilot.cs | 7 +- .../src/player/skills/Planter.cs | 6 +- .../src/player/skills/Poison.cs | 7 +- .../src/player/skills/PrimaryBan.cs | 7 +- .../src/player/skills/Prosthesis.cs | 6 +- .../src/player/skills/PsychicDefusing.cs | 7 +- .../src/player/skills/Push.cs | 7 +- .../src/player/skills/Pyro.cs | 6 +- .../src/player/skills/QuickShot.cs | 6 +- .../src/player/skills/RadarHack.cs | 6 +- .../src/player/skills/Rambo.cs | 6 +- .../src/player/skills/RandomWeapon.cs | 16 +- .../src/player/skills/ReZombie.cs | 6 +- .../src/player/skills/ReactiveArmor.cs | 7 +- .../src/player/skills/Regeneration.cs | 6 +- .../src/player/skills/Replicator.cs | 7 +- .../src/player/skills/Retreat.cs | 7 +- .../src/player/skills/ReturnToSender.cs | 6 +- .../src/player/skills/RichBoy.cs | 6 +- .../src/player/skills/RobinHood.cs | 6 +- .../src/player/skills/Rubber.cs | 6 +- .../src/player/skills/Saper.cs | 6 +- .../src/player/skills/SecondLife.cs | 6 +- .../src/player/skills/Shade.cs | 7 +- .../src/player/skills/ShortBomb.cs | 6 +- .../src/player/skills/Silent.cs | 6 +- .../src/player/skills/SniperElite.cs | 44 +- .../src/player/skills/Soldier.cs | 7 +- .../src/player/skills/SoundMaker.cs | 7 +- .../src/player/skills/Spectator.cs | 6 +- .../src/player/skills/SwapPosition.cs | 9 +- .../src/player/skills/Teleporter.cs | 6 +- .../src/player/skills/Thief.cs | 11 +- .../src/player/skills/ThirdEye.cs | 4 +- .../src/player/skills/Thorns.cs | 6 +- .../src/player/skills/ToxicSmoke.cs | 16 +- .../src/player/skills/Wallhack.cs | 13 +- .../src/player/skills/Watchmaker.cs | 7 +- .../src/player/skills/WeaponsSwap.cs | 9 +- .../src/player/skills/Zeus.cs | 6 +- jRandomSkills - SRC Files/src/utils/Config.cs | 4 +- .../src/utils/Findtarget.cs | 114 +-- .../src/utils/Localization.cs | 13 +- .../src/utils/SkillUtils.cs | 17 +- .../src/utils/SkillsInfo.cs | 20 +- .../plugins/!jRandomSkills/!jRandomSkills.dll | Bin 401920 -> 404992 bytes readme.md | 56 +- 129 files changed, 1087 insertions(+), 978 deletions(-) create mode 100644 jRandomSkills - SRC Files/GlobalSuppressions.cs diff --git a/jRandomSkills - SRC Files/GlobalSuppressions.cs b/jRandomSkills - SRC Files/GlobalSuppressions.cs new file mode 100644 index 0000000..7c852b8 --- /dev/null +++ b/jRandomSkills - SRC Files/GlobalSuppressions.cs @@ -0,0 +1,12 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage("Style", "IDE1006:Style nazewnictwa", Justification = "", Scope = "type", Target = "~T:src.jRandomSkills")] +[assembly: SuppressMessage("Performance", "CA1822:Oznaczaj elementy członkowskie jako statyczne", Justification = "", Scope = "member", Target = "~M:src.jRandomSkills.SkillAction(System.String,System.String,System.Object[])")] +[assembly: SuppressMessage("Performance", "CA1822:Oznaczaj elementy członkowskie jako statyczne", Justification = "", Scope = "member", Target = "~M:src.jRandomSkills.IsPlayerValid(CounterStrikeSharp.API.Core.CCSPlayerController)~System.Boolean")] +[assembly: SuppressMessage("Style", "IDE1006:Style nazewnictwa", Justification = "", Scope = "type", Target = "~T:src.jSkill_PlayerInfo")] +[assembly: SuppressMessage("Style", "IDE1006:Style nazewnictwa", Justification = "", Scope = "type", Target = "~T:src.jSkill_SkillInfo")] diff --git a/jRandomSkills - SRC Files/Properties/Resources.Designer.cs b/jRandomSkills - SRC Files/Properties/Resources.Designer.cs index 90c5831..d45662c 100644 --- a/jRandomSkills - SRC Files/Properties/Resources.Designer.cs +++ b/jRandomSkills - SRC Files/Properties/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace jRandomSkills.Properties { +namespace src.player.skills.Properties { using System; diff --git a/jRandomSkills - SRC Files/src/command/Command.cs b/jRandomSkills - SRC Files/src/command/Command.cs index 709aca4..1bfdd03 100644 --- a/jRandomSkills - SRC Files/src/command/Command.cs +++ b/jRandomSkills - SRC Files/src/command/Command.cs @@ -4,11 +4,13 @@ using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Commands; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.utils; +using src.menu; +using src.player; +using src.utils; using System.Collections.Concurrent; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.command { public static class Command { @@ -24,7 +26,7 @@ namespace jRandomSkills lock (setLock) { - if (oldCommands.Count != 0) + if (!oldCommands.IsEmpty) { foreach (var command in oldCommands) Instance.RemoveCommand(command.Key, command.Value); @@ -119,7 +121,7 @@ namespace jRandomSkills } var skillName = command.ArgCount > 3 ? $"{command.GetArg(2)} {command.GetArg(3)}" : command.GetArg(2); - var skill = SkillData.Skills.FirstOrDefault(s => (player != null && player.GetSkillName(s.Skill).Equals(skillName, StringComparison.OrdinalIgnoreCase)) || s.Skill.ToString().Equals(skillName, StringComparison.OrdinalIgnoreCase)); + var skill = SkillData.Skills.FirstOrDefault(s => player != null && player.GetSkillName(s.Skill).Equals(skillName, StringComparison.OrdinalIgnoreCase) || s.Skill.ToString().Equals(skillName, StringComparison.OrdinalIgnoreCase)); if (skill == null) { @@ -281,7 +283,7 @@ namespace jRandomSkills private static void Shuffle() { - var players = Utilities.GetPlayers().FindAll(p => (Instance.IsPlayerValid(p) && new CsTeam[] { CsTeam.CounterTerrorist, CsTeam.Terrorist }.Contains(p.Team))); + var players = Utilities.GetPlayers().FindAll(p => Instance.IsPlayerValid(p) && new CsTeam[] { CsTeam.CounterTerrorist, CsTeam.Terrorist }.Contains(p.Team)); double CTlimit = Instance.Random.Next(0, 2) == 0 ? Math.Floor(players.Count / 2.0) : Math.Ceiling(players.Count / 2.0); foreach (var player in players.OrderBy(_ => Instance.Random.Next()).ToList()) @@ -394,7 +396,7 @@ namespace jRandomSkills } var skillName = command.ArgCount > 3 ? $"{command.GetArg(2)} {command.GetArg(3)}" : command.GetArg(2); - var skill = SkillData.Skills.FirstOrDefault(s => (player != null && player.GetSkillName(s.Skill).Equals(skillName, StringComparison.OrdinalIgnoreCase)) || s.Skill.ToString().Equals(skillName, StringComparison.OrdinalIgnoreCase)); + var skill = SkillData.Skills.FirstOrDefault(s => player != null && player.GetSkillName(s.Skill).Equals(skillName, StringComparison.OrdinalIgnoreCase) || s.Skill.ToString().Equals(skillName, StringComparison.OrdinalIgnoreCase)); if (skill == null) { @@ -458,7 +460,7 @@ namespace jRandomSkills if (player == null || !player.IsValid) return; if (!AdminManager.PlayerHasPermissions(player, config.NormalCommands.ChangeLanguageCommand.Permissions)) return; - string fileName = Config.LoadedConfig.LanguageSystem.DefaultLangCode; + string fileName; string newLangCode = command.GetArg(1).ToUpper(); foreach (var langInfo in Config.LoadedConfig.LanguageSystem.LanguageInfos) if (langInfo.IsoCodes.Contains(newLangCode)) @@ -481,7 +483,7 @@ namespace jRandomSkills Config.LoadConfig(); SkillsInfo.LoadSkillsInfo(); Localization.Load(); - Command.Load(); + Load(); foreach (var skill in SkillData.Skills) skill.Color = SkillsInfo.GetValue(skill.Skill, "color"); diff --git a/jRandomSkills - SRC Files/src/command/VoteSystem.cs b/jRandomSkills - SRC Files/src/command/VoteSystem.cs index c4aa232..fc8b944 100644 --- a/jRandomSkills - SRC Files/src/command/VoteSystem.cs +++ b/jRandomSkills - SRC Files/src/command/VoteSystem.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.utils; +using src.utils; using System.Collections.Concurrent; -namespace jRandomSkills +namespace src.command { public static class VoteSystem { diff --git a/jRandomSkills - SRC Files/src/jRandomSkills.cs b/jRandomSkills - SRC Files/src/jRandomSkills.cs index feb2be4..9e52685 100644 --- a/jRandomSkills - SRC Files/src/jRandomSkills.cs +++ b/jRandomSkills - SRC Files/src/jRandomSkills.cs @@ -2,20 +2,21 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Commands; using CounterStrikeSharp.API.Modules.Commands; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; +using src.command; +using src.player; +using src.utils; +using System.Collections.Concurrent; using System.Reflection; using WASDSharedAPI; -namespace jRandomSkills +namespace src { -#pragma warning disable IDE1006 // Style nazewnictwa public partial class jRandomSkills : BasePlugin -#pragma warning restore IDE1006 // Style nazewnictwa { - public static jRandomSkills Instance { get; private set; } - - public List SkillPlayer { get; } = []; +#pragma warning disable CS8618 + public static jRandomSkills Instance { get; private set; } +#pragma warning restore CS8618 + public ConcurrentBag SkillPlayer { get; set; } = []; public Random Random { get; } = new Random(); public CCSGameRules? GameRules { get; set; } public IWasdMenuManager? MenuManager; @@ -53,9 +54,7 @@ namespace jRandomSkills Debug.WriteToDebug($"Loaded: {skill.Skill}"); } -#pragma warning disable CA1822 // Oznaczaj elementy członkowskie jako statyczne internal void SkillAction(string skill, string methodName, object[]? param = null) -#pragma warning restore CA1822 // Oznaczaj elementy członkowskie jako statyczne { string className = $"jRandomSkills.{skill}"; Type? type = Type.GetType(className); @@ -86,9 +85,7 @@ namespace jRandomSkills CommandManager.RegisterCommand(definition); } -#pragma warning disable CA1822 // Oznaczaj elementy członkowskie jako statyczne internal bool IsPlayerValid(CCSPlayerController? player) -#pragma warning restore CA1822 // Oznaczaj elementy członkowskie jako statyczne { return player != null && player.IsValid && player.PlayerPawn?.Value != null && player.PlayerPawn.Value.IsValid && player.PlayerPawn.Value.LifeState == (byte)LifeState_t.LIFE_ALIVE; } @@ -97,9 +94,7 @@ namespace jRandomSkills public uint[] silentSoundEvents = [2551626319, 765706800, 765706800, 2860219006, 2162652424, 2551626319, 2162652424, 117596568, 117596568, 740474905, 1661204257, 3009312615, 1506215040, 115843229, 3299941720, 1016523349, 2684452812, 2067683805, 2067683805, 1016523349, 4160462271, 1543118744, 585390608, 3802757032, 2302139631, 2546391140, 144629619, 4152012084, 4113422219, 1627020521, 2899365092, 819435812, 3218103073, 961838155, 1535891875, 1826799645, 3460445620, 1818046345, 3666896632, 3099536373, 1440734007, 1409986305, 1939055066, 782454593, 4074593561, 1540837791, 3257325156]; } -#pragma warning disable IDE1006 public class jSkill_PlayerInfo -#pragma warning restore IDE1006 { public required ulong SteamID { get; set; } public required string PlayerName { get; set; } @@ -111,9 +106,7 @@ namespace jRandomSkills public string? PrintHTML { get; set; } } -#pragma warning disable IDE1006 public class jSkill_SkillInfo(Skills skill, string color, bool display) -#pragma warning restore IDE1006 { public Skills Skill { get; } = skill; public string Color { get; set; } = color; @@ -127,6 +120,6 @@ namespace jRandomSkills public static class SkillData { - public static List Skills { get; } = []; + public static ConcurrentBag Skills { get; } = []; } } \ No newline at end of file diff --git a/jRandomSkills - SRC Files/src/menu/Menu.cs b/jRandomSkills - SRC Files/src/menu/Menu.cs index 9955af7..02e1ad0 100644 --- a/jRandomSkills - SRC Files/src/menu/Menu.cs +++ b/jRandomSkills - SRC Files/src/menu/Menu.cs @@ -1,30 +1,28 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Menu; using CounterStrikeSharp.API.Modules.Utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Text.RegularExpressions; -using jRandomSkills.src.utils; +using src.utils; -namespace jRandomSkills +namespace src.menu { public static class Menu { public static void DisplaySkillsList(CCSPlayerController player) { - CenterHtmlMenu menu = new($"[ ★ {player.GetTranslation("skills_menu")} ★ ]"); + CenterHtmlMenu menu = new($"[ ★ {player.GetTranslation("skills_menu")} ★ ]", Instance); - for (int i = 0; i < SkillData.Skills.Count; i++) + foreach (var skillInfo in SkillData.Skills) { - var skill = SkillData.Skills[i]; - string skillName = $"{player.GetSkillName(skill.Skill)}"; + string skillName = $"{player.GetSkillName(skillInfo.Skill)}"; menu.AddMenuOption($" ★ {skillName}", (player, option) => { string selectedSkillName = option.Text; string pattern = "\\[/?color\\b[^\\]]*\\]"; string cleanSkillName = Regex.Replace(selectedSkillName, pattern, ""); string skillName = cleanSkillName.Replace($" ★ ", ""); - int intValue = Array.IndexOf(SkillData.Skills.Select(r => player.GetSkillName(r.Skill)).ToArray(), skillName); - string skillDesc = player.GetSkillDescription(SkillData.Skills[intValue].Skill); + string skillDesc = player.GetSkillDescription(skillInfo.Skill); SkillUtils.PrintToChat(player, $"{ChatColors.DarkRed}{skillName}{ChatColors.Lime}: {skillDesc}", false); MenuManager.CloseActiveMenu(player); }); diff --git a/jRandomSkills - SRC Files/src/player/Debug.cs b/jRandomSkills - SRC Files/src/player/Debug.cs index 1f84ebb..a6427b8 100644 --- a/jRandomSkills - SRC Files/src/player/Debug.cs +++ b/jRandomSkills - SRC Files/src/player/Debug.cs @@ -3,10 +3,11 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Memory; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.Utils; +using src.utils; using static CounterStrikeSharp.API.Core.Listeners; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player { public static class Debug { @@ -15,12 +16,12 @@ namespace jRandomSkills public static void Load() { - Debug.sessionId = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}"; + sessionId = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}"; Instance.RegisterEventHandler((@event, info) => { var player = @event.Userid; if (player == null || !player.IsValid) return HookResult.Continue; - Debug.WriteToDebug($"{(player.IsBot ? "Bot" : "Player")} {player.PlayerName} joined the game."); + WriteToDebug($"{(player.IsBot ? "Bot" : "Player")} {player.PlayerName} joined the game."); return HookResult.Continue; }); @@ -28,7 +29,7 @@ namespace jRandomSkills { var player = @event.Userid; if (player == null || !player.IsValid) return HookResult.Continue; - Debug.WriteToDebug($"{(player.IsBot ? "Bot" : "Player")} {player.PlayerName} disconnected."); + WriteToDebug($"{(player.IsBot ? "Bot" : "Player")} {player.PlayerName} disconnected."); return HookResult.Continue; }); @@ -37,13 +38,13 @@ namespace jRandomSkills var teams = Utilities.FindAllEntitiesByDesignerName("cs_team_manager").Where(t => t != null).ToList(); var tTeam = teams.FirstOrDefault(t => t.TeamNum == (int)CsTeam.Terrorist); var ctTeam = teams.FirstOrDefault(t => t.TeamNum == (int)CsTeam.CounterTerrorist); - Debug.WriteToDebug($"Round #{tTeam?.Score + ctTeam?.Score + 1} (CT {ctTeam?.Score} : {tTeam?.Score} TT) started."); + WriteToDebug($"Round #{tTeam?.Score + ctTeam?.Score + 1} (CT {ctTeam?.Score} : {tTeam?.Score} TT) started."); return HookResult.Continue; }); Instance.RegisterEventHandler((@event, info) => { - Debug.WriteToDebug($"Freeze time ended."); + WriteToDebug($"Freeze time ended."); return HookResult.Continue; }); @@ -52,7 +53,7 @@ namespace jRandomSkills var teams = Utilities.FindAllEntitiesByDesignerName("cs_team_manager").Where(t => t != null).ToList(); var tTeam = teams.FirstOrDefault(t => t.TeamNum == (int)CsTeam.Terrorist); var ctTeam = teams.FirstOrDefault(t => t.TeamNum == (int)CsTeam.CounterTerrorist); - Debug.WriteToDebug($"Round #{tTeam?.Score + ctTeam?.Score} (CT {ctTeam?.Score} : {tTeam?.Score} TT) ended."); + WriteToDebug($"Round #{tTeam?.Score + ctTeam?.Score} (CT {ctTeam?.Score} : {tTeam?.Score} TT) ended."); return HookResult.Continue; }); @@ -63,35 +64,35 @@ namespace jRandomSkills if (victim != null) { if (attacker != null) - Debug.WriteToDebug($"{(victim.IsBot ? "Bot" : "Player")} {victim.PlayerName} died from {(attacker.IsBot ? "bot" : "player")} {attacker.PlayerName}."); + WriteToDebug($"{(victim.IsBot ? "Bot" : "Player")} {victim.PlayerName} died from {(attacker.IsBot ? "bot" : "player")} {attacker.PlayerName}."); else - Debug.WriteToDebug($"{(victim.IsBot ? "Bot" : "Player")} {victim.PlayerName} died."); + WriteToDebug($"{(victim.IsBot ? "Bot" : "Player")} {victim.PlayerName} died."); } return HookResult.Continue; }); Instance.RegisterEventHandler((@event, info) => { - Debug.WriteToDebug($"Bomb planted."); + WriteToDebug($"Bomb planted."); return HookResult.Continue; }); Instance.RegisterEventHandler((@event, info) => { - Debug.WriteToDebug($"Bomb defused."); + WriteToDebug($"Bomb defused."); return HookResult.Continue; }); - Instance.RegisterListener((string mapName) => + Instance.RegisterListener((mapName) => { - Debug.WriteToDebug($"Map changed: {mapName}."); + WriteToDebug($"Map changed: {mapName}."); }); Instance.RegisterEventHandler((@event, info) => { var player = @event.Userid; if (player == null || !player.IsValid) return HookResult.Continue; - Debug.WriteToDebug($"{(player.IsBot ? "Bot" : "Player")} {player.PlayerName} fired a shot."); + WriteToDebug($"{(player.IsBot ? "Bot" : "Player")} {player.PlayerName} fired a shot."); return HookResult.Continue; }); @@ -121,7 +122,7 @@ namespace jRandomSkills var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == attacker.SteamID); if (playerInfo == null) return HookResult.Continue; - Debug.WriteToDebug($"{(victim.IsBot ? "Bot" : "Player")} {victim.PlayerName} took damage from {(attacker.IsBot ? "bot" : "player")} {attacker.PlayerName}."); + WriteToDebug($"{(victim.IsBot ? "Bot" : "Player")} {victim.PlayerName} took damage from {(attacker.IsBot ? "bot" : "player")} {attacker.PlayerName}."); return HookResult.Continue; } diff --git a/jRandomSkills - SRC Files/src/player/ISkill.cs b/jRandomSkills - SRC Files/src/player/ISkill.cs index 108cab3..cc5c5b6 100644 --- a/jRandomSkills - SRC Files/src/player/ISkill.cs +++ b/jRandomSkills - SRC Files/src/player/ISkill.cs @@ -3,7 +3,7 @@ using CounterStrikeSharp.API.Core.Attributes; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.UserMessages; -namespace jRandomSkills.src.player; +namespace src.player; public interface ISkill { diff --git a/jRandomSkills - SRC Files/src/player/PlayerEvents.cs b/jRandomSkills - SRC Files/src/player/PlayerEvents.cs index 3a36b78..37bac8f 100644 --- a/jRandomSkills - SRC Files/src/player/PlayerEvents.cs +++ b/jRandomSkills - SRC Files/src/player/PlayerEvents.cs @@ -6,32 +6,31 @@ using CounterStrikeSharp.API.Modules.Memory; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.UserMessages; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; using static CounterStrikeSharp.API.Core.Listeners; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player { public static partial class Event { - public static DateTime freezeTimeEnd = DateTime.MinValue; - public static bool isTransmitRegistered = false; + private static DateTime freezeTimeEnd = DateTime.MinValue; + private static bool isTransmitRegistered = false; public static readonly jSkill_SkillInfo noneSkill = new(Skills.None, SkillsInfo.GetValue(Skills.None, "color"), false); private static jSkill_SkillInfo ctSkill = noneSkill; private static jSkill_SkillInfo tSkill = noneSkill; private static jSkill_SkillInfo allSkill = noneSkill; - private static List debugSkills = new(SkillData.Skills); + private static List debugSkills = [.. SkillData.Skills]; - public static readonly SkillsInfo.DefaultSkillInfo[] terroristSkills = SkillsInfo.LoadedConfig.Where(s => s.OnlyTeam == (int)CsTeam.Terrorist).ToArray(); - public static readonly SkillsInfo.DefaultSkillInfo[] counterterroristSkills = SkillsInfo.LoadedConfig.Where(s => s.OnlyTeam == (int)CsTeam.CounterTerrorist).ToArray(); - private static readonly SkillsInfo.DefaultSkillInfo[] allTeamsSkills = SkillsInfo.LoadedConfig.Where(s => s.OnlyTeam == 0).ToArray(); + public static readonly SkillsInfo.DefaultSkillInfo[] terroristSkills = [.. SkillsInfo.LoadedConfig.Where(s => s.OnlyTeam == (int)CsTeam.Terrorist)]; + public static readonly SkillsInfo.DefaultSkillInfo[] counterterroristSkills = [.. SkillsInfo.LoadedConfig.Where(s => s.OnlyTeam == (int)CsTeam.CounterTerrorist)]; + private static readonly SkillsInfo.DefaultSkillInfo[] allTeamsSkills = [.. SkillsInfo.LoadedConfig.Where(s => s.OnlyTeam == 0)]; - private static readonly ConcurrentDictionary> playersSkills = []; + private static readonly ConcurrentDictionary> playersSkills = []; public static readonly ConcurrentDictionary staticSkills = []; - private static readonly object setLock = new object(); + private static readonly object setLock = new(); public static void Load() { @@ -71,106 +70,145 @@ namespace jRandomSkills private static HookResult PlayerMakeSound(UserMessage um) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "PlayerMakeSound", [um]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "PlayerMakeSound", [um]); + return HookResult.Continue; + } } private static HookResult WeaponFire(EventWeaponFire @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "WeaponFire", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "WeaponFire", [@event]); + return HookResult.Continue; + } } private static HookResult WeaponEquip(EventItemEquip @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "WeaponEquip", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "WeaponEquip", [@event]); + return HookResult.Continue; + } } private static HookResult WeaponPickup(EventItemPickup @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "WeaponPickup", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "WeaponPickup", [@event]); + return HookResult.Continue; + } } private static HookResult WeaponReload(EventWeaponReload @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "WeaponReload", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "WeaponReload", [@event]); + return HookResult.Continue; + } } private static HookResult GrenadeThrown(EventGrenadeThrown @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "GrenadeThrown", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "GrenadeThrown", [@event]); + return HookResult.Continue; + } } private static HookResult BombBeginplant(EventBombBeginplant @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "BombBeginplant", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "BombBeginplant", [@event]); + return HookResult.Continue; + } } private static HookResult BombPlanted(EventBombPlanted @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "BombPlanted", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "BombPlanted", [@event]); + return HookResult.Continue; + } } private static HookResult BombBegindefuse(EventBombBegindefuse @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "BombBegindefuse", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "BombBegindefuse", [@event]); + return HookResult.Continue; + } } private static HookResult DecoyStarted(EventDecoyStarted @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "DecoyStarted", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "DecoyStarted", [@event]); + return HookResult.Continue; + } } private static HookResult DecoyDetonate(EventDecoyDetonate @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "DecoyDetonate", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "DecoyDetonate", [@event]); + return HookResult.Continue; + } } private static HookResult SmokegrenadeDetonate(EventSmokegrenadeDetonate @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "SmokegrenadeDetonate", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "SmokegrenadeDetonate", [@event]); + return HookResult.Continue; + } } private static HookResult SmokegrenadeExpired(EventSmokegrenadeExpired @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "SmokegrenadeExpired", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "SmokegrenadeExpired", [@event]); + return HookResult.Continue; + } } private static HookResult PlayerHurt(EventPlayerHurt @event, GameEventInfo info) @@ -186,139 +224,169 @@ namespace jRandomSkills private static HookResult PlayerJump(EventPlayerJump @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "PlayerJump", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "PlayerJump", [@event]); + return HookResult.Continue; + } } private static HookResult PlayerBlind(EventPlayerBlind @event, GameEventInfo info) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "PlayerBlind", [@event]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "PlayerBlind", [@event]); + return HookResult.Continue; + } } private static HookResult OnTakeDamage(DynamicHook h) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "OnTakeDamage", [h]); - return HookResult.Continue; + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "OnTakeDamage", [h]); + return HookResult.Continue; + } } private static void OnTick() { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - if (SkillsInfo.GetValue(playerSkill.Skill, "disableOnFreezeTime") && SkillUtils.IsFreezeTime()) - return; - else - Instance.SkillAction(playerSkill.Skill.ToString(), "OnTick"); + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + if (SkillsInfo.GetValue(playerSkill.Skill, "disableOnFreezeTime") && SkillUtils.IsFreezeTime()) + return; + else + Instance.SkillAction(playerSkill.Skill.ToString(), "OnTick"); + } } private static HookResult PlayerConnectFull(EventPlayerConnectFull @event, GameEventInfo info) { - var player = @event.Userid; - if (player == null || !player.IsValid) return HookResult.Continue; - - Instance.SkillPlayer.Add(new jSkill_PlayerInfo + lock (setLock) { - SteamID = player.SteamID, - PlayerName = player.PlayerName, - Skill = Skills.None, - SpecialSkill = Skills.None, - IsDrawing = false, - SkillChance = 1, - }); + var player = @event.Userid; + if (player == null || !player.IsValid) return HookResult.Continue; - string welcomeMsg = player.GetTranslation("welcome_message", "welcome"); - foreach (string line in welcomeMsg.Split("\n")) - player.PrintToChat($" {ChatColors.Green}" + line.Replace("{PLAYER}", $" {ChatColors.Red}{player.PlayerName}{ChatColors.Green}", StringComparison.OrdinalIgnoreCase) - .Replace("{SERVER_NAME}", $" {ChatColors.Red}{ConVar.Find("hostname")?.StringValue ?? "Default Server"}{ChatColors.Green}", StringComparison.OrdinalIgnoreCase) - .Replace("{VERSION}", $" {ChatColors.Red}v{Instance.ModuleVersion}{ChatColors.Green}", StringComparison.OrdinalIgnoreCase) - .Replace("{SKILLS_COUNT}", $" {ChatColors.Red}{SkillData.Skills.Count - 1}{ChatColors.Green}", StringComparison.OrdinalIgnoreCase) - .Replace("{AUTHOR1}", $" {ChatColors.Red}Jakub Bartosik (D3X){ChatColors.Green} ({ChatColors.Red}https://github.com/jakubbartosik/dRandomSkills{ChatColors.Green})", StringComparison.OrdinalIgnoreCase) - .Replace("{AUTHOR2}", $" {ChatColors.Red}Juzlus{ChatColors.Green} ({ChatColors.Red}https://github.com/Juzlus/jRandomSkills{ChatColors.Green})", StringComparison.OrdinalIgnoreCase)); - return HookResult.Continue; + Instance.SkillPlayer.Add(new jSkill_PlayerInfo + { + SteamID = player.SteamID, + PlayerName = player.PlayerName, + Skill = Skills.None, + SpecialSkill = Skills.None, + IsDrawing = false, + SkillChance = 1, + }); + + string welcomeMsg = player.GetTranslation("welcome_message", "welcome"); + foreach (string line in welcomeMsg.Split("\n")) + player.PrintToChat($" {ChatColors.Green}" + line.Replace("{PLAYER}", $" {ChatColors.Red}{player.PlayerName}{ChatColors.Green}", StringComparison.OrdinalIgnoreCase) + .Replace("{SERVER_NAME}", $" {ChatColors.Red}{ConVar.Find("hostname")?.StringValue ?? "Default Server"}{ChatColors.Green}", StringComparison.OrdinalIgnoreCase) + .Replace("{VERSION}", $" {ChatColors.Red}v{Instance.ModuleVersion}{ChatColors.Green}", StringComparison.OrdinalIgnoreCase) + .Replace("{SKILLS_COUNT}", $" {ChatColors.Red}{SkillData.Skills.Count - 1}{ChatColors.Green}", StringComparison.OrdinalIgnoreCase) + .Replace("{AUTHOR1}", $" {ChatColors.Red}Jakub Bartosik (D3X){ChatColors.Green} ({ChatColors.Red}https://github.com/jakubbartosik/dRandomSkills{ChatColors.Green})", StringComparison.OrdinalIgnoreCase) + .Replace("{AUTHOR2}", $" {ChatColors.Red}Juzlus{ChatColors.Green} ({ChatColors.Red}https://github.com/Juzlus/jRandomSkills{ChatColors.Green})", StringComparison.OrdinalIgnoreCase)); + return HookResult.Continue; + } } private static HookResult PlayerDisconnect(EventPlayerDisconnect @event, GameEventInfo info) { - var player = @event.Userid; - if (player == null || !player.IsValid) return HookResult.Continue; + lock (setLock) + { + var player = @event.Userid; + if (player == null || !player.IsValid) return HookResult.Continue; - var skillPlayer = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (skillPlayer != null) - Instance.SkillPlayer.Remove(skillPlayer); - return HookResult.Continue; + var skillPlayer = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); + if (skillPlayer == null) return HookResult.Continue; + + var items = Instance.SkillPlayer.ToList(); + Instance.SkillPlayer = [.. items.Where(p => p.SteamID != skillPlayer.SteamID)]; + + return HookResult.Continue; + } } private static HookResult RoundStart(EventRoundStart @event, GameEventInfo info) { - isTransmitRegistered = false; - Instance.AddTimer(.1f, () => DisableAll()); - foreach (var player in Utilities.GetPlayers().Where(p => p.IsValid && !p.IsBot && !p.IsHLTV && p.Team is CsTeam.CounterTerrorist or CsTeam.Terrorist)) + lock (setLock) { - var skillPlayer = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (skillPlayer == null) continue; - skillPlayer.IsDrawing = true; - skillPlayer.PrintHTML = null; - } + isTransmitRegistered = false; + Instance.AddTimer(.1f, () => DisableAll()); + foreach (var player in Utilities.GetPlayers().Where(p => p.IsValid && !p.IsBot && !p.IsHLTV && p.Team is CsTeam.CounterTerrorist or CsTeam.Terrorist)) + { + var skillPlayer = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); + if (skillPlayer == null) continue; + skillPlayer.IsDrawing = true; + skillPlayer.PrintHTML = null; + } - Instance.RemoveListener(CheckTransmit); - int freezetime = ConVar.Find("mp_freezetime")?.GetPrimitiveValue() ?? 0; - freezeTimeEnd = DateTime.Now.AddSeconds(freezetime + (Instance?.GameRules?.TeamIntroPeriod == true ? 7 : 0)); - Instance?.AddTimer((Instance?.GameRules?.TeamIntroPeriod == true ? 7 : 0) + Math.Max(freezetime - Config.LoadedConfig.SkillTimeBeforeStart, 0) + .3f, SetSkill); - return HookResult.Continue; + Instance.RemoveListener(CheckTransmit); + int freezetime = ConVar.Find("mp_freezetime")?.GetPrimitiveValue() ?? 0; + freezeTimeEnd = DateTime.Now.AddSeconds(freezetime + (Instance?.GameRules?.TeamIntroPeriod == true ? 7 : 0)); + Instance?.AddTimer((Instance?.GameRules?.TeamIntroPeriod == true ? 7 : 0) + Math.Max(freezetime - Config.LoadedConfig.SkillTimeBeforeStart, 0) + .3f, SetSkill); + return HookResult.Continue; + } } private static void DisableAll() { - foreach (var player in Utilities.GetPlayers().Where(p => !p.IsBot)) + lock (setLock) { - var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (playerInfo == null) return; - Instance.SkillAction(playerInfo.Skill.ToString(), "DisableSkill", [player]); - Instance.SkillAction(playerInfo.Skill.ToString(), "NewRound"); + foreach (var player in Utilities.GetPlayers().Where(p => !p.IsBot)) + { + var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); + if (playerInfo == null) return; + Instance.SkillAction(playerInfo.Skill.ToString(), "DisableSkill", [player]); + Instance.SkillAction(playerInfo.Skill.ToString(), "NewRound"); + } } } private static HookResult RoundEnd(EventRoundEnd @event, GameEventInfo info) { - foreach (var player in Utilities.GetPlayers()) + lock (setLock) { - Instance.AddTimer(0.5f, () => + foreach (var player in Utilities.GetPlayers().Where(p => p.IsValid)) { - var _players = Utilities.GetPlayers().Where(p => p.IsValid).OrderBy(p => p.Team); - - string skillsText = ""; - foreach (var _player in _players) + Instance.AddTimer(.5f, () => { - var _playerSkill = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == _player.SteamID); - if (_playerSkill != null) + var _players = Utilities.GetPlayers().Where(p => p.IsValid && p.Team is CsTeam.CounterTerrorist or CsTeam.Terrorist).OrderBy(p => p.Team); + + string skillsText = ""; + foreach (var _player in _players) { - var skillInfo = SkillData.Skills.FirstOrDefault(p => p.Skill == _playerSkill.Skill); - var specialSkillInfo = SkillData.Skills.FirstOrDefault(s => s.Skill == _playerSkill.SpecialSkill); - if (skillInfo == null) continue; - skillsText += $" {ChatColors.DarkRed}{_player.PlayerName}{ChatColors.Lime}: {(_playerSkill.SpecialSkill == Skills.None || specialSkillInfo == null ? player.GetSkillName(skillInfo.Skill, _playerSkill.SkillChance) : $"{player.GetSkillName(specialSkillInfo.Skill)} -> {player.GetSkillName(skillInfo.Skill, _playerSkill.SkillChance)}")}\n"; + var _playerSkill = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == _player.SteamID); + if (_playerSkill != null) + { + var skillInfo = SkillData.Skills.FirstOrDefault(p => p.Skill == _playerSkill.Skill); + var specialSkillInfo = SkillData.Skills.FirstOrDefault(s => s.Skill == _playerSkill.SpecialSkill); + if (skillInfo == null) continue; + skillsText += $" {ChatColors.DarkRed}{_player.PlayerName}{ChatColors.Lime}: {(_playerSkill.SpecialSkill == Skills.None || specialSkillInfo == null ? player.GetSkillName(skillInfo.Skill, _playerSkill.SkillChance) : $"{player.GetSkillName(specialSkillInfo.Skill)} -> {player.GetSkillName(skillInfo.Skill, _playerSkill.SkillChance)}")}\n"; + } } - } - if (Config.LoadedConfig.SummaryAfterTheRound && !string.IsNullOrEmpty(skillsText)) - { - player.PrintToChat(" "); - player.PrintToChat($" {ChatColors.Lime}{player.GetTranslation("summary_start")}"); - foreach (string text in skillsText.Split("\n")) - if (!string.IsNullOrEmpty(text)) - player.PrintToChat(text); - player.PrintToChat($" {ChatColors.Lime}{player.GetTranslation("summary_end")}"); - player.PrintToChat(" \n"); - } - }); + if (Config.LoadedConfig.SummaryAfterTheRound && !string.IsNullOrEmpty(skillsText)) + { + player.PrintToChat(" "); + player.PrintToChat($" {ChatColors.Lime}{player.GetTranslation("summary_start")}"); + foreach (string text in skillsText.Split("\n")) + if (!string.IsNullOrEmpty(text)) + player.PrintToChat(text); + player.PrintToChat($" {ChatColors.Lime}{player.GetTranslation("summary_end")}"); + player.PrintToChat(" \n"); + } + }); + } + return HookResult.Continue; } - return HookResult.Continue; } private static HookResult PlayerDeath(EventPlayerDeath @event, GameEventInfo info) @@ -358,77 +426,209 @@ namespace jRandomSkills private static void CheckUseSkill(CCSPlayerController player, PlayerButtons pressed, PlayerButtons released) { - string? button = Config.LoadedConfig.AlternativeSkillButton; - if (string.IsNullOrEmpty(button)) return; - - if (Enum.TryParse(button, out var skillButton)) + lock (setLock) { - if (pressed != skillButton) return; - } else return; + string? button = Config.LoadedConfig.AlternativeSkillButton; + if (string.IsNullOrEmpty(button)) return; - if (player == null) return; - var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (playerInfo == null || playerInfo.IsDrawing) return; + if (Enum.TryParse(button, out var skillButton)) + { + if (pressed != skillButton) return; + } + else return; - if (SkillsInfo.GetValue(playerInfo.Skill, "disableOnFreezeTime") && SkillUtils.IsFreezeTime()) - return; + if (player == null) return; + var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); + if (playerInfo == null || playerInfo.IsDrawing) return; - var playerPawn = player.PlayerPawn.Value; - if (playerPawn?.CBodyComponent == null) return; - if (!player.IsValid || !player.PawnIsAlive) return; + if (SkillsInfo.GetValue(playerInfo.Skill, "disableOnFreezeTime") && SkillUtils.IsFreezeTime()) + return; - Debug.WriteToDebug($"Player {player.PlayerName} used the skill: {playerInfo.Skill} by PlayerButtons: {pressed}"); - Instance.SkillAction(playerInfo.Skill.ToString(), "UseSkill", [player]); + var playerPawn = player.PlayerPawn.Value; + if (playerPawn?.CBodyComponent == null) return; + if (!player.IsValid || !player.PawnIsAlive) return; + + Debug.WriteToDebug($"Player {player.PlayerName} used the skill: {playerInfo.Skill} by PlayerButtons: {pressed}"); + Instance.SkillAction(playerInfo.Skill.ToString(), "UseSkill", [player]); + } } private static void EntitySpawned(CEntityInstance entity) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "OnEntitySpawned", [entity]); + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "OnEntitySpawned", [entity]); + } } private static void SetSkill() { - var validPlayers = Utilities.GetPlayers().Where(p => p.IsValid && !p.IsBot && !p.IsHLTV && p .Team is CsTeam.CounterTerrorist or CsTeam.Terrorist).ToList(); - - if (Config.LoadedConfig.GameMode == (int)Config.GameModes.TeamSkills) + lock (setLock) { - List tSkills = new(SkillData.Skills); - tSkills.RemoveAll(s => s.Skill == tSkill.Skill || s.Skill == Skills.None || counterterroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); - tSkill = tSkills.Count == 0 ? noneSkill : tSkills[Instance.Random.Next(tSkills.Count)]; + var validPlayers = Utilities.GetPlayers().Where(p => p.IsValid && !p.IsBot && !p.IsHLTV && p.Team is CsTeam.CounterTerrorist or CsTeam.Terrorist).ToList(); - List ctSkills = new(SkillData.Skills); - ctSkills.RemoveAll(s => s.Skill == ctSkill.Skill || s.Skill == Skills.None || terroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); - ctSkill = ctSkills.Count == 0 ? noneSkill : ctSkills[Instance.Random.Next(ctSkills.Count)]; + if (Config.LoadedConfig.GameMode == (int)Config.GameModes.TeamSkills) + { + List tSkills = [.. SkillData.Skills]; + tSkills.RemoveAll(s => s.Skill == tSkill.Skill || s.Skill == Skills.None || counterterroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); + tSkill = tSkills.Count == 0 ? noneSkill : tSkills[Instance.Random.Next(tSkills.Count)]; + + List ctSkills = [.. SkillData.Skills]; + ctSkills.RemoveAll(s => s.Skill == ctSkill.Skill || s.Skill == Skills.None || terroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); + ctSkill = ctSkills.Count == 0 ? noneSkill : ctSkills[Instance.Random.Next(ctSkills.Count)]; + } + else if (Config.LoadedConfig.GameMode == (int)Config.GameModes.SameSkills) + { + List allSkills = [.. SkillData.Skills]; + allSkills.RemoveAll(s => s.Skill == allSkill.Skill || s.Skill == Skills.None || !allTeamsSkills.Any(s2 => s2.Name == s.Skill.ToString())); + allSkill = allSkills.Count == 0 ? noneSkill : allSkills[Instance.Random.Next(allSkills.Count)]; + } + else if (Config.LoadedConfig.GameMode == (int)Config.GameModes.Debug && debugSkills.Count == 0) + debugSkills = [.. SkillData.Skills]; + + foreach (var player in validPlayers) + { + if (player == null) continue; + var teammates = validPlayers.Where(p => p.Team == player.Team && p != player); + string teammateSkills = ""; + + var skillPlayer = Instance?.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); + if (skillPlayer == null) continue; + + if (player.PlayerPawn.Value == null || !player.PlayerPawn.IsValid) + { + skillPlayer.Skill = Skills.None; + continue; + } + + skillPlayer.IsDrawing = false; + jSkill_SkillInfo randomSkill = noneSkill; + + if (Instance?.GameRules != null && Instance?.GameRules.WarmupPeriod == false) + { + Config.GameModes gameMode = (Config.GameModes)Config.LoadedConfig.GameMode; + if (staticSkills.TryGetValue(player.SteamID, out var staticSkill)) + randomSkill = staticSkill; + else if (gameMode == Config.GameModes.Normal || gameMode == Config.GameModes.NoRepeat) + { + List skillList = [.. SkillData.Skills]; + skillList.RemoveAll(s => s?.Skill == skillPlayer?.Skill || s?.Skill == skillPlayer?.SpecialSkill || s?.Skill == Skills.None); + + if (validPlayers.Count(p => p.Team == player.Team) == 1) + { + SkillsInfo.DefaultSkillInfo[] skillsNeedsTeammates = [.. SkillsInfo.LoadedConfig.Where(s => s.NeedsTeammates)]; + skillList.RemoveAll(s => skillsNeedsTeammates.Any(s2 => s2.Name == s.Skill.ToString())); + } + + if (player.Team == CsTeam.Terrorist) + skillList.RemoveAll(s => counterterroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); + else + skillList.RemoveAll(s => terroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); + + if (gameMode == Config.GameModes.NoRepeat && playersSkills.TryGetValue(player.SteamID, out ConcurrentBag? skills)) + { + skillList.RemoveAll(s => skills.Any(s2 => s2.Skill == s.Skill)); + if (skillList.Count == 0) skills.Clear(); + } + + randomSkill = skillList.Count == 0 ? noneSkill : skillList[Instance.Random.Next(skillList.Count)]; + if (gameMode == Config.GameModes.NoRepeat) + { + if (playersSkills.TryGetValue(player.SteamID, out ConcurrentBag? value)) + value.Add(randomSkill); + else + playersSkills.TryAdd(player.SteamID, [randomSkill]); + } + } + else if (gameMode == Config.GameModes.TeamSkills) + randomSkill = player.Team == CsTeam.Terrorist ? tSkill : ctSkill; + else if (gameMode == Config.GameModes.SameSkills) + randomSkill = allSkill; + else if (gameMode == Config.GameModes.Debug) + { + if (debugSkills.Count == 0) + debugSkills = [.. SkillData.Skills]; + randomSkill = debugSkills[0]; + debugSkills.RemoveAt(0); + player.PrintToChat($"{SkillData.Skills.Count - debugSkills.Count}/{SkillData.Skills.Count}"); + } + } + + if (randomSkill.Display) + SkillUtils.PrintToChat(player, $"{ChatColors.DarkRed}{player.GetSkillName(randomSkill.Skill)}{ChatColors.Lime}: {player.GetSkillDescription(randomSkill.Skill)}", false); + + skillPlayer.Skill = randomSkill.Skill; + skillPlayer.SpecialSkill = Skills.None; + + if (SkillsInfo.GetValue(randomSkill.Skill, "disableOnFreezeTime") && SkillUtils.IsFreezeTime()) + Instance?.AddTimer(Config.LoadedConfig.SkillTimeBeforeStart, () => + { + if (Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID && p.Skill == randomSkill.Skill) == null) return; + Instance?.SkillAction(randomSkill.Skill.ToString(), "EnableSkill", [player]); + }); + else + Instance?.SkillAction(randomSkill.Skill.ToString(), "EnableSkill", [player]); + + Debug.WriteToDebug($"Player {skillPlayer.PlayerName} has got the skill \"{player.GetSkillName(randomSkill.Skill)}\"."); + skillPlayer.SkillDescriptionHudExpired = DateTime.Now.AddSeconds(Config.LoadedConfig.SkillDescriptionDuration); + + if (Config.LoadedConfig.TeamMateSkillInfo) + { + Instance?.AddTimer(.5f, () => + { + foreach (var teammate in teammates) + { + var teammateInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == teammate.SteamID); + if (teammateInfo != null && teammateInfo?.Skill != null) + { + var skillInfo = SkillData.Skills.FirstOrDefault(p => p.Skill == teammateInfo.Skill); + teammateSkills += $" {ChatColors.DarkRed}{teammate.PlayerName}{ChatColors.Lime}: {(skillInfo == null ? player.GetSkillName(Skills.None) : player.GetSkillName(skillInfo.Skill, teammateInfo.SkillChance))}\n"; + } + } + + if (!string.IsNullOrEmpty(teammateSkills)) + { + SkillUtils.PrintToChat(player, $" {ChatColors.Lime}{player.GetTranslation("teammate_skills")}:", false); + foreach (string text in teammateSkills.Split("\n")) + if (!string.IsNullOrEmpty(text)) + player.PrintToChat(text); + } + }); + } + } } - else if (Config.LoadedConfig.GameMode == (int)Config.GameModes.SameSkills) - { - List allSkills = new(SkillData.Skills); - allSkills.RemoveAll(s => s.Skill == allSkill.Skill || s.Skill == Skills.None || !allTeamsSkills.Any(s2 => s2.Name == s.Skill.ToString())); - allSkill = allSkills.Count == 0 ? noneSkill : allSkills[Instance.Random.Next(allSkills.Count)]; - } - else if (Config.LoadedConfig.GameMode == (int)Config.GameModes.Debug && debugSkills.Count == 0) - debugSkills = new(SkillData.Skills); + } - foreach (var player in validPlayers) + public static void SetRandomSkill(CCSPlayerController player) + { + lock (setLock) { - if (player == null) continue; - var teammates = validPlayers.Where(p => p.Team == player.Team && p != player); - string teammateSkills = ""; + var validPlayers = Utilities.GetPlayers().Where(p => p.IsValid && !p.IsBot && !p.IsHLTV && p.Team is CsTeam.CounterTerrorist or CsTeam.Terrorist).ToList(); + if (Config.LoadedConfig.GameMode == (int)Config.GameModes.TeamSkills) + { + List tSkills = [.. SkillData.Skills]; + tSkills.RemoveAll(s => s.Skill == tSkill.Skill || s.Skill == Skills.None || counterterroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); + tSkill = tSkills.Count == 0 ? noneSkill : tSkills[0]; + + List ctSkills = [.. SkillData.Skills]; + ctSkills.RemoveAll(s => s.Skill == ctSkill.Skill || s.Skill == Skills.None || terroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); + ctSkill = ctSkills.Count == 0 ? noneSkill : ctSkills[0]; + } + + if (player == null) return; var skillPlayer = Instance?.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (skillPlayer == null) continue; + if (skillPlayer == null) return; if (player.PlayerPawn.Value == null || !player.PlayerPawn.IsValid) { skillPlayer.Skill = Skills.None; - continue; + return; } - skillPlayer.IsDrawing = false; jSkill_SkillInfo randomSkill = noneSkill; - if (Instance?.GameRules != null && Instance?.GameRules.WarmupPeriod == false) { Config.GameModes gameMode = (Config.GameModes)Config.LoadedConfig.GameMode; @@ -436,12 +636,12 @@ namespace jRandomSkills randomSkill = staticSkill; else if (gameMode == Config.GameModes.Normal || gameMode == Config.GameModes.NoRepeat) { - List skillList = new(SkillData.Skills); + List skillList = [.. SkillData.Skills]; skillList.RemoveAll(s => s?.Skill == skillPlayer?.Skill || s?.Skill == skillPlayer?.SpecialSkill || s?.Skill == Skills.None); if (validPlayers.Count(p => p.Team == player.Team) == 1) { - SkillsInfo.DefaultSkillInfo[] skillsNeedsTeammates = SkillsInfo.LoadedConfig.Where(s => s.NeedsTeammates).ToArray(); + SkillsInfo.DefaultSkillInfo[] skillsNeedsTeammates = [.. SkillsInfo.LoadedConfig.Where(s => s.NeedsTeammates)]; skillList.RemoveAll(s => skillsNeedsTeammates.Any(s2 => s2.Name == s.Skill.ToString())); } @@ -450,7 +650,7 @@ namespace jRandomSkills else skillList.RemoveAll(s => terroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); - if (gameMode == Config.GameModes.NoRepeat && playersSkills.TryGetValue(player.SteamID, out List? skills)) + if (gameMode == Config.GameModes.NoRepeat && playersSkills.TryGetValue(player.SteamID, out ConcurrentBag? skills)) { skillList.RemoveAll(s => skills.Any(s2 => s2.Skill == s.Skill)); if (skillList.Count == 0) skills.Clear(); @@ -459,7 +659,7 @@ namespace jRandomSkills randomSkill = skillList.Count == 0 ? noneSkill : skillList[Instance.Random.Next(skillList.Count)]; if (gameMode == Config.GameModes.NoRepeat) { - if (playersSkills.TryGetValue(player.SteamID, out List? value)) + if (playersSkills.TryGetValue(player.SteamID, out ConcurrentBag? value)) value.Add(randomSkill); else playersSkills.TryAdd(player.SteamID, [randomSkill]); @@ -467,16 +667,8 @@ namespace jRandomSkills } else if (gameMode == Config.GameModes.TeamSkills) randomSkill = player.Team == CsTeam.Terrorist ? tSkill : ctSkill; - else if (gameMode == Config.GameModes.SameSkills) - randomSkill = allSkill; else if (gameMode == Config.GameModes.Debug) - { - if (debugSkills.Count == 0) - debugSkills = new List(SkillData.Skills); - randomSkill = debugSkills[0]; - debugSkills.RemoveAt(0); - player.PrintToChat($"{SkillData.Skills.Count - debugSkills.Count}/{SkillData.Skills.Count}"); - } + return; } if (randomSkill.Display) @@ -488,152 +680,59 @@ namespace jRandomSkills if (SkillsInfo.GetValue(randomSkill.Skill, "disableOnFreezeTime") && SkillUtils.IsFreezeTime()) Instance?.AddTimer(Config.LoadedConfig.SkillTimeBeforeStart, () => { if (Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID && p.Skill == randomSkill.Skill) == null) return; - Instance?.SkillAction(randomSkill.Skill.ToString(), "EnableSkill", new[] { player }); + Instance?.SkillAction(randomSkill.Skill.ToString(), "EnableSkill", [player]); }); else - Instance?.SkillAction(randomSkill.Skill.ToString(), "EnableSkill", new[] { player }); + Instance?.SkillAction(randomSkill.Skill.ToString(), "EnableSkill", [player]); Debug.WriteToDebug($"Player {skillPlayer.PlayerName} has got the skill \"{player.GetSkillName(randomSkill.Skill)}\"."); skillPlayer.SkillDescriptionHudExpired = DateTime.Now.AddSeconds(Config.LoadedConfig.SkillDescriptionDuration); - - if (Config.LoadedConfig.TeamMateSkillInfo) - { - Instance?.AddTimer(.5f, () => - { - foreach (var teammate in teammates) - { - var teammateInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == teammate.SteamID); - if (teammateInfo != null && teammateInfo?.Skill != null) - { - var skillInfo = SkillData.Skills.FirstOrDefault(p => p.Skill == teammateInfo.Skill); - teammateSkills += $" {ChatColors.DarkRed}{teammate.PlayerName}{ChatColors.Lime}: {(skillInfo == null ? player.GetSkillName(Skills.None) : player.GetSkillName(skillInfo.Skill, teammateInfo.SkillChance))}\n"; - } - } - - if (!string.IsNullOrEmpty(teammateSkills)) - { - SkillUtils.PrintToChat(player, $" {ChatColors.Lime}{player.GetTranslation("teammate_skills")}:", false); - foreach (string text in teammateSkills.Split("\n")) - if (!string.IsNullOrEmpty(text)) - player.PrintToChat(text); - } - }); - } } } - public static void SetRandomSkill(CCSPlayerController player) - { - var validPlayers = Utilities.GetPlayers().Where(p => p.IsValid && !p.IsBot && !p.IsHLTV && p.Team is CsTeam.CounterTerrorist or CsTeam.Terrorist).ToList(); - - if (Config.LoadedConfig.GameMode == (int)Config.GameModes.TeamSkills) - { - List tSkills = new(SkillData.Skills); - tSkills.RemoveAll(s => s.Skill == tSkill.Skill || s.Skill == Skills.None || counterterroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); - tSkill = tSkills.Count == 0 ? noneSkill : tSkills[0]; - - List ctSkills = new(SkillData.Skills); - ctSkills.RemoveAll(s => s.Skill == ctSkill.Skill || s.Skill == Skills.None || terroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); - ctSkill = ctSkills.Count == 0 ? noneSkill : ctSkills[0]; - } - - if (player == null) return; - var skillPlayer = Instance?.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (skillPlayer == null) return; - - if (player.PlayerPawn.Value == null || !player.PlayerPawn.IsValid) - { - skillPlayer.Skill = Skills.None; - return; - } - - jSkill_SkillInfo randomSkill = noneSkill; - if (Instance?.GameRules != null && Instance?.GameRules.WarmupPeriod == false) - { - Config.GameModes gameMode = (Config.GameModes)Config.LoadedConfig.GameMode; - if (staticSkills.TryGetValue(player.SteamID, out var staticSkill)) - randomSkill = staticSkill; - else if (gameMode == Config.GameModes.Normal || gameMode == Config.GameModes.NoRepeat) - { - List skillList = new(SkillData.Skills); - skillList.RemoveAll(s => s?.Skill == skillPlayer?.Skill || s?.Skill == skillPlayer?.SpecialSkill || s?.Skill == Skills.None); - - if (validPlayers.Count(p => p.Team == player.Team) == 1) - { - SkillsInfo.DefaultSkillInfo[] skillsNeedsTeammates = SkillsInfo.LoadedConfig.Where(s => s.NeedsTeammates).ToArray(); - skillList.RemoveAll(s => skillsNeedsTeammates.Any(s2 => s2.Name == s.Skill.ToString())); - } - - if (player.Team == CsTeam.Terrorist) - skillList.RemoveAll(s => counterterroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); - else - skillList.RemoveAll(s => terroristSkills.Any(s2 => s2.Name == s.Skill.ToString())); - - if (gameMode == Config.GameModes.NoRepeat && playersSkills.TryGetValue(player.SteamID, out List? skills)) - { - skillList.RemoveAll(s => skills.Any(s2 => s2.Skill == s.Skill)); - if (skillList.Count == 0) skills.Clear(); - } - - randomSkill = skillList.Count == 0 ? noneSkill : skillList[Instance.Random.Next(skillList.Count)]; - if (gameMode == Config.GameModes.NoRepeat) - { - if (playersSkills.TryGetValue(player.SteamID, out List? value)) - value.Add(randomSkill); - else - playersSkills.TryAdd(player.SteamID, [randomSkill]); - } - } - else if (gameMode == Config.GameModes.TeamSkills) - randomSkill = player.Team == CsTeam.Terrorist ? tSkill : ctSkill; - else if (gameMode == Config.GameModes.Debug) - return; - } - - if (randomSkill.Display) - SkillUtils.PrintToChat(player, $"{ChatColors.DarkRed}{player.GetSkillName(randomSkill.Skill)}{ChatColors.Lime}: {player.GetSkillDescription(randomSkill.Skill)}", false); - - skillPlayer.Skill = randomSkill.Skill; - skillPlayer.SpecialSkill = Skills.None; - - if (SkillsInfo.GetValue(randomSkill.Skill, "disableOnFreezeTime") && SkillUtils.IsFreezeTime()) - Instance?.AddTimer(Config.LoadedConfig.SkillTimeBeforeStart, () => { - if (Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID && p.Skill == randomSkill.Skill) == null) return; - Instance?.SkillAction(randomSkill.Skill.ToString(), "EnableSkill", new[] { player }); - }); - else - Instance?.SkillAction(randomSkill.Skill.ToString(), "EnableSkill", new[] { player }); - - Debug.WriteToDebug($"Player {skillPlayer.PlayerName} has got the skill \"{player.GetSkillName(randomSkill.Skill)}\"."); - skillPlayer.SkillDescriptionHudExpired = DateTime.Now.AddSeconds(Config.LoadedConfig.SkillDescriptionDuration); - } - public static void CheckTransmit([CastFrom(typeof(nint))] CCheckTransmitInfoList infoList) { - foreach (var playerSkill in Instance.SkillPlayer) - if (!playerSkill.IsDrawing) - Instance.SkillAction(playerSkill.Skill.ToString(), "CheckTransmit", [infoList]); + lock (setLock) + { + foreach (var playerSkill in Instance.SkillPlayer) + if (!playerSkill.IsDrawing) + Instance.SkillAction(playerSkill.Skill.ToString(), "CheckTransmit", [infoList]); + } } public static void UpdateSkillHUD(CCSPlayerController? player, string? headerLine, string? centerLine, string? extraLine, bool isDescription) { - if (player == null || !player.IsValid) return; - var config = Config.LoadedConfig.HtmlHudCustomisation; - var emptySymbol = $" "; - var emptySymbol2 = $" "; + lock (setLock) + { + if (player == null || !player.IsValid) return; + var config = Config.LoadedConfig.HtmlHudCustomisation; + var emptySymbol = $" "; + var emptySymbol2 = $" "; - string infoLine = string.IsNullOrEmpty(headerLine) - ? "" - : $"{headerLine}:
"; + string infoLine = string.IsNullOrEmpty(headerLine) + ? "" + : $"{headerLine}:
"; - string skillLine = $"{emptySymbol2}{centerLine}{emptySymbol2}"; + string skillLine = $"{emptySymbol2}{centerLine}{emptySymbol2}"; - string remainingLine = string.IsNullOrWhiteSpace(extraLine) - ? "" - : $"
{emptySymbol}{extraLine}{emptySymbol}"; + string remainingLine = string.IsNullOrWhiteSpace(extraLine) + ? "" + : $"
{emptySymbol}{extraLine}{emptySymbol}"; - var hudContent = infoLine + skillLine + remainingLine; - player.PrintToCenterHtml(hudContent); + var hudContent = infoLine + skillLine + remainingLine; + player.PrintToCenterHtml(hudContent); + } } + + public static void EnableTransmit() + { + if (!isTransmitRegistered) + { + Instance?.RegisterListener(CheckTransmit); + isTransmitRegistered = true; + } + } + + public static DateTime GetFreezeTimeEnd() => freezeTimeEnd; } } \ No newline at end of file diff --git a/jRandomSkills - SRC Files/src/player/PlayerOnTick.cs b/jRandomSkills - SRC Files/src/player/PlayerOnTick.cs index c104ec8..1a3061d 100644 --- a/jRandomSkills - SRC Files/src/player/PlayerOnTick.cs +++ b/jRandomSkills - SRC Files/src/player/PlayerOnTick.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; +using src.utils; using static CounterStrikeSharp.API.Core.Listeners; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player { public static class PlayerOnTick { @@ -57,14 +56,14 @@ namespace jRandomSkills bool showDescirptionHUD = skillPlayer.SkillDescriptionHudExpired >= DateTime.Now; bool isDescription = true; - if (SkillData.Skills.Count == 0) + if (SkillData.Skills.IsEmpty) { infoLine = player.GetTranslation("your_skill"); skillLine = player.GetTranslation("none"); } else if (skillPlayer.IsDrawing) { - var randomSkill = SkillData.Skills[Instance.Random.Next(SkillData.Skills.Count)]; + var randomSkill = SkillData.Skills.ToArray()[Instance.Random.Next(SkillData.Skills.Count)]; infoLine = player.GetTranslation("drawing_skill"); skillLine = $"{player.GetSkillName(randomSkill.Skill)}"; } diff --git a/jRandomSkills - SRC Files/src/player/skills/Aimbot.cs b/jRandomSkills - SRC Files/src/player/skills/Aimbot.cs index 7fb09d3..44c7f89 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Aimbot.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Aimbot.cs @@ -1,12 +1,12 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; using System.Runtime.InteropServices; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Aimbot : ISkill { @@ -42,11 +42,11 @@ namespace jRandomSkills if (playerInfo == null) return; if (attacker.PawnIsAlive) - { - IntPtr hitGroupPointer = Marshal.ReadIntPtr(param2.Handle, GameData.GetOffset("CTakeDamageInfo_HitGroup")); + { + nint hitGroupPointer = Marshal.ReadIntPtr(param2.Handle, GameData.GetOffset("CTakeDamageInfo_HitGroup")); if (hitGroupPointer != nint.Zero) { - IntPtr hitGroupOffset = Marshal.ReadIntPtr(hitGroupPointer, 16); + nint hitGroupOffset = Marshal.ReadIntPtr(hitGroupPointer, 16); if (hitGroupOffset != nint.Zero) { if (playerInfo.Skill == skillName) diff --git a/jRandomSkills - SRC Files/src/player/skills/Anomaly.cs b/jRandomSkills - SRC Files/src/player/skills/Anomaly.cs index bceddb5..7f9cc0c 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Anomaly.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Anomaly.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; +using src.utils; using System.Collections.Concurrent; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Anomaly : ISkill { @@ -40,12 +39,12 @@ namespace jRandomSkills if (pawn != null && pawn.IsValid && pawn.AbsOrigin != null) { if (skillInfo.LastRotations == null || skillInfo.LastPositions == null) continue; - skillInfo.LastPositions.Add(new Vector(pawn.AbsOrigin.X, pawn.AbsOrigin.Y, pawn.AbsOrigin.Z)); - skillInfo.LastRotations.Add(new QAngle(pawn.EyeAngles.X, pawn.EyeAngles.Y, pawn.EyeAngles.Z)); + skillInfo.LastPositions.Enqueue(new Vector(pawn.AbsOrigin.X, pawn.AbsOrigin.Y, pawn.AbsOrigin.Z)); + skillInfo.LastRotations.Enqueue(new QAngle(pawn.EyeAngles.X, pawn.EyeAngles.Y, pawn.EyeAngles.Z)); if (skillInfo.LastRotations.Count > SkillsInfo.GetValue(skillName, "secondsInBack")) { - skillInfo.LastPositions.RemoveAt(0); - skillInfo.LastRotations.RemoveAt(0); + skillInfo.LastPositions.TryDequeue(out _); + skillInfo.LastRotations.TryDequeue(out _); } } } @@ -103,7 +102,7 @@ namespace jRandomSkills { skillInfo.CanUse = false; skillInfo.Cooldown = DateTime.Now; - if (skillInfo.LastRotations == null || skillInfo.LastRotations.Count == 0 || skillInfo.LastPositions == null || skillInfo.LastPositions.Count == 0) return; + if (skillInfo.LastRotations == null || skillInfo.LastRotations.IsEmpty || skillInfo.LastPositions == null || skillInfo.LastPositions.IsEmpty) return; Vector? lastPosition = skillInfo.LastPositions.FirstOrDefault(); QAngle? lastRotation = skillInfo.LastRotations.FirstOrDefault(); if (lastPosition != null && lastRotation != null) @@ -117,8 +116,8 @@ namespace jRandomSkills public ulong SteamID { get; set; } public bool CanUse { get; set; } public DateTime Cooldown { get; set; } - public List? LastPositions { get; set; } - public List? LastRotations { get; set; } + public ConcurrentQueue? LastPositions { get; set; } + public ConcurrentQueue? LastRotations { get; set; } } public class SkillConfig(Skills skill = skillName, bool active = true, string color = "#a86eff", CsTeam onlyTeam = CsTeam.None, bool disableOnFreezeTime = true, bool needsTeammates = false, int secondsInBack = 5, float cooldown = 15) : SkillsInfo.DefaultSkillInfo(skill, active, color, onlyTeam, disableOnFreezeTime, needsTeammates) diff --git a/jRandomSkills - SRC Files/src/player/skills/AntyFlash.cs b/jRandomSkills - SRC Files/src/player/skills/AntyFlash.cs index 418fb20..77d97c3 100644 --- a/jRandomSkills - SRC Files/src/player/skills/AntyFlash.cs +++ b/jRandomSkills - SRC Files/src/player/skills/AntyFlash.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class AntyFlash : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/AntyHead.cs b/jRandomSkills - SRC Files/src/player/skills/AntyHead.cs index e6a3ea5..809d221 100644 --- a/jRandomSkills - SRC Files/src/player/skills/AntyHead.cs +++ b/jRandomSkills - SRC Files/src/player/skills/AntyHead.cs @@ -1,9 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class AntyHead : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/AreaReaper.cs b/jRandomSkills - SRC Files/src/player/skills/AreaReaper.cs index 0ecfffd..e5baad9 100644 --- a/jRandomSkills - SRC Files/src/player/skills/AreaReaper.cs +++ b/jRandomSkills - SRC Files/src/player/skills/AreaReaper.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class AreaReaper : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Armored.cs b/jRandomSkills - SRC Files/src/player/skills/Armored.cs index c7ec373..c50ff98 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Armored.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Armored.cs @@ -1,11 +1,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Armored : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Assassin.cs b/jRandomSkills - SRC Files/src/player/skills/Assassin.cs index 2496648..d57ff24 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Assassin.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Assassin.cs @@ -1,9 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Assassin : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Astronaut.cs b/jRandomSkills - SRC Files/src/player/skills/Astronaut.cs index 3effa63..289a32b 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Astronaut.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Astronaut.cs @@ -1,11 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Astronaut : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Bankrupt.cs b/jRandomSkills - SRC Files/src/player/skills/Bankrupt.cs index e500f20..1126498 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Bankrupt.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Bankrupt.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Bankrupt : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Baseball.cs b/jRandomSkills - SRC Files/src/player/skills/Baseball.cs index 8a21e90..f94b2f8 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Baseball.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Baseball.cs @@ -2,11 +2,11 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Baseball : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Behind.cs b/jRandomSkills - SRC Files/src/player/skills/Behind.cs index d658b64..1bc86ae 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Behind.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Behind.cs @@ -1,10 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Behind : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/BladeMaster.cs b/jRandomSkills - SRC Files/src/player/skills/BladeMaster.cs index fdd5054..64f3642 100644 --- a/jRandomSkills - SRC Files/src/player/skills/BladeMaster.cs +++ b/jRandomSkills - SRC Files/src/player/skills/BladeMaster.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class BladeMaster : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/BunnyHop.cs b/jRandomSkills - SRC Files/src/player/skills/BunnyHop.cs index 6e12bc0..48b2582 100644 --- a/jRandomSkills - SRC Files/src/player/skills/BunnyHop.cs +++ b/jRandomSkills - SRC Files/src/player/skills/BunnyHop.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class BunnyHop : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/C4Camouflage.cs b/jRandomSkills - SRC Files/src/player/skills/C4Camouflage.cs index 54035a0..58899bc 100644 --- a/jRandomSkills - SRC Files/src/player/skills/C4Camouflage.cs +++ b/jRandomSkills - SRC Files/src/player/skills/C4Camouflage.cs @@ -3,16 +3,16 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Attributes; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class C4Camouflage : ISkill { private const Skills skillName = Skills.C4Camouflage; - private static readonly ConcurrentDictionary> invisibleEntities = []; + private static readonly ConcurrentDictionary> invisibleEntities = []; public static void LoadSkill() { @@ -73,7 +73,7 @@ namespace jRandomSkills public static void EnableSkill(CCSPlayerController player) { - SkillUtils.EnableTransmit(); + Event.EnableTransmit(); if (player == null || !player.IsValid) return; var playerPawn = player.PlayerPawn.Value; diff --git a/jRandomSkills - SRC Files/src/player/skills/Catapult.cs b/jRandomSkills - SRC Files/src/player/skills/Catapult.cs index a0d24b6..ba294bf 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Catapult.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Catapult.cs @@ -1,10 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Catapult : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Chicken.cs b/jRandomSkills - SRC Files/src/player/skills/Chicken.cs index ef7f1c2..ac07e70 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Chicken.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Chicken.cs @@ -2,12 +2,11 @@ using System.Drawing; using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; -using jRandomSkills.src.utils; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Chicken : ISkill { @@ -53,7 +52,7 @@ namespace jRandomSkills var playerPawn = player.PlayerPawn?.Value; if (playerPawn != null && playerPawn.IsValid) { - SkillUtils.EnableTransmit(); + Event.EnableTransmit(); playerPawn.VelocityModifier = 1.1f; playerPawn.Health = 50; diff --git a/jRandomSkills - SRC Files/src/player/skills/ChillOut.cs b/jRandomSkills - SRC Files/src/player/skills/ChillOut.cs index 3231113..aab8ddb 100644 --- a/jRandomSkills - SRC Files/src/player/skills/ChillOut.cs +++ b/jRandomSkills - SRC Files/src/player/skills/ChillOut.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class ChillOut : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Cutter.cs b/jRandomSkills - SRC Files/src/player/skills/Cutter.cs index 4a4ee5b..642f958 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Cutter.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Cutter.cs @@ -1,9 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Cutter : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Darkness.cs b/jRandomSkills - SRC Files/src/player/skills/Darkness.cs index 0feb39a..05f814a 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Darkness.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Darkness.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Darkness : ISkill { @@ -53,7 +52,7 @@ namespace jRandomSkills if (playerInfo == null || playerInfo.Skill != skillName) continue; var enemies = Utilities.GetPlayers().Where(p => p.PawnIsAlive && p.Team != player.Team && p.IsValid && !p.IsBot && !p.IsHLTV && p.Team != CsTeam.Spectator && p.Team != CsTeam.None).ToArray(); - ConcurrentBag<(string, string)> menuItems = new(enemies.Select(e => (e.PlayerName, e.Index.ToString()))); + ConcurrentBag<(string, string)> menuItems = [.. enemies.Select(e => (e.PlayerName, e.Index.ToString()))]; SkillUtils.UpdateMenu(player, menuItems); } } @@ -94,7 +93,7 @@ namespace jRandomSkills var enemies = Utilities.GetPlayers().Where(p => p.PawnIsAlive && p.Team != player.Team && p.IsValid && !p.IsBot && !p.IsHLTV && p.Team != CsTeam.Spectator && p.Team != CsTeam.None).ToArray(); if (enemies.Length > 0) { - ConcurrentBag<(string, string)> menuItems = new(enemies.Select(e => (e.PlayerName, e.Index.ToString()))); + ConcurrentBag<(string, string)> menuItems = [.. enemies.Select(e => (e.PlayerName, e.Index.ToString()))]; SkillUtils.CreateMenu(player, menuItems); } else @@ -116,42 +115,45 @@ namespace jRandomSkills var pawn = player.PlayerPawn.Value; if (pawn == null || !pawn.IsValid || pawn.CameraServices == null) return; - if (!defaultPostProcessings.ContainsKey(player)) - defaultPostProcessings.TryAdd(player, []); - - int i = 0; - foreach (var postProcessingVolume in pawn.CameraServices.PostProcessingVolumes) + lock (setLock) { - if (postProcessingVolume == null || postProcessingVolume.Value == null) - return; + if (!defaultPostProcessings.ContainsKey(player)) + defaultPostProcessings.TryAdd(player, []); + int i = 0; + foreach (var postProcessingVolume in pawn.CameraServices.PostProcessingVolumes) + { + if (postProcessingVolume == null || postProcessingVolume.Value == null) + return; + + if (dontCreateNew) + { + if (defaultPostProcessings.TryGetValue(player, out var defaultList) && i < defaultList.Count) + postProcessingVolume.Raw = defaultList[i].EntityHandle.Raw; + } + else + { + if (defaultPostProcessings.TryGetValue(player, out var defaultList)) + defaultList.Add(postProcessingVolume.Value); + + var postProcessing = Utilities.CreateEntityByName("post_processing_volume"); + if (postProcessing == null) return; + + var brightness = SkillsInfo.GetValue(skillName, "brightness"); + postProcessing.ExposureControl = true; + postProcessing.MaxExposure = brightness; + postProcessing.MinExposure = brightness; + + newPostProcessing.Add(postProcessing); + postProcessingVolume.Raw = postProcessing.EntityHandle.Raw; + } + i++; + } + + Utilities.SetStateChanged(pawn, "CBasePlayerPawn", "m_pCameraServices"); if (dontCreateNew) - { - if (defaultPostProcessings.TryGetValue(player, out var defaultList) && i < defaultList.Count) - postProcessingVolume.Raw = defaultList[i].EntityHandle.Raw; - } - else - { - if (defaultPostProcessings.TryGetValue(player, out var defaultList)) - defaultList.Add(postProcessingVolume.Value); - - var postProcessing = Utilities.CreateEntityByName("post_processing_volume"); - if (postProcessing == null) return; - - var brightness = SkillsInfo.GetValue(skillName, "brightness"); - postProcessing.ExposureControl = true; - postProcessing.MaxExposure = brightness; - postProcessing.MinExposure = brightness; - - newPostProcessing.Add(postProcessing); - postProcessingVolume.Raw = postProcessing.EntityHandle.Raw; - } - i++; + defaultPostProcessings.TryRemove(player, out _); } - - Utilities.SetStateChanged(pawn, "CBasePlayerPawn", "m_pCameraServices"); - if (dontCreateNew) - defaultPostProcessings.TryRemove(player, out _); } public class SkillConfig(Skills skill = skillName, bool active = true, string color = "#383838", CsTeam onlyTeam = CsTeam.None, bool disableOnFreezeTime = false, bool needsTeammates = false, float brightness = .01f) : SkillsInfo.DefaultSkillInfo(skill, active, color, onlyTeam, disableOnFreezeTime, needsTeammates) diff --git a/jRandomSkills - SRC Files/src/player/skills/Dash.cs b/jRandomSkills - SRC Files/src/player/skills/Dash.cs index a5039bd..ba16891 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Dash.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Dash.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Dash : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Deactivator.cs b/jRandomSkills - SRC Files/src/player/skills/Deactivator.cs index 627c38a..0767708 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Deactivator.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Deactivator.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Deactivator : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Deaf.cs b/jRandomSkills - SRC Files/src/player/skills/Deaf.cs index 1d6501d..7f6c65a 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Deaf.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Deaf.cs @@ -2,12 +2,11 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.UserMessages; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Deaf : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Disarmament.cs b/jRandomSkills - SRC Files/src/player/skills/Disarmament.cs index cb84648..050c5cb 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Disarmament.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Disarmament.cs @@ -1,10 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Disarmament : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Distancer.cs b/jRandomSkills - SRC Files/src/player/skills/Distancer.cs index 5e4a516..0952edb 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Distancer.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Distancer.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; +using src.utils; using System.Collections.Concurrent; -namespace jRandomSkills +namespace src.player.skills { public class Distancer : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Dracula.cs b/jRandomSkills - SRC Files/src/player/skills/Dracula.cs index a49474e..38ff228 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Dracula.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Dracula.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Dracula : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Duplicator.cs b/jRandomSkills - SRC Files/src/player/skills/Duplicator.cs index 7242187..a902bdb 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Duplicator.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Duplicator.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Duplicator : ISkill { @@ -75,7 +74,7 @@ namespace jRandomSkills var enemies = Utilities.GetPlayers().Where(p => p.PawnIsAlive && p != player && p.IsValid && !p.IsBot && !p.IsHLTV && p.Team != CsTeam.Spectator && p.Team != CsTeam.None).ToArray(); if (enemies.Length > 0) { - List skills = []; + ConcurrentBag skills = []; ConcurrentBag<(string, string)> menuItems = []; foreach (var enemy in enemies) { @@ -138,12 +137,12 @@ namespace jRandomSkills SkillUtils.CloseMenu(player); if (SkillsInfo.GetValue(enemySkill, "disableOnFreezeTime") && SkillUtils.IsFreezeTime()) - Instance?.AddTimer(Math.Max((float)(Event.freezeTimeEnd - DateTime.Now).TotalSeconds, 0), () => { + Instance?.AddTimer(Math.Max((float)(Event.GetFreezeTimeEnd() - DateTime.Now).TotalSeconds, 0), () => { if (Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID && p.Skill == enemySkill) == null) return; - Instance?.SkillAction(enemySkill.ToString(), "EnableSkill", new[] { player }); + Instance?.SkillAction(enemySkill.ToString(), "EnableSkill", [player]); }); else - Instance?.SkillAction(enemySkill.ToString(), "EnableSkill", new[] { player }); + Instance?.SkillAction(enemySkill.ToString(), "EnableSkill", [player]); }); player.PrintToChat($" {ChatColors.Green}" + player.GetTranslation("duplicator_player_info", enemy.PlayerName)); } diff --git a/jRandomSkills - SRC Files/src/player/skills/Dwarf.cs b/jRandomSkills - SRC Files/src/player/skills/Dwarf.cs index 389776c..a8fcc66 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Dwarf.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Dwarf.cs @@ -1,11 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Dwarf : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Earthquake.cs b/jRandomSkills - SRC Files/src/player/skills/Earthquake.cs index 1c682df..b9f2296 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Earthquake.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Earthquake.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Earthquake : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/EnemySpawn.cs b/jRandomSkills - SRC Files/src/player/skills/EnemySpawn.cs index e5c4768..9fff467 100644 --- a/jRandomSkills - SRC Files/src/player/skills/EnemySpawn.cs +++ b/jRandomSkills - SRC Files/src/player/skills/EnemySpawn.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class EnemySpawn : ISkill { @@ -44,7 +43,7 @@ namespace jRandomSkills { SteamID = player.SteamID, CanUse = false, - Cooldown = cooldownBeforeUse <= 0 ? DateTime.MinValue : Event.freezeTimeEnd.AddSeconds(cooldownBeforeUse - SkillsInfo.GetValue(skillName, "cooldown")), + Cooldown = cooldownBeforeUse <= 0 ? DateTime.MinValue : Event.GetFreezeTimeEnd().AddSeconds(cooldownBeforeUse - SkillsInfo.GetValue(skillName, "cooldown")), }); } diff --git a/jRandomSkills - SRC Files/src/player/skills/ExplosiveShot.cs b/jRandomSkills - SRC Files/src/player/skills/ExplosiveShot.cs index 0030720..7596a2a 100644 --- a/jRandomSkills - SRC Files/src/player/skills/ExplosiveShot.cs +++ b/jRandomSkills - SRC Files/src/player/skills/ExplosiveShot.cs @@ -2,12 +2,11 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; using Vector = CounterStrikeSharp.API.Modules.Utils.Vector; -namespace jRandomSkills +namespace src.player.skills { public class ExplosiveShot : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/FalconEye.cs b/jRandomSkills - SRC Files/src/player/skills/FalconEye.cs index 59cc02e..1ae6f58 100644 --- a/jRandomSkills - SRC Files/src/player/skills/FalconEye.cs +++ b/jRandomSkills - SRC Files/src/player/skills/FalconEye.cs @@ -1,12 +1,12 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; using System.Drawing; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class FalconEye : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/FastReload.cs b/jRandomSkills - SRC Files/src/player/skills/FastReload.cs index 64edfdc..8bb9dde 100644 --- a/jRandomSkills - SRC Files/src/player/skills/FastReload.cs +++ b/jRandomSkills - SRC Files/src/player/skills/FastReload.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class FastReload : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Flash.cs b/jRandomSkills - SRC Files/src/player/skills/Flash.cs index 50c0583..f4c99e5 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Flash.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Flash.cs @@ -2,12 +2,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.UserMessages; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Flash : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Fortnite.cs b/jRandomSkills - SRC Files/src/player/skills/Fortnite.cs index 799360a..113b0e3 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Fortnite.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Fortnite.cs @@ -2,13 +2,12 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; using static CounterStrikeSharp.API.Core.Listeners; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Fortnite : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/FragileBomb.cs b/jRandomSkills - SRC Files/src/player/skills/FragileBomb.cs index a4db055..6a4acab 100644 --- a/jRandomSkills - SRC Files/src/player/skills/FragileBomb.cs +++ b/jRandomSkills - SRC Files/src/player/skills/FragileBomb.cs @@ -3,11 +3,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class FragileBomb : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/FriendlyFire.cs b/jRandomSkills - SRC Files/src/player/skills/FriendlyFire.cs index c399433..5787e98 100644 --- a/jRandomSkills - SRC Files/src/player/skills/FriendlyFire.cs +++ b/jRandomSkills - SRC Files/src/player/skills/FriendlyFire.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class FriendlyFire : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/FrozenDecoy.cs b/jRandomSkills - SRC Files/src/player/skills/FrozenDecoy.cs index 2719d45..7f27541 100644 --- a/jRandomSkills - SRC Files/src/player/skills/FrozenDecoy.cs +++ b/jRandomSkills - SRC Files/src/player/skills/FrozenDecoy.cs @@ -2,15 +2,16 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using System.Collections.Concurrent; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class FrozenDecoy : ISkill { private const Skills skillName = Skills.FrozenDecoy; - private static readonly List decoys = []; + private static readonly ConcurrentDictionary decoys = []; public static void LoadSkill() { @@ -28,7 +29,7 @@ namespace jRandomSkills if (player == null || !player.IsValid) return; var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); if (playerInfo?.Skill != skillName) return; - decoys.Add(new Vector(@event.X, @event.Y, @event.Z)); + decoys.TryAdd(new Vector(@event.X, @event.Y, @event.Z), 0); } public static void DecoyDetonate(EventDecoyDetonate @event) @@ -37,12 +38,13 @@ namespace jRandomSkills if (player == null || !player.IsValid) return; var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); if (playerInfo?.Skill != skillName) return; - decoys.RemoveAll(v => v.X == @event.X && v.Y == @event.Y && v.Z == @event.Z); + foreach (var decoy in decoys.Keys.Where(v => v.X == @event.X && v.Y == @event.Y && v.Z == @event.Z)) + decoys.TryRemove(decoy, out _); } public static void OnTick() { - foreach (Vector decoyPos in decoys) + foreach (Vector decoyPos in decoys.Keys) foreach (var player in Utilities.GetPlayers().Where(p => p.Team == CsTeam.Terrorist || p.Team == CsTeam.CounterTerrorist)) { var decoyRadius = SkillsInfo.GetValue(skillName, "triggerRadius"); diff --git a/jRandomSkills - SRC Files/src/player/skills/Gambler.cs b/jRandomSkills - SRC Files/src/player/skills/Gambler.cs index 178f60c..177d49a 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Gambler.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Gambler.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Gambler : ISkill { @@ -52,12 +51,12 @@ namespace jRandomSkills playerInfo.SkillChance = 1; if (SkillsInfo.GetValue(skill.Skill, "disableOnFreezeTime") && SkillUtils.IsFreezeTime()) - Instance?.AddTimer(Math.Max((float)(Event.freezeTimeEnd - DateTime.Now).TotalSeconds, 0), () => { + Instance?.AddTimer(Math.Max((float)(Event.GetFreezeTimeEnd() - DateTime.Now).TotalSeconds, 0), () => { if (Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID && p.Skill == skill.Skill) == null) return; - Instance?.SkillAction(skill.Skill.ToString(), "EnableSkill", new[] { player }); + Instance?.SkillAction(skill.Skill.ToString(), "EnableSkill", [player]); }); else - Instance?.SkillAction(skill.Skill.ToString(), "EnableSkill", new[] { player }); + Instance?.SkillAction(skill.Skill.ToString(), "EnableSkill", [player]); }); } @@ -95,7 +94,7 @@ namespace jRandomSkills var skillPlayer = Instance?.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); if (skillPlayer == null) return [Event.noneSkill]; - List skillList = new(SkillData.Skills); + List skillList = [.. SkillData.Skills]; skillList.RemoveAll(s => s?.Skill == skillPlayer?.Skill || s?.Skill == skillPlayer?.SpecialSkill || s?.Skill == Skills.None); if (Utilities.GetPlayers().FindAll(p => p.Team == player.Team && p.IsValid && !p.IsBot && !p.IsHLTV && p.Team != CsTeam.Spectator).Count == 1) diff --git a/jRandomSkills - SRC Files/src/player/skills/Ghost.cs b/jRandomSkills - SRC Files/src/player/skills/Ghost.cs index 544be29..4bf17bb 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Ghost.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Ghost.cs @@ -4,12 +4,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Attributes; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Ghost : ISkill { @@ -26,7 +25,7 @@ namespace jRandomSkills "weapon_g3sg1", "weapon_nova", "weapon_xm1014", "weapon_mag7", "weapon_sawedoff", "weapon_m249", "weapon_negev" ]; - private static readonly ConcurrentDictionary> invisibleEntities = []; + private static readonly ConcurrentDictionary> invisibleEntities = []; public static void LoadSkill() { @@ -78,7 +77,7 @@ namespace jRandomSkills public static void EnableSkill(CCSPlayerController player) { - SkillUtils.EnableTransmit(); + Event.EnableTransmit(); SetPlayerVisibility(player, false); SetWeaponVisibility(player, false); SetWeaponAttack(player, true); diff --git a/jRandomSkills - SRC Files/src/player/skills/Glaz.cs b/jRandomSkills - SRC Files/src/player/skills/Glaz.cs index 97199df..d024bec 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Glaz.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Glaz.cs @@ -3,11 +3,11 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Attributes; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; +using src.utils; using System.Collections.Concurrent; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Glaz : ISkill { @@ -54,7 +54,7 @@ namespace jRandomSkills public static void EnableSkill(CCSPlayerController player) { - SkillUtils.EnableTransmit(); + Event.EnableTransmit(); SkillUtils.TryGiveWeapon(player, CsItem.SmokeGrenade); } diff --git a/jRandomSkills - SRC Files/src/player/skills/Glitch.cs b/jRandomSkills - SRC Files/src/player/skills/Glitch.cs index ad3563e..31b2b71 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Glitch.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Glitch.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Glitch : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Glue.cs b/jRandomSkills - SRC Files/src/player/skills/Glue.cs index 746e01a..3a414f5 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Glue.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Glue.cs @@ -1,9 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Glue : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/GodMode.cs b/jRandomSkills - SRC Files/src/player/skills/GodMode.cs index e1db45a..292c43d 100644 --- a/jRandomSkills - SRC Files/src/player/skills/GodMode.cs +++ b/jRandomSkills - SRC Files/src/player/skills/GodMode.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class GodMode : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Grenadier.cs b/jRandomSkills - SRC Files/src/player/skills/Grenadier.cs index 83fcdfb..b34da1c 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Grenadier.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Grenadier.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Grenadier : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/HealingSmoke.cs b/jRandomSkills - SRC Files/src/player/skills/HealingSmoke.cs index 590843b..1b3cdd1 100644 --- a/jRandomSkills - SRC Files/src/player/skills/HealingSmoke.cs +++ b/jRandomSkills - SRC Files/src/player/skills/HealingSmoke.cs @@ -2,15 +2,16 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using System.Collections.Concurrent; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class HealingSmoke : ISkill { private const Skills skillName = Skills.HealingSmoke; - private static readonly List smokes = []; + private static readonly ConcurrentDictionary smokes = []; public static void LoadSkill() { @@ -28,7 +29,7 @@ namespace jRandomSkills if (player == null || !player.IsValid) return; var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); if (playerInfo?.Skill != skillName) return; - smokes.Add(new Vector(@event.X, @event.Y, @event.Z)); + smokes.TryAdd(new Vector(@event.X, @event.Y, @event.Z), 0); } public static void SmokegrenadeExpired(EventSmokegrenadeExpired @event) @@ -37,7 +38,8 @@ namespace jRandomSkills if (player == null || !player.IsValid) return; var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); if (playerInfo?.Skill != skillName) return; - smokes.RemoveAll(v => v.X == @event.X && v.Y == @event.Y && v.Z == @event.Z); + foreach (var smoke in smokes.Keys.Where(v => v.X == @event.X && v.Y == @event.Y && v.Z == @event.Z)) + smokes.TryRemove(smoke, out _); } public static void OnEntitySpawned(CEntityInstance entity) @@ -68,7 +70,7 @@ namespace jRandomSkills public static void OnTick() { - foreach (Vector smokePos in smokes) + foreach (Vector smokePos in smokes.Keys) foreach (var player in Utilities.GetPlayers()) if (Server.TickCount % 17 == 0) if (player.PlayerPawn.Value != null && player.PlayerPawn.Value.IsValid && player.PlayerPawn.Value.AbsOrigin != null) diff --git a/jRandomSkills - SRC Files/src/player/skills/Hermit.cs b/jRandomSkills - SRC Files/src/player/skills/Hermit.cs index 7a92ecc..4b40e44 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Hermit.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Hermit.cs @@ -1,11 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Hermit : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/HolyHandGrenade.cs b/jRandomSkills - SRC Files/src/player/skills/HolyHandGrenade.cs index 5458b32..9468811 100644 --- a/jRandomSkills - SRC Files/src/player/skills/HolyHandGrenade.cs +++ b/jRandomSkills - SRC Files/src/player/skills/HolyHandGrenade.cs @@ -2,10 +2,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class HolyHandGrenade : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Impostor.cs b/jRandomSkills - SRC Files/src/player/skills/Impostor.cs index 7008a15..0910e18 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Impostor.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Impostor.cs @@ -2,10 +2,10 @@ using System.Drawing; using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Impostor : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/InfiniteAmmo.cs b/jRandomSkills - SRC Files/src/player/skills/InfiniteAmmo.cs index 452d4d0..a7640f9 100644 --- a/jRandomSkills - SRC Files/src/player/skills/InfiniteAmmo.cs +++ b/jRandomSkills - SRC Files/src/player/skills/InfiniteAmmo.cs @@ -1,9 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class InfiniteAmmo : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Jackal.cs b/jRandomSkills - SRC Files/src/player/skills/Jackal.cs index fda9c6f..322a2f2 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Jackal.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Jackal.cs @@ -2,17 +2,17 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Attributes; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; using System.Drawing; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Jackal : ISkill { private const Skills skillName = Skills.Jackal; - private static readonly ConcurrentDictionary> stepBeams = []; + private static readonly ConcurrentDictionary> stepBeams = []; public static void LoadSkill() { @@ -49,12 +49,13 @@ namespace jRandomSkills var newBeam = CreateBeamStep(step.Key.Team, lastBeamVector, pawn.AbsOrigin); if (newBeam != null) - step.Value.Add(newBeam); + step.Value.Enqueue(newBeam); if (beams?.Count >= SkillsInfo.GetValue(skillName, "maxStepBeam")) { - beams[0].AcceptInput("Kill"); - step.Value.RemoveAt(0); + if (beams.TryPeek(out var beam)) + beam.AcceptInput("Kill"); + step.Value.TryDequeue(out _); } } } @@ -103,7 +104,7 @@ namespace jRandomSkills public static void EnableSkill(CCSPlayerController _) { - SkillUtils.EnableTransmit(); + Event.EnableTransmit(); foreach (var _player in Utilities.GetPlayers().Where(p => p.IsValid && !p.IsBot && !p.IsHLTV && p.PawnIsAlive && p.Team is CsTeam.CounterTerrorist or CsTeam.Terrorist)) if (!stepBeams.ContainsKey(_player)) stepBeams.TryAdd(_player, []); diff --git a/jRandomSkills - SRC Files/src/player/skills/Jammer.cs b/jRandomSkills - SRC Files/src/player/skills/Jammer.cs index 341b68e..313d1b6 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Jammer.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Jammer.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Jammer : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Jester.cs b/jRandomSkills - SRC Files/src/player/skills/Jester.cs index e65c3bf..6543769 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Jester.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Jester.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; +using src.utils; using System.Drawing; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Jester : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/JumpBan.cs b/jRandomSkills - SRC Files/src/player/skills/JumpBan.cs index 7761588..f40f4bb 100644 --- a/jRandomSkills - SRC Files/src/player/skills/JumpBan.cs +++ b/jRandomSkills - SRC Files/src/player/skills/JumpBan.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class JumpBan : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/JumpingJack.cs b/jRandomSkills - SRC Files/src/player/skills/JumpingJack.cs index bed8eb9..991ac4e 100644 --- a/jRandomSkills - SRC Files/src/player/skills/JumpingJack.cs +++ b/jRandomSkills - SRC Files/src/player/skills/JumpingJack.cs @@ -1,9 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class JumpingJack : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/KillerFlash.cs b/jRandomSkills - SRC Files/src/player/skills/KillerFlash.cs index bce8de5..fdeaa26 100644 --- a/jRandomSkills - SRC Files/src/player/skills/KillerFlash.cs +++ b/jRandomSkills - SRC Files/src/player/skills/KillerFlash.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class KillerFlash : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/LifeSwap.cs b/jRandomSkills - SRC Files/src/player/skills/LifeSwap.cs index fd46fb6..cb2b935 100644 --- a/jRandomSkills - SRC Files/src/player/skills/LifeSwap.cs +++ b/jRandomSkills - SRC Files/src/player/skills/LifeSwap.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class LifeSwap : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/LongKnife.cs b/jRandomSkills - SRC Files/src/player/skills/LongKnife.cs index 0aa9f2b..9e5e327 100644 --- a/jRandomSkills - SRC Files/src/player/skills/LongKnife.cs +++ b/jRandomSkills - SRC Files/src/player/skills/LongKnife.cs @@ -6,13 +6,13 @@ using CounterStrikeSharp.API.Modules.Utils; using CS2TraceRay.Class; using CS2TraceRay.Enum; using CS2TraceRay.Struct; -using jRandomSkills.src.player; +using src.utils; using System.Drawing; using System.Numerics; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using Vector = CounterStrikeSharp.API.Modules.Utils.Vector; -namespace jRandomSkills +namespace src.player.skills { public class LongKnife : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/LongZeus.cs b/jRandomSkills - SRC Files/src/player/skills/LongZeus.cs index c6fdcdd..838e714 100644 --- a/jRandomSkills - SRC Files/src/player/skills/LongZeus.cs +++ b/jRandomSkills - SRC Files/src/player/skills/LongZeus.cs @@ -5,13 +5,13 @@ using CounterStrikeSharp.API.Modules.Utils; using CS2TraceRay.Class; using CS2TraceRay.Enum; using CS2TraceRay.Struct; -using jRandomSkills.src.player; +using src.utils; using System.Drawing; using System.Numerics; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using Vector = CounterStrikeSharp.API.Modules.Utils.Vector; -namespace jRandomSkills +namespace src.player.skills { public class LongZeus : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Magnifier.cs b/jRandomSkills - SRC Files/src/player/skills/Magnifier.cs index e3b939d..e09ab61 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Magnifier.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Magnifier.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Magnifier : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Medic.cs b/jRandomSkills - SRC Files/src/player/skills/Medic.cs index 502912b..003a643 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Medic.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Medic.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Medic : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/MoneySwap.cs b/jRandomSkills - SRC Files/src/player/skills/MoneySwap.cs index 98b7559..ccaed58 100644 --- a/jRandomSkills - SRC Files/src/player/skills/MoneySwap.cs +++ b/jRandomSkills - SRC Files/src/player/skills/MoneySwap.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class MoneySwap : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Muhammed.cs b/jRandomSkills - SRC Files/src/player/skills/Muhammed.cs index 89ce837..3aa64ec 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Muhammed.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Muhammed.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; using Vector = CounterStrikeSharp.API.Modules.Utils.Vector; -namespace jRandomSkills +namespace src.player.skills { public class Muhammed : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Mute.cs b/jRandomSkills - SRC Files/src/player/skills/Mute.cs index f6ea989..99d4351 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Mute.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Mute.cs @@ -1,9 +1,9 @@ /*using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; -using jRandomSkills.src.player; + using static jRandomSkills.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Mute : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Ninja.cs b/jRandomSkills - SRC Files/src/player/skills/Ninja.cs index b5f9f89..313f136 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Ninja.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Ninja.cs @@ -3,17 +3,17 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Attributes; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Ninja : ISkill { private const Skills skillName = Skills.Ninja; private static readonly ConcurrentDictionary invisibilityChanged = []; - private static readonly ConcurrentDictionary> invisibleEntities = []; + private static readonly ConcurrentDictionary> invisibleEntities = []; private static readonly object setLock = new(); public static void LoadSkill() @@ -74,7 +74,7 @@ namespace jRandomSkills public static void EnableSkill(CCSPlayerController _) { - SkillUtils.EnableTransmit(); + Event.EnableTransmit(); } public static void DisableSkill(CCSPlayerController player) diff --git a/jRandomSkills - SRC Files/src/player/skills/NoNades.cs b/jRandomSkills - SRC Files/src/player/skills/NoNades.cs index 5d47669..766fe34 100644 --- a/jRandomSkills - SRC Files/src/player/skills/NoNades.cs +++ b/jRandomSkills - SRC Files/src/player/skills/NoNades.cs @@ -1,9 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class NoNades : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/NoRecoil.cs b/jRandomSkills - SRC Files/src/player/skills/NoRecoil.cs index 644f686..166c0ba 100644 --- a/jRandomSkills - SRC Files/src/player/skills/NoRecoil.cs +++ b/jRandomSkills - SRC Files/src/player/skills/NoRecoil.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class NoRecoil : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Noclip.cs b/jRandomSkills - SRC Files/src/player/skills/Noclip.cs index 9655772..ec4ddf1 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Noclip.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Noclip.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Noclip : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/None.cs b/jRandomSkills - SRC Files/src/player/skills/None.cs index d77ddbe..6a51de9 100644 --- a/jRandomSkills - SRC Files/src/player/skills/None.cs +++ b/jRandomSkills - SRC Files/src/player/skills/None.cs @@ -1,7 +1,7 @@ using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class None : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/OneShot.cs b/jRandomSkills - SRC Files/src/player/skills/OneShot.cs index dd57557..4d3b9e2 100644 --- a/jRandomSkills - SRC Files/src/player/skills/OneShot.cs +++ b/jRandomSkills - SRC Files/src/player/skills/OneShot.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class OneShot : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/OnlyHead.cs b/jRandomSkills - SRC Files/src/player/skills/OnlyHead.cs index 4b81485..df1a84d 100644 --- a/jRandomSkills - SRC Files/src/player/skills/OnlyHead.cs +++ b/jRandomSkills - SRC Files/src/player/skills/OnlyHead.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class OnlyHead : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/PawelJumper.cs b/jRandomSkills - SRC Files/src/player/skills/PawelJumper.cs index b702514..d1c8c3e 100644 --- a/jRandomSkills - SRC Files/src/player/skills/PawelJumper.cs +++ b/jRandomSkills - SRC Files/src/player/skills/PawelJumper.cs @@ -1,11 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class PawelJumper : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Phoenix.cs b/jRandomSkills - SRC Files/src/player/skills/Phoenix.cs index 3e443be..eafa0e4 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Phoenix.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Phoenix.cs @@ -1,10 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Phoenix : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Pilot.cs b/jRandomSkills - SRC Files/src/player/skills/Pilot.cs index f7633eb..2afb56e 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Pilot.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Pilot.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Pilot : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Planter.cs b/jRandomSkills - SRC Files/src/player/skills/Planter.cs index b9133b8..a6d24c9 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Planter.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Planter.cs @@ -2,10 +2,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Memory; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Planter : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Poison.cs b/jRandomSkills - SRC Files/src/player/skills/Poison.cs index 308df12..775ca85 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Poison.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Poison.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Poison : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/PrimaryBan.cs b/jRandomSkills - SRC Files/src/player/skills/PrimaryBan.cs index e0c9c7c..92bb244 100644 --- a/jRandomSkills - SRC Files/src/player/skills/PrimaryBan.cs +++ b/jRandomSkills - SRC Files/src/player/skills/PrimaryBan.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class PrimaryBan : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Prosthesis.cs b/jRandomSkills - SRC Files/src/player/skills/Prosthesis.cs index d20c3e7..fffcc49 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Prosthesis.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Prosthesis.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Prosthesis : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/PsychicDefusing.cs b/jRandomSkills - SRC Files/src/player/skills/PsychicDefusing.cs index 1dbf0e2..4ed6627 100644 --- a/jRandomSkills - SRC Files/src/player/skills/PsychicDefusing.cs +++ b/jRandomSkills - SRC Files/src/player/skills/PsychicDefusing.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class PsychicDefusing : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Push.cs b/jRandomSkills - SRC Files/src/player/skills/Push.cs index 440b205..df8f809 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Push.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Push.cs @@ -1,10 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Push : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Pyro.cs b/jRandomSkills - SRC Files/src/player/skills/Pyro.cs index 0f28b55..3568c8c 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Pyro.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Pyro.cs @@ -2,10 +2,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Pyro : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/QuickShot.cs b/jRandomSkills - SRC Files/src/player/skills/QuickShot.cs index d2aa2d0..cdaa103 100644 --- a/jRandomSkills - SRC Files/src/player/skills/QuickShot.cs +++ b/jRandomSkills - SRC Files/src/player/skills/QuickShot.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Modules.Memory; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class QuickShot : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/RadarHack.cs b/jRandomSkills - SRC Files/src/player/skills/RadarHack.cs index c0d26b7..7f3be69 100644 --- a/jRandomSkills - SRC Files/src/player/skills/RadarHack.cs +++ b/jRandomSkills - SRC Files/src/player/skills/RadarHack.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class RadarHack : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Rambo.cs b/jRandomSkills - SRC Files/src/player/skills/Rambo.cs index f2a0082..0c54074 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Rambo.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Rambo.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Rambo : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/RandomWeapon.cs b/jRandomSkills - SRC Files/src/player/skills/RandomWeapon.cs index afcd260..9bc5ccb 100644 --- a/jRandomSkills - SRC Files/src/player/skills/RandomWeapon.cs +++ b/jRandomSkills - SRC Files/src/player/skills/RandomWeapon.cs @@ -1,13 +1,12 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; using System.Collections.Immutable; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class RandomWeapon : ISkill { @@ -104,21 +103,20 @@ namespace jRandomSkills var pawn = player.PlayerPawn.Value; if (pawn == null || !pawn.IsValid || pawn.WeaponServices == null) return; - List playerWeapons = []; + ConcurrentBag playerWeapons = []; foreach (var item in pawn.WeaponServices.MyWeapons) if (item != null && item.IsValid && item.Value != null && item.Value.IsValid && !string.IsNullOrEmpty(item.Value.DesignerName)) playerWeapons.Add(item.Value.DesignerName); - if (playerWeapons.Count == 0) + if (playerWeapons.IsEmpty) return; - List weaponList = new(pistols.Concat(rifles)); - weaponList.RemoveAll(w => playerWeapons.Contains(w)); + ConcurrentBag weaponList = [.. pistols.Concat(rifles).Where(w => !playerWeapons.Contains(w))]; if (weaponList.Count == 0) return; - string weapon = weaponList[Instance.Random.Next(weaponList.Count)]; + string weapon = weaponList.ToArray()[Instance.Random.Next(weaponList.Count)]; bool isPistol = pistols.Contains(weapon); string? weaponToRemove = playerWeapons.FirstOrDefault(itemName => diff --git a/jRandomSkills - SRC Files/src/player/skills/ReZombie.cs b/jRandomSkills - SRC Files/src/player/skills/ReZombie.cs index deafdb3..3e7d45c 100644 --- a/jRandomSkills - SRC Files/src/player/skills/ReZombie.cs +++ b/jRandomSkills - SRC Files/src/player/skills/ReZombie.cs @@ -1,12 +1,12 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; using System.Drawing; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class ReZombie : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/ReactiveArmor.cs b/jRandomSkills - SRC Files/src/player/skills/ReactiveArmor.cs index b81da13..4b6ae24 100644 --- a/jRandomSkills - SRC Files/src/player/skills/ReactiveArmor.cs +++ b/jRandomSkills - SRC Files/src/player/skills/ReactiveArmor.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class ReactiveArmor : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Regeneration.cs b/jRandomSkills - SRC Files/src/player/skills/Regeneration.cs index 495d96e..cc54a4b 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Regeneration.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Regeneration.cs @@ -1,9 +1,9 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Regeneration : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Replicator.cs b/jRandomSkills - SRC Files/src/player/skills/Replicator.cs index 2a9abd9..6a535c7 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Replicator.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Replicator.cs @@ -2,12 +2,11 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Replicator : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Retreat.cs b/jRandomSkills - SRC Files/src/player/skills/Retreat.cs index f7f9b2e..b69140c 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Retreat.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Retreat.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Retreat : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/ReturnToSender.cs b/jRandomSkills - SRC Files/src/player/skills/ReturnToSender.cs index 37cc42b..c27b34c 100644 --- a/jRandomSkills - SRC Files/src/player/skills/ReturnToSender.cs +++ b/jRandomSkills - SRC Files/src/player/skills/ReturnToSender.cs @@ -1,11 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class ReturnToSender : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/RichBoy.cs b/jRandomSkills - SRC Files/src/player/skills/RichBoy.cs index 7cacadc..bbad6db 100644 --- a/jRandomSkills - SRC Files/src/player/skills/RichBoy.cs +++ b/jRandomSkills - SRC Files/src/player/skills/RichBoy.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class RichBoy : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/RobinHood.cs b/jRandomSkills - SRC Files/src/player/skills/RobinHood.cs index cd9fda1..4570873 100644 --- a/jRandomSkills - SRC Files/src/player/skills/RobinHood.cs +++ b/jRandomSkills - SRC Files/src/player/skills/RobinHood.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class RobinHood : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Rubber.cs b/jRandomSkills - SRC Files/src/player/skills/Rubber.cs index 4baa918..b034fa9 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Rubber.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Rubber.cs @@ -1,11 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Rubber: ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Saper.cs b/jRandomSkills - SRC Files/src/player/skills/Saper.cs index 23c1040..d713ba9 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Saper.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Saper.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Saper : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/SecondLife.cs b/jRandomSkills - SRC Files/src/player/skills/SecondLife.cs index 8f00647..4a3f9fa 100644 --- a/jRandomSkills - SRC Files/src/player/skills/SecondLife.cs +++ b/jRandomSkills - SRC Files/src/player/skills/SecondLife.cs @@ -1,11 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class SecondLife : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Shade.cs b/jRandomSkills - SRC Files/src/player/skills/Shade.cs index fb4403a..5857f1b 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Shade.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Shade.cs @@ -4,14 +4,13 @@ using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; using CS2TraceRay.Class; using CS2TraceRay.Struct; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; using System.Numerics; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using Vector = CounterStrikeSharp.API.Modules.Utils.Vector; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Shade : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/ShortBomb.cs b/jRandomSkills - SRC Files/src/player/skills/ShortBomb.cs index 21cfd85..8af2119 100644 --- a/jRandomSkills - SRC Files/src/player/skills/ShortBomb.cs +++ b/jRandomSkills - SRC Files/src/player/skills/ShortBomb.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class ShortBomb : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Silent.cs b/jRandomSkills - SRC Files/src/player/skills/Silent.cs index 78845cf..ee553de 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Silent.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Silent.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Modules.UserMessages; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Silent : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/SniperElite.cs b/jRandomSkills - SRC Files/src/player/skills/SniperElite.cs index e880a0a..b999b41 100644 --- a/jRandomSkills - SRC Files/src/player/skills/SniperElite.cs +++ b/jRandomSkills - SRC Files/src/player/skills/SniperElite.cs @@ -1,11 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class SniperElite : ISkill { @@ -93,10 +93,13 @@ namespace jRandomSkills if (createdWeapon != null && createdWeapon.IsValid && createdWeapon.DesignerName == "weapon_awp") { - if (playerAWPs.TryGetValue(player.SteamID, out List? value)) - value.Add(createdWeapon); - else - playerAWPs.TryAdd(player.SteamID, [createdWeapon]); + lock (setLock) + { + if (playerAWPs.TryGetValue(player.SteamID, out var list)) + list.Add(createdWeapon); + else + playerAWPs.TryAdd(player.SteamID, [createdWeapon]); + } } DeleteDroppedAWP(player); }); @@ -111,23 +114,26 @@ namespace jRandomSkills var weaponServices = pawn.WeaponServices; if (weaponServices == null) return; - List playerWeapons = weaponServices.MyWeapons.Where(w => w != null && w.IsValid && w.Value != null && w.Value.IsValid) - .Select(w => w.Value!.Index).ToList(); + ConcurrentBag playerWeapons = [.. weaponServices.MyWeapons.Where(w => w != null && w.IsValid && w.Value != null && w.Value.IsValid) + .Select(w => w.Value!.Index)]; - if (playerAWPs.TryGetValue(player.SteamID, out var AWPs)) - foreach (var awp in AWPs.ToList()) - { - if (awp != null && awp.IsValid) + lock (setLock) + { + if (playerAWPs.TryGetValue(player.SteamID, out var AWPs)) + foreach (var awp in AWPs.ToList()) { - if (!playerWeapons.Contains(awp.Index)) + if (awp != null && awp.IsValid) { - awp.AcceptInput("Kill"); - AWPs.Remove(awp); + if (!playerWeapons.Contains(awp.Index)) + { + awp.AcceptInput("Kill"); + AWPs.Remove(awp); + } } + else + AWPs.Remove(awp!); } - else - AWPs.Remove(awp!); - } + } } private static CBasePlayerWeapon? GetActiveRifle(CCSPlayerController player) diff --git a/jRandomSkills - SRC Files/src/player/skills/Soldier.cs b/jRandomSkills - SRC Files/src/player/skills/Soldier.cs index 7e1aec2..263959d 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Soldier.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Soldier.cs @@ -1,11 +1,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Soldier : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/SoundMaker.cs b/jRandomSkills - SRC Files/src/player/skills/SoundMaker.cs index ca1ce89..6b50822 100644 --- a/jRandomSkills - SRC Files/src/player/skills/SoundMaker.cs +++ b/jRandomSkills - SRC Files/src/player/skills/SoundMaker.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class SoundMaker : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Spectator.cs b/jRandomSkills - SRC Files/src/player/skills/Spectator.cs index 75774c2..3940508 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Spectator.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Spectator.cs @@ -1,12 +1,12 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; using System.Drawing; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Spectator : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/SwapPosition.cs b/jRandomSkills - SRC Files/src/player/skills/SwapPosition.cs index d9c3ea5..287db96 100644 --- a/jRandomSkills - SRC Files/src/player/skills/SwapPosition.cs +++ b/jRandomSkills - SRC Files/src/player/skills/SwapPosition.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class SwapPosition : ISkill { @@ -47,7 +46,7 @@ namespace jRandomSkills { SteamID = player.SteamID, CanUse = false, - Cooldown = cooldownBeforeUse <= 0 ? DateTime.MinValue : Event.freezeTimeEnd.AddSeconds(cooldownBeforeUse - SkillsInfo.GetValue(skillName, "cooldown")), + Cooldown = cooldownBeforeUse <= 0 ? DateTime.MinValue : Event.GetFreezeTimeEnd().AddSeconds(cooldownBeforeUse - SkillsInfo.GetValue(skillName, "cooldown")), LastClick = DateTime.MinValue, FindedEnemy = false, }); diff --git a/jRandomSkills - SRC Files/src/player/skills/Teleporter.cs b/jRandomSkills - SRC Files/src/player/skills/Teleporter.cs index 6919582..4c130f4 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Teleporter.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Teleporter.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; using Vector = CounterStrikeSharp.API.Modules.Utils.Vector; -namespace jRandomSkills +namespace src.player.skills { public class Teleporter : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Thief.cs b/jRandomSkills - SRC Files/src/player/skills/Thief.cs index ceb88e0..697d4f0 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Thief.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Thief.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class Thief : ISkill { @@ -75,7 +74,7 @@ namespace jRandomSkills var enemies = Utilities.GetPlayers().Where(p => p.PawnIsAlive && p.Team != player.Team && p.IsValid && !p.IsBot && !p.IsHLTV && p.Team != CsTeam.Spectator && p.Team != CsTeam.None).ToArray(); if (enemies.Length > 0) { - List skills = []; + ConcurrentBag skills = []; ConcurrentBag<(string, string)> menuItems = []; foreach (var enemy in enemies) { @@ -140,7 +139,7 @@ namespace jRandomSkills player.PrintToChat($" {ChatColors.Green}" + player.GetTranslation("thief_player_info", enemy.PlayerName)); if (SkillsInfo.GetValue(enemySkill, "disableOnFreezeTime") && SkillUtils.IsFreezeTime()) - Instance?.AddTimer(Math.Max((float)(Event.freezeTimeEnd - DateTime.Now).TotalSeconds, 0), () => { + Instance?.AddTimer(Math.Max((float)(Event.GetFreezeTimeEnd() - DateTime.Now).TotalSeconds, 0), () => { if (Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID && p.Skill == enemySkill) == null) return; Instance?.SkillAction(enemySkill.ToString(), "EnableSkill", new[] { player }); }); diff --git a/jRandomSkills - SRC Files/src/player/skills/ThirdEye.cs b/jRandomSkills - SRC Files/src/player/skills/ThirdEye.cs index d093621..05bcfb6 100644 --- a/jRandomSkills - SRC Files/src/player/skills/ThirdEye.cs +++ b/jRandomSkills - SRC Files/src/player/skills/ThirdEye.cs @@ -1,11 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; using System.Drawing; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class ThirdEye : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/Thorns.cs b/jRandomSkills - SRC Files/src/player/skills/Thorns.cs index 2e13ede..10a0530 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Thorns.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Thorns.cs @@ -1,9 +1,9 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Thorns : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/ToxicSmoke.cs b/jRandomSkills - SRC Files/src/player/skills/ToxicSmoke.cs index 366b9b4..58dceae 100644 --- a/jRandomSkills - SRC Files/src/player/skills/ToxicSmoke.cs +++ b/jRandomSkills - SRC Files/src/player/skills/ToxicSmoke.cs @@ -2,15 +2,16 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using System.Collections.Concurrent; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class ToxicSmoke : ISkill { private const Skills skillName = Skills.ToxicSmoke; - private static readonly List smokes = []; + private static readonly ConcurrentDictionary smokes = []; public static void LoadSkill() { @@ -59,7 +60,7 @@ namespace jRandomSkills if (player == null || !player.IsValid) return; var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); if (playerInfo?.Skill != skillName) return; - smokes.Add(new Vector(@event.X, @event.Y, @event.Z)); + smokes.TryAdd(new Vector(@event.X, @event.Y, @event.Z), 0); } public static void SmokegrenadeExpired(EventSmokegrenadeExpired @event) @@ -68,7 +69,8 @@ namespace jRandomSkills if (player == null || !player.IsValid) return; var playerInfo = Instance.SkillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); if (playerInfo?.Skill != skillName) return; - smokes.RemoveAll(v => v.X == @event.X && v.Y == @event.Y && v.Z == @event.Z); + foreach (var smoke in smokes.Keys.Where(v => v.X == @event.X && v.Y == @event.Y && v.Z == @event.Z)) + smokes.TryRemove(smoke, out _); } private static void AddHealth(CCSPlayerPawn player, int health) @@ -86,7 +88,7 @@ namespace jRandomSkills public static void OnTick() { - foreach (Vector smokePos in smokes) + foreach (Vector smokePos in smokes.Keys) foreach (var player in Utilities.GetPlayers()) if (Server.TickCount % 17 == 0) if (player != null && player.IsValid && player.PlayerPawn.Value != null && player.PlayerPawn.Value.IsValid) diff --git a/jRandomSkills - SRC Files/src/player/skills/Wallhack.cs b/jRandomSkills - SRC Files/src/player/skills/Wallhack.cs index 406055b..631b9ee 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Wallhack.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Wallhack.cs @@ -2,16 +2,17 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Attributes; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; +using src.utils; +using System.Collections.Concurrent; using System.Drawing; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Wallhack : ISkill { private const Skills skillName = Skills.Wallhack; - private static readonly List<(CDynamicProp, CDynamicProp, CsTeam)> glows = []; + private static readonly ConcurrentBag<(CDynamicProp, CDynamicProp, CsTeam)> glows = []; public static void LoadSkill() { @@ -53,8 +54,8 @@ namespace jRandomSkills public static void EnableSkill(CCSPlayerController _) { - SkillUtils.EnableTransmit(); - if (glows.Count == 0) + Event.EnableTransmit(); + if (glows.IsEmpty) SetGlowEffectForAll(); } diff --git a/jRandomSkills - SRC Files/src/player/skills/Watchmaker.cs b/jRandomSkills - SRC Files/src/player/skills/Watchmaker.cs index 5c0bdb1..6ed3a68 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Watchmaker.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Watchmaker.cs @@ -1,11 +1,10 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Watchmaker : ISkill { diff --git a/jRandomSkills - SRC Files/src/player/skills/WeaponsSwap.cs b/jRandomSkills - SRC Files/src/player/skills/WeaponsSwap.cs index f6370df..da07321 100644 --- a/jRandomSkills - SRC Files/src/player/skills/WeaponsSwap.cs +++ b/jRandomSkills - SRC Files/src/player/skills/WeaponsSwap.cs @@ -1,12 +1,11 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; using System.Collections.Concurrent; +using src.utils; -namespace jRandomSkills +namespace src.player.skills { public class WeaponsSwap : ISkill { @@ -147,7 +146,7 @@ namespace jRandomSkills private static string[]? GetWeapons(CCSPlayerController player) { - List playerWeapons = []; + ConcurrentBag playerWeapons = []; var pawn = player.PlayerPawn.Value; if (pawn == null || !pawn.IsValid || player.LifeState != (byte)LifeState_t.LIFE_ALIVE) return null; if (pawn.WeaponServices == null) return null; diff --git a/jRandomSkills - SRC Files/src/player/skills/Zeus.cs b/jRandomSkills - SRC Files/src/player/skills/Zeus.cs index 2547b3b..aa378a0 100644 --- a/jRandomSkills - SRC Files/src/player/skills/Zeus.cs +++ b/jRandomSkills - SRC Files/src/player/skills/Zeus.cs @@ -1,10 +1,10 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using static jRandomSkills.jRandomSkills; +using src.utils; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.player.skills { public class Zeus : ISkill { diff --git a/jRandomSkills - SRC Files/src/utils/Config.cs b/jRandomSkills - SRC Files/src/utils/Config.cs index be089e9..0fae3f4 100644 --- a/jRandomSkills - SRC Files/src/utils/Config.cs +++ b/jRandomSkills - SRC Files/src/utils/Config.cs @@ -1,8 +1,8 @@ using Microsoft.Extensions.Logging; using Newtonsoft.Json; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.utils { public static class Config { diff --git a/jRandomSkills - SRC Files/src/utils/Findtarget.cs b/jRandomSkills - SRC Files/src/utils/Findtarget.cs index f3e5543..830af46 100644 --- a/jRandomSkills - SRC Files/src/utils/Findtarget.cs +++ b/jRandomSkills - SRC Files/src/utils/Findtarget.cs @@ -1,68 +1,68 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Commands; using CounterStrikeSharp.API.Modules.Commands.Targeting; -using jRandomSkills.src.utils; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; -namespace jRandomSkills; - -public class FindTarget +namespace src.utils { - public static (List players, string targetname) Find - ( - CommandInfo command, - int minArgCount, - bool singletarget, - bool ignoreMessage = false - ) + public class FindTarget { - if (command.ArgCount < minArgCount) + public static (List players, string targetname) Find + ( + CommandInfo command, + int minArgCount, + bool singletarget, + bool ignoreMessage = false + ) { - return (new List(), string.Empty); - } - - TargetResult targetresult = command.GetArgTargetResult(1); - - if (targetresult.Players.Count == 0) - { - if (!ignoreMessage && command.CallingPlayer != null) - command.ReplyToCommand(command.CallingPlayer.GetTranslation("no_player")); - - return (new List(), string.Empty); - } - else if (singletarget && targetresult.Players.Count > 1) - { - if (command.CallingPlayer != null) - command.ReplyToCommand(command.CallingPlayer.GetTranslation("duplicate_player")); - return (new List(), string.Empty); - } - - string targetname; - - if (targetresult.Players.Count == 1) - { - targetname = targetresult.Players.Single().PlayerName; - } - else - { - Target.TargetTypeMap.TryGetValue(command.GetArg(1), out TargetType type); - - targetname = type switch + if (command.ArgCount < minArgCount) { - TargetType.GroupAll => Instance.Localizer["all"], - TargetType.GroupBots => Instance.Localizer["bots"], - TargetType.GroupHumans => Instance.Localizer["humans"], - TargetType.GroupAlive => Instance.Localizer["alive"], - TargetType.GroupDead => Instance.Localizer["dead"], - TargetType.GroupNotMe => Instance.Localizer["notme"], - TargetType.PlayerMe => targetresult.Players.First().PlayerName, - TargetType.TeamCt => Instance.Localizer["ct"], - TargetType.TeamT => Instance.Localizer["t"], - TargetType.TeamSpec => Instance.Localizer["spec"], - _ => targetresult.Players.First().PlayerName - }; - } + return (new List(), string.Empty); + } - return (targetresult.Players, targetname); + TargetResult targetresult = command.GetArgTargetResult(1); + + if (targetresult.Players.Count == 0) + { + if (!ignoreMessage && command.CallingPlayer != null) + command.ReplyToCommand(command.CallingPlayer.GetTranslation("no_player")); + + return (new List(), string.Empty); + } + else if (singletarget && targetresult.Players.Count > 1) + { + if (command.CallingPlayer != null) + command.ReplyToCommand(command.CallingPlayer.GetTranslation("duplicate_player")); + return (new List(), string.Empty); + } + + string targetname; + + if (targetresult.Players.Count == 1) + { + targetname = targetresult.Players.Single().PlayerName; + } + else + { + Target.TargetTypeMap.TryGetValue(command.GetArg(1), out TargetType type); + + targetname = type switch + { + TargetType.GroupAll => Instance.Localizer["all"], + TargetType.GroupBots => Instance.Localizer["bots"], + TargetType.GroupHumans => Instance.Localizer["humans"], + TargetType.GroupAlive => Instance.Localizer["alive"], + TargetType.GroupDead => Instance.Localizer["dead"], + TargetType.GroupNotMe => Instance.Localizer["notme"], + TargetType.PlayerMe => targetresult.Players.First().PlayerName, + TargetType.TeamCt => Instance.Localizer["ct"], + TargetType.TeamT => Instance.Localizer["t"], + TargetType.TeamSpec => Instance.Localizer["spec"], + _ => targetresult.Players.First().PlayerName + }; + } + + return (targetresult.Players, targetname); + } } } \ No newline at end of file diff --git a/jRandomSkills - SRC Files/src/utils/Localization.cs b/jRandomSkills - SRC Files/src/utils/Localization.cs index 55e38d2..11818d9 100644 --- a/jRandomSkills - SRC Files/src/utils/Localization.cs +++ b/jRandomSkills - SRC Files/src/utils/Localization.cs @@ -1,14 +1,13 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; using MaxMind.Db; using Newtonsoft.Json; using System.Net; using System.Collections.Concurrent; -using System.Text.RegularExpressions; +using src.player; -namespace jRandomSkills.src.utils +namespace src.utils { public static class Localization { @@ -109,7 +108,7 @@ namespace jRandomSkills.src.utils var skilLDescription = desc2 == skillName ? player.GetTranslation($"{skill.ToString().ToLower()}_desc") - : (desc2.Contains('%') ? desc2.Replace(value.ToString(), Math.Round(value * 100, 0).ToString()) : desc2); + : desc2.Contains('%') ? desc2.Replace(value.ToString(), Math.Round(value * 100, 0).ToString()) : desc2; return skilLDescription; } @@ -124,14 +123,14 @@ namespace jRandomSkills.src.utils return; } - List translations = []; + ConcurrentBag translations = []; for (int i = 0; i < key.Length; i++) { - object[] currentArgs = (args != null && i < args.Length) ? args[i] : []; + object[] currentArgs = args != null && i < args.Length ? args[i] : []; string translation = GetTranslation(key[i], langCode, currentArgs); translations.Add(translation); } - player.PrintToChat(string.Format(message, translations.ToArray())); + player.PrintToChat(string.Format(message, [.. translations])); } } diff --git a/jRandomSkills - SRC Files/src/utils/SkillUtils.cs b/jRandomSkills - SRC Files/src/utils/SkillUtils.cs index 6f7d2e4..2832385 100644 --- a/jRandomSkills - SRC Files/src/utils/SkillUtils.cs +++ b/jRandomSkills - SRC Files/src/utils/SkillUtils.cs @@ -5,18 +5,14 @@ using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Memory; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; -using jRandomSkills.src.utils; using System.Runtime.InteropServices; using WASDMenuAPI.Classes; using WASDSharedAPI; using static CounterStrikeSharp.API.Core.Listeners; using System.Collections.Concurrent; -using System; -using static System.Net.Mime.MediaTypeNames; -using System.Drawing; +using src.player; -namespace jRandomSkills +namespace src.utils { public static class SkillUtils { @@ -150,15 +146,6 @@ namespace jRandomSkills return designerName; } - public static void EnableTransmit() - { - if (!Event.isTransmitRegistered) - { - jRandomSkills.Instance?.RegisterListener(Event.CheckTransmit); - Event.isTransmitRegistered = true; - } - } - private static IWasdMenuManager? GetMenuManager() { if (jRandomSkills.Instance.MenuManager == null) diff --git a/jRandomSkills - SRC Files/src/utils/SkillsInfo.cs b/jRandomSkills - SRC Files/src/utils/SkillsInfo.cs index d803fbb..c4bb68e 100644 --- a/jRandomSkills - SRC Files/src/utils/SkillsInfo.cs +++ b/jRandomSkills - SRC Files/src/utils/SkillsInfo.cs @@ -1,13 +1,13 @@ -using CounterStrikeSharp.API; -using CounterStrikeSharp.API.Modules.Utils; -using jRandomSkills.src.player; +using CounterStrikeSharp.API.Modules.Utils; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using src.player; +using System.Collections.Concurrent; using System.Reflection; -using static jRandomSkills.jRandomSkills; +using static src.jRandomSkills; -namespace jRandomSkills +namespace src.utils { public static class SkillsInfo { @@ -106,11 +106,11 @@ namespace jRandomSkills return default!; } - public class SkillsInfoModel : List + public class SkillsInfoModel : ConcurrentBag { public SkillsInfoModel() { - AddRange( + foreach (var skill in Assembly.GetExecutingAssembly().GetTypes() .Where(t => typeof(DefaultSkillInfo).IsAssignableFrom(t) && t.Name == "SkillConfig") .Select(t => @@ -121,9 +121,9 @@ namespace jRandomSkills return ctor.Invoke(args) as DefaultSkillInfo; }) .Where(instance => instance != null) - .Cast() - ); - } + .Cast()) + Add(skill); + } } public class DefaultSkillInfo(Skills skill, bool active = true, string color = "#ffffff", CsTeam onlyTeam = CsTeam.None, bool disableOnFreezeTime = false, bool needsTeammates = false) diff --git a/jRandomSkills - Server Files/plugins/!jRandomSkills/!jRandomSkills.dll b/jRandomSkills - Server Files/plugins/!jRandomSkills/!jRandomSkills.dll index d58ab4f5877f73d2eb577ff98a9ffd0ecbb5f2ed..92ce4eebeafb56f5d3c13f14eac2e821fc3333fc 100644 GIT binary patch literal 404992 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

T(VNqK*MRPWMmi7;;~tBoi(d`Nf_NKN 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 J|Ibn2e*-*z<|P0C diff --git a/readme.md b/readme.md index ee61999..3c90cfa 100644 --- a/readme.md +++ b/readme.md @@ -72,7 +72,7 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus. | Darkness | Applies a darkness effect to a chosen enemy | - | | Deactivator | Choose a player whose skill you want to disable | - | | Deaf | Choose a player to mute all sounds for | - | -| Disarmament | You have a random chance to make an enemy drop their weapon on hit | (65 - 85)% | +| Disarmament | You have a random chance to make an enemy drop their weapon on hit | (20 - 35)% | | Rangefinder | You can see the distance to the nearest enemy | - | | Dash | Perform a second jump to dash | - | | Dracula | Hitting an enemy restores health equal to a percentage of the damage dealt | - | @@ -292,6 +292,60 @@ This plugin uses content from the following projects: ## 📋 Changelog +
+v1.1.7 + +- #### General: + - ###### Update the dependency to the latest version. + - ###### Information about skills is available in `skillsInfo.json` instead of `config.json`. + - ###### Added the `jRandomSkills.gamedata.json` file. + - ###### Added the option to disable a specific power during freeze time (Disabled by default: ). + - ###### Added `LanguageSystem` options to the config for detailed language assignment management. + - ###### The `StartGameCommand` command now includes a changeable start parameter in config. + - ###### Added `DisplayAlwaysDescription` option to the config to show the description all the time. + - ###### Added `HtmlHudCustomisation` options to config for setting colours and font size. + - ###### Can be set to empty text: your_skill/drawing_skill/observer_skill/XXX_select_info. + - ###### Option to set the obtained value in the name/description of the skill (`{0}`). + - ###### Fixed skill cooldown time display (Rounding up). + - ###### The `!reload` command now refreshes all parameters from the all configs. + - ###### Most of the collection has been replaced with safe-threading to avoid server crashes (idea by: @ebat_kopat777). +- #### Skill improvements: + - ##### Long Knife: + - ###### A secondary knife attack also deals damage. + - ##### Wallhack: + - ###### Glows are created just once, instead of being created again for each player. + - ##### Position Swap: + - ###### Added a configurable cooldown at the start of the round. + - ##### Spectator: + - ###### The method used to attach the camera has changed. + - ##### Noclip: + - ###### Return to the last place where you used skill if you fall below 3,000 units. + - ###### Added an option to disable the noclip when it is active. + - ##### Ninja: + - ###### Fixed an issue with weapons not being visible after death. + - ##### Muhammed: + - ###### The message at the explosion is configurable (in languages/). + - ###### Fixed a bug with the grenade not detonating. + - ##### Ghost: + - ###### Fixed an issue with weapons not being visible after death. + - ##### Explosive Shot: + - ###### Fixed a bug with the grenade not detonating. + - ##### Enemy Spawn: + - ###### Added a configurable cooldown at the start of the round. + - ##### Disarmament: + - ###### Back to dropping weapons instead of changing to slot3. + - ###### The chance of dropping weapons has been reduced: (20–50)% → (20–35)% + - ##### Chicken: + - ###### The method used to attach the chicken has changed. + - ###### Player with skill can see a model of your chicken. + - ##### C4 Camouflage: + - ###### Fixed an issue with weapons not being visible after death. + - ##### Blade Master: + - ###### Movement speed with a knife has been reduced by 10% (configurable). + - ##### AntyFlash: + - ###### Added the option in config to change the flash duration of your flashes. +
+
v1.1.6