From 68f26a22f4222d299833651e47ac11720dc41df7 Mon Sep 17 00:00:00 2001 From: D3X Date: Mon, 23 Sep 2024 12:52:05 +0200 Subject: [PATCH] New Release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Dodano więcej modeli do mocy Impostor. - Zmieniono sposób rejestrowania mocy. - Zmieniono wiadomości informacyjne o mocy zabójcy oraz sojusznikach. - Naprawiono crash serwera przy fall damage --- .../src/dRandomSkills.cs | 33 +--- .../src/menu/Menu.cs | 2 +- .../src/player/PlayerEvents.cs | 23 ++- .../src/player/PlayerOnTick.cs | 11 +- .../src/player/skills/AntyFlash.cs | 2 + .../src/player/skills/Astronauta.cs | 2 + .../src/player/skills/Bogacz.cs | 2 + .../src/player/skills/BunnyHop.cs | 2 + .../src/player/skills/Cien.cs | 2 + .../src/player/skills/Drakula.cs | 4 +- .../src/player/skills/Duszek.cs | 2 + .../src/player/skills/Eliminator.cs | 4 +- .../src/player/skills/Flash.cs | 6 +- .../src/player/skills/Impostor.cs | 158 ++++++++++++++++-- .../src/player/skills/Katapulta.cs | 4 +- .../src/player/skills/Kurczak.cs | 6 +- .../src/player/skills/Medyk.cs | 10 +- .../src/player/skills/Muhammed.cs | 9 +- .../src/player/skills/NieskonczoneAmmo.cs | 3 +- .../src/player/skills/ObrotWroga.cs | 5 +- .../src/player/skills/OneShot.cs | 19 ++- .../src/player/skills/PawelJumper.cs | 4 +- .../src/player/skills/Phoenix.cs | 19 +-- .../src/player/skills/Pilot.cs | 11 +- .../src/player/skills/Rambo.cs | 2 + .../src/player/skills/Rozbrojenie.cs | 4 +- .../src/player/skills/Teleporter.cs | 2 + .../src/player/skills/ZelaznaGlowa.cs | 2 + .../src/utils/Utils.cs | 8 + .../plugins/dRandomSkills/dRandomSkills.dll | Bin 61952 -> 72192 bytes 30 files changed, 253 insertions(+), 108 deletions(-) diff --git a/[ D3X ] dRandomSkills - SRC Files/src/dRandomSkills.cs b/[ D3X ] dRandomSkills - SRC Files/src/dRandomSkills.cs index 1dd6fec..eceb28b 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/dRandomSkills.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/dRandomSkills.cs @@ -12,7 +12,7 @@ namespace dRandomSkills public override string ModuleName => "[CS2] D3X - [ Random Skills ]"; public override string ModuleAuthor => "D3X"; public override string ModuleDescription => "Plugin dodaje na serwer losowe moce co runde na serwery CS2 by D3X"; - public override string ModuleVersion => "1.0.0"; + public override string ModuleVersion => "1.0.1"; public override void Load(bool hotReload) { @@ -74,35 +74,6 @@ namespace dRandomSkills public static class SkillData { - public static dSkill_SkillInfo[] Skills { get; } = new[] - { - new dSkill_SkillInfo("Paweł Jumper", "Otrzymujesz dodatkowy Skok", "#FFA500"), - new dSkill_SkillInfo("Duszek", "Jesteś całkowicie niewidzialny", "#FFFFFF"), - new dSkill_SkillInfo("BunnyHop", "Otrzymujesz auto BunnyHopa", "#EB4034"), - new dSkill_SkillInfo("Impostor", "Otrzymujesz na start rundy model postaci wroga", "#99140B"), - new dSkill_SkillInfo("Phoenix", "Masz 35% szans na odrodzenie się po śmierci", "#ff5C0A"), - new dSkill_SkillInfo("Muhammed", "Po śmierci wybucha i zabija graczy w obrębie", "#F5CB42"), - new dSkill_SkillInfo("Pilot", "Latanie na noclip przez dany czas", "#1466F5"), - new dSkill_SkillInfo("Rambo", "Otrzymujesz losową ilość zdrowia na start rundy", "#009905"), - new dSkill_SkillInfo("Bogacz", "Otrzymujesz losową ilość kasy na start rundy", "#D4AF37"), - new dSkill_SkillInfo("Flash", "Otrzymujesz losową ilość speed na start rundy", "#A31912"), - new dSkill_SkillInfo("Astronauta", "Otrzymujesz losową ilość grawitacji na start rundy", "#7E10AD"), - new dSkill_SkillInfo("Medyk", "Otrzymujesz losową ilość apteczek na start rundy", "#42FF5F"), - new dSkill_SkillInfo("Kurczak", "Otrzymujesz model kurczaka + jesteś o 10% szybszy", "#FF8B42"), - new dSkill_SkillInfo("One Shot", "Po trafieniu od razu zabija przeciwnika", "#ff5CD9"), - new dSkill_SkillInfo("Drakula", "Po trafieniu ofiary otrzymujesz zwrot zdrowia w postaci danego procentu zadanych obrażeń", "#FA050D"), - new dSkill_SkillInfo("Anty Flash", "Posiadasz odporność na flashe", "#D6E6FF"), - // new dSkill_SkillInfo("Mini Gun", "Strzelasz 50% szybciej z broni", "#2CF5BF"), - new dSkill_SkillInfo("Teleportator", "Zamieniasz się miejscami z trafionym wrogiem", "#8A2BE2"), - new dSkill_SkillInfo("Cień", "Teleportujesz się za plecy losowego wroga", "#18171A"), - new dSkill_SkillInfo("Katapulta", "Masz 25% szans na podrzucenie wroga", "#FF4500"), - new dSkill_SkillInfo("Nieskończone Ammo", "Otrzymujesz nieskończoną ilość ammo do wszystkich swoich broni", "#0000FF"), - new dSkill_SkillInfo("Żelazna Głowa", "Nie otrzymujesz obrażeń w głowę", "#8B4513"), - new dSkill_SkillInfo("Eliminator", "Możesz szybciej podłożyć bombe oraz ją zdefować", "#8A2BE2"), - // new dSkill_SkillInfo("Redukcja Obrażeń", "Redukujesz daną ilość obrażeń, które otrzymujesz", "#696969"), - // new dSkill_SkillInfo("Mnożnik Obrażeń", "Zadajesz pomnożoną ilość obrażeń", "#FF0000"), - new dSkill_SkillInfo("Obrót Wroga", "Masz 25% szans na obrócenie wroga o 180 stopni po trafieniu", "#00FF00"), - new dSkill_SkillInfo("Rozbrojenie", "Masz 25% szans na wyrzucenie broni wroga po trafieniu", "#FF4500") - }; + public static List Skills { get; } = new List(); } } \ No newline at end of file diff --git a/[ D3X ] dRandomSkills - SRC Files/src/menu/Menu.cs b/[ D3X ] dRandomSkills - SRC Files/src/menu/Menu.cs index 05d3b88..9d4ca2a 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/menu/Menu.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/menu/Menu.cs @@ -13,7 +13,7 @@ namespace dRandomSkills { CenterHtmlMenu menu = new($"[ ★ Lista Super Mocy ★ ]"); - for (int i = 0; i < SkillData.Skills.Length; i++) + for (int i = 0; i < SkillData.Skills.Count; i++) { var skill = SkillData.Skills[i]; string skillName = $"{skill.Name}"; diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/PlayerEvents.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/PlayerEvents.cs index 5a71faf..8e0ed30 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/PlayerEvents.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/PlayerEvents.cs @@ -70,7 +70,7 @@ namespace dRandomSkills { skillPlayer.IsDrawing = false; - var randomSkill = SkillData.Skills[Instance.Random.Next(SkillData.Skills.Length)]; + var randomSkill = SkillData.Skills[Instance.Random.Next(SkillData.Skills.Count)]; skillPlayer.Skill = randomSkill.Name; Utils.PrintToChat(player, $"{ChatColors.DarkRed}{randomSkill.Name}{ChatColors.Lime}: {randomSkill.Description}", false); @@ -90,8 +90,8 @@ namespace dRandomSkills if (!string.IsNullOrEmpty(teammateSkills)) { - player.PrintToChat($" {ChatColors.Lime}Supermoce twoich sojuszników:"); - player.PrintToChat(teammateSkills.TrimEnd('\n')); + Utils.PrintToChat(player, $" {ChatColors.Lime}Supermoce twoich sojuszników:", false); + Utils.PrintToChat(player, teammateSkills.TrimEnd('\n'), false); } }); } @@ -106,19 +106,18 @@ namespace dRandomSkills var victim = @event.Userid; var attacker = @event.Attacker; + if (victim == null || attacker == null || victim == attacker) return HookResult.Continue; + if(Config.config.Settings.KillerSkillInfo) { - if (victim != null && victim?.IsValid == true && attacker != null && attacker?.IsValid == true && victim != attacker) + var attackerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == attacker.SteamID); + if (attackerInfo != null) { - var attackerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == attacker.SteamID); - if (attackerInfo != null) - { - var skillData = SkillData.Skills.FirstOrDefault(s => s.Name == attackerInfo.Skill); - string skillDesc = skillData?.Description ?? "Brak opisu"; + var skillData = SkillData.Skills.FirstOrDefault(s => s.Name == attackerInfo.Skill); + string skillDesc = skillData?.Description ?? "Brak opisu"; - victim.PrintToChat($"{ChatColors.Lime}Supermoc przeciwnika który cię zabił:"); - Utils.PrintToChat(victim, $"{ChatColors.DarkRed}{attacker.PlayerName}{ChatColors.Lime} posiada mocy: {ChatColors.DarkRed}{attackerInfo.Skill}{ChatColors.Lime} - {skillDesc}", false); - } + Utils.PrintToChat(victim, $"Supermoc przeciwnika {ChatColors.DarkRed}{attacker.PlayerName}{ChatColors.Lime}:", false); + Utils.PrintToChat(victim, $"{ChatColors.DarkRed}{attackerInfo.Skill}{ChatColors.Lime} - {skillDesc}", false); } } diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/PlayerOnTick.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/PlayerOnTick.cs index bc8efdb..e92133e 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/PlayerOnTick.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/PlayerOnTick.cs @@ -1,4 +1,3 @@ -using System.Diagnostics; using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using static CounterStrikeSharp.API.Core.Listeners; @@ -8,13 +7,8 @@ namespace dRandomSkills { public static class PlayerOnTick { - private static readonly Stopwatch DrawStopwatch = new Stopwatch(); - private static readonly float DrawUpdateInterval = 0.5f; - public static void Load() { - DrawStopwatch.Start(); - Instance.RegisterListener(() => { foreach (var player in Utilities.GetPlayers()) @@ -37,12 +31,11 @@ namespace dRandomSkills string infoLine = ""; string skillLine = ""; - if (skillPlayer.IsDrawing && DrawStopwatch.Elapsed.TotalSeconds >= DrawUpdateInterval) + if (skillPlayer.IsDrawing) { - var randomSkill = SkillData.Skills[Instance.Random.Next(SkillData.Skills.Length)]; + var randomSkill = SkillData.Skills[Instance.Random.Next(SkillData.Skills.Count)]; infoLine = $"Losowanie mocy:
"; skillLine = $"{randomSkill.Name}
"; - DrawStopwatch.Restart(); } else if (!skillPlayer.IsDrawing) { diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/AntyFlash.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/AntyFlash.cs index d006c05..2dee199 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/AntyFlash.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/AntyFlash.cs @@ -7,6 +7,8 @@ namespace dRandomSkills { public static void LoadAntyFlash() { + Utils.RegisterSkill("Anty Flash", "Posiadasz odporność na flashe", "#D6E6FF"); + Instance.RegisterEventHandler((@event, info) => { var player = @event.Userid; diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Astronauta.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Astronauta.cs index 32202a7..93858b4 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Astronauta.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Astronauta.cs @@ -8,6 +8,8 @@ namespace dRandomSkills { public static void LoadAstronauta() { + Utils.RegisterSkill("Astronauta", "Otrzymujesz losową ilość grawitacji na start rundy", "#7E10AD"); + Instance.RegisterEventHandler((@event, info) => { Instance.AddTimer(0.1f, () => diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Bogacz.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Bogacz.cs index 4bbc528..ea58c4b 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Bogacz.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Bogacz.cs @@ -8,6 +8,8 @@ namespace dRandomSkills { public static void LoadBogacz() { + Utils.RegisterSkill("Bogacz", "Otrzymujesz losową ilość kasy na start rundy", "#D4AF37"); + Instance.RegisterEventHandler((@event, info) => { Instance.AddTimer(0.1f, () => diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/BunnyHop.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/BunnyHop.cs index b3dea3e..7775a99 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/BunnyHop.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/BunnyHop.cs @@ -13,6 +13,8 @@ namespace dRandomSkills public static void LoadBunnyHop() { + Utils.RegisterSkill("BunnyHop", "Otrzymujesz auto BunnyHopa", "#EB4034"); + Instance.RegisterListener(OnTick); } diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Cien.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Cien.cs index 73a421d..753591f 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Cien.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Cien.cs @@ -10,6 +10,8 @@ namespace dRandomSkills public static void LoadCien() { + Utils.RegisterSkill("Cień", "Teleportujesz się za plecy losowego wroga", "#18171A"); + Instance.RegisterEventHandler((@event, info) => { var attacker = @event.Attacker; diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Drakula.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Drakula.cs index a4134b9..23c20c9 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Drakula.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Drakula.cs @@ -10,6 +10,8 @@ namespace dRandomSkills public static void LoadDrakula() { + Utils.RegisterSkill("Drakula", "Po trafieniu ofiary otrzymujesz zwrot zdrowia w postaci danego procentu zadanych obrażeń", "#FA050D"); + Instance.RegisterEventHandler((@event, info) => { var attacker = @event.Attacker; @@ -19,7 +21,7 @@ namespace dRandomSkills var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == attacker.SteamID); - if (playerInfo?.Skill == "Drakula" && attacker.PawnIsAlive) + if (playerInfo?.Skill == "Drakula" && victim.PawnIsAlive) { HealAttacker(attacker, @event.DmgHealth); } diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Duszek.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Duszek.cs index d97ddb5..ac2047f 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Duszek.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Duszek.cs @@ -9,6 +9,8 @@ namespace dRandomSkills { public static void LoadDuszek() { + Utils.RegisterSkill("Duszek", "Jesteś całkowicie niewidzialny", "#FFFFFF"); + Instance.RegisterEventHandler((@event, info) => { Instance.AddTimer(0.1f, () => diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Eliminator.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Eliminator.cs index 2ad47e8..e8e050b 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Eliminator.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Eliminator.cs @@ -8,11 +8,13 @@ namespace dRandomSkills { public static void LoadEliminator() { + Utils.RegisterSkill("Eliminator", "Możesz szybciej podłożyć bombę oraz ją zdefować", "#8A2BE2"); + Instance.RegisterEventHandler((@event, info) => { foreach (var player in Utilities.GetPlayers()) { - if (!IsPlayerValid(player)) continue; + if (!IsPlayerValid(player)) return HookResult.Continue; var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); if (playerInfo?.Skill == "Eliminator") diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Flash.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Flash.cs index 88299cf..e341321 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Flash.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Flash.cs @@ -8,16 +8,18 @@ namespace dRandomSkills { public static void LoadFlash() { + Utils.RegisterSkill("Flash", "Otrzymujesz losową ilość speed na start rundy", "#A31912"); + Instance.RegisterEventHandler((@event, info) => { Instance.AddTimer(0.1f, () => { foreach (var player in Utilities.GetPlayers()) { - if (!IsPlayerValid(player)) continue; + if (!IsPlayerValid(player)) return; var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (playerInfo?.Skill != "Flash") continue; + if (playerInfo?.Skill != "Flash") return; var playerPawn = player.PlayerPawn?.Value; diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Impostor.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Impostor.cs index 6a6ba7c..07091a0 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Impostor.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Impostor.cs @@ -8,28 +8,149 @@ namespace dRandomSkills { public static class Impostor { + private static readonly List CTModels = new List + { + // SWAT + "characters/models/ctm_swat/ctm_swat_variante.vmdl", + "characters/models/ctm_swat/ctm_swat_variantf.vmdl", + "characters/models/ctm_swat/ctm_swat_varianth.vmdl", + "characters/models/ctm_swat/ctm_swat_varianti.vmdl", + "characters/models/ctm_swat/ctm_swat_variantj.vmdl", + "characters/models/ctm_swat/ctm_swat_variantk.vmdl", + + // ST6 + "characters/models/ctm_st6/ctm_st6_variante.vmdl", + "characters/models/ctm_st6/ctm_st6_variantg.vmdl", + "characters/models/ctm_st6/ctm_st6_varianti.vmdl", + "characters/models/ctm_st6/ctm_st6_variantj.vmdl", + "characters/models/ctm_st6/ctm_st6_variantk.vmdl", + "characters/models/ctm_st6/ctm_st6_variantl.vmdl", + "characters/models/ctm_st6/ctm_st6_variantm.vmdl", + "characters/models/ctm_st6/ctm_st6_variantn.vmdl", + + // SAS + "characters/models/ctm_sas/ctm_sas.vmdl", + "characters/models/ctm_sas/ctm_sas_variantf.vmdl", + "characters/models/ctm_sas/ctm_sas_variantg.vmdl", + + // CTM_HEAVY + "characters/models/ctm_heavy/ctm_heavy.vmdl", + + // GENDARMERIE + "characters/models/ctm_gendarmerie/ctm_gendarmerie_varianta.vmdl", + "characters/models/ctm_gendarmerie/ctm_gendarmerie_variantb.vmdl", + "characters/models/ctm_gendarmerie/ctm_gendarmerie_variantc.vmdl", + "characters/models/ctm_gendarmerie/ctm_gendarmerie_variantd.vmdl", + "characters/models/ctm_gendarmerie/ctm_gendarmerie_variante.vmdl", + + // FBI + "characters/models/ctm_fbi/ctm_fbi.vmdl", + "characters/models/ctm_fbi/ctm_fbi_varianta.vmdl", + "characters/models/ctm_fbi/ctm_fbi_variantb.vmdl", + "characters/models/ctm_fbi/ctm_fbi_variantc.vmdl", + "characters/models/ctm_fbi/ctm_fbi_variantd.vmdl", + "characters/models/ctm_fbi/ctm_fbi_variante.vmdl", + "characters/models/ctm_fbi/ctm_fbi_variantf.vmdl", + "characters/models/ctm_fbi/ctm_fbi_variantg.vmdl", + "characters/models/ctm_fbi/ctm_fbi_varianth.vmdl", + + // DIVER + "characters/models/ctm_diver/ctm_diver_varianta.vmdl", + "characters/models/ctm_diver/ctm_diver_variantb.vmdl", + "characters/models/ctm_diver/ctm_diver_variantc.vmdl", + }; + + + private static readonly List TModels = new List + { + // BALKAN + "characters/models/tm_balkan/tm_balkan_variantf.vmdl", + "characters/models/tm_balkan/tm_balkan_variantg.vmdl", + "characters/models/tm_balkan/tm_balkan_varianth.vmdl", + "characters/models/tm_balkan/tm_balkan_varianti.vmdl", + "characters/models/tm_balkan/tm_balkan_variantj.vmdl", + "characters/models/tm_balkan/tm_balkan_variantk.vmdl", + "characters/models/tm_balkan/tm_balkan_variantl.vmdl", + + // JUMPSUIT + "characters/models/tm_jumpsuit/tm_jumpsuit_varianta.vmdl", + "characters/models/tm_jumpsuit/tm_jumpsuit_variantb.vmdl", + "characters/models/tm_jumpsuit/tm_jumpsuit_variantc.vmdl", + + // JUNGLERAIDER + "characters/models/tm_jungle_raider/tm_jungle_raider_varianta.vmdl", + "characters/models/tm_jungle_raider/tm_jungle_raider_variantb.vmdl", + "characters/models/tm_jungle_raider/tm_jungle_raider_variantb2.vmdl", + "characters/models/tm_jungle_raider/tm_jungle_raider_variantc.vmdl", + "characters/models/tm_jungle_raider/tm_jungle_raider_variantd.vmdl", + "characters/models/tm_jungle_raider/tm_jungle_raider_variante.vmdl", + "characters/models/tm_jungle_raider/tm_jungle_raider_variantf.vmdl", + "characters/models/tm_jungle_raider/tm_jungle_raider_variantf2.vmdl", + + // LEET + "characters/models/tm_leet/tm_leet_varianta.vmdl", + "characters/models/tm_leet/tm_leet_variantb.vmdl", + "characters/models/tm_leet/tm_leet_variantc.vmdl", + "characters/models/tm_leet/tm_leet_variantd.vmdl", + "characters/models/tm_leet/tm_leet_variante.vmdl", + "characters/models/tm_leet/tm_leet_variantf.vmdl", + "characters/models/tm_leet/tm_leet_variantg.vmdl", + "characters/models/tm_leet/tm_leet_varianth.vmdl", + "characters/models/tm_leet/tm_leet_varianti.vmdl", + "characters/models/tm_leet/tm_leet_variantj.vmdl", + "characters/models/tm_leet/tm_leet_variantk.vmdl", + + // PHOENIX + "characters/models/tm_phoenix/tm_phoenix.vmdl", + "characters/models/tm_phoenix/tm_phoenix_varianta.vmdl", + "characters/models/tm_phoenix/tm_phoenix_variantb.vmdl", + "characters/models/tm_phoenix/tm_phoenix_variantc.vmdl", + "characters/models/tm_phoenix/tm_phoenix_variantd.vmdl", + "characters/models/tm_phoenix/tm_phoenix_variantf.vmdl", + "characters/models/tm_phoenix/tm_phoenix_variantg.vmdl", + "characters/models/tm_phoenix/tm_phoenix_varianth.vmdl", + "characters/models/tm_phoenix/tm_phoenix_varianti.vmdl", + + // PHOENIX HEAVY + "characters/models/tm_phoenix_heavy/tm_phoenix_heavy.vmdl", + + // PROFESSIONAL + "characters/models/tm_professional/tm_professional_varf.vmdl", + "characters/models/tm_professional/tm_professional_varf1.vmdl", + "characters/models/tm_professional/tm_professional_varf2.vmdl", + "characters/models/tm_professional/tm_professional_varf3.vmdl", + "characters/models/tm_professional/tm_professional_varf4.vmdl", + "characters/models/tm_professional/tm_professional_varf5.vmdl", + "characters/models/tm_professional/tm_professional_varg.vmdl", + "characters/models/tm_professional/tm_professional_varh.vmdl", + "characters/models/tm_professional/tm_professional_vari.vmdl", + "characters/models/tm_professional/tm_professional_varj.vmdl", + }; + + public static void LoadImpostor() { + Utils.RegisterSkill("Impostor", "Otrzymujesz na start rundy model postaci wroga", "#99140B"); + Instance.RegisterEventHandler((@event, info) => { Instance.AddTimer(0.1f, () => { foreach (var player in Utilities.GetPlayers()) { - if (!IsPlayerValid(player)) continue; - var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (playerInfo?.Skill != "Impostor") continue; - - string model = player.Team == CsTeam.Terrorist - ? "characters/models/ctm_fbi/ctm_fbi_variantb.vmdl" - : player.Team == CsTeam.CounterTerrorist - ? "characters/models/tm_phoenix/tm_phoenix_varianta.vmdl" - : null; - - if (model != null) + if (playerInfo?.Skill == "Impostor") { - SetPlayerModel(player, model); + string model = player.Team == CsTeam.Terrorist + ? GetRandomModel(CTModels) + : player.Team == CsTeam.CounterTerrorist + ? GetRandomModel(TModels) + : null; + + if (model != null) + { + SetPlayerModel(player, model); + } } } }); @@ -38,6 +159,14 @@ namespace dRandomSkills }); } + private static string GetRandomModel(List models) + { + if (models == null || models.Count == 0) return null; + var random = new Random(); + int index = random.Next(models.Count); + return models[index]; + } + private static void SetPlayerModel(CCSPlayerController player, string model) { var pawn = player.PlayerPawn?.Value; @@ -51,10 +180,5 @@ namespace dRandomSkills pawn.Render = Color.FromArgb(255, originalRender.R, originalRender.G, originalRender.B); }); } - - private static bool IsPlayerValid(CCSPlayerController player) - { - return player != null && player.IsValid && player.PlayerPawn?.Value != null; - } } } \ No newline at end of file diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Katapulta.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Katapulta.cs index 6fab490..08216a2 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Katapulta.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Katapulta.cs @@ -8,6 +8,8 @@ namespace dRandomSkills public static void LoadKatapulta() { + Utils.RegisterSkill("Katapulta", "Masz 25% szans na podrzucenie wroga", "#FF4500"); + Instance.RegisterEventHandler((@event, info) => { var attacker = @event.Attacker; @@ -19,7 +21,7 @@ namespace dRandomSkills var attackerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == attacker.SteamID); - if (attackerInfo?.Skill == "Katapulta" && attacker.PawnIsAlive) + if (attackerInfo?.Skill == "Katapulta" && victim.PawnIsAlive) { if (Instance.Random.NextDouble() <= 0.25) { diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Kurczak.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Kurczak.cs index 0efcbec..2ef5f30 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Kurczak.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Kurczak.cs @@ -9,16 +9,18 @@ namespace dRandomSkills { public static void LoadKurczak() { + Utils.RegisterSkill("Kurczak", "Otrzymujesz model kurczaka + jesteś o 10% szybszy", "#FF8B42"); + Instance.RegisterEventHandler((@event, info) => { Instance.AddTimer(0.1f, () => { foreach (var player in Utilities.GetPlayers()) { - if (!IsPlayerValid(player)) continue; + if (!IsPlayerValid(player)) return; var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (playerInfo?.Skill != "Kurczak") continue; + if (playerInfo?.Skill != "Kurczak") return; var playerPawn = player.PlayerPawn?.Value; if (playerPawn != null) diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Medyk.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Medyk.cs index b7d9baa..4b14d26 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Medyk.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Medyk.cs @@ -8,15 +8,17 @@ namespace dRandomSkills { public static void LoadMedyk() { + Utils.RegisterSkill("Medyk", "Otrzymujesz losową ilość apteczek na start rundy", "#42FF5F"); + Instance.RegisterEventHandler((@event, info) => { Instance.AddTimer(0.1f, () => { foreach (var player in Utilities.GetPlayers()) { - if (!IsPlayerValid(player)) continue; + if (!IsPlayerValid(player)) return; var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (playerInfo?.Skill != "Medyk") continue; + if (playerInfo?.Skill != "Medyk") return; int healthshot = Instance.Random.Next(1, 10); for (int i = 0; i < healthshot; i++) @@ -33,10 +35,10 @@ namespace dRandomSkills { foreach (var player in Utilities.GetPlayers()) { - if (!IsPlayerValid(player)) continue; + if (!IsPlayerValid(player)) return HookResult.Continue; var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (playerInfo?.Skill != "Medyk") continue; + if (playerInfo?.Skill != "Medyk") return HookResult.Continue; player.RemoveItemByDesignerName("weapon_healthshot"); } diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Muhammed.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Muhammed.cs index a5d3abd..9700b2f 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Muhammed.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Muhammed.cs @@ -12,6 +12,8 @@ namespace dRandomSkills public static void LoadMuhammed() { + Utils.RegisterSkill("Muhammed", "Po śmierci wybucha i zabija graczy w obrębie", "#F5CB42"); + Instance.RegisterEventHandler((@event, info) => { CCSPlayerController player = @event.Userid; @@ -19,9 +21,10 @@ namespace dRandomSkills if (!IsPlayerValid(player)) return HookResult.Continue; var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (playerInfo?.Skill != "Muhammed") return HookResult.Continue; - - SpawnExplosion(player); + if (playerInfo?.Skill == "Muhammed") + { + SpawnExplosion(player); + } return HookResult.Continue; }); diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/NieskonczoneAmmo.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/NieskonczoneAmmo.cs index 25baf40..4ab7bfe 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/NieskonczoneAmmo.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/NieskonczoneAmmo.cs @@ -5,9 +5,10 @@ namespace dRandomSkills { public static class NieskonczoneAmmo { - public static void LoadNieskonczoneAmmo() { + Utils.RegisterSkill("Nieskończone Ammo", "Otrzymujesz nieskończoną ilość ammo do wszystkich swoich broni", "#0000FF"); + Instance.RegisterEventHandler((@event, info) => { var player = @event.Userid; diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/ObrotWroga.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/ObrotWroga.cs index 95526ed..b8678e6 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/ObrotWroga.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/ObrotWroga.cs @@ -6,9 +6,10 @@ namespace dRandomSkills { public static class ObrotWroga { - public static void LoadObrotWroga() { + Utils.RegisterSkill("Obrót Wroga", "Masz 25% szans na obrócenie wroga o 180 stopni po trafieniu", "#00FF00"); + Instance.RegisterEventHandler((@event, info) => { var attacker = @event.Attacker; @@ -19,7 +20,7 @@ namespace dRandomSkills var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == attacker.SteamID); - if (playerInfo?.Skill == "Obrót Wroga" && attacker.PawnIsAlive) + if (playerInfo?.Skill == "Obrót Wroga" && victim.PawnIsAlive) { if (Instance.Random.NextDouble() <= 0.25) { diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/OneShot.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/OneShot.cs index 5a79e70..3a11c27 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/OneShot.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/OneShot.cs @@ -9,27 +9,34 @@ namespace dRandomSkills { public static void LoadOneShot() { + Utils.RegisterSkill("One Shot", "Po trafieniu od razu zabija przeciwnika", "#ff5CD9"); + VirtualFunctions.CBaseEntity_TakeDamageOldFunc.Hook(OnTakeDamage, HookMode.Pre); } private static HookResult OnTakeDamage(DynamicHook h) { - CTakeDamageInfo param = h.GetParam(1); + CEntityInstance param = h.GetParam(0); + CTakeDamageInfo param2 = h.GetParam(1); - if (param == null || param?.Attacker == null || !param.Attacker.Value.IsValid) return HookResult.Continue; + if (param == null || param2 == null || param2.Attacker == null) + return HookResult.Continue; - CCSPlayerPawn attackerPawn = new CCSPlayerPawn(param.Attacker.Value.Handle); - if (attackerPawn == null || attackerPawn.Controller == null || !attackerPawn.Controller.Value.IsValid) return HookResult.Continue; + CCSPlayerPawn attackerPawn = new CCSPlayerPawn(param2.Attacker.Value.Handle); + CCSPlayerPawn victimPawn = new CCSPlayerPawn(param.Handle); + + if (attackerPawn == null || attackerPawn.Controller?.Value == null || victimPawn == null || victimPawn.Controller?.Value == null) + return HookResult.Continue; CCSPlayerController attacker = attackerPawn.Controller.Value.As(); - if (attacker == null) return HookResult.Continue; + CCSPlayerController victim = victimPawn.Controller.Value.As(); var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == attacker.SteamID); if (playerInfo == null) return HookResult.Continue; if (playerInfo.Skill == "One Shot" && attacker.PawnIsAlive) { - param.Damage = 1000f; + param2.Damage = 1000f; } return HookResult.Continue; diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/PawelJumper.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/PawelJumper.cs index 6f6fac9..a440127 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/PawelJumper.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/PawelJumper.cs @@ -14,11 +14,13 @@ namespace dRandomSkills public static void LoadPawelJumper() { + Utils.RegisterSkill("Paweł Jumper", "Otrzymujesz dodatkowy Skok", "#FFA500"); + Instance.RegisterListener(() => { foreach (var player in Utilities.GetPlayers()) { - if (!IsPlayerValid(player)) continue; + if (!IsPlayerValid(player)) return; var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); if (playerInfo?.Skill == "Paweł Jumper") { diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Phoenix.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Phoenix.cs index 78a79f0..5367df5 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Phoenix.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Phoenix.cs @@ -10,6 +10,8 @@ namespace dRandomSkills public static void LoadPhoenix() { + Utils.RegisterSkill("Phoenix", "Masz 35% szans na odrodzenie się po śmierci", "#ff5C0A"); + Instance.RegisterEventHandler((@event, info) => { var player = @event.Userid; @@ -17,11 +19,13 @@ namespace dRandomSkills if (!IsValidPlayer(player)) return HookResult.Continue; var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); - if (playerInfo?.Skill != "Phoenix") return HookResult.Continue; - - if (Instance.Random.NextDouble() <= ReviveChance) + if (playerInfo?.Skill == "Phoenix") { - RevivePlayer(player); + if (Instance.Random.NextDouble() <= ReviveChance) + { + player.Respawn(); + Utils.PrintToChat(player, $"Zostałeś odrodzony z popiołów dzięki mocy: {ChatColors.DarkRed}Phoenix", false); + } } return HookResult.Continue; @@ -32,12 +36,5 @@ namespace dRandomSkills { return player != null && player.IsValid; } - - private static void RevivePlayer(CCSPlayerController player) - { - player.Respawn(); - - Utils.PrintToChat(player, $"Zostałeś odrodzony z popiołów dzięki mocy: {ChatColors.DarkRed}Phoenix", false); - } } } \ No newline at end of file diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Pilot.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Pilot.cs index 24c6a1b..3f00b1c 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Pilot.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Pilot.cs @@ -12,6 +12,8 @@ namespace dRandomSkills public static void LoadPilot() { + Utils.RegisterSkill("Pilot", "Latanie na noclip przez dany czas", "#1466F5"); + Instance.RegisterEventHandler((@event, info) => { Instance.AddTimer(0.1f, () => @@ -38,9 +40,14 @@ namespace dRandomSkills Instance.RegisterEventHandler((@event, info) => { var player = @event.Userid; - if (PlayerPilotInfo.ContainsKey(player.SteamID)) + + var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == player.SteamID); + if (playerInfo?.Skill == "Pilot") { - PlayerPilotInfo.Remove(player.SteamID); + if (PlayerPilotInfo.ContainsKey(player.SteamID)) + { + PlayerPilotInfo.Remove(player.SteamID); + } } return HookResult.Continue; diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Rambo.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Rambo.cs index fee9b2c..96878df 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Rambo.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Rambo.cs @@ -8,6 +8,8 @@ namespace dRandomSkills { public static void LoadRambo() { + Utils.RegisterSkill("Rambo", "Otrzymujesz losową ilość zdrowia na start rundy", "#009905"); + Instance.RegisterEventHandler((@event, info) => { Instance.AddTimer(0.1f, () => diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Rozbrojenie.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Rozbrojenie.cs index 6e648c2..abd0d95 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Rozbrojenie.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Rozbrojenie.cs @@ -8,6 +8,8 @@ namespace dRandomSkills public static void LoadRozbrojenie() { + Utils.RegisterSkill("Rozbrojenie", "Masz 25% szans na wyrzucenie broni wroga po trafieniu", "#FF4500"); + Instance.RegisterEventHandler((@event, info) => { var attacker = @event.Attacker; @@ -19,7 +21,7 @@ namespace dRandomSkills var playerInfo = Instance.skillPlayer.FirstOrDefault(p => p.SteamID == attacker.SteamID); - if (playerInfo?.Skill == "Rozbrojenie" && attacker.PawnIsAlive) + if (playerInfo?.Skill == "Rozbrojenie" && victim.PawnIsAlive) { if (Instance.Random.NextDouble() <= 0.25) { diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Teleporter.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Teleporter.cs index 3dc4751..6efb7bd 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Teleporter.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/Teleporter.cs @@ -7,6 +7,8 @@ namespace dRandomSkills { public static void LoadTeleporter() { + Utils.RegisterSkill("Teleportator", "Zamieniasz się miejscami z trafionym wrogiem", "#8A2BE2"); + Instance.RegisterEventHandler((@event, info) => { var victim = @event.Userid; diff --git a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/ZelaznaGlowa.cs b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/ZelaznaGlowa.cs index c8f5640..f31611e 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/player/skills/ZelaznaGlowa.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/player/skills/ZelaznaGlowa.cs @@ -8,6 +8,8 @@ namespace dRandomSkills public static void LoadZelaznaGlowa() { + Utils.RegisterSkill("Żelazna Głowa", "Nie otrzymujesz obrażeń w głowę", "#8B4513"); + Instance.RegisterEventHandler((@event, info) => { var attacker = @event.Attacker; diff --git a/[ D3X ] dRandomSkills - SRC Files/src/utils/Utils.cs b/[ D3X ] dRandomSkills - SRC Files/src/utils/Utils.cs index 654099d..f2cf2bc 100644 --- a/[ D3X ] dRandomSkills - SRC Files/src/utils/Utils.cs +++ b/[ D3X ] dRandomSkills - SRC Files/src/utils/Utils.cs @@ -10,5 +10,13 @@ namespace dRandomSkills string checkIcon = isError ? $"{ChatColors.DarkRed}✖{ChatColors.LightRed}" : $"{ChatColors.Green}✔{ChatColors.Lime}"; player.PrintToChat($" {ChatColors.DarkRed}► {ChatColors.Green}[{ChatColors.DarkRed} LOSOWE MOCE {ChatColors.Green}] {checkIcon} {msg}"); } + + public static void RegisterSkill(string name, string description, string color) + { + if (!SkillData.Skills.Any(skill => skill.Name == name)) + { + SkillData.Skills.Add(new dSkill_SkillInfo(name, description, color)); + } + } } } \ No newline at end of file diff --git a/[ D3X ] dRandomSkills - Server Files/plugins/dRandomSkills/dRandomSkills.dll b/[ D3X ] dRandomSkills - Server Files/plugins/dRandomSkills/dRandomSkills.dll index 3b45bb902fbd278aff8fc263186c77e8b6cafdc4..4338e36360882367832381397e8a0278b2055f1b 100644 GIT binary patch literal 72192 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 literal 61952 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