Improve skill cooldowns and weapon handling logic

This commit is contained in:
Juzlus 2025-08-30 03:24:02 +02:00
parent 28a7d0048c
commit 1d9e70aeda
9 changed files with 38 additions and 14 deletions

View file

@ -12,6 +12,7 @@ namespace jRandomSkills
public class Ghost : ISkill
{
private const Skills skillName = Skills.Ghost;
private static bool roundEnd = false;
private static string[] disabledWeapons =
{
"weapon_deagle",
@ -60,12 +61,12 @@ namespace jRandomSkills
Instance.RegisterEventHandler<EventRoundFreezeEnd>((@event, info) =>
{
roundEnd = false;
Instance.AddTimer(0.1f, () =>
{
foreach (var player in Utilities.GetPlayers())
{
if (!Instance.IsPlayerValid(player)) continue;
var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID);
if (playerInfo?.Skill == skillName)
EnableSkill(player);
@ -84,6 +85,7 @@ namespace jRandomSkills
if (playerInfo?.Skill == skillName)
DisableSkill(player);
}
roundEnd = true;
return HookResult.Continue;
});
@ -180,6 +182,7 @@ namespace jRandomSkills
private static void SetWeaponAttack(CCSPlayerController player, bool disableWeapon)
{
if (roundEnd) return;
foreach (var weapon in player.Pawn.Value.WeaponServices?.MyWeapons)
if (weapon != null && weapon.IsValid && weapon.Value != null && weapon.Value.IsValid)
if (disabledWeapons.Contains(weapon?.Value?.DesignerName))