diff --git a/jRandomSkills - SRC Files/src/player/skills/FriendlyFire.cs b/jRandomSkills - SRC Files/src/player/skills/FriendlyFire.cs index 5641477..5f47e04 100644 --- a/jRandomSkills - SRC Files/src/player/skills/FriendlyFire.cs +++ b/jRandomSkills - SRC Files/src/player/skills/FriendlyFire.cs @@ -16,9 +16,6 @@ namespace src.player.skills public static void LoadSkill() { SkillUtils.RegisterSkill(skillName, SkillsInfo.GetValue(skillName, "color")); - - try { defaultAutoKick = ConVar.Find("mp_autokick")?.GetPrimitiveValue() ?? true; } - catch { defaultAutoKick = true; } } public static void NewRound() @@ -26,7 +23,24 @@ namespace src.player.skills if (!autoKickOverridden) return; autoKickOverridden = false; - Server.ExecuteCommand($"mp_autokick {(defaultAutoKick ? 1 : 0)}"); + if (defaultAutoKick) Server.ExecuteCommand("mp_autokick 1"); + } + + private static bool TrySuppressAutoKick() + { + if (autoKickOverridden) return true; + if (!SkillsInfo.GetValue(skillName, "manageAutoKick")) return false; + + bool live; + try { live = ConVar.Find("mp_autokick")?.GetPrimitiveValue() ?? false; } + catch { return false; } + + if (!live) return false; + + defaultAutoKick = true; + autoKickOverridden = true; + Server.ExecuteCommand("mp_autokick 0"); + return true; } public static void OnTakeDamage(CBaseEntity damagedEntity, CTakeDamageInfo damageInfo) @@ -67,11 +81,7 @@ namespace src.player.skills float damage = damageInfo.Damage; damageInfo.Damage = 0; - if (!autoKickOverridden) - { - autoKickOverridden = true; - Server.ExecuteCommand("mp_autokick 0"); - } + TrySuppressAutoKick(); SkillUtils.AddHealth( victimPawn, @@ -80,9 +90,10 @@ namespace src.player.skills ); } - public class SkillConfig(Skills skill = skillName, bool active = true, string color = "#ff0000", CsTeam onlyTeam = CsTeam.None, bool disableOnFreezeTime = false, bool needsTeammates = true, string requiredPermission = "", float? hudDuration = null, float? descriptionHudDuration = null, int maxPerServer = -1, Rarity rarity = Rarity.Common, float healthDamageMultiplier = .3f) : SkillsInfo.DefaultSkillInfo(skill, active, color, onlyTeam, disableOnFreezeTime, needsTeammates, requiredPermission, hudDuration, descriptionHudDuration, maxPerServer, rarity) + public class SkillConfig(Skills skill = skillName, bool active = true, string color = "#ff0000", CsTeam onlyTeam = CsTeam.None, bool disableOnFreezeTime = false, bool needsTeammates = true, string requiredPermission = "", float? hudDuration = null, float? descriptionHudDuration = null, int maxPerServer = -1, Rarity rarity = Rarity.Common, float healthDamageMultiplier = .3f, bool manageAutoKick = true) : SkillsInfo.DefaultSkillInfo(skill, active, color, onlyTeam, disableOnFreezeTime, needsTeammates, requiredPermission, hudDuration, descriptionHudDuration, maxPerServer, rarity) { public float HealthDamageMultiplier { get; set; } = healthDamageMultiplier; + public bool ManageAutoKick { get; set; } = manageAutoKick; } } } diff --git a/jRandomSkills - Server Files/plugins/jRandomSkills/WASDMenuAPI.dll b/jRandomSkills - Server Files/plugins/jRandomSkills/WASDMenuAPI.dll index de83998..01168b1 100644 Binary files a/jRandomSkills - Server Files/plugins/jRandomSkills/WASDMenuAPI.dll and b/jRandomSkills - Server Files/plugins/jRandomSkills/WASDMenuAPI.dll differ diff --git a/jRandomSkills - Server Files/plugins/jRandomSkills/configs/skillsInfo.json b/jRandomSkills - Server Files/plugins/jRandomSkills/configs/skillsInfo.json index ec13255..0e701e8 100644 --- a/jRandomSkills - Server Files/plugins/jRandomSkills/configs/skillsInfo.json +++ b/jRandomSkills - Server Files/plugins/jRandomSkills/configs/skillsInfo.json @@ -1702,6 +1702,7 @@ }, { "HealthDamageMultiplier": 0.3, + "ManageAutoKick": true, "NeedsTeammates": true, "DisableOnFreezeTime": false, "DisableOnPistolRound": false, diff --git a/jRandomSkills - Server Files/plugins/jRandomSkills/jRandomSkills.dll b/jRandomSkills - Server Files/plugins/jRandomSkills/jRandomSkills.dll index 86d7a08..686209f 100644 Binary files a/jRandomSkills - Server Files/plugins/jRandomSkills/jRandomSkills.dll and b/jRandomSkills - Server Files/plugins/jRandomSkills/jRandomSkills.dll differ