v1.2.2.b5
Fixed conflicts with the merge https://github.com/Juzlus/jRandomSkills/pull/33 - #### General: - ###### Fixed players' view angle snapping to look at (0, 0, 0) at round start (ForceFullUpdate was re-applying a zeroed view angle). [by: @ByDexterTR and @Juzlus]. - ###### Stability: skills are now correctly disabled and cleaned up on attacker-less deaths (fall damage, drowning, world). [by: @ByDexterTR]. - ###### Performance: the end-of-round skill summary now runs in a single timer instead of one per player, and skips players who disconnect during the delay. [by: @ByDexterTR]. - #### Skill improvements: - ###### Re-Zombie: - ###### Fixed the player dying instead of respawning with full zombie health. [by: @ByDexterTR]. - ###### Jester: - ###### Armor no longer drains while the skill is active. [by: @ByDexterTR]. - ###### Soundmaker / Anomaly: - ###### Updated the description. [by: @ByDexterTR].
This commit is contained in:
parent
f97911d67c
commit
47985cdfef
25 changed files with 201 additions and 83 deletions
24
.github/en.md
vendored
24
.github/en.md
vendored
|
|
@ -56,7 +56,7 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus.
|
|||
| - | - | - |
|
||||
| Aimbot | Every bullet you hit counts as a headshot | - |
|
||||
| Aim Lock | Click [css_useSkill] to lock your aim on the nearest enemy | 20 s |
|
||||
| Anomaly | You rewind a few seconds back in time | 15 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 | - |
|
||||
|
|
@ -163,7 +163,7 @@ Buying a server on pukawka? Use my [referral code](https://pukawka.pl/pp,juzlus.
|
|||
| Smoker | Your smoke grenades never run out | - |
|
||||
| Sniper Elite | Click [css_useSkill] to swap your current weapon for an AWP | 0 s |
|
||||
| Soldier | You have a random damage multiplier | (1.15 - 1.35)x |
|
||||
| Soundmaker | Click [css_useSkill] to trigger a sound for every enemy | 5 s |
|
||||
| Soundmaker |Every now and then, you hear player screams | 2 s |
|
||||
| Spectator | Click [css_useSkill] to spectate a random enemy | 0 s |
|
||||
| Position Swap | Click [css_useSkill] to swap places with a random enemy | 30 s |
|
||||
| Teleporter | You swap places with the hit enemy | - |
|
||||
|
|
@ -357,6 +357,24 @@ This plugin uses content from the following projects:
|
|||
|
||||
## 📋 Changelog
|
||||
|
||||
<details>
|
||||
<summary><b>v1.2.2.b5</b></summary>
|
||||
|
||||
- #### General:
|
||||
- ###### Fixed players' view angle snapping to look at (0, 0, 0) at round start (ForceFullUpdate was re-applying a zeroed view angle). [by: [@ByDexterTR](https://github.com/ByDexterTR)] and Juzlus].
|
||||
- ###### Stability: skills are now correctly disabled and cleaned up on attacker-less deaths (fall damage, drowning, world). [by: [@ByDexterTR](https://github.com/ByDexterTR)]].
|
||||
- ###### Performance: the end-of-round skill summary now runs in a single timer instead of one per player, and skips players who disconnect during the delay. [by: [@ByDexterTR](https://github.com/ByDexterTR)]].
|
||||
|
||||
- #### Skill improvements:
|
||||
- ###### Re-Zombie:
|
||||
- ###### Fixed the player dying instead of respawning with full zombie health. [by: [@ByDexterTR](https://github.com/ByDexterTR)]].
|
||||
- ###### Jester:
|
||||
- ###### Armor no longer drains while the skill is active. [by: [@ByDexterTR](https://github.com/ByDexterTR)]].
|
||||
- ###### Soundmaker / Anomaly:
|
||||
- ###### Updated the description. [by: [@ByDexterTR](https://github.com/ByDexterTR)]].
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>v1.2.2.b4</b></summary>
|
||||
|
||||
|
|
@ -373,7 +391,7 @@ This plugin uses content from the following projects:
|
|||
<summary><b>v1.2.2.b3</b></summary>
|
||||
|
||||
- #### General:
|
||||
- ###### Updated Chinese language translation by [by: [@Ericzzrbb](hhttps://github.com/Ericzzrbb)].
|
||||
- ###### Updated Chinese language translation by [by: [@Ericzzrbb](https://github.com/Ericzzrbb)].
|
||||
- ###### Fixed a bug where a player could be given multiple skills at once while the HUD displayed only one (the player list was never cleared on map change and had no duplicate protection on join). [by: [@ByDexterTR](https://github.com/ByDexterTR)]
|
||||
- ###### Fixed skill names and descriptions showing the raw translation key on Turkish servers (culture-sensitive lowercasing) - affected skills starting with "I" (e.g. Illiterate, Impostor, InfiniteAmmo, Iana). [by: [@ByDexterTR](https://github.com/ByDexterTR)]
|
||||
- ###### RayTrace-based skills and the skill-use button no longer throw when the RayTrace module is not installed - they now degrade gracefully instead of crashing. [by: [@ByDexterTR](https://github.com/ByDexterTR)]
|
||||
|
|
|
|||
28
.github/pl.md
vendored
28
.github/pl.md
vendored
|
|
@ -55,7 +55,7 @@ Kupujesz serwer na pukawce? Skorzystaj z mojego [kodu polecającego](https://puk
|
|||
| - | - | -|
|
||||
| Aimbot | Każdy twój trafiony pocisk liczy się jako strzał w głowę | - |
|
||||
| Aim Lock | Kliknij [css_useSkill], aby wycelować na najbliższego wroga | 20 s |
|
||||
| Anomalia | Cofasz się o 5 sekund do tyłu | 15 s |
|
||||
| Anomalia | Kliknij [css_useSkill], aby cofnąć się o kilka sekund w czasie | 15 s |
|
||||
| Anty Flash | Posiadasz odporność na flash'e, a twoje flash'e trwają 7 sekund | - |
|
||||
| Żelazna Głowa | Nie otrzymujesz obrażeń w głowę | - |
|
||||
| Niszczyciel Stref | Możesz wybrać strefę detonacji, którą chcesz dezaktywować | - |
|
||||
|
|
@ -162,7 +162,7 @@ Kupujesz serwer na pukawce? Skorzystaj z mojego [kodu polecającego](https://puk
|
|||
| Zadymiarz | Twoje granaty dymne nigdy się nie kończą | - |
|
||||
| Papito | Kliknij [css_useSkill], aby zamienić aktualną broń na AWP | 0 s |
|
||||
| Żołnierz | Masz losowy mnożnik obrażeń | (1.15 - 1.35)x |
|
||||
| Dźwiękowiec | Kliknij [css_useSkill], aby wywołać dźwięk u każdego przeciwnika | 5 s |
|
||||
| Dźwiękowiec | Co jakiś czas słyszysz krzyki graczy | 2 s |
|
||||
| Obserwator | Kliknij [css_useSkill], aby obserwować losowego przeciwnika | 0 s |
|
||||
| Zamiana Miejsc | Kliknij [css_useSkill], aby zamienić się miejscami z losowym przeciwnikiem | 30 s |
|
||||
| Zamiana Broni | Kliknij [css_useSkill], aby zamienić się bronią z losowym przeciwnikiem | 30 s |
|
||||
|
|
@ -355,11 +355,29 @@ Plugin korzysta z zawartości następujących projektów:
|
|||
|
||||
## 📋 Lista Zmian
|
||||
|
||||
<details>
|
||||
<summary><b>v1.2.2.b5</b></summary>
|
||||
|
||||
- #### Ogólne:
|
||||
- ###### Naprawiono problem, w wyniku którego kąt widzenia gracza ustawiał się na punkt (0, 0, 0) na początku rundy (funkcja ForceFullUpdate ponownie stosowała zerowy kąt widzenia). [autor: [@ByDexterTR](https://github.com/ByDexterTR)] and Juzlus].
|
||||
- ###### Stabilność: umiejętności są teraz poprawnie dezaktywowane i usuwane w przypadku śmierci bez udziału przeciwnika (obrażenia od upadku, utonięcie, śmierć w świecie gry). [autor: [@ByDexterTR](https://github.com/ByDexterTR)]].
|
||||
- ###### Wydajność: podsumowanie umiejętności na koniec rundy jest teraz wyświetlane w ramach jednego licznika czasu zamiast osobnego dla każdego gracza, a gracze, którzy stracili połączenie w trakcie tego opóźnienia, są pomijani. [autor: [@ByDexterTR](https://github.com/ByDexterTR)]].
|
||||
|
||||
- #### Poprawki mocy:
|
||||
- ###### Re-Zombie:
|
||||
- ###### Naprawiono błąd, w wyniku którego gracz ginął zamiast odradzać się z pełnym poziomem zdrowia zombie. [autor: [@ByDexterTR](https://github.com/ByDexterTR)]].
|
||||
- ###### Błazen:
|
||||
- ###### Pancerz nie traci już wytrzymałości podczas działania tej umiejętności. [autor: [@ByDexterTR](https://github.com/ByDexterTR)]].
|
||||
- ###### Dźwiękowiec / Anomalia:
|
||||
- ###### Zaktualizowano opis. [autor: [@ByDexterTR](https://github.com/ByDexterTR)]].
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>v1.2.2.b4</b></summary>
|
||||
|
||||
- #### General:
|
||||
- Ogólne Uaktualizowano kod źródłowy na GitHubie, aby uwzględniał zmiany wprowadzone w merge request: https://github.com/Juzlus/jRandomSkills/pull/32.
|
||||
- #### Ogólne:
|
||||
- ###### Uaktualizowano kod źródłowy na GitHubie, aby uwzględniał zmiany wprowadzone w merge request: https://github.com/Juzlus/jRandomSkills/pull/32.
|
||||
|
||||
- #### Poprawki mocy:
|
||||
- ###### Ninja:
|
||||
|
|
@ -371,7 +389,7 @@ Plugin korzysta z zawartości następujących projektów:
|
|||
<summary><b>v1.2.2.b3</b></summary>
|
||||
|
||||
- #### Ogólne:
|
||||
- ###### Zaktualizowano tłumaczenie na język chiński uproszczony [autor: [@Ericzzrbb](https://www.google.com/search?q=hhttps://github.com/Ericzzrbb)].
|
||||
- ###### Zaktualizowano tłumaczenie na język chiński uproszczony [autor: [@Ericzzrbb](https://www.google.com/search?q=https://github.com/Ericzzrbb)].
|
||||
- ###### Naprawiono błąd, w którym gracz mógł otrzymać kilka umiejętności jednocześnie, podczas gdy HUD wyświetlał tylko jedną (lista graczy nie była czyszczona przy zmianie mapy i brakowało zabezpieczenia przed duplikacją przy dołączaniu). [autor: [@ByDexterTR](https://github.com/ByDexterTR)]
|
||||
- ###### Naprawiono błąd, przez który nazwy i opisy umiejętności wyświetlały surowe klucze tłumaczenia na tureckich serwerach (zależna od języka zamiana na małe litery) - problem dotyczył umiejętności zaczynających się na literę "I" (np. Illiterate, Impostor, InfiniteAmmo, Iana). [autor: [@ByDexterTR](https://github.com/ByDexterTR)]
|
||||
- ###### Umiejętności oparte na module RayTrace oraz przycisk użycia umiejętności nie wyrzucają już błędów, gdy moduł RayTrace nie jest zainstalowany - teraz ich działanie ulega bezpiecznemu ograniczeniu zamiast scrashowania gry. [autor: [@ByDexterTR](https://github.com/ByDexterTR)]
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace src
|
|||
public override string ModuleName => "[CS2] [ jRandomSkills ]";
|
||||
public override string ModuleAuthor => "D3X, Juzlus";
|
||||
public override string ModuleDescription => "Plugin adds random skills every round for CS2 by D3X. Modified by Juzlus.";
|
||||
public override string ModuleVersion => "1.2.2.b4";
|
||||
public override string ModuleVersion => "1.2.2.b5";
|
||||
|
||||
public override void Load(bool hotReload)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Klicke [css_useSkill], um dein Visier auf den nächsten Gegner zu fixieren",
|
||||
|
||||
"anomaly": "Anomalie",
|
||||
"anomaly_desc": "Du spulst die Zeit um einige Sekunden zurück",
|
||||
"anomaly_desc": "Drücke [css_useSkill], um einige Sekunden in der Zeit zurückzuspringen",
|
||||
|
||||
"antyflash": "Anti-Flash",
|
||||
"antyflash_desc": "Du bist immun gegen Blendgranaten und deine Blendgranaten halten 7 Sekunden lang",
|
||||
|
|
@ -419,7 +419,7 @@
|
|||
"soldier_desc2": "Dein Schadensmultiplikator beträgt: {0}x",
|
||||
|
||||
"soundmaker": "Soundmaker",
|
||||
"soundmaker_desc": "Klicke auf [css_useSkill], um für jeden Gegner einen Sound auszulösen",
|
||||
"soundmaker_desc": "Von Zeit zu Zeit hörst du die Schreie von Spielern",
|
||||
|
||||
"spectator": "Zuschauer",
|
||||
"spectator_desc": "Klicke auf [css_useSkill], um einen zufälligen Gegner zu beobachten",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Click [css_useSkill] to lock your aim on the nearest enemy",
|
||||
|
||||
"anomaly": "Anomaly",
|
||||
"anomaly_desc": "You rewind a few seconds back in time",
|
||||
"anomaly_desc": "Click [css_useSkill] to rewind a few seconds back in time",
|
||||
|
||||
"antyflash": "Anti-Flash",
|
||||
"antyflash_desc": "You are immune to flashbangs, and your flashbangs last 7 seconds",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Cliquez sur [css_useSkill] pour verrouiller votre visée sur l'ennemi le plus proche",
|
||||
|
||||
"anomaly": "Anomalie",
|
||||
"anomaly_desc": "Vous revenez quelques secondes en arrière dans le temps",
|
||||
"anomaly_desc": "Appuyez sur [css_useSkill] pour remonter de quelques secondes dans le temps",
|
||||
|
||||
"antyflash": "Anti-Flash",
|
||||
"antyflash_desc": "Vous êtes immunisé contre les flashbangs, et vos flashbangs durent 7 secondes",
|
||||
|
|
@ -419,7 +419,7 @@
|
|||
"soldier_desc2": "Votre multiplicateur de dégâts est : {0}x",
|
||||
|
||||
"soundmaker": "Faiseur de Bruit",
|
||||
"soundmaker_desc": "Appuyez sur [css_useSkill] pour déclencher un son pour chaque ennemi",
|
||||
"soundmaker_desc": "De temps en temps, vous entendez les cris des joueurs",
|
||||
|
||||
"spectator": "Spectateur",
|
||||
"spectator_desc": "Appuyez sur [css_useSkill] pour observer un ennemi aléatoire",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Kliknij [css_useSkill], aby wycelować na najbliższego wroga",
|
||||
|
||||
"anomaly": "Anomalia",
|
||||
"anomaly_desc": "Cofasz się o kilka sekund do tyłu",
|
||||
"anomaly_desc": "Kliknij [css_useSkill], aby cofnąć się o kilka sekund w czasie",
|
||||
|
||||
"antyflash": "Anty Flash",
|
||||
"antyflash_desc": "Posiadasz odporność na flash'e, a twoje flash'e trwają 7 sekund",
|
||||
|
|
@ -419,7 +419,7 @@
|
|||
"soldier_desc2": "Twój mnożnik obrażeń wynosi: {0}x",
|
||||
|
||||
"soundmaker": "Dźwiękowiec",
|
||||
"soundmaker_desc": "Co jakiś czas szłyszysz krzyki graczy",
|
||||
"soundmaker_desc": "Co jakiś czas słyszysz krzyki graczy",
|
||||
|
||||
"spectator": "Obserwator",
|
||||
"spectator_desc": "Kliknij [css_useSkill], aby obserwować losowego przeciwnika",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Clique em [css_useSkill] para travar a mira no inimigo mais próximo",
|
||||
|
||||
"anomaly": "Máquina do Tempo",
|
||||
"anomaly_desc": "Você volta alguns segundos no tempo",
|
||||
"anomaly_desc": "Pressione [css_useSkill] para voltar alguns segundos no tempo",
|
||||
|
||||
"antyflash": "Anti-Flash",
|
||||
"antyflash_desc": "Você é imune a flashes, e flashbangs duram 7 segundos",
|
||||
|
|
@ -419,7 +419,7 @@
|
|||
"soldier_desc2": "Seu multiplicador de dano é: {0}x",
|
||||
|
||||
"soundmaker": "Criador de Som",
|
||||
"soundmaker_desc": "Clique em [css_useSkill] para tocar um som para cada inimigo",
|
||||
"soundmaker_desc": "De vez em quando, você ouve gritos de jogadores",
|
||||
|
||||
"spectator": "Espectador",
|
||||
"spectator_desc": "Clique em [css_useSkill] para ver a tela de um inimigo aleatório",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Нажмите [css_useSkill], чтобы зафиксировать прицел на ближайшем враге",
|
||||
|
||||
"anomaly": "Аномалия",
|
||||
"anomaly_desc": "Вы отматываете время на несколько секунд назад",
|
||||
"anomaly_desc": "Нажмите [css_useSkill], чтобы вернуться на несколько секунд назад во времени",
|
||||
|
||||
"antyflash": "Антифлеш",
|
||||
"antyflash_desc": "Вы невосприимчивы к флешкам, а ваши флешки действуют 7 секунд",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "En yakın düşmana nişan almak için [css_useSkill] tuşuna basın",
|
||||
|
||||
"anomaly": "Zaman Büken",
|
||||
"anomaly_desc": "Zamanı birkaç saniye geriye alırsın",
|
||||
"anomaly_desc": "[css_useSkill] tuşuna basarak zamanı birkaç saniye geriye alırsın",
|
||||
|
||||
"antyflash": "Anti-Flash",
|
||||
"antyflash_desc": "Flaşa kör olmazsın ve flaşların 7 saniye sürer",
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
"areareaper_incorrect_site": "Böyle bir bomba alanı yok uydurma",
|
||||
"areareaper_no_site": "Haritada bomba alanı bulunamadı",
|
||||
"areareaper_select_info": "Kapatılacak bomba alanını seç:",
|
||||
"areareaper_site_disabled": "{0} alanı mühürlendi - artık buraya bomba kurulamaz!",
|
||||
"areareaper_site_disabled": "{0} Bölgesi kapandı - artık buraya bomba kurulamaz!",
|
||||
"areareaper_used_info": "Yeteneğini zaten kullandın, açgözlülük yapma",
|
||||
"areareaper_teammates_info": "{0} Bölgesi bomba kurmaya kapatıldı.",
|
||||
"areareaper_bombsite_disabled": "Bu bomba alanı kullanıma kapatıldı!",
|
||||
|
|
@ -57,7 +57,7 @@
|
|||
"bunnyhop": "Tavşan",
|
||||
"bunnyhop_desc": "Otomatik \"BunnyHop\" yaparsın",
|
||||
|
||||
"c4camouflage": "C4 Kamuflajı",
|
||||
"c4camouflage": "C4 Kamuflaj",
|
||||
"c4camouflage_desc": "Elinde C4 varken tamamen görünmez olursun",
|
||||
|
||||
"carefulbullets": "Dikkatli Mermiler",
|
||||
|
|
@ -146,8 +146,8 @@
|
|||
"fortnite": "Fortnite",
|
||||
"fortnite_desc": "[css_useSkill] tuşuna basarak barikat kur",
|
||||
|
||||
"fragilebomb": "Hassas Bomba",
|
||||
"fragilebomb_desc": "Kurulu bombaya ateş etmek bombanın canını azaltır",
|
||||
"fragilebomb": "Hassas C4",
|
||||
"fragilebomb_desc": "Kurulu C4'e ateş etmek C4'ün canını azaltır ve C4 imha edilir.",
|
||||
"fragilebomb_bomb_health": "Bombanın canı",
|
||||
|
||||
"friendlyfire": "Dost Şifası",
|
||||
|
|
@ -262,7 +262,7 @@
|
|||
"magneticdecoy": "Manyetik Yanıltıcı",
|
||||
"magneticdecoy_desc": "Yanıltıcı bombanız yakındaki oyuncuları kendine çeker",
|
||||
|
||||
"magneto": "Magneto",
|
||||
"magneto": "Mıknatıs",
|
||||
"magneto_desc": "Tüm düşman bombaları sizden uzaklaştırılır",
|
||||
|
||||
"magnifier": "Büyüteç",
|
||||
|
|
@ -372,8 +372,8 @@
|
|||
"regeneration": "Yenilenme",
|
||||
"regeneration_desc": "Birkaç saniyede bir canın yenilenir",
|
||||
|
||||
"replicator": "Kopyacı",
|
||||
"replicator_desc": "[css_useSkill] tuşuna basarak kopya oluştur ve ölürse rakibe hasar verir",
|
||||
"replicator": "Klon",
|
||||
"replicator_desc": "[css_useSkill] tuşuna basarak klon oluştur ve öldürene hasar verir",
|
||||
|
||||
"retreat": "Geri Çekil",
|
||||
"retreat_desc": "[css_useSkill] tuşuna basarak başlangıç noktasına ışınlan",
|
||||
|
|
@ -381,7 +381,7 @@
|
|||
"returntosender": "İade",
|
||||
"returntosender_desc": "Düşmana ilk vuruşun onu kendi başlangıç noktasına ışınlar",
|
||||
|
||||
"richboy": "Zengin Bebe",
|
||||
"richboy": "Zengin Çocuk",
|
||||
"richboy_desc": "Raund başında rastgele miktarda para alırsın",
|
||||
|
||||
"robinhood": "Robin Hood",
|
||||
|
|
@ -418,8 +418,8 @@
|
|||
"soldier_desc": "Rastgele bir oranda fazla hasar verirsin",
|
||||
"soldier_desc2": "Hasarın: {0}x",
|
||||
|
||||
"soundmaker": "Halüsinasyon",
|
||||
"soundmaker_desc": "[css_useSkill] tuşuna basarak rakibinin çığlık atmasını sağla",
|
||||
"soundmaker": "Çığlık",
|
||||
"soundmaker_desc": "Rakiplerinin çığlıklarını duyarsın",
|
||||
|
||||
"spectator": "Röntgen",
|
||||
"spectator_desc": "[css_useSkill] tuşuna basarak rakibinin gözünden gör",
|
||||
|
|
@ -469,7 +469,7 @@
|
|||
"wildthrow_desc": "El bombası atmakta zorluk çekecek bir oyuncu seçin",
|
||||
"wildthrow_player_info": "'{0}' adlı oyuncu tüm taktiklerini unuttu",
|
||||
"wildthrow_enemy_info": "Bomba atarken çok heyecanlanıyorsun.",
|
||||
"wildthrow_disable_info": "El bombası atma hafızan normale döndü.",
|
||||
"wildthrow_disable_info": "Bombaların düzeldi.",
|
||||
"wildthrow_select_info": "Bir oyuncu seçin:",
|
||||
|
||||
"zeus": "Zeus",
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -670,35 +670,36 @@ namespace src.player
|
|||
|
||||
lock (setLock)
|
||||
{
|
||||
foreach (var player in Utilities.GetPlayers().Where(p => p.IsValid))
|
||||
Instance.AddTimer(.5f, () =>
|
||||
{
|
||||
Instance.AddTimer(.5f, () =>
|
||||
{
|
||||
var _players = Utilities.GetPlayers().Where(p => p.IsValid && p.Team is CsTeam.CounterTerrorist or CsTeam.Terrorist).OrderBy(p => p.Team);
|
||||
if (!Config.LoadedConfig.SummaryAfterTheRound) return;
|
||||
|
||||
var _players = Utilities.GetPlayers().Where(p => p.IsValid && p.Team is CsTeam.CounterTerrorist or CsTeam.Terrorist).OrderBy(p => p.Team).ToList();
|
||||
|
||||
foreach (var player in Utilities.GetPlayers().Where(p => p.IsValid))
|
||||
{
|
||||
string skillsText = "";
|
||||
foreach (var _player in _players)
|
||||
{
|
||||
var _playerSkill = PlayerManager.GetPlayerByIndex(_player.Index);
|
||||
if (_playerSkill != null)
|
||||
{
|
||||
var skillInfo = SkillData.Skills.FirstOrDefault(p => p.Skill == _playerSkill.Skill);
|
||||
var specialSkillInfo = SkillData.Skills.FirstOrDefault(s => s.Skill == _playerSkill.SpecialSkill);
|
||||
if (skillInfo == null) continue;
|
||||
skillsText += $" {ChatColors.DarkRed}\u202A{_player.PlayerName}\u202C{ChatColors.Lime}: {(_playerSkill.SpecialSkill == Skills.None || specialSkillInfo == null ? player.GetSkillName(skillInfo.Skill, _playerSkill.SkillChance) : $"{player.GetSkillName(specialSkillInfo.Skill)} -> {player.GetSkillName(skillInfo.Skill, _playerSkill.SkillChance)}")}\n";
|
||||
}
|
||||
if (_playerSkill == null) continue;
|
||||
|
||||
var skillInfo = SkillData.Skills.FirstOrDefault(s => s.Skill == _playerSkill.Skill);
|
||||
var specialSkillInfo = SkillData.Skills.FirstOrDefault(s => s.Skill == _playerSkill.SpecialSkill);
|
||||
if (skillInfo == null) continue;
|
||||
|
||||
skillsText += $" {ChatColors.DarkRed}\u202A{_player.PlayerName}\u202C{ChatColors.Lime}: {(_playerSkill.SpecialSkill == Skills.None || specialSkillInfo == null ? player.GetSkillName(skillInfo.Skill, _playerSkill.SkillChance) : $"{player.GetSkillName(specialSkillInfo.Skill)} -> {player.GetSkillName(skillInfo.Skill, _playerSkill.SkillChance)}")}\n";
|
||||
}
|
||||
|
||||
if (Config.LoadedConfig.SummaryAfterTheRound && !string.IsNullOrEmpty(skillsText))
|
||||
{
|
||||
SkillUtils.PrintToChat(player, string.Empty, title: player.GetTranslation("summary"), border: "t");
|
||||
foreach (string text in skillsText.Split("\n"))
|
||||
if (!string.IsNullOrEmpty(text))
|
||||
SkillUtils.PrintToChat(player, text, title: player.GetTranslation("teammate_skills"), border: "");
|
||||
SkillUtils.PrintToChat(player, string.Empty, border: "b");
|
||||
}
|
||||
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
||||
}
|
||||
if (string.IsNullOrEmpty(skillsText)) continue;
|
||||
|
||||
SkillUtils.PrintToChat(player, string.Empty, title: player.GetTranslation("summary"), border: "t");
|
||||
foreach (string text in skillsText.Split("\n"))
|
||||
if (!string.IsNullOrEmpty(text))
|
||||
SkillUtils.PrintToChat(player, text, title: player.GetTranslation("teammate_skills"), border: "");
|
||||
SkillUtils.PrintToChat(player, string.Empty, border: "b");
|
||||
}
|
||||
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
||||
|
||||
if (Config.LoadedConfig.DisableSkillsOnRoundEnd)
|
||||
{
|
||||
|
|
@ -717,13 +718,15 @@ namespace src.player
|
|||
DispatchToActiveSkills("PlayerDeath", @event);
|
||||
|
||||
var victim = PlayerManager.GetPlayerEvent(@event.Userid);
|
||||
var attacker = PlayerManager.GetPlayerEvent(@event.Attacker);
|
||||
if (victim == null || attacker == null) return HookResult.Continue;
|
||||
if (victim == null) return HookResult.Continue;
|
||||
|
||||
var playerInfo = PlayerManager.GetPlayerByIndex(victim.Index);
|
||||
if (playerInfo == null || playerInfo.IsDrawing) return HookResult.Continue;
|
||||
Instance.SkillAction(playerInfo.Skill.ToString(), "DisableSkill", [victim]);
|
||||
|
||||
var attacker = PlayerManager.GetPlayerEvent(@event.Attacker);
|
||||
if (attacker == null || victim == attacker) return HookResult.Continue;
|
||||
|
||||
if (victim == attacker) return HookResult.Continue;
|
||||
if (Config.LoadedConfig.KillerSkillChatInfo)
|
||||
{
|
||||
|
|
@ -958,6 +961,7 @@ namespace src.player
|
|||
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
||||
else
|
||||
{
|
||||
if (PlayerManager.GetPlayerByIndex(player!.Index)?.Skill != randomSkill.Skill) return;
|
||||
Instance?.SkillAction(randomSkill.Skill.ToString(), "EnableSkill", [player]);
|
||||
}
|
||||
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
||||
|
|
|
|||
|
|
@ -118,13 +118,30 @@ namespace src.player.skills
|
|||
if (!Instance.IsPlayerValid(attacker))
|
||||
{
|
||||
if (jesterVictim != null && jesterVictim.Active)
|
||||
{
|
||||
SkillUtils.RestoreHealth(victim);
|
||||
RestoreArmor(victim, @event.DmgArmor);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var jesterAttacker = GetJesterInfo(attacker!.Index);
|
||||
if ((jesterVictim != null && jesterVictim.Active) || (jesterAttacker != null && jesterAttacker.Active))
|
||||
{
|
||||
SkillUtils.RestoreHealth(victim);
|
||||
RestoreArmor(victim, @event.DmgArmor);
|
||||
}
|
||||
}
|
||||
|
||||
private static void RestoreArmor(CCSPlayerController? victim, int dmgArmor)
|
||||
{
|
||||
if (victim == null || !victim.IsValid || dmgArmor <= 0) return;
|
||||
|
||||
var pawn = victim.PlayerPawn?.Value;
|
||||
if (pawn == null || !pawn.IsValid) return;
|
||||
|
||||
pawn.ArmorValue += dmgArmor;
|
||||
Utilities.SetStateChanged(pawn, "CCSPlayerPawn", "m_ArmorValue");
|
||||
}
|
||||
|
||||
public static void EnableSkill(CCSPlayerController player)
|
||||
|
|
|
|||
|
|
@ -96,12 +96,12 @@ namespace src.player.skills
|
|||
|
||||
DropAllBotWeapons(victim);
|
||||
SetPlayerColor(pawn, false);
|
||||
SkillUtils.AddHealth(pawn, zombieHealth - pawn.Health, zombieHealth);
|
||||
SkillUtils.SetHealth(pawn, zombieHealth, zombieHealth);
|
||||
|
||||
victim.ExecuteClientCommand("slot3");
|
||||
}
|
||||
else if (isZombie && tick + 4 > Server.TickCount)
|
||||
SkillUtils.AddHealth(pawn, zombieHealth - pawn.Health, zombieHealth);
|
||||
SkillUtils.SetHealth(pawn, zombieHealth, zombieHealth);
|
||||
}
|
||||
|
||||
private static void DropAllBotWeapons(CCSPlayerController player)
|
||||
|
|
|
|||
|
|
@ -320,10 +320,9 @@ namespace src.utils
|
|||
return EntityManager.CreateTrackedTrigger(ownerPlayerIndex, name, radius, pos);
|
||||
}
|
||||
|
||||
public static void ForceFullUpdate(CCSPlayerController player)
|
||||
public static void ForceFullUpdate(CCSPlayerController player, List<(uint PlayerIndex, QAngle LastAngle)>? batchList = null)
|
||||
{
|
||||
if (player == null || !player.IsValid)
|
||||
return;
|
||||
if (player == null || !player.IsValid) return;
|
||||
|
||||
var pawn = player.PlayerPawn?.Value;
|
||||
if (pawn == null || !pawn.IsValid || pawn.AbsOrigin == null) return;
|
||||
|
|
@ -337,13 +336,75 @@ namespace src.utils
|
|||
if (client == null) return;
|
||||
|
||||
client.ForceFullUpdate();
|
||||
pawn.Look(lastAngle);
|
||||
if (lastAngle.Y == 0) return;
|
||||
|
||||
uint playerIndex = player.Index;
|
||||
|
||||
if (batchList != null)
|
||||
{
|
||||
batchList.Add((playerIndex, lastAngle));
|
||||
return;
|
||||
}
|
||||
|
||||
jRandomSkills.Instance.AddTickTimer(3, () =>
|
||||
{
|
||||
var target = Utilities.GetPlayerFromIndex((int)playerIndex);
|
||||
if (target == null || !target.IsValid) return;
|
||||
|
||||
var targetPawn = target.PlayerPawn?.Value;
|
||||
if (targetPawn == null || !targetPawn.IsValid || targetPawn.AbsOrigin == null) return;
|
||||
|
||||
targetPawn.Look(lastAngle);
|
||||
});
|
||||
}
|
||||
|
||||
private static int lastForceFullUpdateAll = int.MinValue;
|
||||
|
||||
public static void ForceFullUpdateToAll()
|
||||
{
|
||||
int tickCount = Server.TickCount;
|
||||
if (tickCount == lastForceFullUpdateAll) return;
|
||||
|
||||
lastForceFullUpdateAll = tickCount;
|
||||
var playersToRestore = new List<(uint PlayerIndex, QAngle LastAngle)>();
|
||||
|
||||
foreach (var player in Utilities.GetPlayers())
|
||||
ForceFullUpdate(player);
|
||||
ForceFullUpdate(player, playersToRestore);
|
||||
|
||||
if (playersToRestore.Count <= 0) return;
|
||||
|
||||
jRandomSkills.Instance.AddTickTimer(3, () =>
|
||||
{
|
||||
foreach (var item in playersToRestore)
|
||||
{
|
||||
var target = Utilities.GetPlayerFromIndex((int)item.PlayerIndex);
|
||||
if (target == null || !target.IsValid) continue;
|
||||
|
||||
var targetPawn = target.PlayerPawn?.Value;
|
||||
if (targetPawn == null || !targetPawn.IsValid || targetPawn.AbsOrigin == null) continue;
|
||||
|
||||
targetPawn.Look(item.LastAngle);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static bool SetHealth(CCSPlayerPawn? pawn, int newHealth, int? maxHealth = null)
|
||||
{
|
||||
if (pawn == null || !pawn.IsValid)
|
||||
return false;
|
||||
|
||||
maxHealth ??= pawn.MaxHealth;
|
||||
|
||||
if (pawn.Health == maxHealth)
|
||||
return false;
|
||||
|
||||
pawn.Health = Math.Min(newHealth, (int)maxHealth);
|
||||
Utilities.SetStateChanged(pawn, "CBaseEntity", "m_iHealth");
|
||||
|
||||
pawn.MaxHealth = (int)maxHealth;
|
||||
Utilities.SetStateChanged(pawn, "CBaseEntity", "m_iMaxHealth");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool AddHealth(CCSPlayerPawn? pawn, int extraHealth, int? maxHealth = null)
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Klicke [css_useSkill], um dein Visier auf den nächsten Gegner zu fixieren",
|
||||
|
||||
"anomaly": "Anomalie",
|
||||
"anomaly_desc": "Du spulst die Zeit um einige Sekunden zurück",
|
||||
"anomaly_desc": "Drücke [css_useSkill], um einige Sekunden in der Zeit zurückzuspringen",
|
||||
|
||||
"antyflash": "Anti-Flash",
|
||||
"antyflash_desc": "Du bist immun gegen Blendgranaten und deine Blendgranaten halten 7 Sekunden lang",
|
||||
|
|
@ -419,7 +419,7 @@
|
|||
"soldier_desc2": "Dein Schadensmultiplikator beträgt: {0}x",
|
||||
|
||||
"soundmaker": "Soundmaker",
|
||||
"soundmaker_desc": "Klicke auf [css_useSkill], um für jeden Gegner einen Sound auszulösen",
|
||||
"soundmaker_desc": "Von Zeit zu Zeit hörst du die Schreie von Spielern",
|
||||
|
||||
"spectator": "Zuschauer",
|
||||
"spectator_desc": "Klicke auf [css_useSkill], um einen zufälligen Gegner zu beobachten",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Click [css_useSkill] to lock your aim on the nearest enemy",
|
||||
|
||||
"anomaly": "Anomaly",
|
||||
"anomaly_desc": "You rewind a few seconds back in time",
|
||||
"anomaly_desc": "Click [css_useSkill] to rewind a few seconds back in time",
|
||||
|
||||
"antyflash": "Anti-Flash",
|
||||
"antyflash_desc": "You are immune to flashbangs, and your flashbangs last 7 seconds",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Cliquez sur [css_useSkill] pour verrouiller votre visée sur l'ennemi le plus proche",
|
||||
|
||||
"anomaly": "Anomalie",
|
||||
"anomaly_desc": "Vous revenez quelques secondes en arrière dans le temps",
|
||||
"anomaly_desc": "Appuyez sur [css_useSkill] pour remonter de quelques secondes dans le temps",
|
||||
|
||||
"antyflash": "Anti-Flash",
|
||||
"antyflash_desc": "Vous êtes immunisé contre les flashbangs, et vos flashbangs durent 7 secondes",
|
||||
|
|
@ -419,7 +419,7 @@
|
|||
"soldier_desc2": "Votre multiplicateur de dégâts est : {0}x",
|
||||
|
||||
"soundmaker": "Faiseur de Bruit",
|
||||
"soundmaker_desc": "Appuyez sur [css_useSkill] pour déclencher un son pour chaque ennemi",
|
||||
"soundmaker_desc": "De temps en temps, vous entendez les cris des joueurs",
|
||||
|
||||
"spectator": "Spectateur",
|
||||
"spectator_desc": "Appuyez sur [css_useSkill] pour observer un ennemi aléatoire",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Kliknij [css_useSkill], aby wycelować na najbliższego wroga",
|
||||
|
||||
"anomaly": "Anomalia",
|
||||
"anomaly_desc": "Cofasz się o kilka sekund do tyłu",
|
||||
"anomaly_desc": "Kliknij [css_useSkill], aby cofnąć się o kilka sekund w czasie",
|
||||
|
||||
"antyflash": "Anty Flash",
|
||||
"antyflash_desc": "Posiadasz odporność na flash'e, a twoje flash'e trwają 7 sekund",
|
||||
|
|
@ -419,7 +419,7 @@
|
|||
"soldier_desc2": "Twój mnożnik obrażeń wynosi: {0}x",
|
||||
|
||||
"soundmaker": "Dźwiękowiec",
|
||||
"soundmaker_desc": "Co jakiś czas szłyszysz krzyki graczy",
|
||||
"soundmaker_desc": "Co jakiś czas słyszysz krzyki graczy",
|
||||
|
||||
"spectator": "Obserwator",
|
||||
"spectator_desc": "Kliknij [css_useSkill], aby obserwować losowego przeciwnika",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Clique em [css_useSkill] para travar a mira no inimigo mais próximo",
|
||||
|
||||
"anomaly": "Máquina do Tempo",
|
||||
"anomaly_desc": "Você volta alguns segundos no tempo",
|
||||
"anomaly_desc": "Pressione [css_useSkill] para voltar alguns segundos no tempo",
|
||||
|
||||
"antyflash": "Anti-Flash",
|
||||
"antyflash_desc": "Você é imune a flashes, e flashbangs duram 7 segundos",
|
||||
|
|
@ -419,7 +419,7 @@
|
|||
"soldier_desc2": "Seu multiplicador de dano é: {0}x",
|
||||
|
||||
"soundmaker": "Criador de Som",
|
||||
"soundmaker_desc": "Clique em [css_useSkill] para tocar um som para cada inimigo",
|
||||
"soundmaker_desc": "De vez em quando, você ouve gritos de jogadores",
|
||||
|
||||
"spectator": "Espectador",
|
||||
"spectator_desc": "Clique em [css_useSkill] para ver a tela de um inimigo aleatório",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "Нажмите [css_useSkill], чтобы зафиксировать прицел на ближайшем враге",
|
||||
|
||||
"anomaly": "Аномалия",
|
||||
"anomaly_desc": "Вы отматываете время на несколько секунд назад",
|
||||
"anomaly_desc": "Нажмите [css_useSkill], чтобы вернуться на несколько секунд назад во времени",
|
||||
|
||||
"antyflash": "Антифлеш",
|
||||
"antyflash_desc": "Вы невосприимчивы к флешкам, а ваши флешки действуют 7 секунд",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"aimlock_desc": "En yakın düşmana nişan almak için [css_useSkill] tuşuna basın",
|
||||
|
||||
"anomaly": "Zaman Büken",
|
||||
"anomaly_desc": "Zamanı birkaç saniye geriye alırsın",
|
||||
"anomaly_desc": "[css_useSkill] tuşuna basarak zamanı birkaç saniye geriye alırsın",
|
||||
|
||||
"antyflash": "Anti-Flash",
|
||||
"antyflash_desc": "Flaşa kör olmazsın ve flaşların 7 saniye sürer",
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
"areareaper_incorrect_site": "Böyle bir bomba alanı yok uydurma",
|
||||
"areareaper_no_site": "Haritada bomba alanı bulunamadı",
|
||||
"areareaper_select_info": "Kapatılacak bomba alanını seç:",
|
||||
"areareaper_site_disabled": "{0} alanı mühürlendi - artık buraya bomba kurulamaz!",
|
||||
"areareaper_site_disabled": "{0} Bölgesi kapandı - artık buraya bomba kurulamaz!",
|
||||
"areareaper_used_info": "Yeteneğini zaten kullandın, açgözlülük yapma",
|
||||
"areareaper_teammates_info": "{0} Bölgesi bomba kurmaya kapatıldı.",
|
||||
"areareaper_bombsite_disabled": "Bu bomba alanı kullanıma kapatıldı!",
|
||||
|
|
@ -57,7 +57,7 @@
|
|||
"bunnyhop": "Tavşan",
|
||||
"bunnyhop_desc": "Otomatik \"BunnyHop\" yaparsın",
|
||||
|
||||
"c4camouflage": "C4 Kamuflajı",
|
||||
"c4camouflage": "C4 Kamuflaj",
|
||||
"c4camouflage_desc": "Elinde C4 varken tamamen görünmez olursun",
|
||||
|
||||
"carefulbullets": "Dikkatli Mermiler",
|
||||
|
|
@ -146,8 +146,8 @@
|
|||
"fortnite": "Fortnite",
|
||||
"fortnite_desc": "[css_useSkill] tuşuna basarak barikat kur",
|
||||
|
||||
"fragilebomb": "Hassas Bomba",
|
||||
"fragilebomb_desc": "Kurulu bombaya ateş etmek bombanın canını azaltır",
|
||||
"fragilebomb": "Hassas C4",
|
||||
"fragilebomb_desc": "Kurulu C4'e ateş etmek C4'ün canını azaltır ve C4 imha edilir.",
|
||||
"fragilebomb_bomb_health": "Bombanın canı",
|
||||
|
||||
"friendlyfire": "Dost Şifası",
|
||||
|
|
@ -262,7 +262,7 @@
|
|||
"magneticdecoy": "Manyetik Yanıltıcı",
|
||||
"magneticdecoy_desc": "Yanıltıcı bombanız yakındaki oyuncuları kendine çeker",
|
||||
|
||||
"magneto": "Magneto",
|
||||
"magneto": "Mıknatıs",
|
||||
"magneto_desc": "Tüm düşman bombaları sizden uzaklaştırılır",
|
||||
|
||||
"magnifier": "Büyüteç",
|
||||
|
|
@ -372,8 +372,8 @@
|
|||
"regeneration": "Yenilenme",
|
||||
"regeneration_desc": "Birkaç saniyede bir canın yenilenir",
|
||||
|
||||
"replicator": "Kopyacı",
|
||||
"replicator_desc": "[css_useSkill] tuşuna basarak kopya oluştur ve ölürse rakibe hasar verir",
|
||||
"replicator": "Klon",
|
||||
"replicator_desc": "[css_useSkill] tuşuna basarak klon oluştur ve öldürene hasar verir",
|
||||
|
||||
"retreat": "Geri Çekil",
|
||||
"retreat_desc": "[css_useSkill] tuşuna basarak başlangıç noktasına ışınlan",
|
||||
|
|
@ -381,7 +381,7 @@
|
|||
"returntosender": "İade",
|
||||
"returntosender_desc": "Düşmana ilk vuruşun onu kendi başlangıç noktasına ışınlar",
|
||||
|
||||
"richboy": "Zengin Bebe",
|
||||
"richboy": "Zengin Çocuk",
|
||||
"richboy_desc": "Raund başında rastgele miktarda para alırsın",
|
||||
|
||||
"robinhood": "Robin Hood",
|
||||
|
|
@ -418,8 +418,8 @@
|
|||
"soldier_desc": "Rastgele bir oranda fazla hasar verirsin",
|
||||
"soldier_desc2": "Hasarın: {0}x",
|
||||
|
||||
"soundmaker": "Halüsinasyon",
|
||||
"soundmaker_desc": "[css_useSkill] tuşuna basarak rakibinin çığlık atmasını sağla",
|
||||
"soundmaker": "Çığlık",
|
||||
"soundmaker_desc": "Rakiplerinin çığlıklarını duyarsın",
|
||||
|
||||
"spectator": "Röntgen",
|
||||
"spectator_desc": "[css_useSkill] tuşuna basarak rakibinin gözünden gör",
|
||||
|
|
@ -469,7 +469,7 @@
|
|||
"wildthrow_desc": "El bombası atmakta zorluk çekecek bir oyuncu seçin",
|
||||
"wildthrow_player_info": "'{0}' adlı oyuncu tüm taktiklerini unuttu",
|
||||
"wildthrow_enemy_info": "Bomba atarken çok heyecanlanıyorsun.",
|
||||
"wildthrow_disable_info": "El bombası atma hafızan normale döndü.",
|
||||
"wildthrow_disable_info": "Bombaların düzeldi.",
|
||||
"wildthrow_select_info": "Bir oyuncu seçin:",
|
||||
|
||||
"zeus": "Zeus",
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue