From b98842212fbef418a8b2f4a5133940c25ad9dd5f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 17 Aug 2026 22:39:41 +0000 Subject: [PATCH] chore: update contributors and thanks --- README-PL.md | 202 ++++++++++++++++++++++++++++++++++++++++----------- README.md | 141 ++++++++++++++++++++++++++++++++--- 2 files changed, 289 insertions(+), 54 deletions(-) diff --git a/README-PL.md b/README-PL.md index 103cadb..6a08319 100644 --- a/README-PL.md +++ b/README-PL.md @@ -47,7 +47,7 @@ Dołącz do serwera testowego 3v3 i wypróbuj plugin jRandomSkills: Kupujesz serwer na pukawce? Skorzystaj z mojego [kodu polecającego](https://pukawka.pl/pp,juzlus.html). -## ✨ Aktualne Supermoce (145) +## ✨ Aktualne Supermoce (154)
Poniższa tabela przedstawia wszystkie dostępne supermoce w grze, wraz z ich opisami. @@ -89,7 +89,9 @@ Kupujesz serwer na pukawce? Skorzystaj z mojego [kodu polecającego](https://puk | Glaz | Widzisz przez granaty dymne | - | | Glitch | Wyłączasz radar wybranemu przeciwnikowi | - | | Gorąca Bomba | Dopóki żyjesz, bomba zadaje obrażenia osobie, która ją niesie | - | +| Granat EMP | Kto oberwie twoim granatem, na chwilę traci radar i celownik. | 3 s | | Granatnik | Masz nieskończone granaty HE | - | +| Grawitacyjny Wabik | Twój wabik zmienia grawitację wszystkich w pobliżu. | 0.5x | | Gruby | Masz losowy mnożnik otrzymywanych obrażeń | (0.65 - 0.85)x | | Gumowe Kule | Twoje pociski znacznie spowalniają graczy | - | | Głuchy | Wybierasz gracza, dla którego chcesz wyłączyć wszystkie dźwięki | - | @@ -100,12 +102,13 @@ Kupujesz serwer na pukawce? Skorzystaj z mojego [kodu polecającego](https://puk | Jednostrzałowiec | Po trafieniu natychmiast zabijasz przeciwnika | - | | Kameleon | Pierwszy zabity gracz oddaje ci swoją umiejętność | - | | Kamera | Kliknij [css_useSkill], aby utworzyć lub przełączyć się na kamerę | 30 s | +| Karający | Gromadzisz część otrzymanych obrażeń i uwalniasz je przy następnym strzale. | 0.5x | | Katapulta | Masz losową szansę na podrzucenie wroga | (20 - 40)% | | Klej | Twoje granaty przyklejają się do ścian | - | | Klątwa Skakania | Wybrany przeciwnik skacze za każdym razem, gdy skaczą jego sojusznicy | - | | Koszmar | Wywołaj u wybranego przeciwnika przerażającą wizję | - | -| Krucha Bomba | Strzelanie do bomby powoduje jej uszkodzenie | - | | Królik | Otrzymujesz auto "BunnyHopa" | - | +| Krucha Bomba | Strzelanie do bomby powoduje jej uszkodzenie | - | | Krótka Bomba | Bomba wybucha znacznie szybciej | - | | Kurczak | Otrzymujesz model kurczaka, poruszasz się o 10% szybciej i masz 50 HP | - | | Latarka | Kliknij [css_useSkill], aby włączyć lub wyłączyć latarkę. Jej światło może oślepić przeciwników | 2 s | @@ -120,8 +123,10 @@ Kupujesz serwer na pukawce? Skorzystaj z mojego [kodu polecającego](https://puk | Medyk | Kliknij [css_useSkill], aby użyć ładunku leczniczego, który przywraca 50 punktów zdrowia | 1 s | | Mini Majk | Losowa wielkość postaci na początku rundy | (60 - 95)% | | Mistrz Ostrza | Trzymając nóż, masz dużą szansę na odparcie strzału | - | +| Mocne Uderzenie | Naciśnij Attack2 na MP5, aby wystrzelić granat HE | 10 s | | Mrok | Nadaje efekt ciemności wybranemu przeciwnikowi | - | | Naprowadzane Granaty | Twoje granaty, z wyjątkiem dymnych, są przyciągane do wrogów | - | +| Nemezis | Oznaczony gracz otrzymuje dodatkowe obrażenia. | +0.25x | | Nieskończone Ammo | Otrzymujesz nieskończoną ilość amunicji do wszystkich broni | - | | Nieważkość | Twoje granaty nie podlegają grawitacji i lecą szybciej | - | | Nieśmiertelność | Kliknij [css_useSkill], aby stać się nieśmiertelnym na krótką chwilę | 30 s | @@ -148,6 +153,7 @@ Kupujesz serwer na pukawce? Skorzystaj z mojego [kodu polecającego](https://puk | Papito | Kliknij [css_useSkill], aby zamienić aktualną broń na AWP | 0 s | | Pawel Jumper | Otrzymujesz dodatkowy skok | - | | Pilot | Latanie przez określony czas. Przytrzymaj [USE - E], aby latać | - | +| Prawdziwy Pancerz | Pancerz pochłania część otrzymywanych obrażeń zamiast zdrowia. | 0.33x | | Proteza | Ramiona i nogi są kuloodporne | - | | Pustelnik | Zabijanie przywraca amunicję i część zdrowia | - | | Pyro | Molotow przywraca zdrowie | - | @@ -172,15 +178,17 @@ Kupujesz serwer na pukawce? Skorzystaj z mojego [kodu polecającego](https://puk | Szpieg | Na początku rundy otrzymujesz model postaci przeciwnika | - | | Szybkie Rączki | Kliknij [css_useSkill], aby przeładować broń, którą obecnie trzymasz | - | | Szybkostrzelność | Wszystkie pociski są wystrzeliwane bardzo szybko | - | +| Święty Granat Ręczny | Twoje granaty HE zadają podwójne obrażenia i mają podwójny zasięg | - | | Teleport do drużyny | Naciśnij [css_useSkill], aby teleportować się do członka drużyny, na którego patrzysz | 15 s | | Teleporter | Zamieniasz się miejscami z trafionym przeciwnikiem | - | | Toksyczny Dym | Twoje granaty dymne zadają obrażenia | - | | Trutka | Wybierasz gracza, który co kilka sekund będzie otrzymywał obrażenia | - | | Trzecie Oko | Kliknij [css_useSkill], aby aktywować widok z trzeciej osoby | 0 s | | Tylko Głowa | Otrzymujesz obrażenia tylko w głowę | - | +| Voodoo | Oznaczony wróg również otrzymuje część obrażeń, które ty dostajesz. | 0.5x | +| Waga Ciężka | Umiejętności, które cię popychają lub spowalniają, nie działają na ciebie. | - | | Wallhack | Widzisz wrogów przez ściany | - | | Wybuchowa Beczka | Kliknij [css_useSkill], aby postawić beczkę, która wybucha po trafieniu | 20 s | -| Mocne Uderzenie | Naciśnij Attack2 na MP5, aby wystrzelić granat HE | 10 s | | Wyluzowany | Podłożenie bomby zajmuje 10 sekund | - | | Zabierz Amunicję | Kliknij [css_useSkill], aby zabrać magazynek aktywnej broni losowego przeciwnika | - | | Zabójczy Flash | Każdy całkowicie oślepiony twoim granatem umiera, włącznie z Tobą | - | @@ -195,7 +203,7 @@ Kupujesz serwer na pukawce? Skorzystaj z mojego [kodu polecającego](https://puk | Zeus | Zeus x27 natychmiastowo się odnawia | - | | Zwrot do Nadawcy | Pierwsze trafienie wroga powoduje, że wraca on na swój resp | - | | Złodziej | Możesz ukraść supermoc wybranemu graczowi | - | -| Święty Granat Ręczny | Twoje granaty HE zadają podwójne obrażenia i mają podwójny zasięg | - | +| Zlecenie Śmierci | Wyznacz nagrodę za głowę wroga; kto go zabije, dostaje pieniądze. | 300$ | | Żelazna Głowa | Nie otrzymujesz obrażeń od strzałów w głowę | - | | Żołnierz | Masz losowy mnożnik obrażeń | (1.15 - 1.35)x | @@ -295,7 +303,13 @@ Wszystkie sypermoce można dostosować w pliku **`config.cfg`** / **`skillsInfo. "SummaryAfterTheRound": true, // Pokazuj podsumowanie z ostatniej rundy "EnableBotSkills": true, // Włącz umiejętności dla botów "EnableBotKickDebug": false, // Co 45 sekund wyrzuć losowego bota (do celów debugowania/testowania) - "DebugMode": false, // Zapisuje logi debugowania (zdarzenia graczy i działanie pluginu) do folderu Debug + "DebugMode": 0, // Zapisuje logi debugowania (zdarzenia graczy i działanie pluginu) do folderu Debug + // 0 - Wyłączone + // 1 - Skill + // 2 - Round + // 3 - Entity + // 4 - Damage + // Przykład: '123' włącza logowanie: Skill, Round i Entity "PerfMode": false, // Zapisuje pomiary wydajności pluginu do folderu logs "AlternativeSkillButton": null, // Możliwe przyciski: // null, "Attack", "Jump", "Duck", "Forward", "Back", @@ -382,6 +396,7 @@ Plugin korzysta z zawartości następujących projektów: - [GeoLite2](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data) autorstwa [MaxMind](https://www.maxmind.com/) - Dane geolokalizacyjne - [cs2-css-flashlight](https://github.com/creazy231/cs2-css-flashlight) autorstwa [creazy231](https://github.com/creazy231) - System tworzenia oświetlenia - [CServerSideClient](https://discord.com/channels/1160907911501991946/1508172390863994910/1508180670659166348) autorstwa [SLAYER](https://github.com/zakriamansoor47) +- [CS2Plugins](https://github.com/ByDexterTR/CS2Plugins) autorstwa [ByDexterTR](https://github.com/ByDexterTR) ## ❤️ Szczególne podziękowania
@@ -407,6 +422,109 @@ Plugin korzysta z zawartości następujących projektów: ## 📋 Lista Zmian +
+v1.2.3.b7 + +- #### Wspólne systemy + - **DecoyTracker** - Śledzenie wabików z uwzględnieniem właściciela, wspólne dla **Zamrażającego Wabika, Magnetycznego Wabika i Grawitacyjnego Wabika**, zastępujące osobne słowniki pozycji dla każdej umiejętności. + - **DebugCategory** - Nowy enum flag obsługujący `DebugMode`, z automatyczną migracją ze starej wartości logicznej. + - **SkillsInfo.GetSkillConfig** - Indeksowane wyszukiwanie konfiguracji skilli zastępujące liniowe przeszukiwanie używane przy losowaniu i renderowaniu HUD-u. + - **SkillNames** - Buforowana tabela nazw enumów, eliminująca powtarzające się wywołania `ToString()` podczas renderowania. + - **SkillUtils.HideCarriedEntities** - Wspólne rozwiązywanie przenoszonej broni dla **C4 Kamuflażu, Duszka i Ninja**. + +- #### Wydajność + - **Renderowanie skilli** - Usunięto wyszukiwanie konfiguracji o złożoności $O(n²)$; liczba rund przekraczających próg wydajności spadła z 89% do 0,3%. + - **CheckTransmit** - Łańcuch broni jest teraz rozwiązywany tylko raz dla każdej ukrytej postaci zamiast raz dla każdego odbiorcy; koszt **Duszka** spadł o 61%. + - **Pilot** - Smuga spalin jest teraz wstrzymywana i wznawiana zamiast niszczenia i tworzenia od nowa przy każdym zakończeniu lotu. + - **Magnetyczny Wabik** - Odczyty konfiguracji i lista postaci zostały przeniesione poza pętlę wykonywaną dla każdego wabika. + - **Zamrażający Wabik** - Odczyty konfiguracji zostały przeniesione poza pętlę wykonywaną przy każdym ticku. + - **Debug** - Hook obrażeń jest instalowany tylko wtedy, gdy włączono logowanie obrażeń. + +- #### Poprawki + - **Zdalne Rozbrajanie** - Nie można już zakończyć rozbrajania i przyznać dodatkowej rundy po zakończeniu bieżącej rundy. + - **Obserwator** - Przy każdym użyciu wybierany jest inny przeciwnik; wyłączanie umiejętności nie tworzy już za każdym razem nieużywanej kamery. + - **Random** - Współdzielona instancja `Random` została zastąpiona przez `Random.Shared`, zapobiegając błędnym wynikom przy jednoczesnym użyciu. + - **Bejsbolista** - Wabiki są usuwane, gdy ich właściciel zginie lub straci umiejętność. + - **Zamrażający Wabik, Grawitacyjny Wabik, Magnetyczny Wabik** - Wabiki oraz ich pierścienie na ziemi są usuwane po odebraniu umiejętności. + - **Trzecie Oko** - Naprawiono sprawdzanie kamery odwołujące się do brakującego `CameraServices`; przełączanie drzwi sprawdza teraz klasę encji przed rzutowaniem. + - **Początek rundy** - Naprawiono pojawianie się komunikatu `[gamerules unavailable]` przy pierwszym zakończeniu czasu zamrożenia po każdej zmianie mapy. + - **Konfiguracja** - Dodano migrację kluczy brakujących w istniejących plikach konfiguracyjnych. + +- #### Menu + - **WASDMenuAPI** - Naprawiono niepoprawny znacznik ``, który powodował otwarcie atrybutu bez jego zamknięcia przy każdym niepodświetlonym wierszu menu. + - **Menu WSAD** - Linia z informacją o sterowaniu nie jest już usuwana, gdy ukryta zostanie linia nagłówka. + - **HtmlHudCustomisation** - Puste opcje rozmiaru linii ukrywają teraz linię zamiast generować nieprawidłową klasę fontu. + +- #### Debug + - **DebugMode** - Zmieniono z wartości logicznej na liczbę z połączonymi cyframi kategorii: + - `1` - Skill + - `2` - Round + - `3` - Entity + - `4` - Damage + Przykład: `123` włącza logowanie **Skill, Round i Entity**. `0` wyłącza logowanie. Istniejące wartości `true` są migrowane automatycznie. + - **EntityManager** - Tworzenie, niszczenie i błędy encji są teraz logowane w kategorii **Entity** zamiast bezpośrednio w konsoli serwera. + - Przy uruchamianiu serwer informuje, które kategorie debugowania są aktywne. + +**Pełna aktualizacja została przygotowana przez [@ByDexterTR](https://github.com/ByDexterTR) w ramach pull requesta [#52](https://github.com/Juzlus/jRandomSkills/pull/52). Dziękujemy ByDexterTR!** + +
+ +
+v1.2.3.b6 + +- #### Nowe moce (9) + - **Zlecenie Śmierci** - Wyznacz nagrodę za głowę wroga; kto go zabije, dostaje pieniądze. + - **Granat EMP** - Kto oberwie twoim granatem, na chwilę traci radar i celownik. + - **Grawitacyjny Wabik** - Twój wabik zmienia grawitację wszystkich w pobliżu. + - **Waga Ciężka** - Umiejętności, które cię popychają lub spowalniają, nie działają na ciebie. + - **Nemezis** - Oznaczony gracz otrzymuje dodatkowe obrażenia. + - **Karający** - Gromadzisz część otrzymanych obrażeń i uwalniasz je przy następnym strzale. + - **Cofnięcie** - Naciśnij [css_useSkill], aby zostawić znacznik i wkrótce do niego wrócić. + - **Prawdziwy Pancerz** - Pancerz pochłania część otrzymywanych obrażeń zamiast zdrowia. + - **Voodoo** - Oznaczony wróg również otrzymuje część obrażeń, które ty dostajesz. + +- #### Wspólne systemy + - **DecoyRing** - Wspólny pierścień na ziemi pokazujący rzeczywisty zasięg działania wabika. + - **Konfiguracja DecoyRing** - Dodano opcję wyłączenia pierścienia DecoyRing. [autor: [@Juzlus](https://github.com/Juzlus)] + - **WeaponPool** - Scentralizowana klasyfikacja broni z obsługą konfigurowalnej sekcji `Weapons`, zastępująca powielone listy broni w wielu skillach. + - **Ukrywanie HUD-u** - System zliczania aktywnych blokad radaru/celownika zapobiega zbyt wczesnemu przywracaniu HUD-u przy nakładających się skillach. + - **ResolveHiddenPawns** - Wspólne rozwiązywanie niewidzialnych postaci dla **C4 Kamuflażu, Duszka i Ninja**. + - **Konfiguracja** - Dodano sekcję `Weapons` z automatyczną migracją dla istniejących instalacji. + - **DisableOnPistolRound** - Nowa opcja dostępna dla każdego skilla, pozwalająca wyłączyć go podczas rundy pistoletowej; obsługiwana zarówno przy losowaniu skilli, jak i przez `css_setskill`. + +- #### Dźwięk + * Zbalansowano głośność dźwięków skilli. + * Dodano `SkillUtils.EmitSoundToPlayer` z filtrowaniem odbiorców, dzięki czemu dźwięki skilli nie są już odtwarzane wszystkim graczom. + * Dodano nowe efekty dźwiękowe dla **Długiego Noża, Haka, Rykoszetu, Koszmaru, Linki z Drutu, Zakłócacza, Zdalnego Rozbrajania** i innych. + * Dodano konfigurowalny `SoundVolume` dla **29 skilli**; **Długi Nóż** obsługuje również `HitSoundVolume`. + - **Hak** - Dźwięk trafienia haka jest teraz odtwarzany w miejscu, w które trafił hak. + - **Pawel Jumper** - Dźwięk jest odtwarzany tylko przy dodatkowych skokach. + +- #### Modele i efekty wizualne + - **Hak** - Dodano właściwy model haka z konfigurowalnymi wartościami `hookScale` i `hookEmbed`. + - **Pilot** - Dodano świecącą smugę spalin podczas lotu. + +- #### Wydajność + - **SkillsInfo.GetValue** - Dodano cache eliminujący powtarzające się operacje reflection. + - **HUD** - Dodano cache renderowania, aby pomijać identyczne klatki. + - **Glaz** - Zoptymalizowano wyszukiwanie indeksów dymu oraz mapowanie właścicieli postaci. + - **playersSkills** - `ConcurrentBag` zastąpiono `HashSet`, poprawiając wyszukiwanie przy opcji `NoRepeat`. + +- #### Poprawki + - **NoRepeat** - Naprawiono problem, przez który gracze mogli otrzymywać kilka kopii tego samego skilla w jednej rundzie. + - **Papito** - Broń jest teraz prawidłowo przywracana po zmianie drużyn w połowie meczu. + - **Analfabeta** - Komunikaty dla posiadacza skilla docierają teraz do czatu i omijają jego własne zakłócenie tekstu. + - **EntityManager.DestroyBeam** - Naprawiono problem, przez który wiązki czasami pozostawały widoczne po zniszczeniu. + - **Rykoszet** - Usunięto diagnostyczne śledzenie generujące nadmierną ilość logów debugowania. + - **Trzecie Oko** - Dodano możliwość interakcji z drzwiami podczas korzystania z widoku trzeciej osoby. [autor: [@Juzlus](https://github.com/Juzlus)] + +- #### Debug + - Komunikaty dotyczące rozpoczęcia rundy rozgrzewkowej, końca rundy i zakończenia czasu zamrożenia mają teraz oznaczenie `[WARMUP]`, aby oddzielić aktywność rozgrzewki od obciążenia związanego z właściwą rundą. + +**"Pełna" aktualizacja została przygotowana przez [@ByDexterTR](https://github.com/ByDexterTR) w ramach pull requesta [#50](https://github.com/Juzlus/jRandomSkills/pull/50). Dziękujemy ByDexterTR!** + +
+
v1.2.3.b5 @@ -455,29 +573,29 @@ Plugin korzysta z zawartości następujących projektów: v1.2.3.b4 - #### Ogólne: - - ###### Dodano powiadomienie o aktywacji umiejętności `Analfabeta`. [by: [@Juzlus](https://github.com/Juzlus)] - - ###### `Analfabeta` wpływa teraz tylko na wiadomości związane z umiejętnościami. [by: [@Juzlus](https://github.com/Juzlus)] - - ###### FOV jest teraz resetowany tylko wtedy, gdy umiejętność `Lupa` jest aktywna, a aktualny FOV gracza odpowiada wartości ustawionej przez Lupa. [by: [@Juzlus](https://github.com/Juzlus)] - - ###### Klątwy są teraz cały czas śledzone i automatycznie usuwane po opuszczeniu serwera przez gracza, dzięki czemu nie przechodzą na kolejnego gracza używającego tego samego slotu. [by: [@ByDexterTR](https://github.com/ByDexterTR)] - - ###### Naprawiono problem, przez który błąd podczas czyszczenia rundy mógł zatrzymać dalsze czyszczenie i pozostawić blokadę usuwania encji aktywną do końca mapy. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Dodano powiadomienie o aktywacji umiejętności `Analfabeta`. [autor: [@Juzlus](https://github.com/Juzlus)] + - ###### `Analfabeta` wpływa teraz tylko na wiadomości związane z umiejętnościami. [autor: [@Juzlus](https://github.com/Juzlus)] + - ###### FOV jest teraz resetowany tylko wtedy, gdy umiejętność `Lupa` jest aktywna, a aktualny FOV gracza odpowiada wartości ustawionej przez Lupa. [autor: [@Juzlus](https://github.com/Juzlus)] + - ###### Klątwy są teraz cały czas śledzone i automatycznie usuwane po opuszczeniu serwera przez gracza, dzięki czemu nie przechodzą na kolejnego gracza używającego tego samego slotu. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Naprawiono problem, przez który błąd podczas czyszczenia rundy mógł zatrzymać dalsze czyszczenie i pozostawić blokadę usuwania encji aktywną do końca mapy. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - #### Poprawki mocy: - ###### Wallhack / Koszmar: - - ###### Naprawiono problem, przez który obie umiejętności były ujawniane całemu serwerowi podczas pokazywania umiejętności na początku rundy. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Naprawiono problem, przez który obie umiejętności były ujawniane całemu serwerowi podczas pokazywania umiejętności na początku rundy. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Mocne Uderzenie / Ludzka Bomba / Wybuchowa Beczka / Strzał Wybuchowy / Toksyczny Dym: - - ###### Te umiejętności uwzględniają teraz redukcję obrażeń od przyjaznego ognia. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Te umiejętności uwzględniają teraz redukcję obrażeń od przyjaznego ognia. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Deszcz Ognia: - - ###### Dodano tryb rozprysku, który jest automatycznie używany po wykryciu sufitu nad celem. [by: [@Juzlus](https://github.com/Juzlus)] - - ###### Molotovy poprawnie zachowują teraz właściciela oraz drużynę, dzięki czemu zasady przyjaznego ognia działają poprawnie. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Dodano tryb rozprysku, który jest automatycznie używany po wykryciu sufitu nad celem. [autor: [@Juzlus](https://github.com/Juzlus)] + - ###### Molotovy poprawnie zachowują teraz właściciela oraz drużynę, dzięki czemu zasady przyjaznego ognia działają poprawnie. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Lecząca Kura: - - ###### Dodano opcję konfiguracji zdrowia przywoływanych kurczaków. [by: [@Juzlus](https://github.com/Juzlus)] - - ###### Sojusznicy nie mogą już zadawać obrażeń ani zabijać przywołanych kurczaków. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Dodano opcję konfiguracji zdrowia przywoływanych kurczaków. [autor: [@Juzlus](https://github.com/Juzlus)] + - ###### Sojusznicy nie mogą już zadawać obrażeń ani zabijać przywołanych kurczaków. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Zabierz Amunicję: - - ###### Naprawiono crash podczas zmiany mapy przy przywracaniu amunicji zapasowej broni. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Naprawiono crash podczas zmiany mapy przy przywracaniu amunicji zapasowej broni. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Fortnite: - - ###### Ściana pojawia się teraz z wysokim początkowym HP, dzięki czemu nie niszczy się natychmiast po postawieniu. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Ściana pojawia się teraz z wysokim początkowym HP, dzięki czemu nie niszczy się natychmiast po postawieniu. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Odrzutowy Kop / Ostrożne Pociski / Dzikie Rzuty: - - ###### Naprawiono pozostające efekty po rozłączeniu się gracza będącego celem tych umiejętności. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Naprawiono pozostające efekty po rozłączeniu się gracza będącego celem tych umiejętności. [autor: [@ByDexterTR](https://github.com/ByDexterTR)]
@@ -634,29 +752,29 @@ Plugin korzysta z zawartości następujących projektów: v1.2.2.b7 - #### Ogólne: - - ###### Zaktualizowano sygnatury gamedata do najnowszej aktualizacji CS2 (build 24134959) oraz zaktualizowano CounterStrikeSharp do wersji 1.0.371. [by: [@ByDexterTR](https://github.com/ByDexterTR)] - - ###### FNaprawiono `NullReferenceException` występujący podczas podnoszenia broni, gdy dane broni wskazywały na zwolnioną pamięć schematu. [by: [@ByDexterTR](https://github.com/ByDexterTR)] - - ###### `FullForceUpdate` został zmieniony na opcjonalne ustawienie w konfiguracji. Jego włączenie zmniejsza ryzyko błędów PVS, ale powoduje znaczne obciążenie serwera (domyślnie wyłączone). [by: [@Juzlus](https://github.com/Juzlus)] + - ###### Zaktualizowano sygnatury gamedata do najnowszej aktualizacji CS2 (build 24134959) oraz zaktualizowano CounterStrikeSharp do wersji 1.0.371. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### FNaprawiono `NullReferenceException` występujący podczas podnoszenia broni, gdy dane broni wskazywały na zwolnioną pamięć schematu. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### `FullForceUpdate` został zmieniony na opcjonalne ustawienie w konfiguracji. Jego włączenie zmniejsza ryzyko błędów PVS, ale powoduje znaczne obciążenie serwera (domyślnie wyłączone). [autor: [@Juzlus](https://github.com/Juzlus)] - #### Poprawki mocy: - ###### Duszek: - - ###### Teraz może podkładać C4. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Teraz może podkładać C4. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Samowolka / Krótka Bomba: - - ###### Odliczanie bomby wyświetlane na ekranie jest teraz zgodne z ustawionym czasem detonacji (`mp_c4timer`). [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Odliczanie bomby wyświetlane na ekranie jest teraz zgodne z ustawionym czasem detonacji (`mp_c4timer`). [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Bogacz: - - ###### Bonus za pieniądze teraz respektuje `mp_maxmoney` zamiast być ograniczony na sztywno do wartości 16000. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Bonus za pieniądze teraz respektuje `mp_maxmoney` zamiast być ograniczony na sztywno do wartości 16000. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Druga Szansa: - - ###### Teraz niezawodnie odradza gracza w bazie po otrzymaniu śmiertelnego obrażenia, również od obrażeń od upadku. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Teraz niezawodnie odradza gracza w bazie po otrzymaniu śmiertelnego obrażenia, również od obrażeń od upadku. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Cień: - - ###### Naprawiono fałszywy komunikat "brak miejsca" podczas teleportacji za cel z bliskiej odległości. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Naprawiono fałszywy komunikat "brak miejsca" podczas teleportacji za cel z bliskiej odległości. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Radarowiec: - - ###### Teraz ujawnia przeciwników tylko posiadaczowi mocy zamiast całej jego drużynie oraz nie ujawnia już niewidzialnych ani zamaskowanych przeciwników. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Teraz ujawnia przeciwników tylko posiadaczowi mocy zamiast całej jego drużynie oraz nie ujawnia już niewidzialnych ani zamaskowanych przeciwników. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### C4 Kamuflaż: - - ###### Niewidzialny gracz niosący bombe nie pojawia się już na radarze przeciwników. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Niewidzialny gracz niosący bombe nie pojawia się już na radarze przeciwników. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Gorąca bomba: - - ###### Podpowiedź dotycząca "gorącej bomby" nie pojawia się już w rundach, w których nikt nie posiada tej mocy. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Podpowiedź dotycząca "gorącej bomby" nie pojawia się już w rundach, w których nikt nie posiada tej mocy. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Błazen: - - ###### Naprawiono crashe występujące podczas wyłączania mocy. [by: [@Juzlus](https://github.com/Juzlus)] + - ###### Naprawiono crashe występujące podczas wyłączania mocy. [autor: [@Juzlus](https://github.com/Juzlus)]
@@ -664,22 +782,22 @@ Plugin korzysta z zawartości następujących projektów: v1.2.2.b6 - #### Ogólne: - - ###### Wydajność: znacznie przyspieszono zmianę rundy - resetowane są tylko moce, które były aktywne w poprzedniej rundzie, zamiast wszystkich załadowanych (DisableAll skrócono z ok. 89 ms do ok. 5 ms na pełnym serwerze). [by: [@ByDexterTR](https://github.com/ByDexterTR)] - - ###### Wydajność i zużycie pamięci: usunięto alokacje LINQ oraz nazw mocy wykonywane przy każdym ticku, przyspieszono wyszukiwanie nazw mocy w HUD do złożoności O(1), a podstawianie kolorów i przycisków w tłumaczeniach przeniesiono do etapu ich wczytywania. [by: [@ByDexterTR](https://github.com/ByDexterTR)] - - ###### `ForceFullUpdate` tworzy teraz usługę sieciową tylko raz na każde rozgłoszenie, a zabezpieczenie kątów widoku na początku rundy pomija wyłącznie rzeczywistą wartość zastępczą (0, 0, 0), zamiast błędnie pomijać również poprawne kąty. [by: [@ByDexterTR](https://github.com/ByDexterTR)] - - ###### Logowanie debugowania jest aktywowane tylko wtedy, gdy włączony jest DebugMode, a wpisy są zapisywane przy użyciu jednego, ponownie wykorzystywanego strumienia zamiast każdorazowego otwierania pliku. [by: [@ByDexterTR](https://github.com/ByDexterTR)] - - ###### Stan mocy gracza został ujednolicony do jednej kolekcji (usunięto zduplikowaną listę), eliminując rzadkie problemy z desynchronizacją podczas rozłączenia gracza. [by: [@ByDexterTR](https://github.com/ByDexterTR)] - - ###### Sygnatury Gamedata są teraz wczytywane leniwie i niezależnie od siebie, dzięki czemu uszkodzona sygnatura po aktualizacji CS2 nie powoduje już awarii całej warstwy narzędziowej. [by: [@ByDexterTR](https://github.com/ByDexterTR)] - - ###### Zabezpieczono wiele ścieżek wykonywanych przy tickach i transmisji przed nieprawidłowymi uchwytami graczy, co zapobiega rzadkim awariom. [by: [@ByDexterTR](https://github.com/ByDexterTR)] - - ###### HUD z opisem mocy poprawnie obsługuje opcję "zawsze pokazuj" (-1) we wszystkich ścieżkach przypisywania mocy. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Wydajność: znacznie przyspieszono zmianę rundy - resetowane są tylko moce, które były aktywne w poprzedniej rundzie, zamiast wszystkich załadowanych (DisableAll skrócono z ok. 89 ms do ok. 5 ms na pełnym serwerze). [autor: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Wydajność i zużycie pamięci: usunięto alokacje LINQ oraz nazw mocy wykonywane przy każdym ticku, przyspieszono wyszukiwanie nazw mocy w HUD do złożoności O(1), a podstawianie kolorów i przycisków w tłumaczeniach przeniesiono do etapu ich wczytywania. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### `ForceFullUpdate` tworzy teraz usługę sieciową tylko raz na każde rozgłoszenie, a zabezpieczenie kątów widoku na początku rundy pomija wyłącznie rzeczywistą wartość zastępczą (0, 0, 0), zamiast błędnie pomijać również poprawne kąty. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Logowanie debugowania jest aktywowane tylko wtedy, gdy włączony jest DebugMode, a wpisy są zapisywane przy użyciu jednego, ponownie wykorzystywanego strumienia zamiast każdorazowego otwierania pliku. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Stan mocy gracza został ujednolicony do jednej kolekcji (usunięto zduplikowaną listę), eliminując rzadkie problemy z desynchronizacją podczas rozłączenia gracza. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Sygnatury Gamedata są teraz wczytywane leniwie i niezależnie od siebie, dzięki czemu uszkodzona sygnatura po aktualizacji CS2 nie powoduje już awarii całej warstwy narzędziowej. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Zabezpieczono wiele ścieżek wykonywanych przy tickach i transmisji przed nieprawidłowymi uchwytami graczy, co zapobiega rzadkim awariom. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### HUD z opisem mocy poprawnie obsługuje opcję "zawsze pokazuj" (-1) we wszystkich ścieżkach przypisywania mocy. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - #### Poprawki mocy: - ###### Błazen: - - ###### Naprawiono błąd, przez który efekt braku obrażeń pozostawał na graczu po zmianie jego mocy w trakcie rundy (np. po kradzieży przez Złodzieja lub usunięciu przez Dezaktywatora) - stan wewnętrzny jest teraz poprawnie czyszczony po wyłączeniu mocy. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Naprawiono błąd, przez który efekt braku obrażeń pozostawał na graczu po zmianie jego mocy w trakcie rundy (np. po kradzieży przez Złodzieja lub usunięciu przez Dezaktywatora) - stan wewnętrzny jest teraz poprawnie czyszczony po wyłączeniu mocy. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Stópkarz: - - ###### Naprawiono problem z gromadzeniem się śladów w trakcie rundy - poprzedni ślad jest teraz usuwany przed utworzeniem nowego. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Naprawiono problem z gromadzeniem się śladów w trakcie rundy - poprzedni ślad jest teraz usuwany przed utworzeniem nowego. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] - ###### Oko Sokoła / Trzecie Oko / Obserwator: - - ###### Stan kamery jest teraz całkowicie resetowany po wyłączeniu mocy. [by: [@ByDexterTR](https://github.com/ByDexterTR)] + - ###### Stan kamery jest teraz całkowicie resetowany po wyłączeniu mocy. [autor: [@ByDexterTR](https://github.com/ByDexterTR)] diff --git a/README.md b/README.md index 89cdc61..ccb090a 100644 --- a/README.md +++ b/README.md @@ -47,8 +47,7 @@ Join the 3v3 test server and try out the jRandomSkills plugin: Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus.html). - -## ✨ Current Skills (145) +## ✨ Current Skills (154)
The table below lists all available skills in the game, along with their descriptions. @@ -58,8 +57,6 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus. | Aim Lock | Click [css_useSkill] to lock your aim on the nearest enemy | 20 s | | Anomaly | Click [css_useSkill] to rewind a few seconds back in time | 15 s | | Anti-Flash | You are immune to flashbangs, and your flashbangs last 7 seconds | - | -| Iron Head | You take no damage from headshots | - | -| Zone Reaper | You can choose a bomb site to deactivate | - | | Armored | You have a random damage taken multiplier | (0.65 - 0.85)x | | Assassin | You deal increased damage to enemies from behind | - | | Astronaut | You receive a random gravity value at the start of the round | (0.1 - 0.7)x | @@ -68,6 +65,7 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus. | Berserker | You deal more damage and move faster as your health gets lower | - | | Blademaster | While holding a knife, you have a high chance to deflect a shot | - | | Blast Shot | Press Attack2 with the MP5 to fire an HE grenade | 10 s | +| Bounty | Put a price on an enemy's head; whoever kills them takes the money | 300$ | | Bunny | You get auto "BunnyHop" | - | | C4 Camouflage | You are invisible while holding the bomb | - | | Careful Bullets | Select a player who takes damage for every missed shot | - | @@ -83,13 +81,13 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus. | Death Bomb | You explode upon death, killing nearby players | - | | Demon Eye | You deal damage to every enemy you are looking at | 2 s | | 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 | - | | Duplicator | Choose a player to copy their skill | - | | Dwarf | Random character size at the start of the round | (60 - 95)% | -| Enemy Spin | You have a random chance to turn an enemy 180° when hitting them | (20 - 40)% | +| EMP Grenade | Anyone hurt by your grenade loses their radar and crosshair for a while | 3 s | | Enemy Spawn | Click [css_useSkill] to teleport to the enemy spawn | 15 s | +| Enemy Spin | You have a random chance to turn an enemy 180° when hitting them | (20 - 40)% | | Expensive Ammo | A chosen enemy has to pay for every shot | - | | Exploding Barrel | Click [css_useSkill] to place a barrel that explodes when shot | 20 s | | Explosive Shot | Random chance to fire an explosive bullet while shooting | (15 - 30)% | @@ -104,15 +102,17 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus. | Freezing Decoy | Your decoy freezes all nearby players | - | | Gambler | Select a skill from the list provided | - | | Ghost | You are completely invisible | - | -| Giant | Enlarge an enemy of your choice | (110 - 140)% | +| Giant | Enlarge an enemy of your choice | (110 - 140)% | | Glaz | You can see through smoke grenades | - | | Glitch | Disables the radar for a chosen enemy | - | | Glue | Your grenades stick to walls | - | | God Mode | Click [css_useSkill] to become immortal for a short time | 30 s | | Grapple Hook | Press [css_useSkill] to fire a hook at the point you're aiming at and pull yourself there | 10 s | +| Gravity Decoy | Your decoy changes the gravity of everyone nearby | 0.5x | | Grenadier | You have infinite HE grenades | - | | Healing Chicken | Your chickens heal you while you are nearby | 1 s = 5 HP | | Healing Smoke | Your smoke grenades heal | - | +| Heavyweight | Skills that push or slow you down have no effect on you | - | | Hermit | Killing restores ammo and a portion of health | - | | Holy Hand Grenade | Your HE grenades deal double damage and have double range | - | | Homing Grenades | Your grenades (except smokes) are attracted to enemies | - | @@ -123,16 +123,16 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus. | Impostor | You start the round with an enemy player model | - | | Infinite Ammo | You receive infinite ammo for all your weapons | - | | Inheritance | When a teammate dies you can take over their skill | - | -| Tracker | Choose a player who will leave a trail behind them | - | +| Iron Head | You take no damage from headshots | - | | Jammer | Choose a player to disable their crosshair | - | | Jester | In jester mode, you cannot get or take any damage. This mode changes every few seconds | (10 - 25) s | | Jetkick | Select a player to jetkick | - | -| Legless | Choose a player who cannot jump | - | | Jump Curse | A chosen enemy jumps whenever one of their teammates jumps | - | | Jumping Jack | Jumping restores health | - | | Killer Flash | Anyone fully blinded by your flashbang dies (including you) | - | | Knockback | Firing while airborne pushes you backwards | - | | Last Gasp | After you die, you deal damage to the enemy who killed you | 30 HP | +| Legless | Choose a player who cannot jump | - | | Life Swap | Choose a player to swap health with | - | | Long Knife | A primary knife attack deals damage regardless of distance | - | | Long Zeus | Zeus deals damage regardless of distance | - | @@ -141,11 +141,11 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus. | Magnifier | Forces the enemy's screen to zoom in, reducing their field of view | - | | Medic | Click [css_useSkill] to use a healing charge that restores 50 health | 1 s | | Bomb Miner | Your HE grenade only explodes when there is an enemy nearby | - | -| Taxman | Choose a player to swap money with | - | +| Nemesis | The player you mark takes extra damage | +0.25x | | Nightmare | Force a chosen enemy to experience a terrifying vision | - | | Ninja | Standing still increases your invisibility by 33%, crouching by 33%, and holding a knife by 33% | - | | No-Nades | Grenades deal no damage to you | - | -| Focus | No recoil while shooting | - | +| No Rifles | Choose a player who cannot use rifles | - | | NoClip | Click [css_useSkill] to enable noclip for a short time | 30 s | | One-Shot | Hitting an enemy instantly kills them | - | | Head Only | You only take damage to the head | - | @@ -158,6 +158,7 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus. | No Rifles | Choose a player who cannot use rifles | - | | Prosthesis | Arms and legs are bulletproof | - | | Pusher | You have a random chance to push an enemy back when hitting them | 100% | +| Punisher | You bank part of the damage you take and add it to your next hit | 0.5x | | Pyro | Molotov restores health | - | | Rapid Fire | All bullets are fired very quickly | - | | Radar Hack | Enemies are visible on the radar | - | @@ -169,6 +170,7 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus. | Replicator | Click [css_useSkill] to create a replica that deals damage on hit | 15 s | | Retreat | Click [css_useSkill] to return to spawn | 15 s | | Return to Sender | The first hit on an enemy sends them back to their spawn | - | +| Rewind | Click [css_useSkill] to drop a marker where you stand and return to it shortly after | 30 s | | Rich Boy | You receive a random amount of money at the start of the round | (5000 - 15000)$ | | Ricochet | Your bullets bounce off walls and can still hit enemies | - | | Robin Hood | Dealing damage to an enemy steals their money | - | @@ -187,18 +189,23 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus. | Take Ammo | Click [css_useSkill] to take the active weapon's magazine from a random enemy | - | | Team Teleport | Press [css_useSkill] to teleport to the teammate you're looking at. | 15 s | | Teleporter | You swap places with the hit enemy | - | +| Taxman | Choose a player to swap money with | - | | Thief | You can steal a skill from a chosen player | - | | Third Eye | Click [css_useSkill] to activate third-person view | 0 s | | Thorns | Your opponent will receive a portion of the damage that they inflicted on you | - | | Throwing Knife | Click [css_useSkill] to throw a knife. But watch out for others | - | | Toxic Smoke | Your smoke grenades deal damage | - | +| Tracker | Choose a player who will leave a trail behind them | - | | Tripwire | Click [css_useSkill] to string a wire between two walls. Enemies who touch it appear on your radar | 20 s | +| True Armor | Part of the damage you take is paid by your armor instead of your health | 0.33x | +| Voodoo | The enemy you mark also takes part of the damage you take | 0.5x | | Wallhack | You can see enemies through walls | - | | Watchmaker | Every grenade throw alters the round time | - | | Weapon Swap | Click [css_useSkill] to swap weapons with a random enemy | 30 s | | Weightlessness | Your grenades are not affected by gravity and fly faster | - | | Wild Throws | Choose a player who will have trouble throwing grenades | - | | Zeus | Zeus x27 instantly recharges | - | +| Zone Reaper | You can choose a bomb site to deactivate | - |
@@ -296,7 +303,13 @@ All skills can be customized in the **`config.cfg`** / **`skillsInfo.json`** fil "SummaryAfterTheRound": true, // Show summary of the last round "EnableBotSkills": true, // Enable skills for bots "EnableBotKickDebug": false, // Kick a random bot every 45s (for debug/testing) - "DebugMode": false, // Save debug logs (player events and plugin activity) to the Debug folder + "DebugMode": 0, // Save debug logs (player events and plugin activity) to the Debug folder + // 0 - Disabled + // 1 - Skill + // 2 - Round + // 3 - Entity + // 4 - Damage + // Example: '123' enables: Skill, Round and Entity "PerfMode": false, // Save performance measurements to the logs folder "AlternativeSkillButton": null, // Possible buttons: // null, "Attack", "Jump", "Duck", "Forward", "Back", @@ -383,6 +396,7 @@ This plugin uses content from the following projects: - [GeoLite2](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data) by [MaxMind](https://www.maxmind.com/) - Geolocation data - [cs2-css-flashlight](https://github.com/creazy231/cs2-css-flashlight) by [creazy231](https://github.com/creazy231) - Lighting creation system - [CServerSideClient](https://discord.com/channels/1160907911501991946/1508172390863994910/1508180670659166348) by [SLAYER](https://github.com/zakriamansoor47) +- [CS2Plugins](https://github.com/ByDexterTR/CS2Plugins) by [ByDexterTR](https://github.com/ByDexterTR) ## ❤️ Special thanks
@@ -408,6 +422,109 @@ This plugin uses content from the following projects: ## 📋 Changelog +
+v1.2.3.b7 + +- #### Shared Systems + - **DecoyTracker** - Owner-aware decoy tracking shared by FrozenDecoy, GravityDecoy and MagneticDecoy, replacing the per-skill position dictionaries. + - **DebugCategory** - New flag enum backing the numeric `DebugMode`, with automatic migration from the old boolean value. + - **SkillsInfo.GetSkillConfig** - Indexed skill config lookup replacing the linear scan used by draws and HUD rendering. + - **SkillNames** - Cached enum name table, removing repeated `ToString()` calls from the draw path. + - **SkillUtils.HideCarriedEntities** - Shared carried-weapon resolution for C4Camouflage, Ghost and Ninja. + +- #### Performance + - **Skill draw** - Replaced the $O(n²)$ config lookup; rounds exceeding the perf threshold dropped from 89% to 0.3%. + - **CheckTransmit** - The weapon chain is now resolved once per hidden pawn instead of once per receiver; Ghost cost down 61%. + - **Pilot** - The exhaust trail is paused and resumed instead of being destroyed and recreated on every jump release. + - **MagneticDecoy** - Config reads and the pawn list are hoisted out of the per-decoy loop. + - **FrozenDecoy** - Config reads are hoisted out of the per-tick loop. + - **Debug** - The damage hook is only installed when damage logging is enabled. + +- #### Fixes + - **PsychicDefusing** - Can no longer finish a defuse and award an extra round after the round has already ended. + - **Spectator** - Now picks a different enemy on each activation and no longer creates an unused camera prop every time the skill is switched off. + - **Random** - Replaced the shared `Random` instance with `Random.Shared`, preventing degenerate results from concurrent use. + - **Baseball** - Decoys are removed when their owner dies or loses the skill. + - **FrozenDecoy, GravityDecoy, MagneticDecoy** - Decoys and their ground rings are removed when the skill is taken away. + - **ThirdEye** - Fixed the camera check dereferencing a missing `CameraServices`, and the door toggle now verifies the entity class before casting. + - **Round start** - Fixed `[gamerules unavailable]` appearing on the first freeze-time end after every map change. + - **Config** - Added migration for keys missing from existing configuration files. + +- #### Menu + - **WASDMenuAPI** - Fixed a malformed `` tag that wrapped every non-hovered menu row in an unclosed attribute. + - **WSAD menu** - The controls line is no longer dropped when the header line is hidden. + - **HtmlHudCustomisation** - Line size options left empty now hide their line instead of emitting an invalid font class. + +- #### Debug + - **DebugMode** - Changed from a boolean to a number with concatenated category digits: + - `1` - Skill + - `2` - Round + - `3` - Entity + - `4` - Damage + Example: `123` enables Skill, Round and Entity. `0` disables logging. Existing `true` values migrate automatically. + - **EntityManager** - Entity creation, destruction and failures are now logged under the Entity category instead of the server console. + - Startup now reports which debug categories are active. + +**Full update contributed by [@ByDexterTR](https://github.com/ByDexterTR) in pull request [#52](https://github.com/Juzlus/jRandomSkills/pull/52). Thanks to ByDexterTR!** + +
+ +
+v1.2.3.b6 + +- #### New Skills (9) + - **Bounty**: Put a price on an enemy's head; whoever kills them takes the money. + - **EMP Grenade**: Anyone hurt by your grenade loses their radar and crosshair for a while. + - **Gravity Decoy**: Your decoy changes the gravity of everyone nearby. + - **Heavyweight**: Skills that push or slow you down have no effect on you. + - **Nemesis**: The player you mark takes extra damage. + - **Punisher**: You bank part of the damage you take and add it to your next hit. + - **Rewind**: Click [css_useSkill] to drop a marker where you stand and return to it shortly after. + - **True Armor**: Part of the damage you take is paid by your armor instead of your health. + - **Voodoo**: The enemy you mark also takes part of the damage you take. + +- #### Shared Systems + - **DecoyRing** - Shared ground ring showing the actual decoy area of effect. + - **DecoyRing Config** - Added an option to disable the DecoyRing. [by: [@Juzlus](https://github.com/Juzlus)] + - **WeaponPool** - Centralized weapon classification with configurable `Weapons` support, replacing duplicated weapon lists across multiple skills. + - **HUD Suppression** - Refcounted radar/crosshair hiding prevents overlapping skills from restoring HUD state too early. + - **ResolveHiddenPawns** - Shared invisible-pawn resolution for C4Camouflage, Ghost and Ninja. + - **Config** - Added a `Weapons` section with automatic migration for existing installations. + - **DisableOnPistolRound** - New per-skill option supported by both round draws and `css_setskill`. + +- #### Sound + - Rebalanced skill sound volumes. + - Added `SkillUtils.EmitSoundToPlayer` with private recipient filtering, preventing skill sounds from being broadcast to all players. + - Added new sound effects for LongKnife, Grapple, Ricochet, Nightmare, Tripwire, Jammer, PsychicDefusing and more. + - Added configurable `SoundVolume` to **29 skills**; LongKnife also supports `HitSoundVolume`. + - **Grapple** - Hook impact sound now plays at the hook's position. + - **PawelJumper** - Only extra jumps emit a sound. + +- #### Models & Visuals + - **Grapple** - Added a proper hook model with configurable `hookScale` and `hookEmbed`. + - **Pilot** - Added a glowing exhaust trail while airborne. + +- #### Performance + - **SkillsInfo.GetValue** - Added caching to eliminate repeated reflection. + - **HUD** - Added render caching to skip identical frames. + - **Glaz** - Optimized smoke index resolution and pawn-owner mapping. + - **playersSkills** - Replaced `ConcurrentBag` with `HashSet`, improving `NoRepeat` lookups. + +- #### Fixes + - **NoRepeat** - Fixed players receiving multiple copies of skills in the same round. + - **SniperElite** - Weapon is now correctly restored after the halftime team swap. + - **Illiterate** - Holder alerts now reach chat and bypass the holder's own scrambler. + - **EntityManager.DestroyBeam** - Fixed beams occasionally remaining visible after destruction. + - **Ricochet** - Removed diagnostic tracing that was generating excessive debug log output. + - **ThirdEye** - Added the ability to interact with doors while ThirdEye is active in third-person mode. [by: [@Juzlus](https://github.com/Juzlus)] + +- #### Debug + - Warmup round start, round end and freeze-time-end messages are now tagged with `[WARMUP]` to separate warmup activity from live-round load. + +**'Full' update contributed by [@ByDexterTR](https://github.com/ByDexterTR) in pull request [#50](https://github.com/Juzlus/jRandomSkills/pull/50). Thanks to ByDexterTR!** + +
+
v1.2.3.b5