From 75b8bec7e1ad897a21dfb21cb2f563a38a806376 Mon Sep 17 00:00:00 2001 From: Juzlus Date: Tue, 8 Sep 2026 03:34:40 +0200 Subject: [PATCH] Update markdown --- .github/en.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ .github/pl.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 130 insertions(+), 2 deletions(-) diff --git a/.github/en.md b/.github/en.md index 9e5d909..9421630 100644 --- a/.github/en.md +++ b/.github/en.md @@ -329,7 +329,23 @@ All skills can be customized in the **`config.cfg`** / **`skillsInfo.json`** fil "TraceRayBeam": false, // Enable trail visibility for 'Long Knife', 'Long Zeus' "DisableHUDOnDeathPermission": "@jRandomSkills/death", // Disable the HUD after death for players with this permission "DisableSkillsOnRoundEnd": false,// Disable all skills at the end of the round (when the summary is visible) + "VIPFlag": "@css/vip", // Players with this permission use the VIP skill rarity distribution + "SkillsChance": { // Skill rarity distribution for regular players. Percentages and fractions are supported and normalized to 100% + "Common": 0.7, + "Uncommon": 0.14, + "Rare": 0.1, + "Epic": 0.05, + "Legendary": 0.01 + }, + "VIPSkillsChance": { // Skill rarity distribution for players with the VIP flag. Percentages and fractions are supported and normalized to 100% + "Common": 0.55, + "Uncommon": 0.23, + "Rare": 0.14, + "Epic": 0.07, + "Legendary": 0.01 + }, "CurseSkillPerPlayer": null, // Maximum number of effects per player + "ShowDecoyRing": true, // Show the ring around decoys "LanguageSystem": { "DefaultLangCode": "en", // Default language: en, pl, fr, pt-br, zh @@ -369,6 +385,7 @@ All skills can be customized in the **`config.cfg`** / **`skillsInfo.json`** fil // -1 = never hide the description, // >= 0 = display duration in seconds. "RequiredPermission": "", // Required permission + "MinPlayer": 0, // Minimum number of players required on the server (0 to disable the limit) "MaxPerServer": -1, // Maximum number of players allowed to have // this skill on the server (-1 for unlimited) "Rarity": "Common" // Rarity tier of the skill: @@ -408,6 +425,54 @@ This plugin uses content from the following projects: ## 📋 Changelog +
+v1.2.4.b1 + +- #### General + - **ConVar lookups** - `ConVar.Find` results are now cached by name in `SkillUtils`. All 25 call sites converted. + - **Config loading** - Malformed `skillsInfo.json` no longer resets all settings to defaults. Failed entries keep current settings and prevent config rewriting. + - **Config writing** - Replaced copy-and-delete with an atomic rename to prevent half-written configs. + - **Config diagnostics** - Load now logs the resolved path, file status, entry counts, known skills, rewrite status and the actual exception. + - **Use button (CT skills)** - Skills no longer trigger near planted C4. Range and aim are checked directly. + - **SkillUtils.UpdateGrenadeCount** - Fixed delayed clip reset affecting a weapon that replaced the original inventory slot. + +- #### Shared Systems + - **SkillUtils.IsPredictedLethal** - Added a shared lethality check with hitgroup multipliers, `ArmorRatio` and correct armor coverage, replacing three duplicated headshot-only checks. + +- #### Skill Fixes + - **ReZombie, Phoenix, Second Life** - Fixed stomach hits between 80–100% HP being treated as survivable by using the shared lethality check. + - **Blast Shot, Death Bomb, Exploding Barrel, Explosive Shot** - Explosion kill credit now accounts for armor. + - **Explosive Shot** - Projectile owner/team state is now tracked per player and tick, preventing conflicts between simultaneous users and duplicate pellet explosions. + - **Fire Rain** - Thrower/team/count state is now stored in per-tick batches, preventing conflicts between simultaneous users. + - **Rich Boy** - Bonus removal now restores the account from a pre-bonus snapshot instead of `CashSpentThisRound`. + - **Robin Hood, Rich Boy, Bounty** - Rewards now respect `mp_maxmoney`. + - **True Armor** - Helmet state is saved and restored alongside armor. + - **Gravity Decoy** - Added `WeaponEquip` and `WeaponPickup` handlers to keep the grenade count correct. + - **Catapult, Push, Shade, Rubber** - Now react only to bullet damage. + - **Throwing Knife** - Thrown knives at round end are tracked separately and replaced next round. + - **Planter, Chill Out, Magnifier** - Players are validated before reading `Team`/`PawnIsAlive`. + - **Weapons Swap** - Both players are validated before removing weapons, and invalid/dead/spectating enemies can no longer be selected. + - **Ninja, Ghost, C4 Camouflage** - Fixed client crash (`FATAL ERROR: CopyExistingEntity: missing client entity`) when a hidden player died nearby. Hidden pawns are restored to the network snapshot on the same tick. + - **Ninja, Ghost, C4 Camouflage, Glaz, Jackal, Wallhack, Throwing Knife, Nightmare** - Dead players are no longer treated as viewers, preventing visibility leaks and network desync. + - **Wallhack, Jackal, Throwing Knife, Nightmare** - Dead players no longer see Wallhack outlines, Jackal trails, Throwing Knife glows or Nightmare volumes. + - **Sound Maker** - Fixed the scream playing for players without the skill. + +- #### Stability + - **CheckTransmit (Ninja, Ghost, C4 Camouflage)** - Dying entity handles are now tracked with their expiry and removed when indexes are recycled, fixing `CopyExistingEntity: missing client entity`. + - **WeaponEquip, WeaponPickup** - Skip dispatch when another plugin supersedes the pre-hook and leaves the event null. + +- #### Config + - **SkillsChance, VIPSkillsChance** - Added configurable rarity distribution tables to `config.json`, percentages and fractions are normalized to 100%. + - **VIPFlag** - Added with default `@css/vip`, empty disables the VIP rarity table. + - **All skills** - Added `MinPlayer` to `skillsInfo.json`. Skills require the configured minimum number of players on the server. `0` (default) disables the limit. Applies to normal draws, late joiners and Gambler rerolls. + +- #### Localization + - **Catapult, Push, Shade** - Turkish descriptions now clarify what the percentage applies to. + +**Full update contributed by [@ByDexterTR](https://github.com/ByDexterTR) in pull request [#57](https://github.com/Juzlus/jRandomSkills/pull/57). Thanks to ByDexterTR!** + +
+
v1.2.3.b9 diff --git a/.github/pl.md b/.github/pl.md index af5a21a..cf1c61c 100644 --- a/.github/pl.md +++ b/.github/pl.md @@ -329,7 +329,23 @@ Wszystkie sypermoce można dostosować w pliku **`config.cfg`** / **`skillsInfo. "TraceRayBeam": false, // Włącz widoczność ścieżki dla 'Długi Nóż', 'Długi Zeus' "DisableHUDOnDeathPermission": "@jRandomSkills/death", // Wyłącz HUD po śmierci dla graczy z tym uprawnieniem "DisableSkillsOnRoundEnd": false,// Wyłącz wszystkie umiejętności na koniec rundy (gdy widoczne jest podsumowanie) - "CurseSkillPerPlayer": null, // Maksymalna liczba efektów na gracza + "VIPFlag": "@css/vip", // Gracze z tym uprawnieniem korzystają z tabeli szans VIP + "SkillsChance": { // Rozkład szans rzadkości umiejętności dla zwykłych graczy. Wartości procentowe i ułamki są obsługiwane i normalizowane do 100% + "Common": 0.7, + "Uncommon": 0.14, + "Rare": 0.1, + "Epic": 0.05, + "Legendary": 0.01 + }, + "VIPSkillsChance": { // Rozkład szans rzadkości umiejętności dla graczy VIP. Wartości procentowe i ułamki są obsługiwane i normalizowane do 100% + "Common": 0.55, + "Uncommon": 0.23, + "Rare": 0.14, + "Epic": 0.07, + "Legendary": 0.01 + }, + "CurseSkillPerPlayer": null, // Maksymalna liczba efektów przypadających na jednego gracza + "ShowDecoyRing": true, // Pokazuje pierścień wokół wabików "LanguageSystem": { "DefaultLangCode": "en", // Język domyślny: en, pl, fr, pt-br, zh @@ -369,6 +385,7 @@ Wszystkie sypermoce można dostosować w pliku **`config.cfg`** / **`skillsInfo. // -1 = nigdy nie ukrywaj opisu, // >= 0 = czas wyświetlania w sekundach. "RequiredPermission": "", // Wymagane uprawnienie + "MinPlayer": 0, // Minimalna liczba graczy wymagana na serwerze (0 wyłącza limit) "MaxPerServer": -1, // Maksymalna liczba graczy, którzy mogą posiadać tę // umiejętność na serwerze (-1 dla "nieograniczona") "Rarity": "Common" // Poziom rzadkości umiejętności: @@ -408,7 +425,53 @@ Plugin korzysta z zawartości następujących projektów: ## 📋 Lista Zmian -## 📋 Changelog +
+v1.2.4.b1 + +- #### Ogólne + - **Wyszukiwanie ConVar** - Wyniki `ConVar.Find` są teraz cachowane po nazwie w `SkillUtils`. Zmieniono wszystkie 25 miejsc użycia. + - **Ładowanie konfiguracji** - Uszkodzony `skillsInfo.json` nie resetuje już wszystkich ustawień do wartości domyślnych. Błędne wpisy zachowują obecne ustawienia i blokują przepisywanie konfiguracji. + - **Zapisywanie konfiguracji** - Zastąpiono kopiowanie i usuwanie atomową zmianą nazwy pliku, aby przerwany zapis nie pozostawiał uszkodzonej konfiguracji. + - **Diagnostyka konfiguracji** - Ładowanie loguje teraz ścieżkę, status pliku, liczbę wpisów, rozpoznane umiejętności, informację o przepisaniu oraz rzeczywisty wyjątek. + - **Przycisk Use (umiejętności CT)** - Umiejętności nie aktywują się już w pobliżu podłożonej bomby C4. Odległość i kierunek patrzenia są sprawdzane bezpośrednio. + - **SkillUtils.UpdateGrenadeCount** - Naprawiono opóźniony reset magazynka, który mógł zmodyfikować broń zajmującą później ten sam slot. + +- #### Wspólne systemy + - **SkillUtils.IsPredictedLethal** - Dodano wspólne sprawdzanie śmiertelności uwzględniające mnożniki trafienia, `ArmorRatio` i poprawne działanie pancerza. Zastępuje trzy osobne sprawdzenia oparte wyłącznie na headshotach. + +- #### Poprawki mocy + - **Re-Zombie, Feniks, Druga Szansa** - Naprawiono traktowanie trafień w brzuch zadających 80–100% HP jako nieśmiertelnych dzięki użyciu wspólnego sprawdzania śmiertelności. + - **Strzał Wybuchowy, Ludzka Bomba, Wybuchowa Beczka, Strzał Wybuchowy** - Przyznawanie zabójstw przez eksplozje uwzględnia teraz pochłanianie obrażeń przez pancerz. + - **Strzał Wybuchowy** - Stan właściciela i drużyny pocisku jest teraz przechowywany osobno dla każdego gracza i ticka, zapobiegając konfliktom przy jednoczesnym użyciu oraz wielokrotnym eksplozjom od śrutu. + - **Deszcz Ognia** - Dane rzucającego, drużyny i liczby granatów są teraz przechowywane w osobnych paczkach dla każdego ticka, zapobiegając konfliktom między graczami. + - **Bogacz** - Usuwanie bonusu przywraca teraz konto na podstawie zapisanego stanu sprzed bonusu zamiast `CashSpentThisRound`. + - **Robin Hood, Bogacz, Zlecenie Śmierci** - Nagrody respektują teraz limit `mp_maxmoney`. + - **Prawdziwy Pancerz** - Stan hełmu jest zapisywany i przywracany razem z wartością pancerza. + - **Grawitacyjny Wabik** - Dodano obsługę `WeaponEquip` i `WeaponPickup`, aby liczba wabików była poprawnie aktualizowana. + - **Katapulta, Odpychacz, Cień, Gumowe Kule** - Umiejętności reagują teraz wyłącznie na obrażenia od pocisków. + - **Nóż do Rzucania** - Noże rzucone pod koniec rundy są teraz śledzone osobno i odtwarzane w następnej rundzie. + - **Samowolka, Wyluzowany, Lupa** - Gracze są teraz sprawdzani pod kątem poprawności przed odczytem `Team`/`PawnIsAlive`. + - **Zamiana Broni** - Obaj gracze są sprawdzani przed zabraniem broni, a niewłaściwi, martwi i obserwujący gracze nie mogą być już wybrani jako cel. + - **Cichociemny, Duszek, C4 Kamuflaż** - Naprawiono crash klienta (`FATAL ERROR: CopyExistingEntity: missing client entity`) przy śmierci ukrytego gracza w pobliżu. Ukryte postacie są przywracane do snapshotu sieciowego w tym samym ticku. + - **Cichociemny, Duszek, C4 Kamuflaż, Glaz, Stópkarz, Wallhack, Nóż do Rzucania, Koszmar** - Martwi gracze nie są już traktowani jako obserwatorzy, co zapobiega wyciekom widoczności i desynchronizacji sieci. + - **Wallhack, Stópkarz, Nóż do Rzucania, Koszmar** - Martwi gracze nie widzą już konturów Wallhacka, śladów Stópkarza, poświat Noży do Rzucania ani obszarów Koszmaru. + - **Dźwiękowiec** - Naprawiono odtwarzanie krzyku graczom, którzy nie posiadają tej umiejętności. + +- #### Stabilność + - **CheckTransmit (Cichociemny, Duszek, C4 Kamuflaż)** - Uchwyty umierających encji są teraz przechowywane wraz z czasem wygaśnięcia i usuwane po ponownym użyciu indeksu, naprawiając `CopyExistingEntity: missing client entity`. + - **WeaponEquip, WeaponPickup** - Pomijane jest wywołanie, gdy inny plugin przejmuje pre-hook i pozostawia puste zdarzenie. + +- #### Plik `Config.json` + - **SkillsChance, VIPSkillsChance** - Dodano konfigurowalne tabele szans rzadkości do `config.json`. Procenty i ułamki są normalizowane do 100%. + - **VIPFlag** - Dodano domyślną flagę `@css/vip`; pozostawienie jej pustej wyłącza tabelę szans VIP. + - **Wszystkie umiejętności** - Dodano `MinPlayer` do `skillsInfo.json`. Umiejętność wymaga teraz określonej minimalnej liczby graczy na serwerze. `0` (domyślnie) wyłącza limit. Dotyczy losowania, spóźnionych dołączeń oraz ponownego losowania przez Hazardzistę. + +- #### Lokalizacja + - **Katapulta, Odpychacz, Cień** - Tureckie opisy wyjaśniają teraz, czego dotyczy podana wartość procentowa. + +**Pełna aktualizacja została przygotowana przez [@ByDexterTR](https://github.com/ByDexterTR) w ramach pull requesta [#57](https://github.com/Juzlus/jRandomSkills/pull/57). Dziękujemy ByDexterTR!** + +
v1.2.3.b9