Update markdown

This commit is contained in:
Juzlus 2026-09-08 03:34:40 +02:00
parent 4012bf8f6b
commit 75b8bec7e1
2 changed files with 130 additions and 2 deletions

65
.github/en.md vendored
View file

@ -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' "TraceRayBeam": false, // Enable trail visibility for 'Long Knife', 'Long Zeus'
"DisableHUDOnDeathPermission": "@jRandomSkills/death", // Disable the HUD after death for players with this permission "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) "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 "CurseSkillPerPlayer": null, // Maximum number of effects per player
"ShowDecoyRing": true, // Show the ring around decoys
"LanguageSystem": { "LanguageSystem": {
"DefaultLangCode": "en", // Default language: en, pl, fr, pt-br, zh "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, // -1 = never hide the description,
// >= 0 = display duration in seconds. // >= 0 = display duration in seconds.
"RequiredPermission": "", // Required permission "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 "MaxPerServer": -1, // Maximum number of players allowed to have
// this skill on the server (-1 for unlimited) // this skill on the server (-1 for unlimited)
"Rarity": "Common" // Rarity tier of the skill: "Rarity": "Common" // Rarity tier of the skill:
@ -408,6 +425,54 @@ This plugin uses content from the following projects:
## 📋 Changelog ## 📋 Changelog
<details>
<summary><b>v1.2.4.b1</b></summary>
- #### 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!**
</details>
<details> <details>
<summary><b>v1.2.3.b9</b></summary> <summary><b>v1.2.3.b9</b></summary>

67
.github/pl.md vendored
View file

@ -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' "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 "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) "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": { "LanguageSystem": {
"DefaultLangCode": "en", // Język domyślny: en, pl, fr, pt-br, zh "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, // -1 = nigdy nie ukrywaj opisu,
// >= 0 = czas wyświetlania w sekundach. // >= 0 = czas wyświetlania w sekundach.
"RequiredPermission": "", // Wymagane uprawnienie "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ę "MaxPerServer": -1, // Maksymalna liczba graczy, którzy mogą posiadać tę
// umiejętność na serwerze (-1 dla "nieograniczona") // umiejętność na serwerze (-1 dla "nieograniczona")
"Rarity": "Common" // Poziom rzadkości umiejętności: "Rarity": "Common" // Poziom rzadkości umiejętności:
@ -408,7 +425,53 @@ Plugin korzysta z zawartości następujących projektów:
## 📋 Lista Zmian ## 📋 Lista Zmian
## 📋 Changelog <details>
<summary><b>v1.2.4.b1</b></summary>
- #### 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!**
</details>
<details> <details>
<summary><b>v1.2.3.b9</b></summary> <summary><b>v1.2.3.b9</b></summary>