QoE Update
## Added - **`CurseSkillPerPlayer`** (config.json) — limits how many curse skills (Darkness, JumpBan, PrimaryBan, Bankrupt and 14 others) can be stacked on a single player per round. `null` = unlimited (default), `1` = one curse per player, `2` = two. When the limit is reached the target is rejected and the curser gets a chat warning. Enforced centrally in `SkillAction`, so no per-skill code is needed. - **Tripwire cooldown mode** — replaces the fixed wire limit with a Replicator-style cooldown. Players can place as many wires as they want as long as the cooldown is up; remaining time is shown on the HUD. Configurable via `Cooldown` in skillsInfo.json (default 20s). - **Tripwire team colors** — T wires red (255, 64, 64), CT wires blue (64, 128, 255). ## Fixed - **ExpensiveAmmo** also charged money for knife swings and grenade throws. It now only charges when a bullet-firing weapon is fired. - **Knockback** also triggered on grenade throws; bound to the same allowlist. ## Removed - Dead code: `Earthquake.cs` and `HealingChicken.cs` (neither was registered in the `Skills` enum, so neither ever ran), `EntityManager.CreateTrackedEnvShake`, `EntityManager.CreateTrackedChicken`, `PlayerManager.UpdatePlayerSkill`. ## Changed - **Tripwire wires are now removed when the owner dies or loses the skill.** Previously they stayed on the map until the end of the round. - `PlayerEvents.cs` split into three partial files: player events in `PlayerEvents.cs`, round and skill dispatch in `RoundEvents.cs`, entity and weapon hooks in `EntityEvents.cs`. Behaviour is unchanged; all members stay in the same `Event` class. - 28 copy-pasted enemy-gathering LINQ chains reduced to the shared helper (Bankrupt, CarefulBullets, Darkness, Deactivator, Deaf, ExpensiveAmmo, Giant, Glitch, Jammer, JumpBan, JumpCurse, LifeSwap, Magnifier, MoneySwap, Nightmare, Poison, PrimaryBan, WildThrow).
This commit is contained in:
parent
98f6e65b01
commit
b0b50a224f
50 changed files with 1215 additions and 1279 deletions
Binary file not shown.
|
|
@ -20,6 +20,7 @@
|
|||
"TraceRayBeam": false,
|
||||
"DisableHUDOnDeathPermission": "@jRandomSkills/death",
|
||||
"DisableSkillsOnRoundEnd": false,
|
||||
"CurseSkillPerPlayer": null,
|
||||
"LanguageSystem": {
|
||||
"DefaultLangCode": "en",
|
||||
"DisableGeoLite": false,
|
||||
|
|
@ -208,4 +209,4 @@
|
|||
"Permissions": "@jRandomSkills/owner"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@
|
|||
"WireHeight": 30.0,
|
||||
"WireWidth": 1.5,
|
||||
"MaxWallDistance": 400.0,
|
||||
"MaxWires": 2,
|
||||
"Cooldown": 20.0,
|
||||
"NeedsTeammates": false,
|
||||
"DisableOnFreezeTime": false,
|
||||
"OnlyTeam": 0,
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -487,7 +487,6 @@
|
|||
|
||||
"tripwire": "tripwire",
|
||||
"tripwire_desc": "tripwire_desc",
|
||||
"tripwire_limit_info": "tripwire_limit_info: {0}",
|
||||
"tripwire_no_wall_info": "tripwire_no_wall_info",
|
||||
"tripwire_placed_info": "tripwire_placed_info",
|
||||
"tripwire_triggered_info": "tripwire_triggered_info: {0}",
|
||||
|
|
@ -533,6 +532,7 @@
|
|||
"duplicate_player": "Mehr als ein Spieler mit demselben Namen gefunden.",
|
||||
"selectplayerskill_command": "Gib /t ein",
|
||||
"selectplayerskill_incorrect_enemy_index": "Es wurden keine Spieler gefunden, die ausgewählt werden können.",
|
||||
"curse_limit_info": "curse_limit_info",
|
||||
|
||||
"skill_not_found_setskill": "Keine solche CHATCOLORS.REDskill gefunden",
|
||||
"player_not_found_setskill": "Kein solcher CHATCOLORS.REDplayer gefunden",
|
||||
|
|
@ -571,4 +571,4 @@
|
|||
"menu_controlls_scroll": "W/S – Scrollen",
|
||||
"menu_controlls_padding": " | ",
|
||||
"menu_controlls_select": "E – Auswählen"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -486,8 +486,7 @@
|
|||
"toxicsmoke_desc": "Your smoke grenades deal damage",
|
||||
|
||||
"tripwire": "Tripwire",
|
||||
"tripwire_desc": "Click [css_useSkill] to string a tripwire between two walls",
|
||||
"tripwire_limit_info": "You can only have {0} tripwires at a time.",
|
||||
"tripwire_desc": "Click [css_useSkill] to string a wire between two walls. Enemies touching it show on your radar",
|
||||
"tripwire_no_wall_info": "No walls close enough on both sides.",
|
||||
"tripwire_placed_info": "Tripwire placed.",
|
||||
"tripwire_triggered_info": "'{0}' tripped your wire.",
|
||||
|
|
@ -533,6 +532,7 @@
|
|||
"duplicate_player": "More than one player found with the same name.",
|
||||
"selectplayerskill_command": "Type /t",
|
||||
"selectplayerskill_incorrect_enemy_index": "No players were found to select.",
|
||||
"curse_limit_info": "The curse limit for {0} has been reached",
|
||||
|
||||
"skill_not_found_setskill": "No such CHATCOLORS.REDskill found",
|
||||
"player_not_found_setskill": "No such CHATCOLORS.REDplayer found",
|
||||
|
|
@ -571,4 +571,4 @@
|
|||
"menu_controlls_scroll": "W/S - Scroll",
|
||||
"menu_controlls_padding": " | ",
|
||||
"menu_controlls_select": "E - Select"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -486,7 +486,6 @@
|
|||
|
||||
"tripwire": "tripwire",
|
||||
"tripwire_desc": "tripwire_desc",
|
||||
"tripwire_limit_info": "tripwire_limit_info: {0}",
|
||||
"tripwire_no_wall_info": "tripwire_no_wall_info",
|
||||
"tripwire_placed_info": "tripwire_placed_info",
|
||||
"tripwire_triggered_info": "tripwire_triggered_info: {0}",
|
||||
|
|
@ -532,6 +531,7 @@
|
|||
"duplicate_player": "Plus d’un joueur trouvé avec le même nom.",
|
||||
"selectplayerskill_command": "Tapez /t",
|
||||
"selectplayerskill_incorrect_enemy_index": "Aucun joueur trouvé à sélectionner.",
|
||||
"curse_limit_info": "curse_limit_info",
|
||||
|
||||
"skill_not_found_setskill": "Aucune CHATCOLORS.REDcompétence trouvée",
|
||||
"player_not_found_setskill": "Aucun CHATCOLORS.REDjoueur trouvé",
|
||||
|
|
|
|||
|
|
@ -486,7 +486,6 @@
|
|||
|
||||
"tripwire": "tripwire",
|
||||
"tripwire_desc": "tripwire_desc",
|
||||
"tripwire_limit_info": "tripwire_limit_info: {0}",
|
||||
"tripwire_no_wall_info": "tripwire_no_wall_info",
|
||||
"tripwire_placed_info": "tripwire_placed_info",
|
||||
"tripwire_triggered_info": "tripwire_triggered_info: {0}",
|
||||
|
|
@ -532,6 +531,7 @@
|
|||
"duplicate_player": "Znaleziono więcej niż jednego gracza o tej samej nazwie.",
|
||||
"selectplayerskill_command": "Wpisz /t",
|
||||
"selectplayerskill_incorrect_enemy_index": "Nie znaleziono graczy do wyboru.",
|
||||
"curse_limit_info": "curse_limit_info",
|
||||
|
||||
"skill_not_found_setskill": "Nie znaleziono takiej CHATCOLORS.REDsupermocy",
|
||||
"player_not_found_setskill": "Nie znaleziono takiego CHATCOLORS.REDgracza",
|
||||
|
|
|
|||
|
|
@ -487,7 +487,6 @@
|
|||
|
||||
"tripwire": "tripwire",
|
||||
"tripwire_desc": "tripwire_desc",
|
||||
"tripwire_limit_info": "tripwire_limit_info: {0}",
|
||||
"tripwire_no_wall_info": "tripwire_no_wall_info",
|
||||
"tripwire_placed_info": "tripwire_placed_info",
|
||||
"tripwire_triggered_info": "tripwire_triggered_info: {0}",
|
||||
|
|
@ -533,6 +532,7 @@
|
|||
"duplicate_player": "Mais de um jogador encontrado com o mesmo nome.",
|
||||
"selectplayerskill_command": "Digite /t",
|
||||
"selectplayerskill_incorrect_enemy_index": "Não foram encontrados jogadores para selecionar.",
|
||||
"curse_limit_info": "curse_limit_info",
|
||||
|
||||
"skill_not_found_setskill": "Nenhuma habilidade CHATCOLORS.RED encontrada",
|
||||
"player_not_found_setskill": "Nenhum jogador CHATCOLORS.RED encontrado",
|
||||
|
|
@ -571,4 +571,4 @@
|
|||
"menu_controlls_scroll": "W/S - Rolar",
|
||||
"menu_controlls_padding": " | ",
|
||||
"menu_controlls_select": "E - Selecionar"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -487,7 +487,6 @@
|
|||
|
||||
"tripwire": "tripwire",
|
||||
"tripwire_desc": "tripwire_desc",
|
||||
"tripwire_limit_info": "tripwire_limit_info: {0}",
|
||||
"tripwire_no_wall_info": "tripwire_no_wall_info",
|
||||
"tripwire_placed_info": "tripwire_placed_info",
|
||||
"tripwire_triggered_info": "tripwire_triggered_info: {0}",
|
||||
|
|
@ -533,6 +532,7 @@
|
|||
"duplicate_player": "Найдено несколько игроков с таким именем.",
|
||||
"selectplayerskill_command": "Введите /t",
|
||||
"selectplayerskill_incorrect_enemy_index": "Игроки для выбора не найдены.",
|
||||
"curse_limit_info": "curse_limit_info",
|
||||
|
||||
"skill_not_found_setskill": "Навык не найден",
|
||||
"player_not_found_setskill": "Игрок не найден",
|
||||
|
|
|
|||
|
|
@ -486,8 +486,7 @@
|
|||
"toxicsmoke_desc": "Sis bombaların hasar verir",
|
||||
|
||||
"tripwire": "Tel Tuzağı",
|
||||
"tripwire_desc": "[css_useSkill] ile iki duvar arasına tel gerersin",
|
||||
"tripwire_limit_info": "Aynı anda en fazla {0} tel gerebilirsin.",
|
||||
"tripwire_desc": "[css_useSkill] ile iki duvar arasına tel ger. Tele değen düşman radarında görünür",
|
||||
"tripwire_no_wall_info": "İki yanında da yeterince yakın duvar yok.",
|
||||
"tripwire_placed_info": "Tel gerildi.",
|
||||
"tripwire_triggered_info": "'{0}' teline takıldı.",
|
||||
|
|
@ -533,6 +532,7 @@
|
|||
"duplicate_player": "Aynı isimde birden fazla oyuncu bulundu.",
|
||||
"selectplayerskill_command": "Sohbete /t yazın",
|
||||
"selectplayerskill_incorrect_enemy_index": "Seçilecek oyuncu yok.",
|
||||
"curse_limit_info": "'{0}' üzerindeki lanet sınırı doldu, başka bir oyuncu seç",
|
||||
|
||||
"skill_not_found_setskill": "Böyle bir yetenek yok",
|
||||
"player_not_found_setskill": "Böyle bir oyuncu yok",
|
||||
|
|
@ -571,4 +571,4 @@
|
|||
"menu_controlls_scroll": "W/S - Kaydır",
|
||||
"menu_controlls_padding": " | ",
|
||||
"menu_controlls_select": "E - Seç"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -484,7 +484,6 @@
|
|||
|
||||
"tripwire": "tripwire",
|
||||
"tripwire_desc": "tripwire_desc",
|
||||
"tripwire_limit_info": "tripwire_limit_info: {0}",
|
||||
"tripwire_no_wall_info": "tripwire_no_wall_info",
|
||||
"tripwire_placed_info": "tripwire_placed_info",
|
||||
"tripwire_triggered_info": "tripwire_triggered_info: {0}",
|
||||
|
|
@ -530,6 +529,7 @@
|
|||
"duplicate_player": "找到多个同名玩家。",
|
||||
"selectplayerskill_command": "输入 /t",
|
||||
"selectplayerskill_incorrect_enemy_index": "未找到可供选择的玩家。",
|
||||
"curse_limit_info": "curse_limit_info",
|
||||
|
||||
"skill_not_found_setskill": "未找到 CHATCOLORS.RED 技能",
|
||||
"player_not_found_setskill": "未找到 CHATCOLORS.RED 玩家",
|
||||
|
|
@ -569,4 +569,4 @@
|
|||
"menu_controlls_scroll": "W/S - 滚动",
|
||||
"menu_controlls_padding": " | ",
|
||||
"menu_controlls_select": "E - 选择"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue