This commit is contained in:
Juzlus 2025-09-16 04:26:29 +02:00
parent 34f683d4fa
commit 729acfa4bf
8 changed files with 972 additions and 1 deletions

View file

@ -5,6 +5,7 @@ using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Entities.Constants; using CounterStrikeSharp.API.Modules.Entities.Constants;
using CounterStrikeSharp.API.Modules.Utils; using CounterStrikeSharp.API.Modules.Utils;
using jRandomSkills.src.utils; using jRandomSkills.src.utils;
using System.Reflection.Metadata;
using static jRandomSkills.jRandomSkills; using static jRandomSkills.jRandomSkills;
namespace jRandomSkills namespace jRandomSkills
@ -443,6 +444,8 @@ namespace jRandomSkills
newLangCode = "pt-br"; newLangCode = "pt-br";
if (Localization.chinaIsoCodes.Contains(newLangCode.ToUpper())) if (Localization.chinaIsoCodes.Contains(newLangCode.ToUpper()))
newLangCode = "zh"; newLangCode = "zh";
if (Localization.frenchIsoCodes.Contains(newLangCode.ToUpper()))
newLangCode = "fr";
newLangCode = newLangCode.ToLower(); newLangCode = newLangCode.ToLower();
if (!Localization.HasTranslation(newLangCode)) if (!Localization.HasTranslation(newLangCode))
newLangCode = "en"; newLangCode = "en";

View file

@ -0,0 +1,456 @@
{
"none": "Aucune",
"none_desc": "Vous n’avez aucune compétence",
"aimbot": "Aimbot",
"aimbot_desc": "Chaque balle que vous touchez compte comme un headshot",
"anomaly": "Anomalie",
"anomaly_desc": "Vous revenez quelques secondes en arrière dans le temps",
"antyflash": "Anti-Flash",
"antyflash_desc": "Vous êtes immunisé contre les flashbangs, et vos flashbangs durent 7 secondes",
"antyhead": "Tête de Fer",
"antyhead_desc": "Vous ne subissez aucun dégât des headshots",
"areareaper": "Faucheur de Zone",
"areareaper_desc": "Vous pouvez choisir un site de bombe à désactiver",
"areareaper_incorrect_site": "Aucun site de bombe trouvé.",
"areareaper_no_site": "Aucun site de bombe disponible.",
"areareaper_select_info": "Sélectionnez un site à désactiver :",
"areareaper_site_disabled": "Le site de bombe {0} a été désactivé – aucune bombe ne peut y être posée !",
"areareaper_used_info": "Votre compétence a déjà été utilisée.",
"armored": "Blindé",
"armored_desc": "Vous avez un multiplicateur de dégâts subis aléatoire",
"armored_desc2": "Votre multiplicateur de dégâts subis est : {0}x",
"assassin": "Assassin",
"assassin_desc": "Vous infligez plus de dégâts aux ennemis par-derrière",
"astronaut": "Astronaute",
"astronaut_desc": "Vous recevez une gravité aléatoire au début du round",
"astronaut_desc2": "Votre gravité aléatoire est : {0}x",
"moneyswap": "Percepteur",
"moneyswap_desc": "Choisissez un joueur avec qui échanger votre argent",
"moneyswap_enemy_info": "Le fisc vous a eu.",
"moneyswap_player_info": "Vous avez échangé votre argent avec le joueur « {0} ».",
"moneyswap_select_info": "Échanger de l’argent avec le joueur :",
"baseball": "Joueur de Baseball",
"baseball_desc": "Votre leurre rebondit sur les murs et tue instantanément un ennemi à l’impact",
"behind": "Rotation Ennemie",
"behind_desc": "Vous avez une chance aléatoire de retourner un ennemi à 180° en le touchant",
"behind_desc2": "Votre chance de retourner un ennemi à l’impact est : {0}%",
"blademaster": "Maître de Lame",
"blademaster_desc": "En tenant un couteau, vous avez une forte chance de dévier un tir",
"bunnyhop": "Lapin",
"bunnyhop_desc": "Vous obtenez l’auto « BunnyHop »",
"c4camouflage": "Camouflage C4",
"c4camouflage_desc": "Vous êtes invisible en tenant la bombe",
"catapult": "Catapulte",
"catapult_desc": "Vous avez une chance aléatoire de projeter un ennemi en l’air",
"catapult_desc2": "Votre chance de projeter un ennemi à l’impact est : {0}%",
"chicken": "Poulet",
"chicken_desc": "Vous obtenez un modèle de poulet + 10% de vitesse de déplacement en plus - 50 PV",
"chillout": "Détente",
"chillout_desc": "Planter la bombe prend beaucoup plus de temps",
"cutter": "Trancheur",
"cutter_desc": "Coup de couteau = mort instantanée",
"darkness": "Obscurité",
"darkness_desc": "Applique un effet d’obscurité à un ennemi choisi",
"darkness_enemy_info": "Que la lumière s’éteigne.",
"darkness_player_info": "L’obscurité a envahi le joueur « {0} ».",
"darkness_select_info": "Sélectionnez un joueur pour l’obscurité :",
"deactivator": "Désactivateur",
"deactivator_desc": "Choisissez un joueur dont vous voulez désactiver la compétence",
"deactivator_enemy_info": "Votre compétence a été désactivée.",
"deactivator_player_info": "La compétence du joueur « {0} » a été désactivée.",
"deactivator_select_info": "Désactiver la compétence d’un joueur :",
"deaf": "Sourd",
"deaf_desc": "Choisissez un joueur pour couper tous ses sons",
"deaf_enemy_info": "Votre casque a quitté la partie.",
"deaf_player_info": "Le son a été désactivé pour le joueur « {0} ».",
"deaf_select_info": "Couper tous les sons du joueur :",
"disarmament": "Désarmement",
"disarmament_desc": "Vous avez une chance aléatoire de faire lâcher son arme à un ennemi en le touchant",
"disarmament_desc2": "Votre chance de désarmer un ennemi est : {0}%",
"distancer": "Télémètre",
"distancer_desc": "Vous pouvez voir la distance du plus proche ennemi",
"dash": "Dash",
"dash_desc": "Effectue un dash avec un second saut",
"dracula": "Dracula",
"dracula_desc": "Toucher un ennemi vous rend de la vie égale à un pourcentage des dégâts infligés",
"duplicator": "Duplicateur",
"duplicator_desc": "Choisissez un joueur pour copier sa compétence",
"duplicator_player_info": "La compétence du joueur « {0} » a été copiée.",
"duplicator_select_info": "Copier la compétence d’un joueur :",
"dwarf": "Nain",
"dwarf_desc": "Taille du personnage aléatoire au début du round",
"dwarf_desc2": "Votre multiplicateur de taille est : {0}x",
"enemyspawn": "Spawn Ennemi",
"enemyspawn_desc": "Appuyez sur [css_useSkill] pour vous téléporter au spawn ennemi",
"explosiveshot": "Tir Explosif",
"explosiveshot_desc": "Chance aléatoire de tirer une balle explosive en tirant",
"explosiveshot_desc2": "Votre chance de tirer une balle explosive est : {0}%",
"falconeye": "Œil de Faucon",
"falconeye_desc": "Appuyez sur [css_useSkill] pour activer une caméra vue d’oiseau",
"fastreload": "Recharge Rapide",
"fastreload_desc": "Appuyez sur [css_useSkill] pour recharger l’arme que vous tenez",
"flash": "Flash",
"flash_desc": "Vitesse de joueur aléatoire au début du round",
"flash_desc2": "Votre multiplicateur de vitesse est : {0}x",
"fortnite": "Fortnite",
"fortnite_desc": "Appuyez sur [css_useSkill] pour créer une barricade destructible",
"fragilebomb": "Bombe Fragile",
"fragilebomb_desc": "Tirer sur la bombe lui inflige des dégâts",
"fragilebomb_bomb_health": "Santé de la bombe",
"friendlyfire": "Tir Ami",
"friendlyfire_desc": "Tirer sur vos coéquipiers les soigne",
"frozendecoy": "Leurre Gelé",
"frozendecoy_desc": "Votre leurre gèle tous les joueurs à proximité",
"gambler": "Parieur",
"gambler_desc": "Sélectionnez une compétence dans la liste proposée.",
"gambler_select_info": "Sélectionnez votre compétence :",
"gambler_more": "#00FF00|Rafraîchir pour ${0}",
"ghost": "Fantôme",
"ghost_desc": "Vous êtes complètement invisible",
"glaz": "Glaz",
"glaz_desc": "Vous pouvez voir à travers les fumigènes",
"glitch": "Glitch",
"glitch_desc": "Désactive le radar d’un ennemi choisi",
"glitch_enemy_info": "Votre radar a été désactivé.",
"glitch_player_info": "Le radar du joueur « {0} » a été désactivé.",
"glitch_select_info": "Désactiver le radar du joueur :",
"glue": "Colle",
"glue_desc": "Vos grenades collent aux murs",
"godmode": "Mode Dieu",
"godmode_desc": "Appuyez sur [css_useSkill] pour devenir immortel pendant un court instant",
"godmode_off": "Immortalité désactivée",
"godmode_on": "Immortalité activée",
"grenadier": "Grenadier",
"grenadier_desc": "Tu as des grenades HE infinies",
"healingsmoke": "Fumigène Soin",
"healingsmoke_desc": "Vos fumigènes soignent",
"hermit": "Ermite",
"hermit_desc": "Tuer restaure des munitions et une partie de vos PV",
"holyhandgrenade": "Grenade Sacrée",
"holyhandgrenade_desc": "Vos grenades HE infligent le double de dégâts et ont une portée doublée",
"impostor": "Imposteur",
"impostor_desc": "Vous commencez le round avec un modèle de joueur ennemi",
"infiniteammo": "Munitions Infinies",
"infiniteammo_desc": "Vous recevez des munitions infinies pour toutes vos armes",
"jackal": "Traqueur",
"jackal_desc": "Chaque adversaire laisse une trace derrière lui",
"jammer": "Brouilleur",
"jammer_desc": "Choisissez un joueur pour désactiver son viseur",
"jammer_enemy_info": "Votre viseur a été désactivé.",
"jammer_player_info": "Le viseur du joueur « {0} » a été désactivé.",
"jammer_select_info": "Désactiver le viseur d’un joueur :",
"jester": "Bouffon",
"jester_desc": "En mode bouffon, vous ne pouvez ni infliger ni subir de dégâts. Ce mode change toutes les quelques secondes.",
"jester_mode": "Mode Bouffon",
"jester_on": "ACTIVÉ",
"jester_off": "DÉSACTIVÉ",
"jumpban": "Sans Jambes",
"jumpban_desc": "Choisissez un joueur qui ne pourra plus sauter",
"jumpban_enemy_info": "Quelqu’un vous a coupé les jambes.",
"jumpban_player_info": "Le joueur « {0} » ne peut plus sauter.",
"jumpban_select_info": "Interdire de sauter au joueur :",
"jumpingjack": "Sauteur",
"jumpingjack_desc": "Sauter vous rend de la vie",
"killerflash": "Flash Mortel",
"killerflash_desc": "Toute personne totalement aveuglée par votre flashbang meurt (y compris vous)",
"lifeswap": "Échange de Vie",
"lifeswap_desc": "Choisissez un joueur avec qui échanger votre santé",
"lifeswap_enemy_info": "Quelqu’un a emprunté votre santé.",
"lifeswap_player_info": "Vous avez échangé votre santé avec le joueur « {0} ».",
"lifeswap_select_info": "Échanger la santé avec le joueur :",
"longknife": "Couteau Long",
"longknife_desc": "Une attaque primaire au couteau inflige des dégâts quelle que soit la distance",
"longzeus": "Zeus Longue Portée",
"longzeus_desc": "Le Zeus inflige des dégâts quelle que soit la distance",
"magnifier": "Loupe",
"magnifier_desc": "Force l’écran de l’ennemi à zoomer, réduisant son champ de vision",
"magnifier_enemy_info": "Votre champ de vision a été déformé !",
"magnifier_player_info": "Le joueur « {0} » a été forcé en mode zoom.",
"magnifier_select_info": "Forcer l’écran du joueur à zoomer :",
"medic": "Médecin",
"medic_desc": "Appuyez sur [css_useSkill] pour utiliser une charge de soin qui restaure 50 PV",
"bankrupt": "Faillite",
"bankrupt_desc": "Choisissez le joueur qui perdra tout son argent",
"bankrupt_enemy_info": "Vous êtes en faillite.",
"bankrupt_player_info": "Le joueur « {0} » est en faillite.",
"bankrupt_select_info": "Mettre un joueur en faillite :",
"muhammed": "Bombe",
"muhammed_desc": "Vous explosez à votre mort, tuant les joueurs proches",
"ninja": "Ninja",
"ninja_desc": "Rester immobile augmente votre invisibilité de 33%, s’accroupir de 33%, et tenir un couteau de 33%",
"nonades": "Sans Grenades",
"nonades_desc": "Les grenades ne vous infligent aucun dégât",
"norecoil": "Concentration",
"norecoil_desc": "Aucun recul en tirant",
"noclip": "NoClip",
"noclip_desc": "Appuyez sur [css_useSkill] pour activer le noclip pendant un court instant",
"oneshot": "One-Shot",
"oneshot_desc": "Toucher un ennemi le tue instantanément",
"onlyhead": "Tête Seulement",
"onlyhead_desc": "Vous ne subissez des dégâts qu’à la tête",
"paweljumper": "Pawel Sauteur",
"paweljumper_desc": "Vous obtenez un nombre aléatoire de sauts supplémentaires",
"paweljumper_desc2": "Vous obtenez {0} sauts supplémentaires",
"phoenix": "Phénix",
"phoenix_desc": "Vous avez une chance aléatoire de réapparaître après la mort",
"phoenix_desc2": "Votre chance de réapparaître après la mort est : {0}%",
"phoenix_respawn": "Vous avez ressuscité de vos cendres grâce au pouvoir du : CHATCOLORS.REDPhénix",
"psychicdefusing": "Désamorçage Psychique",
"psychicdefusing_desc": "Quand vous êtes près de la bombe, vous commencez à la désamorcer",
"psychicdefusing_hud_info": "{0} secondes restantes pour désamorcer",
"pilot": "Pilote",
"pilot_desc": "Volez pendant un temps limité. Maintenez [UTILISER - E] pour voler",
"pilot_hud_info": "Carburant",
"planter": "Poseur Libre",
"planter_desc": "Vous pouvez planter la bombe n’importe où, avec un temps de détonation de 60 secondes.",
"poison": "Poison",
"poison_desc": "Choisissez un joueur qui subira des dégâts toutes les quelques secondes",
"poison_enemy_info": "Vous avez été empoisonné.",
"poison_player_info": "Le joueur « {0} » a été empoisonné.",
"poison_select_info": "Empoisonner un joueur :",
"primaryban": "Sans Fusils",
"primaryban_desc": "Choisissez un joueur qui ne pourra plus utiliser de fusils",
"primaryban_enemy_info": "Vous ne pouvez plus utiliser de fusils.",
"primaryban_player_info": "Le joueur « {0} » ne peut plus utiliser de fusils.",
"primaryban_select_info": "Interdire les fusils pour un joueur :",
"prosthesis": "Prothèses",
"prosthesis_desc": "Les bras et les jambes sont pare-balles",
"push": "Pousseur",
"push_desc": "Vous avez une chance aléatoire de repousser un ennemi en le touchant",
"push_desc2": "Votre chance de repousser l’ennemi est : {0}%",
"pyro": "Pyro",
"pyro_desc": "Un cocktail Molotov vous rend de la vie",
"quickshot": "Tir Rapide",
"quickshot_desc": "Toutes les balles sont tirées très rapidement",
"radarhack": "Radar Hack",
"radarhack_desc": "Les ennemis sont visibles sur le radar",
"rambo": "Rambo",
"rambo_desc": "Vous recevez une quantité aléatoire de PV au début du round",
"randomweapon": "Arme Aléatoire",
"randomweapon_desc": "Appuyez sur [css_useSkill] pour recevoir une arme aléatoire",
"rezombie": "Re-Zombie",
"rezombie_desc": "Après la mort, vous réapparaissez en zombie avec plus de PV et sans armes",
"reactivearmor": "Armure Réactive",
"reactivearmor_desc": "L’armure absorbe les premiers dégâts reçus",
"regeneration": "Régénération",
"regeneration_desc": "Vous regagnez des PV toutes les quelques secondes",
"replicator": "Réplicateur",
"replicator_desc": "Appuyez sur [css_useSkill] pour créer une réplique qui inflige des dégâts en touchant",
"retreat": "Retraite",
"retreat_desc": "Appuyez sur [css_useSkill] pour retourner au spawn",
"returntosender": "Retour à l’Expéditeur",
"returntosender_desc": "Le premier coup porté à un ennemi le renvoie à son spawn",
"richboy": "Gosse de Riche",
"richboy_desc": "Vous recevez une somme d’argent aléatoire au début du round",
"robinhood": "Robin des Bois",
"robinhood_desc": "Infliger des dégâts à un ennemi lui vole de l’argent",
"rubber": "Balles en Caoutchouc",
"rubber_desc": "Vos balles ralentissent fortement les joueurs",
"saper": "Sapeur",
"saper_desc": "Vous pouvez poser et désamorcer les bombes plus rapidement",
"secondlife": "Seconde Chance",
"secondlife_desc": "Après la mort, vous réapparaissez avec le même nombre de PV",
"shade": "Ombre",
"shade_desc": "Vous vous téléportez derrière l’ennemi touché",
"shade_nospace": "Aucun espace disponible",
"shortbomb": "Mèche Courte",
"shortbomb_desc": "La bombe explose beaucoup plus vite",
"silent": "Silencieux",
"silent_desc": "Vos pas et vos sauts sont silencieux pour les AUTRES joueurs",
"sniperelite": "Sniper d’Élite",
"sniperelite_desc": "Appuyez sur [css_useSkill] pour échanger votre arme actuelle contre un AWP",
"soldier": "Soldat",
"soldier_desc": "Vous avez un multiplicateur de dégâts aléatoire",
"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",
"spectator": "Spectateur",
"spectator_desc": "Appuyez sur [css_useSkill] pour observer un ennemi aléatoire",
"swapposition": "Échange de Position",
"swapposition_desc": "Appuyez sur [css_useSkill] pour échanger de place avec un ennemi aléatoire",
"teleporter": "Téléporteur",
"teleporter_desc": "Vous échangez de place avec l’ennemi touché",
"thief": "Voleur",
"thief_desc": "Vous pouvez voler la compétence d’un joueur choisi",
"thief_enemy_info": "Votre compétence a été volée.",
"thief_player_info": "La compétence du joueur « {0} » a été volée.",
"thief_select_info": "Voler la compétence d’un joueur :",
"thief_incorrect_skill": "Cette compétence ne peut pas être sélectionnée !",
"thirdeye": "Troisième Œil",
"thirdeye_desc": "Appuyez sur [css_useSkill] pour activer la vue à la troisième personne",
"thorns": "Épines",
"thorns_desc": "Votre adversaire recevra une partie des dégâts qu’il vous a infligés",
"toxicsmoke": "Fumée Toxique",
"toxicsmoke_desc": "Vos grenades fumigènes infligent des dégâts",
"wallhack": "Wallhack",
"wallhack_desc": "Vous pouvez voir les ennemis à travers les murs",
"watchmaker": "Horloger",
"watchmaker_desc": "Chaque lancer de grenade modifie le temps du round",
"watchmaker_ct": "Temps du round réduit de {0} secondes.",
"watchmaker_tt": "Temps du round prolongé de {0} secondes.",
"weaponsswap": "Échange d’Armes",
"weaponsswap_desc": "Appuyez sur [css_useSkill] pour échanger vos armes avec un ennemi aléatoire",
"weaponsswap_hud_info2": "Vous n’avez aucune arme à échanger",
"zeus": "Zeus",
"zeus_desc": "Le Zeus x27 se recharge instantanément",
"your_skill": "Votre compétence",
"enemy_skill": "Compétence de l’ennemi",
"observer_skill": "Compétence du joueur",
"welcome_message": "Bienvenue {PLAYER} sur {SERVER_NAME}!\nVersion actuelle de jRandomSkills : {VERSION} ({SKILLS_COUNT} compétences).\n\nCréé à l’origine par :\n{AUTHOR1}\nModifié et amélioré par :\n{AUTHOR2}\nDiscord officiel : https://discord.gg/9H8EZYBpPF",
"drawing_skill": "Attribution d’une compétence",
"disabled_weapon": "Vous ne pouvez pas utiliser cette arme",
"hud_info": "Attendez encore {0} secondes",
"hud_info_no_enemy": "Aucun ennemi trouvé",
"active_hud_info": "Actif encore {0} millisecondes",
"skills_menu": "Liste des compétences",
"no_player": "Aucun joueur correspondant trouvé.",
"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.",
"skill_not_found_setskill": "Aucune CHATCOLORS.REDcompétence trouvée",
"player_not_found_setskill": "Aucun CHATCOLORS.REDjoueur trouvé",
"correct_form_setskill": "Utilisation correcte : CHATCOLORS.RED!setskill <pseudo> <compétence>",
"correct_form_setscore": "Utilisation correcte : CHATCOLORS.RED!setscore <CT> <TT>",
"done_setskill": "Compétence définie",
"error_setskill": "Impossible de définir la CHATCOLORS.REDcompétence",
"for_setskill": "pour",
"invalid_map": "Nom de la carte mal saisi !",
"loading_map": "Chargement d’une nouvelle carte",
"pause": "Le match a été mis en pause.",
"unpause": "Le match a repris.",
"healed": "Vous avez été soigné.",
"game_start": "La partie a commencé !",
"reload": "Les langues et configurations ont été rechargées.",
"vote_started": "Vote lancé : « {0} »",
"vote_timeout": "Le vote « {0} » a expiré !",
"vote_wait": "Vous devez attendre avant de lancer un autre vote !",
"vote_same_wait": "Vous devez attendre avant de relancer le même vote !",
"vote_not_enough_players": "Pas assez de joueurs pour lancer un vote !",
"vote_alredy_voted": "Vous avez déjà voté !",
"vote_vote": "Vote",
"bombsite_a": "Site de bombe A",
"bombsite_b": "Site de bombe B",
"teammate_skills": "Compétences de vos coéquipiers",
"summary_start": "======RÉSUMÉ=DU=DERNIER=ROUND======",
"summary_end": "===================================",
"menu_controlls": "<font class='fontSize-m' color='cyan'>W/S - Défilement</font> <font class='fontSize-m' color='white'> | </font> <font class='fontSize-m' color='green'>E - Sélectionner</font> <br>"
}

View file

@ -54,7 +54,26 @@ namespace jRandomSkills
{ {
J[player.Slot]++; J[player.Slot]++;
Vector newVelocity = SkillUtils.GetForwardVector(playerPawn.EyeAngles) * pushVelocity; float moveX = 0;
float moveY = 0;
PlayerButtons playerButtons = player.Buttons;
if (playerButtons.HasFlag(PlayerButtons.Forward))
moveY += 1;
if (playerButtons.HasFlag(PlayerButtons.Back))
moveY -= 1;
if (playerButtons.HasFlag(PlayerButtons.Moveleft))
moveX += 1;
if (playerButtons.HasFlag(PlayerButtons.Moveright))
moveX -= 1;
if (moveX == 0 && moveY == 0)
moveY = 1;
float moveAngle = MathF.Atan2(moveX, moveY) * (180f / MathF.PI);
QAngle dashAngles = new(0, playerPawn.EyeAngles.Y + moveAngle, 0);
Vector newVelocity = SkillUtils.GetForwardVector(dashAngles) * pushVelocity;
newVelocity.Z = playerPawn.AbsVelocity.Z + jumpVelocity; newVelocity.Z = playerPawn.AbsVelocity.Z + jumpVelocity;
playerPawn.AbsVelocity.X = newVelocity.X; playerPawn.AbsVelocity.X = newVelocity.X;

View file

@ -19,6 +19,7 @@ namespace jRandomSkills.src.utils
private static readonly string geoliteFilePath = Path.Combine(jRandomSkills.Instance.ModuleDirectory, "packages", "GeoLite2-Country.mmdb"); private static readonly string geoliteFilePath = Path.Combine(jRandomSkills.Instance.ModuleDirectory, "packages", "GeoLite2-Country.mmdb");
public static readonly string[] chinaIsoCodes = ["CN", "TW", "HK", "MO", "SG"]; public static readonly string[] chinaIsoCodes = ["CN", "TW", "HK", "MO", "SG"];
public static readonly string[] portugalIsoCodes = ["PT", "BR", "AO", "CV", "GW", "MZ", "ST", "TL"]; public static readonly string[] portugalIsoCodes = ["PT", "BR", "AO", "CV", "GW", "MZ", "ST", "TL"];
public static readonly string[] frenchIsoCodes = ["FR", "MC", "HT"];
private static string defaultLangCode = "en"; private static string defaultLangCode = "en";
@ -158,6 +159,8 @@ namespace jRandomSkills.src.utils
isoCode = "pt-br"; isoCode = "pt-br";
if (chinaIsoCodes.Contains(isoCode)) if (chinaIsoCodes.Contains(isoCode))
isoCode = "zh"; isoCode = "zh";
if (frenchIsoCodes.Contains(isoCode))
isoCode = "fr";
isoCode = isoCode.ToLower(); isoCode = isoCode.ToLower();
if (_translations.ContainsKey(isoCode)) if (_translations.ContainsKey(isoCode))
return isoCode; return isoCode;

View file

@ -0,0 +1,456 @@
{
"none": "Aucune",
"none_desc": "Vous n’avez aucune compétence",
"aimbot": "Aimbot",
"aimbot_desc": "Chaque balle que vous touchez compte comme un headshot",
"anomaly": "Anomalie",
"anomaly_desc": "Vous revenez quelques secondes en arrière dans le temps",
"antyflash": "Anti-Flash",
"antyflash_desc": "Vous êtes immunisé contre les flashbangs, et vos flashbangs durent 7 secondes",
"antyhead": "Tête de Fer",
"antyhead_desc": "Vous ne subissez aucun dégât des headshots",
"areareaper": "Faucheur de Zone",
"areareaper_desc": "Vous pouvez choisir un site de bombe à désactiver",
"areareaper_incorrect_site": "Aucun site de bombe trouvé.",
"areareaper_no_site": "Aucun site de bombe disponible.",
"areareaper_select_info": "Sélectionnez un site à désactiver :",
"areareaper_site_disabled": "Le site de bombe {0} a été désactivé – aucune bombe ne peut y être posée !",
"areareaper_used_info": "Votre compétence a déjà été utilisée.",
"armored": "Blindé",
"armored_desc": "Vous avez un multiplicateur de dégâts subis aléatoire",
"armored_desc2": "Votre multiplicateur de dégâts subis est : {0}x",
"assassin": "Assassin",
"assassin_desc": "Vous infligez plus de dégâts aux ennemis par-derrière",
"astronaut": "Astronaute",
"astronaut_desc": "Vous recevez une gravité aléatoire au début du round",
"astronaut_desc2": "Votre gravité aléatoire est : {0}x",
"moneyswap": "Percepteur",
"moneyswap_desc": "Choisissez un joueur avec qui échanger votre argent",
"moneyswap_enemy_info": "Le fisc vous a eu.",
"moneyswap_player_info": "Vous avez échangé votre argent avec le joueur « {0} ».",
"moneyswap_select_info": "Échanger de l’argent avec le joueur :",
"baseball": "Joueur de Baseball",
"baseball_desc": "Votre leurre rebondit sur les murs et tue instantanément un ennemi à l’impact",
"behind": "Rotation Ennemie",
"behind_desc": "Vous avez une chance aléatoire de retourner un ennemi à 180° en le touchant",
"behind_desc2": "Votre chance de retourner un ennemi à l’impact est : {0}%",
"blademaster": "Maître de Lame",
"blademaster_desc": "En tenant un couteau, vous avez une forte chance de dévier un tir",
"bunnyhop": "Lapin",
"bunnyhop_desc": "Vous obtenez l’auto « BunnyHop »",
"c4camouflage": "Camouflage C4",
"c4camouflage_desc": "Vous êtes invisible en tenant la bombe",
"catapult": "Catapulte",
"catapult_desc": "Vous avez une chance aléatoire de projeter un ennemi en l’air",
"catapult_desc2": "Votre chance de projeter un ennemi à l’impact est : {0}%",
"chicken": "Poulet",
"chicken_desc": "Vous obtenez un modèle de poulet + 10% de vitesse de déplacement en plus - 50 PV",
"chillout": "Détente",
"chillout_desc": "Planter la bombe prend beaucoup plus de temps",
"cutter": "Trancheur",
"cutter_desc": "Coup de couteau = mort instantanée",
"darkness": "Obscurité",
"darkness_desc": "Applique un effet d’obscurité à un ennemi choisi",
"darkness_enemy_info": "Que la lumière s’éteigne.",
"darkness_player_info": "L’obscurité a envahi le joueur « {0} ».",
"darkness_select_info": "Sélectionnez un joueur pour l’obscurité :",
"deactivator": "Désactivateur",
"deactivator_desc": "Choisissez un joueur dont vous voulez désactiver la compétence",
"deactivator_enemy_info": "Votre compétence a été désactivée.",
"deactivator_player_info": "La compétence du joueur « {0} » a été désactivée.",
"deactivator_select_info": "Désactiver la compétence d’un joueur :",
"deaf": "Sourd",
"deaf_desc": "Choisissez un joueur pour couper tous ses sons",
"deaf_enemy_info": "Votre casque a quitté la partie.",
"deaf_player_info": "Le son a été désactivé pour le joueur « {0} ».",
"deaf_select_info": "Couper tous les sons du joueur :",
"disarmament": "Désarmement",
"disarmament_desc": "Vous avez une chance aléatoire de faire lâcher son arme à un ennemi en le touchant",
"disarmament_desc2": "Votre chance de désarmer un ennemi est : {0}%",
"distancer": "Télémètre",
"distancer_desc": "Vous pouvez voir la distance du plus proche ennemi",
"dash": "Dash",
"dash_desc": "Effectue un dash avec un second saut",
"dracula": "Dracula",
"dracula_desc": "Toucher un ennemi vous rend de la vie égale à un pourcentage des dégâts infligés",
"duplicator": "Duplicateur",
"duplicator_desc": "Choisissez un joueur pour copier sa compétence",
"duplicator_player_info": "La compétence du joueur « {0} » a été copiée.",
"duplicator_select_info": "Copier la compétence d’un joueur :",
"dwarf": "Nain",
"dwarf_desc": "Taille du personnage aléatoire au début du round",
"dwarf_desc2": "Votre multiplicateur de taille est : {0}x",
"enemyspawn": "Spawn Ennemi",
"enemyspawn_desc": "Appuyez sur [css_useSkill] pour vous téléporter au spawn ennemi",
"explosiveshot": "Tir Explosif",
"explosiveshot_desc": "Chance aléatoire de tirer une balle explosive en tirant",
"explosiveshot_desc2": "Votre chance de tirer une balle explosive est : {0}%",
"falconeye": "Œil de Faucon",
"falconeye_desc": "Appuyez sur [css_useSkill] pour activer une caméra vue d’oiseau",
"fastreload": "Recharge Rapide",
"fastreload_desc": "Appuyez sur [css_useSkill] pour recharger l’arme que vous tenez",
"flash": "Flash",
"flash_desc": "Vitesse de joueur aléatoire au début du round",
"flash_desc2": "Votre multiplicateur de vitesse est : {0}x",
"fortnite": "Fortnite",
"fortnite_desc": "Appuyez sur [css_useSkill] pour créer une barricade destructible",
"fragilebomb": "Bombe Fragile",
"fragilebomb_desc": "Tirer sur la bombe lui inflige des dégâts",
"fragilebomb_bomb_health": "Santé de la bombe",
"friendlyfire": "Tir Ami",
"friendlyfire_desc": "Tirer sur vos coéquipiers les soigne",
"frozendecoy": "Leurre Gelé",
"frozendecoy_desc": "Votre leurre gèle tous les joueurs à proximité",
"gambler": "Parieur",
"gambler_desc": "Sélectionnez une compétence dans la liste proposée.",
"gambler_select_info": "Sélectionnez votre compétence :",
"gambler_more": "#00FF00|Rafraîchir pour ${0}",
"ghost": "Fantôme",
"ghost_desc": "Vous êtes complètement invisible",
"glaz": "Glaz",
"glaz_desc": "Vous pouvez voir à travers les fumigènes",
"glitch": "Glitch",
"glitch_desc": "Désactive le radar d’un ennemi choisi",
"glitch_enemy_info": "Votre radar a été désactivé.",
"glitch_player_info": "Le radar du joueur « {0} » a été désactivé.",
"glitch_select_info": "Désactiver le radar du joueur :",
"glue": "Colle",
"glue_desc": "Vos grenades collent aux murs",
"godmode": "Mode Dieu",
"godmode_desc": "Appuyez sur [css_useSkill] pour devenir immortel pendant un court instant",
"godmode_off": "Immortalité désactivée",
"godmode_on": "Immortalité activée",
"grenadier": "Grenadier",
"grenadier_desc": "Tu as des grenades HE infinies",
"healingsmoke": "Fumigène Soin",
"healingsmoke_desc": "Vos fumigènes soignent",
"hermit": "Ermite",
"hermit_desc": "Tuer restaure des munitions et une partie de vos PV",
"holyhandgrenade": "Grenade Sacrée",
"holyhandgrenade_desc": "Vos grenades HE infligent le double de dégâts et ont une portée doublée",
"impostor": "Imposteur",
"impostor_desc": "Vous commencez le round avec un modèle de joueur ennemi",
"infiniteammo": "Munitions Infinies",
"infiniteammo_desc": "Vous recevez des munitions infinies pour toutes vos armes",
"jackal": "Traqueur",
"jackal_desc": "Chaque adversaire laisse une trace derrière lui",
"jammer": "Brouilleur",
"jammer_desc": "Choisissez un joueur pour désactiver son viseur",
"jammer_enemy_info": "Votre viseur a été désactivé.",
"jammer_player_info": "Le viseur du joueur « {0} » a été désactivé.",
"jammer_select_info": "Désactiver le viseur d’un joueur :",
"jester": "Bouffon",
"jester_desc": "En mode bouffon, vous ne pouvez ni infliger ni subir de dégâts. Ce mode change toutes les quelques secondes.",
"jester_mode": "Mode Bouffon",
"jester_on": "ACTIVÉ",
"jester_off": "DÉSACTIVÉ",
"jumpban": "Sans Jambes",
"jumpban_desc": "Choisissez un joueur qui ne pourra plus sauter",
"jumpban_enemy_info": "Quelqu’un vous a coupé les jambes.",
"jumpban_player_info": "Le joueur « {0} » ne peut plus sauter.",
"jumpban_select_info": "Interdire de sauter au joueur :",
"jumpingjack": "Sauteur",
"jumpingjack_desc": "Sauter vous rend de la vie",
"killerflash": "Flash Mortel",
"killerflash_desc": "Toute personne totalement aveuglée par votre flashbang meurt (y compris vous)",
"lifeswap": "Échange de Vie",
"lifeswap_desc": "Choisissez un joueur avec qui échanger votre santé",
"lifeswap_enemy_info": "Quelqu’un a emprunté votre santé.",
"lifeswap_player_info": "Vous avez échangé votre santé avec le joueur « {0} ».",
"lifeswap_select_info": "Échanger la santé avec le joueur :",
"longknife": "Couteau Long",
"longknife_desc": "Une attaque primaire au couteau inflige des dégâts quelle que soit la distance",
"longzeus": "Zeus Longue Portée",
"longzeus_desc": "Le Zeus inflige des dégâts quelle que soit la distance",
"magnifier": "Loupe",
"magnifier_desc": "Force l’écran de l’ennemi à zoomer, réduisant son champ de vision",
"magnifier_enemy_info": "Votre champ de vision a été déformé !",
"magnifier_player_info": "Le joueur « {0} » a été forcé en mode zoom.",
"magnifier_select_info": "Forcer l’écran du joueur à zoomer :",
"medic": "Médecin",
"medic_desc": "Appuyez sur [css_useSkill] pour utiliser une charge de soin qui restaure 50 PV",
"bankrupt": "Faillite",
"bankrupt_desc": "Choisissez le joueur qui perdra tout son argent",
"bankrupt_enemy_info": "Vous êtes en faillite.",
"bankrupt_player_info": "Le joueur « {0} » est en faillite.",
"bankrupt_select_info": "Mettre un joueur en faillite :",
"muhammed": "Bombe",
"muhammed_desc": "Vous explosez à votre mort, tuant les joueurs proches",
"ninja": "Ninja",
"ninja_desc": "Rester immobile augmente votre invisibilité de 33%, s’accroupir de 33%, et tenir un couteau de 33%",
"nonades": "Sans Grenades",
"nonades_desc": "Les grenades ne vous infligent aucun dégât",
"norecoil": "Concentration",
"norecoil_desc": "Aucun recul en tirant",
"noclip": "NoClip",
"noclip_desc": "Appuyez sur [css_useSkill] pour activer le noclip pendant un court instant",
"oneshot": "One-Shot",
"oneshot_desc": "Toucher un ennemi le tue instantanément",
"onlyhead": "Tête Seulement",
"onlyhead_desc": "Vous ne subissez des dégâts qu’à la tête",
"paweljumper": "Pawel Sauteur",
"paweljumper_desc": "Vous obtenez un nombre aléatoire de sauts supplémentaires",
"paweljumper_desc2": "Vous obtenez {0} sauts supplémentaires",
"phoenix": "Phénix",
"phoenix_desc": "Vous avez une chance aléatoire de réapparaître après la mort",
"phoenix_desc2": "Votre chance de réapparaître après la mort est : {0}%",
"phoenix_respawn": "Vous avez ressuscité de vos cendres grâce au pouvoir du : CHATCOLORS.REDPhénix",
"psychicdefusing": "Désamorçage Psychique",
"psychicdefusing_desc": "Quand vous êtes près de la bombe, vous commencez à la désamorcer",
"psychicdefusing_hud_info": "{0} secondes restantes pour désamorcer",
"pilot": "Pilote",
"pilot_desc": "Volez pendant un temps limité. Maintenez [UTILISER - E] pour voler",
"pilot_hud_info": "Carburant",
"planter": "Poseur Libre",
"planter_desc": "Vous pouvez planter la bombe n’importe où, avec un temps de détonation de 60 secondes.",
"poison": "Poison",
"poison_desc": "Choisissez un joueur qui subira des dégâts toutes les quelques secondes",
"poison_enemy_info": "Vous avez été empoisonné.",
"poison_player_info": "Le joueur « {0} » a été empoisonné.",
"poison_select_info": "Empoisonner un joueur :",
"primaryban": "Sans Fusils",
"primaryban_desc": "Choisissez un joueur qui ne pourra plus utiliser de fusils",
"primaryban_enemy_info": "Vous ne pouvez plus utiliser de fusils.",
"primaryban_player_info": "Le joueur « {0} » ne peut plus utiliser de fusils.",
"primaryban_select_info": "Interdire les fusils pour un joueur :",
"prosthesis": "Prothèses",
"prosthesis_desc": "Les bras et les jambes sont pare-balles",
"push": "Pousseur",
"push_desc": "Vous avez une chance aléatoire de repousser un ennemi en le touchant",
"push_desc2": "Votre chance de repousser l’ennemi est : {0}%",
"pyro": "Pyro",
"pyro_desc": "Un cocktail Molotov vous rend de la vie",
"quickshot": "Tir Rapide",
"quickshot_desc": "Toutes les balles sont tirées très rapidement",
"radarhack": "Radar Hack",
"radarhack_desc": "Les ennemis sont visibles sur le radar",
"rambo": "Rambo",
"rambo_desc": "Vous recevez une quantité aléatoire de PV au début du round",
"randomweapon": "Arme Aléatoire",
"randomweapon_desc": "Appuyez sur [css_useSkill] pour recevoir une arme aléatoire",
"rezombie": "Re-Zombie",
"rezombie_desc": "Après la mort, vous réapparaissez en zombie avec plus de PV et sans armes",
"reactivearmor": "Armure Réactive",
"reactivearmor_desc": "L’armure absorbe les premiers dégâts reçus",
"regeneration": "Régénération",
"regeneration_desc": "Vous regagnez des PV toutes les quelques secondes",
"replicator": "Réplicateur",
"replicator_desc": "Appuyez sur [css_useSkill] pour créer une réplique qui inflige des dégâts en touchant",
"retreat": "Retraite",
"retreat_desc": "Appuyez sur [css_useSkill] pour retourner au spawn",
"returntosender": "Retour à l’Expéditeur",
"returntosender_desc": "Le premier coup porté à un ennemi le renvoie à son spawn",
"richboy": "Gosse de Riche",
"richboy_desc": "Vous recevez une somme d’argent aléatoire au début du round",
"robinhood": "Robin des Bois",
"robinhood_desc": "Infliger des dégâts à un ennemi lui vole de l’argent",
"rubber": "Balles en Caoutchouc",
"rubber_desc": "Vos balles ralentissent fortement les joueurs",
"saper": "Sapeur",
"saper_desc": "Vous pouvez poser et désamorcer les bombes plus rapidement",
"secondlife": "Seconde Chance",
"secondlife_desc": "Après la mort, vous réapparaissez avec le même nombre de PV",
"shade": "Ombre",
"shade_desc": "Vous vous téléportez derrière l’ennemi touché",
"shade_nospace": "Aucun espace disponible",
"shortbomb": "Mèche Courte",
"shortbomb_desc": "La bombe explose beaucoup plus vite",
"silent": "Silencieux",
"silent_desc": "Vos pas et vos sauts sont silencieux pour les AUTRES joueurs",
"sniperelite": "Sniper d’Élite",
"sniperelite_desc": "Appuyez sur [css_useSkill] pour échanger votre arme actuelle contre un AWP",
"soldier": "Soldat",
"soldier_desc": "Vous avez un multiplicateur de dégâts aléatoire",
"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",
"spectator": "Spectateur",
"spectator_desc": "Appuyez sur [css_useSkill] pour observer un ennemi aléatoire",
"swapposition": "Échange de Position",
"swapposition_desc": "Appuyez sur [css_useSkill] pour échanger de place avec un ennemi aléatoire",
"teleporter": "Téléporteur",
"teleporter_desc": "Vous échangez de place avec l’ennemi touché",
"thief": "Voleur",
"thief_desc": "Vous pouvez voler la compétence d’un joueur choisi",
"thief_enemy_info": "Votre compétence a été volée.",
"thief_player_info": "La compétence du joueur « {0} » a été volée.",
"thief_select_info": "Voler la compétence d’un joueur :",
"thief_incorrect_skill": "Cette compétence ne peut pas être sélectionnée !",
"thirdeye": "Troisième Œil",
"thirdeye_desc": "Appuyez sur [css_useSkill] pour activer la vue à la troisième personne",
"thorns": "Épines",
"thorns_desc": "Votre adversaire recevra une partie des dégâts qu’il vous a infligés",
"toxicsmoke": "Fumée Toxique",
"toxicsmoke_desc": "Vos grenades fumigènes infligent des dégâts",
"wallhack": "Wallhack",
"wallhack_desc": "Vous pouvez voir les ennemis à travers les murs",
"watchmaker": "Horloger",
"watchmaker_desc": "Chaque lancer de grenade modifie le temps du round",
"watchmaker_ct": "Temps du round réduit de {0} secondes.",
"watchmaker_tt": "Temps du round prolongé de {0} secondes.",
"weaponsswap": "Échange d’Armes",
"weaponsswap_desc": "Appuyez sur [css_useSkill] pour échanger vos armes avec un ennemi aléatoire",
"weaponsswap_hud_info2": "Vous n’avez aucune arme à échanger",
"zeus": "Zeus",
"zeus_desc": "Le Zeus x27 se recharge instantanément",
"your_skill": "Votre compétence",
"enemy_skill": "Compétence de l’ennemi",
"observer_skill": "Compétence du joueur",
"welcome_message": "Bienvenue {PLAYER} sur {SERVER_NAME}!\nVersion actuelle de jRandomSkills : {VERSION} ({SKILLS_COUNT} compétences).\n\nCréé à l’origine par :\n{AUTHOR1}\nModifié et amélioré par :\n{AUTHOR2}\nDiscord officiel : https://discord.gg/9H8EZYBpPF",
"drawing_skill": "Attribution d’une compétence",
"disabled_weapon": "Vous ne pouvez pas utiliser cette arme",
"hud_info": "Attendez encore {0} secondes",
"hud_info_no_enemy": "Aucun ennemi trouvé",
"active_hud_info": "Actif encore {0} millisecondes",
"skills_menu": "Liste des compétences",
"no_player": "Aucun joueur correspondant trouvé.",
"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.",
"skill_not_found_setskill": "Aucune CHATCOLORS.REDcompétence trouvée",
"player_not_found_setskill": "Aucun CHATCOLORS.REDjoueur trouvé",
"correct_form_setskill": "Utilisation correcte : CHATCOLORS.RED!setskill <pseudo> <compétence>",
"correct_form_setscore": "Utilisation correcte : CHATCOLORS.RED!setscore <CT> <TT>",
"done_setskill": "Compétence définie",
"error_setskill": "Impossible de définir la CHATCOLORS.REDcompétence",
"for_setskill": "pour",
"invalid_map": "Nom de la carte mal saisi !",
"loading_map": "Chargement d’une nouvelle carte",
"pause": "Le match a été mis en pause.",
"unpause": "Le match a repris.",
"healed": "Vous avez été soigné.",
"game_start": "La partie a commencé !",
"reload": "Les langues et configurations ont été rechargées.",
"vote_started": "Vote lancé : « {0} »",
"vote_timeout": "Le vote « {0} » a expiré !",
"vote_wait": "Vous devez attendre avant de lancer un autre vote !",
"vote_same_wait": "Vous devez attendre avant de relancer le même vote !",
"vote_not_enough_players": "Pas assez de joueurs pour lancer un vote !",
"vote_alredy_voted": "Vous avez déjà voté !",
"vote_vote": "Vote",
"bombsite_a": "Site de bombe A",
"bombsite_b": "Site de bombe B",
"teammate_skills": "Compétences de vos coéquipiers",
"summary_start": "======RÉSUMÉ=DU=DERNIER=ROUND======",
"summary_end": "===================================",
"menu_controlls": "<font class='fontSize-m' color='cyan'>W/S - Défilement</font> <font class='fontSize-m' color='white'> | </font> <font class='fontSize-m' color='green'>E - Sélectionner</font> <br>"
}

View file

@ -23,6 +23,13 @@ jRandomSkills to plugin do CounterStrike 2, który wprowadza chaos i frajdę do
<img width="50px" src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Flag_of_the_United_Kingdom_%281-2%29.svg/1920px-Flag_of_the_United_Kingdom_%281-2%29.svg.png"> <img width="50px" src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Flag_of_the_United_Kingdom_%281-2%29.svg/1920px-Flag_of_the_United_Kingdom_%281-2%29.svg.png">
</a> </a>
## 💬 Dostępne języki
- **Angielski**
- **Polski**
- **Francuski** [autorstwa: felyjyn]
- **Portugalski (Brazylijski)** [GrokAI / ChatGPT]
- **Chiński uproszczony** [GrokAI / ChatGPT]
## 🖼️ Prezentacja Pluginu ## 🖼️ Prezentacja Pluginu
![Preview](./preview.gif) ![Preview](./preview.gif)
![Preview2](./preview2.gif) ![Preview2](./preview2.gif)
@ -283,6 +290,16 @@ Plugin korzysta z zawartości następujących projektów:
## 📋 Lista Zmian ## 📋 Lista Zmian
<details>
<summary><b>v1.1.6</b></summary>
- #### Ogólne:
- ###### Dodano język francuski (autorstwa @felyjyn).
- #### Poprawki mocy:
- ##### Doskok:
- ###### Dodano możliwość wykonywania doskoku w dowolnym kierunku.
</details>
<details> <details>
<summary><b>v1.1.5</b></summary> <summary><b>v1.1.5</b></summary>

View file

@ -23,6 +23,13 @@ jRandomSkills is a plugin for CounterStrike 2 that brings chaos and fun to gamep
<img width="50px" src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Flag_of_the_United_Kingdom_%281-2%29.svg/1920px-Flag_of_the_United_Kingdom_%281-2%29.svg.png"> <img width="50px" src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Flag_of_the_United_Kingdom_%281-2%29.svg/1920px-Flag_of_the_United_Kingdom_%281-2%29.svg.png">
</a> </a>
## 💬 Available languages
- **English**
- **Polish**
- **French** [by: felyjyn]
- **Portuguese (Brazilian)** [GrokAI / ChatGPT]
- **Simplified Chinese** [GrokAI / ChatGPT]
## 🖼️ Preview ## 🖼️ Preview
![Preview](./preview.gif) ![Preview](./preview.gif)
![Preview2](./preview2.gif) ![Preview2](./preview2.gif)
@ -285,6 +292,16 @@ This plugin uses content from the following projects:
## 📋 Changelog ## 📋 Changelog
<details>
<summary><b>v1.1.6</b></summary>
- #### General:
- ###### Added French language (by @felyjyn).
- #### Skill improvements:
- ##### Dash:
- ###### Added the ability to dash in any direction.
</details>
<details> <details>
<summary><b>v1.1.5</b></summary> <summary><b>v1.1.5</b></summary>