From eddc03a0292f4a6a4290b37834bc8ea03788a3cc Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Sun, 1 Nov 2020 15:05:45 +0800 Subject: [PATCH] =?UTF-8?q?Fran=C3=A7ais=20&=20Espa=C3=B1ol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LANG/lang_en.lua | 28 +- LANG/lang_fr.lua | 622 ++++++++++++++++++++++++++++++++++++++ LANG/lang_sp.lua | 621 +++++++++++++++++++++++++++++++++++++ LANG/lang_symbol.lua | 153 +--------- LANG/lang_yygq.lua | 56 +--- LANG/lang_zh.lua | 20 +- LANG/lang_zh2.lua | 381 +---------------------- Zframework/languages.lua | 23 +- Zframework/widgetList.lua | 12 +- parts/scenes/staff.lua | 2 +- parts/scenes/stat.lua | 11 +- 11 files changed, 1316 insertions(+), 613 deletions(-) create mode 100644 LANG/lang_fr.lua create mode 100644 LANG/lang_sp.lua diff --git a/LANG/lang_en.lua b/LANG/lang_en.lua index 6963e8e0..f20ea084 100644 --- a/LANG/lang_en.lua +++ b/LANG/lang_en.lua @@ -9,12 +9,11 @@ return{ atkModeName={"Random","Badges","K.O.s","Attackers"}, royale_remain="$1 Players Remaining", cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!!","15 Combo!!","16 Combo!!","17 Combo!!!","18 Combo!!!","19 Combo!!!","MEGACMB"}, - block=nil,spin="-Spin ", + spin="-Spin ", clear={"Single","Double","Triple","Techrash","Techrash+"}, mini="Mini",b2b="B2B ",b3b="B2B2B ", PC="Perfect Clear",HPC="Clear", hold="HOLD",next="NEXT", - replaying="[Replay]", stage="Stage $1", great="Great!", @@ -33,7 +32,6 @@ return{ finesse_ap="All Perfect", finesse_fc="Full Combo", - snapLevelName={"Free pos","Snap-10","Snap-20","Snap-40","Snap-60","Snap-80"}, page="Page:", ai_fixed="The AI is incompatible with fixed sequences.", @@ -61,11 +59,12 @@ return{ noScore="No Scores Yet", highScore="Personal Bests", newRecord="New Record!", + getNoticeFail="Couldn't get announcements", getVersionFail="Unable to detect a new version", versionIsNew="You are now on the latest version.", versionIsOld="Version $1 is available now!", - registerSuccessed="Registered!", + registerSuccessed="Registration successed!", registerFailed="Registration failed", netErrorCode="Network error code", jsonError="Json error", @@ -104,8 +103,6 @@ return{ "DPM", }, stat={ - spin="spins 0-3", - clear="clears 1-4", "Times Launched:", "Play Count:", "Play Time:", @@ -133,12 +130,13 @@ return{ "Author: MrZ E-mail: 1046101471@qq.com", "Powered by LOVE2D", "", - "Program: MrZ, FinnTenzor", - "Art: MrZ, (T0722, Gnyar)", - "Music: MrZ, (T0722)", - "Voice & Sound: MrZ, Miya", - "Performance: 模电, HBM Test: 思竣", - "Eng Doc: User670 Web: 渣渣120", + "Program: MrZ, [T9972, FinnTenzor, 蓝绿]", + "Art: MrZ, [T0722, Gnyar]", + "Music: MrZ, [T0722]", + "Voice & Sound: MrZ, Miya Performance: 模电, HBM", + "Test: 思竣 Net: 渣渣120", + "English: User670, MattMayuga", + "French: Mizu Spanish: Mr.Faq", "", "Special Thanks:", "Flyz, Farter, 蕴空之灵,", @@ -525,8 +523,8 @@ return{ }, debug={ copyLog="Copy Log", - scrInfo="Show Screen Info", - reset="Are you sure you want to reset?", + scrInfo="Screen Info", + reset="RESET?", reset1="Reset ranks", reset2="Reset data", reset3="Reset all", @@ -618,7 +616,7 @@ return{ ["sprintPenta"]= {"Sprint", "PENTOMINO", "Clear 40 lines with 18 pentominoes."}, ["sprintMPH"]= {"Sprint", "MPH", "Memoriyless\nPreviewless\nHoldless"}, }, - getTip={ + getTip={noMerge=true, 'Free block game with Battle Royale mode!', 'Have you noticed what "rotating" does do to the block?', ":pog:", diff --git a/LANG/lang_fr.lua b/LANG/lang_fr.lua new file mode 100644 index 00000000..82536c93 --- /dev/null +++ b/LANG/lang_fr.lua @@ -0,0 +1,622 @@ +return{ + fallback=3, + back="Retour", + anykey="Appuyez sur n'importe quelle touche", + newVersion="Merci d'avoir mis le jeu à jour ! Les nouvelles fonctionnalités sont listées ci-dessous.", + httpTimeout="La connexion au réseau ne s'est pas faite à temps.", + marking="Créateur du jeu: MrZ_26\nSi vous pouvez voir ceci, cet enregistrement est illégal\nToute explication est fausse et invalide.", + holdR="Hold to restart", + + atkModeName={"Aléatoire","Badges","K.O.s faciles","Attaquants"}, + royale_remain="$1 Joueurs restants", + cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!!","15 Combo!!","16 Combo!!","17 Combo!!!","18 Combo!!!","19 Combo!!!","MEGACMB"}, + spin="-Spin ", + clear={"Simple","Double","Triple","Techrash","Techrash+"}, + mini="Mini",b2b="B2B ",b3b="B2B2B ", + PC="Perfect Clear",HPC="Clear", + hold="RESERVE",next="SUIVANT", + replaying="[Replay]", + + stage="Etape $1", + great="Bien !", + awesome="Génial !", + almost="Presque !", + continue="Continuez !", + maxspeed="Vitesse maximale !", + speedup="Speed up !", + missionFailed="Mission échouée", + + win="Gagné !", + finish="Terminé", + gameover="Fin du jeu", + pause="Pause", + pauseCount="Pauses", + finesse_ap="Parfait", + finesse_fc="Combo Entier", + + page="Page:", + + ai_fixed="L'IA est incompatible avec les séquences fixes.", + ai_prebag="L'IA est incompatible avec les séquences personnalisées.", + ai_mission="L'IA est incompatible avec les missions personnalisées.", + settingSaved="Paramètres sauvegardés", + settingSavingError="Erreur de sauvegarde des paramètres :", + keyMapSaved="Touches sauvegardées.", + keyMapSavingError="Erreur de sauvegarde des touches :", + VKSaved="Touches virtuelles sauvegardées", + VKSavingError="Erreur de sauvegarde des touches virtuelles :", + statSavingError="Erreur de sauvegarde des statistiques :", + unlockSavingError="Erreur de sauvegarde du contenu débloqué :", + recSavingError="Erreur de sauvegarde des records :", + switchSpawnSFX="Activez les effets sonores d'apparition des pièces pour jouer", + getRank="Rang: ", + + needRestart="Fonctionnera dès la prochaine partie", + copySuccess="Copié avec succès", + pasteSuccess="Collé avec succès", + dataCorrupted="Données corrompues", + VKTchW="Poids du toucher", + VKOrgW="Pois d'origine", + VKCurW="Pois de la pos. du cur.", + noScore="Aucun score", + highScore="Records personnels", + newRecord="Nouveau record !", + getNoticeFail="Echec de l'obtention de la notice", + getVersionFail="Echec d'obtention de la dernière version", + versionIsNew="Vous êtes sur la dernière version", + versionIsOld="La version $1 est disponible !", + registerSuccessed="Enregistré avec succès !", + registerFailed="Erreur d'enregistrement", + netErrorCode="Code d'erreur réseau", + noUsername="Entrez votre nom d'utilisateur", + noPassword="Entrez votre mot de passe", + diffPassword="Les mots de passe ne se correspondent pas", + errorMsg="Une erreur est survenue et Techmino doit redémarrer.\nDes informations concernant l'erreur ont été créées, et vous pouvez les envoyer au créateur.", + + acts={ + "Déplacement vers la gauche :","Déplacement vers la droite :", + "Rotation vers la droite:","Rotation vers la gauche :","180° :", + "Chute instantanée :","Chute rapide :","Réserve :","Fonction :","Réessayer:", + "Déplacement instantané vers la gauche :","Déplacement instantané vers la droite : ","Chute sonique :","Descendre de 1 :","Descendre de 4 :","Descendre de 10 :", + "Chute à gauche :","Chute à droite :","Zangi gauche :","Zangi droite :", + }, + load={[0]="Terminé","Chargement de la voix","Chargement de la musique","Chargement des effets sonores","Chargement des images","Chargement des polices","chargement des modes","Loading other things"}, + pauseStat={ + "Temps :", + "Touche/Rot./Réserve :", + "Pièce :", + "Lignes/Creuser :", + "Attaque/Attaque de creusage :", + "Reçu :", + "Nettoyages :", + "Spins :", + "B2B/B3B/PC/HPC : ", + "Finesse :", + }, + radar={"DEF","OFF","ATQ","ENVOYER","SPD","DIG"}, + radarData={ + "D'PM", + "ADPM", + "APM", + "SPM", + "L'PM", + "DPM", + }, + stat={ + "Nombre de fois lancé :", + "Nombre de parties :", + "Temps de jeu :", + "Touche/Rot./Réserve :", + "Bloc/Ligne/Atq. :", + "Reçu/Res./Asc. :", + "Attaque/Attaque de creusage :", + "Eff./Eff. de creusage :", + "B2B/B3B :", + "PC/HPC :", + "Errs. Finesse/Finesse :", + }, + help={ + "Vous pouvez jouer à ceci, vous n'avez probablement pas besoin d'\"aide\"?", + "Ceci est un simple jeu de blocs.", + "On y joue comme sur TO/C2/KOS/TGM3 et autres.", + "", + "Vous pouvez envoyer des rapports de bogues ou des suggastions via le groupe de test ou l'email du créateur ~", + "Ce jeu est gratuit et est uniquement disponible via discord.gg/f9pUvkh", + "Ne téléchargez pas ce jeu depuis une autre source au risque d'avoir des virus,", + "et vous n'avez besoin que des permissions de vibration et de communication réseau pour les versions mobiles !", + "Le créateur n'est pas responsable pour n'importe quel type de perte de données suite à une modification du jeu.", + }, + staff={ + "Author: MrZ E-mail: 1046101471@qq.com", + "Powered by LOVE2D", + "", + "Programme : MrZ, [T9972, FinnTenzor, 蓝绿]", + "Art : MrZ, [T0722, Gnyar]", + "Musiqie : MrZ, [T0722]", + "Voix & Sons: MrZ, Miya Performance: 模电, HBM", + "Test: 思竣 Web: 渣渣120", + "Anglais: User670, MattMayuga", + "Français :Mizu Espagnol: Mr.Faq", + "", + "Merci à:", + "Flyz, Farter, 蕴空之灵,", + "Teatube, [All test staff]", + }, + used=[[ + Outils utilisés: + Beepbox + GFIE + Goldwave + Libs utilisées: + Cold_Clear [MinusKelvin] + json.lua [rxi] + profile.lua [itraykov] + simple-love-lights [dylhunn] + ]], + support="Aider le créateur", + group="Groupe QQ officiel (si non piraté) : 1127702001", + WidgetText={ + main={ + play="Jouer", + custom="Mode perso.", + qplay="Partie rapide", + stat="Statistiques", + help="Aide", + setting="Paramètres", + lang="言/A", + music="Salon musical", + account="Compte", + sound="Salon SE", + minigame="Minijeux", + quit="Quitter", + }, + mode={ + start="Démarrer", + }, + play={ + pause="Pause", + }, + pause={ + setting="Paramètres (S)", + replay="Replay (P)", + resume="Continuer (esc)", + restart="Réessayer (R)", + quit="Quitter (Q)", + }, + setting_game={ + title="Paramètres du jeu", + + graphic="←Vidéo", + sound="Son→", + + ctrl="Paramètres de contrôle", + key="Touches", + touch="Boutons virtuels", + reTime="Délai de démarrage", + maxNext="Nombre de prévisualisations de pièces", + layout="Skin, orientations, etc.", + autoPause="Mettre en pause en cas de perte de focus", + swap="Combinaison de touches (changer le mode d'attaque)", + fine="Son d'erreur de Finesse", + appLock="Verrouillage d'appli (MDP : 626)", + calc="Verrouillage d'appli", + }, + setting_video={ + title="Paramètres vidéo", + + sound="←Son", + game="Jeu→", + + block="Dessiner le bloc", + ghost="Pièce fantôme", + center="Centre", + + smooth="Chute fluide", + grid="Grille", + bagLine="Ligne du Sac", + + lockFX="Effets de verrouillage", + dropFX="Effets de chute", + moveFX="Effets de déplacement", + clearFX="Effets de nettoyage", + shakeFX="Tremblements de l'écran", + atkFX="Effets d'attaque", + frame="Montrer les FPS", + + text="Texte d'action", + score="Pop-up de score", + warn="Alerte de danger", + highCam="Vue d'oiseau", + nextPos="Prévisualisation de position", + fullscreen="Plein écran", + bg="Arrière-plan", + power="Infos d'alimentation", + }, + setting_sound={ + title="Paramètres du son", + + game="←Jeu", + graphic="Vidéo→", + + sfx="Sons", + stereo="Stéréo", + spawn="Apparition", + bgm="Musique", + vib="Vibration", + voc="Voix", + }, + setting_control={ + title="Paramètres de contrôle", + preview="Aperçu", + + das="DAS",arr="ARR", + sddas="DAS de chute rapide",sdarr="ARR de chute rapide", + ihs="Réserve Initiale", + irs="Rotation Initiale", + ims="Mouvement Initial", + reset="Réinitialisation", + }, + setting_key={ + keyboard="Clavier", + joystick="Manette", + help="Flèches directionelles : Sélectionner/changer paramètre, Enter/Space : Modifier, Echap : Retour", + }, + setting_skin={ + title="Skin, orientations, etc.", + + prev="←",next="→", + prev1="↑",next1="↓",spin1="R", + prev2="↑",next2="↓",spin2="R", + prev3="↑",next3="↓",spin3="R", + prev4="↑",next4="↓",spin4="R", + prev5="↑",next5="↓",spin5="R", + prev6="↑",next6="↓",spin6="R", + prev7="↑",next7="↓",spin7="R", + skinR="Réinit. Couleur", + faceR="Réinit. Orient.", + }, + setting_touch={ + default="Par défaut", + snap="Snap", + option="Options", + size="Taille", + }, + setting_touchSwitch={ + b1= "Déplacement vers la gauche :",b2="Déplacement vers la droite:", + b3="Rotation vers la droite :", b4="Rotation vers la gauche :", + b5= "180° :",b6="Chute instantanée :",b7="Chute rapide :",b8="Réserve :", + b9= "Fonction :",b10="Redémarrer :", + b11="Déplacement instantané vers la gauche :",b12="Déplacement instantané vers la droite :", + b13="Chute sonique :",b14="Descendre de 1 :",b15="Descendre de 4 :",b16="Descendre de 10:", + b17="Chute à gauche :",b18="Chute à droite :",b19="Zangi Gauche :",b20="Zangi Droite :", + norm="Normal", + pro="Professionel", + hide="Montrer les touches virtuelles", + track="Auto Track", + sfx="Sons", + vib="Vib.", + icon="Icône", + tkset="Paramètres des tracks", + alpha="Alpha", + }, + setting_trackSetting={ + VKDodge="Auto-esquive", + }, + customGame={ + title="Mode personnalisé", + subTitle="Basique", + defSeq="Séquence par défaut", + noMsn="Pas de mission", + + drop="Délai de chute", + lock="Délai de verrouillage", + wait="Délai d'apparition", + fall="Délai de ligne", + + bg="Arrière-plan", + bgm="Musique", + + copy="Copier Mtrc+Seq+Missn", + paste="Coller Mtrc+Seq+Missn", + clear="Démarrer Clear", + puzzle="Démarrer Puzzle", + + advance="Plus (A)", + field="Modifier la matrice (F)", + sequence="Modifier la séquence (S)", + mission="Modifier la mission(M)", + }, + custom_advance={ + title="Mode personnalisé", + subTitle="Avancer", + + next="Prévisualisations de pièces",hold="Réserve",oncehold="Réserver une fois", + block="Dessiner le bloc", + ghost="Pièce fantôme", + center="Centre", + bagLine="Ligne du Sac", + highCam="Vue d'oiseau", + nextPos="Prévisualisation de position", + bone="Crochets", + + mindas="DAS minimum", + minarr="ARR minimum", + minsdarr="SDARR minimum", + noTele="Pas de téléportation", + ospin="O-spin", + target="But", + visible="Visibilité", + freshLimit="Limite de réinit. du délai de verrouillage", + easyFresh="Réinit. de verrouillage normale", + fineKill="100% Finesse", + opponent="Adversaire", + life="Vie", + pushSpeed="Vitesse des lignes indésirables", + }, + custom_field={ + title="Mode personnalisé", + subTitle="Matrice", + + b12="[ ]", + any="Effacer", + space="×", + copy="Copier", + paste="Coller", + clear="Nettoyer", + pushLine="Ajouter ligne (K)", + delLine="Supprimer ligne (L)", + demo="Masquer les ×", + }, + custom_sequence={ + title="Mode personnalisée", + subTitle="Séquence", + + sequence="Séquence", + + Z="Z",S="S",J="J",L="L",T="T",O="O",I="I", + Z5="Z5",S5="S5",P="P",Q="Q",F="F",E="E",T5="T5",U="U", + V="V",W="W",X="X",J5="J5",L5="L5",R="R",Y="Y",N="N",H="H",I5="I5", + left="←", + right="→", + ten="→→", + backsp="#/<>:", "!#!X:", }, - radar={"DEF","OFF","ATK","SEND","SPD","DIG"}, - radarData={ - "D'PM", - "ADPM", - "APM", - "SPM", - "L'PM", - "DPM", - }, stat={ - spin="~0-3", - clear="□1-4", "@:", "##:", "~:", @@ -128,34 +108,6 @@ return{ "and only vibration & networking permissions are needed for mobile versions!", "The author is not responsible for any losses from modifying the game.", }, - staff={ - "Author: MrZ E-mail: 1046101471@qq.com", - "Powered by LOVE2D", - "", - "Program: MrZ, FinnTenzor", - "Art: MrZ, (T0722, Gnyar)", - "Music: MrZ, (T0722)", - "Voice & Sound: MrZ, Miya", - "Performance: 模电, HBM Test: 思竣", - "Eng Doc: User670 Web: 渣渣120", - "", - "Special Thanks:", - "Flyz, Farter, 蕴空之灵,", - "Teatube, [All test staff]", - }, - used=[[ - Tools used: - Beepbox - GFIE - Goldwave - Lib used: - Cold_Clear [MinusKelvin] - json.lua [rxi] - profile.lua [itraykov] - simple-love-lights [dylhunn] - ]], - support="Support author", - group="Official QQ Group(if not hacked):1127702001", WidgetText={ main={ play="!!!", @@ -523,104 +475,13 @@ return{ pong={ reset="R", }, - debug={ - reset="Reset?", - reset1="Reset rank", - reset2="Reset data", - reset3="Reset ALL", - }, - }, - modes={ - ["sprint_10"]= {"Sprint", "10L", "Clear 10 lines!"}, - ["sprint_20"]= {"Sprint", "20L", "Clear 20 lines!"}, - ["sprint_40"]= {"Sprint", "40L", "Clear 40 lines!"}, - ["dig_10"]= {"Dig", "10L", "Dig 10 lines"}, - ["dig_40"]= {"Dig", "40L", "Dig 40 lines"}, - ["dig_100"]= {"Dig", "100L", "Dig 100 lines"}, - ["dig_400"]= {"Dig", "400L", "Dig 400 lines"}, - ["dig_1000"]= {"Dig", "1000L", "Dig 1000 lines"}, - ["sprint_100"]= {"Sprint", "100L", "Clear 100 lines!"}, - ["sprint_400"]= {"Sprint", "400L", "Clear 400 lines!"}, - ["sprint_1000"]= {"Sprint", "1000L", "Clear 1000 lines!"}, - ["drought_normal"]= {"Drought", "100L", "No I piece!"}, - ["drought_lunatic"]= {"Drought", "100L", "WTF"}, - ["marathon_normal"]= {"Marathon", "NORMAL", "200-line marathon with accelerating speed."}, - ["marathon_hard"]= {"Marathon", "HARD", "200-line high-speed marathon."}, - ["marathon_ultimate"]= {"Marathon", "Ultimate", "Regular singles without combo only"}, - ["solo_1"]= {"Battle", "EASY", "Defeat the AI!"}, - ["solo_2"]= {"Battle", "NORMAL", "Defeat the AI!"}, - ["solo_3"]= {"Battle", "HARD", "Defeat the AI!"}, - ["solo_4"]= {"Battle", "LUNATIC", "Defeat the AI!"}, - ["solo_5"]= {"Battle", "ULTIMATE", "Defeat the AI!"}, - ["techmino49_easy"]= {"Tech 49", "EASY", "49-player battle.\nThe last one standing wins."}, - ["techmino49_hard"]= {"Tech 49", "HARD", "49-player battle.\nThe last one standing wins."}, - ["techmino49_ultimate"]={"Tech 49", "ULTIMATE", "49-player battle.\nThe last one standing wins."}, - ["techmino99_easy"]= {"Tech 99", "EASY", "99-player battle.\nThe last one standing wins."}, - ["techmino99_hard"]= {"Tech 99", "HARD", "99-player battle.\nThe last one standing wins."}, - ["techmino99_ultimate"]={"Tech 99", "ULTIMATE", "99-player battle.\nThe last one standing wins."}, - ["round_1"]= {"Turn-Based", "EASY", "Chess mode"}, - ["round_2"]= {"Turn-Based", "NORMAL", "Chess mode"}, - ["round_3"]= {"Turn-Based", "HARD", "Chess mode"}, - ["round_4"]= {"Turn-Based", "LUNATIC", "Chess mode"}, - ["round_5"]= {"Turn-Based", "ULTIMATE", "Chess mode"}, - ["master_beginner"]= {"Master", "LUNATIC", "For 20G beginners."}, - ["master_advance"]= {"Master", "ULTIMATE", "Professional 20G challenge!"}, - ["master_final"]= {"Master", "FINAL", "20G: Unreachable end point!"}, - ["master_phantasm"]= {"Master", "PHANTASM", "20G: ???"}, - ["GM"]= {"GrandMaster", "GM", "To be Grand Master"}, - ["blind_easy"]= {"Blind", "HALF", "For novice players."}, - ["blind_normal"]= {"Blind", "ALL", "For intermediate players."}, - ["blind_hard"]= {"Blind", "SUDDEN", "For experienced players."}, - ["blind_lunatic"]= {"Blind", "SUDDEN+", "For professionals."}, - ["blind_ultimate"]= {"Blind", "?", "R U Ready?"}, - ["blind_wtf"]= {"Blind", "WTF", "i m not ready"}, - ["classic_fast"]= {"Classic", "CTWC", "High-speed classic mode."}, - ["survivor_easy"]= {"Survivor", "EASY", "How long can you survive?"}, - ["survivor_normal"]= {"Survivor", "NORMAL", "How long can you survive?"}, - ["survivor_hard"]= {"Survivor", "HARD", "How long can you survive?"}, - ["survivor_lunatic"]= {"Survivor", "LUNATIC", "How long can you survive?"}, - ["survivor_ultimate"]= {"Survivor", "ULTIMATE", "How long can you survive?"}, - ["attacker_hard"]= {"Attacker", "HARD", "Offensive practice!"}, - ["attacker_ultimate"]= {"Attacker", "ULTIMATE", "Offensive practice!"}, - ["defender_normal"]= {"Defender", "NORMAL", "Defensive practice!"}, - ["defender_lunatic"]= {"Defender", "LUNATIC", "Defensive practice!"}, - ["dig_hard"]= {"Driller", "HARD", "Digging practice!"}, - ["dig_ultimate"]= {"Driller", "ULTIMATE", "Digging practice!"}, - ["bigbang"]= {"Big Bang", "EASY", "All-spin tutorial!\n[Under construction]"}, - ["c4wtrain_normal"]= {"C4W Training", "NORMAL", "Infinite combos."}, - ["c4wtrain_lunatic"]= {"C4W Training", "LUNATIC", "Infinite combos."}, - ["pctrain_normal"]= {"PC Training", "NORMAL", "Simple Perfect Clear mode."}, - ["pctrain_lunatic"]= {"PC Training", "LUNATIC", "Simple Perfect Clear mode."}, - ["pcchallenge_normal"]= {"PC Challenge", "NORMAL", "Get PCs within 100 lines!"}, - ["pcchallenge_hard"]= {"PC Challenge", "HARD", "Get PCs within 100 lines!"}, - ["pcchallenge_lunatic"]={"PC Challenge", "LUNATIC", "Get PCs within 100 lines!"}, - ["tech_normal"]= {"Tech", "NORMAL", "Keep the B2B chain!"}, - ["tech_normal2"]= {"Tech", "NORMAL+", "Spin & PC only"}, - ["tech_hard"]= {"Tech", "HARD", "Keep the B2B chain!"}, - ["tech_hard2"]= {"Tech", "HARD+", "Spin & PC only"}, - ["tech_lunatic"]= {"Tech", "LUNATIC", "Keep the B2B chain!"}, - ["tech_lunatic2"]= {"Tech", "LUNATIC+", "Spin & PC only"}, - ["tech_finesse"]= {"Tech", "FINESSE", "No finesse faults!"}, - ["tech_finesse2"]= {"Tech", "FINESSE+", "No normal clears, no finesse faults!"}, - ["tsd_easy"]= {"TSD Challenge", "EASY", "T-spin-doubles only!"}, - ["tsd_hard"]= {"TSD Challenge", "HARD", "T-spin-doubles only!"}, - ["tsd_ultimate"]= {"TSD Challenge", "ULTIMATE", "T-spin-doubles only!"}, - ["zen"]= {"Zen", "200", "200 lines without a time limit."}, - ["ultra"]= {"Ultra", "EXTRA", "Get the highest score within 2 min."}, - ["infinite"]= {"Infinite", "", "Sandbox mode."}, - ["infinite_dig"]= {"Infinite: Dig", "", "Dig, dig, dig."}, - ["custom_clear"]= {"Custom", "NORMAL", "Draw something then clear it!!"}, - ["custom_puzzle"]= {"Custom", "PUZZLE", "Draw something then stack it!!"}, - ["sprintFix"]= {"Sprint", "NO LEFT/RIGHT","It's possible."}, - ["sprintLock"]= {"Sprint", "NO ROTATIONS", "It's impossible."}, - ["sprintPenta"]= {"Sprint", "PENTOMINO", "Clear 40 lines with 18 pentominoes."}, - ["sprintMPH"]= {"Sprint", "MPH", "Memoriyless\nPreviewless\nHoldless"}, }, getTip=function() - local L={'!','@','#','$','%','^','&','*','(',')','-','=','_','+','[',']','{','}','\\','|',';',':','\'','"',',','<','.','>','/','?'} + local L="!@#$%^&*()-=_+[]{}\\|;:\'\",<.>/?" local s="" for _=1,math.random(16,26)do - s=s..L[math.random(#L)] + local p=math.random(#L) + s=s..L:sub(p,p) end return s end, diff --git a/LANG/lang_yygq.lua b/LANG/lang_yygq.lua index 9c9c239a..205cb74a 100644 --- a/LANG/lang_yygq.lua +++ b/LANG/lang_yygq.lua @@ -4,10 +4,9 @@ return{ httpTimeout="没网或者网不好?", holdR="长按重开", - atkModeName={"随机","徽章","击杀","反击"}, royale_remain="剩 $1 人", cmb={nil,"1连","2连","3连","4连","5连","6连","7连","8连","9连","10连!","11连!","12连!","13连!","14连!","15连!","16连!","17连!","18连!","19连!","MEGACMB"}, - block=nil,spin="旋", + spin="旋", clear={"消一","消二","消三","消四","卧槽"}, mini="矬",b2b="牛逼",b3b="很牛逼", PC="消干净了",HPC="消挺干净", @@ -26,15 +25,13 @@ return{ finesse_ap="您", finesse_fc="全连", - snapLevelName={"无吸附","10px吸附","20px吸附","40px吸附","60px吸附","80px吸附"}, - - ranks={"菜","可","好","强","您"}, - noUsername="账号填不来?", wrongEmail="邮箱不会填?", noPassword="密码填不来?", diffPassword="账号密码都填不来?", + ranks={"菜","可","好","强","您"}, + acts={ "左移:","右移:", "顺时针旋转:","逆时针旋转:","180°旋转:", @@ -67,8 +64,6 @@ return{ "DPM", }, stat={ - spin="spin0~3", - clear="clear1~4", "开了几次:", "玩了几把:", "玩了多久:", @@ -81,33 +76,6 @@ return{ "消光/消半截:", "多余操作/极简率:", }, - help={ - "既然你能玩到这个游戏,应该也不需要什么帮助吧?", - "这只是一个普通的方块游戏,请勿称此游戏为某某某方块", - "从TO/C2/KOS/TGM3/JS等方块获得过灵感", - "", - "使用LOVE2D引擎", - "错误或者建议请附带截图发送到内测群或者作者邮箱~", - "仅通过内测群1127702001进行免费下载/更新", - "其他渠道获得游戏皆有被修改/加广告/植入病毒的风险,程序只申请了振动&联网权限!", - "若由于被修改的本游戏产生的各种损失作者不负责(我怎么负责啊跟我有啥关系)", - "请从正规途径获得最新版,游戏现为免费,不过有打赏当然感谢啦~", - }, - staff={ - "作者:MrZ 邮箱:1046101471@qq.com", - "使用LOVE2D引擎", - "", - "程序: MrZ, FinnTenzor", - "美术: MrZ, (T0722, Gnyar)", - "音乐: MrZ, (T0722)", - "音效/语音: MrZ, Miya", - "演出: 模电, HBM 测试: 思竣", - "英文文案: User670 官网: 渣渣120", - "", - "特别感谢:", - "Flyz, Farter, 蕴空之灵,", - "茶管, [所有内测人员]", - }, WidgetText={ main={ play="开始", @@ -452,11 +420,6 @@ return{ b3b="很牛逼", pc="消干净了", }, - minigame={ - p15="15 Puzzle", - schulte_G="舒尔特方格", - pong="Pong", - }, p15={ reset="打乱", color="彩", @@ -472,17 +435,6 @@ return{ disappear="消失", tapFX="动画", }, - pong={ - reset="重置", - }, - debug={ - copyLog="复制日志", - scrInfo="输出屏幕信息", - reset="重置?", - reset1="重置解锁/等级", - reset2="重置统计", - reset3="清空所有数据", - }, }, modes={ ["sprint_10"]= {"竞速", "10L", "消10行"}, @@ -570,7 +522,7 @@ return{ ["sprintPenta"]= {"竞速", "五连块", "离谱"}, ["sprintMPH"]= {"竞速", "纯净", "听说你反应很快?"}, }, - getTip={ + getTip={noMerge=true, "100apm?你倒是不用开局定式连续打几把", "10连pc不是随手?", "20G很难?是个人都能玩吧。", diff --git a/LANG/lang_zh.lua b/LANG/lang_zh.lua index 79924ed2..a5c88940 100644 --- a/LANG/lang_zh.lua +++ b/LANG/lang_zh.lua @@ -9,7 +9,7 @@ return{ atkModeName={"随机","徽章","击杀","反击"}, royale_remain="剩余 $1 名玩家", cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!","15 Combo!","16 Combo!","17 Combo!","18 Combo!","19 Combo!","MEGACMB"}, - block=nil,spin="-spin ", + spin="-spin ", clear={"single","double","triple","Techrash","Techrach+"}, mini="Mini",b2b="B2B ",b3b="B2B2B ", PC="Perfect Clear",HPC="Half Clear", @@ -33,7 +33,6 @@ return{ finesse_ap="All Perfect", finesse_fc="Full Combo", - snapLevelName={"无吸附","10px吸附","20px吸附","40px吸附","60px吸附","80px吸附"}, page="页面:", ai_fixed="不能同时开启AI和固定序列", @@ -107,8 +106,6 @@ return{ "DPM", }, stat={ - spin="spin0~3", - clear="clear1~4", "游戏运行次数:", "游戏局数:", "游戏时间:", @@ -137,12 +134,13 @@ return{ "作者:MrZ 邮箱:1046101471@qq.com", "使用LOVE2D引擎", "", - "程序: MrZ, FinnTenzor", - "美术: MrZ, (T0722, Gnyar)", - "音乐: MrZ, (T0722)", - "音效/语音: MrZ, Miya", - "演出: 模电, HBM 测试: 思竣", - "英文文案: User670 官网: 渣渣120", + "程序: MrZ, [T9972, FinnTenzor, 蓝绿]", + "美术: MrZ, [T0722, Gnyar]", + "音乐: MrZ, [T0722]", + "音效/语音: MrZ, Miya 演出: 模电, HBM", + "测试: 思竣 官网: 渣渣120", + "英文: User670, MattMayuga", + "法文: Mizu 西文: Mr.Faq", "", "特别感谢:", "Flyz, Farter, 蕴空之灵,", @@ -620,7 +618,7 @@ return{ ["sprintPenta"]= {"竞速", "五连块", "伤脑筋十八块"}, ["sprintMPH"]= {"竞速", "MPH", "纯随机\n无预览\n无暂存"}, }, - getTip={ + getTip={noMerge=true, '注意到"旋转"到底对方块做了些什么吗?', "(RUR'U')R'FR2U'R'U'(RUR'F')", "↑↑↓↓←→←→BA", diff --git a/LANG/lang_zh2.lua b/LANG/lang_zh2.lua index 7e5dbea4..c937db5d 100644 --- a/LANG/lang_zh2.lua +++ b/LANG/lang_zh2.lua @@ -1,7 +1,6 @@ return{ - atkModeName={"随机","徽章","击杀","反击"}, cmb={nil,"1连击","2连击","3连击","4连击","5连击","6连击","7连击","8连击","9连击","10连击!","11连击!","12连击!","13连击!","14连击!","15连击!","16连击!","17连击!","18连击!","19连击!","巨型连击"}, - block=nil,spin="型回旋", + spin="型回旋", clear={"单清","双清","三清","四清","五清"}, mini="迷你",b2b="满贯",b3b="大满贯", PC="场地全清",HPC="场地半清", @@ -14,22 +13,11 @@ return{ finesse_ap="完美极简", finesse_fc="全连击", - snapLevelName={"无吸附","10像素吸附","20像素吸附","40像素吸附","60像素吸附","80像素吸附"}, - ai_fixed="不能同时开启电脑玩家和固定序列", ai_prebag="不能同时开启电脑玩家和自定义序列", ai_mission="不能同时开启电脑玩家和自定义任务", - ranks={"差","可","中","良","优"}, - acts={ - "左移:","右移:", - "顺时针旋转:","逆时针旋转:","180°旋转:", - "硬降:","软降:", - "暂存:","功能键:", - "重新开始:", - "左瞬移:","右瞬移:","软降到底:","软降一格:","软降四格:","软降十格:", - "落在最左:","落在最右:","列在最左:","列在最右:", - }, + ranks={"差","可","中","良","优"}, pauseStat={ "时间:", @@ -52,344 +40,25 @@ return{ "行/分", "挖/分", }, - stat={ - spin="回旋0~3", - clear="消除1~4", - "游戏运行次数:", - "游戏局数:", - "游戏时间:", - "按键/旋转/暂存:", - "方块/消行/攻击:", - "接收/抵消/上涨:", - "挖掘/挖掘攻击:", - "效率/挖掘效率:", - "满贯/大满贯:", - "全/半清:", - "多余操作/极简率:", - }, - help={ - "既然你能玩到这个游戏,应该也不需要什么帮助吧?", - "这只是一个普通的方块游戏,请勿称此游戏为某某某方块", - "从TO/C2/KOS/TGM3/JS等方块获得过灵感", - "", - "错误或者建议请附带截图发送到内测群或者作者邮箱~", - "仅通过内测群1127702001进行免费下载/更新", - "其他渠道获得游戏皆有被修改/加广告/植入病毒的风险,程序只申请了振动&联网权限!", - "若由于被修改的本游戏产生的各种损失作者不负责(我怎么负责啊跟我有啥关系)", - "请从正规途径获得最新版,游戏现为免费,不过有打赏当然感谢啦~", - }, - staff={ - "作者:MrZ 邮箱:1046101471@qq.com", - "使用LOVE2D引擎", - "", - "程序: MrZ, FinnTenzor", - "美术: MrZ, (T0722, Gnyar)", - "音乐: MrZ, (T0722)", - "音效/语音: MrZ, Miya", - "演出: 模电, HBM 测试: 思竣", - "英文文案: User670 官网: 渣渣120", - "", - "特别感谢:", - "Flyz, Farter, 蕴空之灵,", - "茶管, [所有内测人员]", - }, WidgetText={ - main={ - play="开始", - custom="自定义", - qplay="快速开始", - stat="统计信息", - help="帮助", - setting="设置", - lang="言/A", - music="音乐室", - account="账户", - sound="音效室", - minigame="小游戏", - quit="退出", - }, - mode={ - start="开始", - }, - play={ - pause="暂停", - }, - pause={ - setting="设置(S)", - replay= "回放(P)", - resume= "继续(esc)", - restart="重新开始(R)", - quit= "退出(Q)", - }, - setting_game={ - title="游戏设置", - graphic="←画面设置", - sound="声音设置→", - - ctrl="控制设置", - key="键位设置", - touch="触屏设置", - reTime="开局等待时间", - maxNext="最大预览数量", - layout="外观", - autoPause="失去焦点自动暂停", - swap="组合键切换攻击模式", - fine="极简操作提示音", - appLock="软件锁(密码626)", - calc="软件锁", - }, - setting_video={ - title="画面设置", - sound="←声音设置", - game="游戏设置→", - - block="方块可见", - ghost="阴影透明度", - center="旋转中心透明度", - - smooth="平滑下落", - grid="网格", - bagLine="包分界线", - - lockFX="锁定特效等级", - dropFX="下落特效等级", - moveFX="移动特效等级", - clearFX="消除特效等级", - shakeFX="晃动特效等级", - atkFX="攻击特效等级", - frame="绘制帧率", - - text="消行文本", - score="分数动画", - warn="死亡预警", - highCam="超屏视野", - nextPos="生成预览", - fullscreen="全屏", - bg="背景", - power="电量显示", - }, - setting_sound={ - title="声音设置", - - game="←游戏设置", - graphic="画面设置→", - - sfx="音效", - stereo="立体声", - spawn="方块生成", - bgm="音乐", - vib="振动", - voc="语音", - }, setting_control={ - title="控制设置", - preview="预览", - das="首次移动延迟",arr="移动重复延迟", sddas="首次软降延迟",sdarr="软降重复延迟", ihs="提前暂存", - irs="提前旋转", - ims="提前移动", - reset="重置", - }, - setting_key={ - keyboard="键盘", - joystick="手柄", - help="方向键选择/翻页,回车/空格修改,esc返回", }, setting_skin={ - title="外观设置", - - prev="←",next="→", - prev1="↑",next1="↓",spin1="转", - prev2="↑",next2="↓",spin2="转", - prev3="↑",next3="↓",spin3="转", - prev4="↑",next4="↓",spin4="转", - prev5="↑",next5="↓",spin5="转", - prev6="↑",next6="↓",spin6="转", - prev7="↑",next7="↓",spin7="转", - skinR="重置配色", - faceR="重置方向", - }, - setting_touch={ - default="默认组合", - snap="吸附", - option="选项", - size="大小", - }, - setting_touchSwitch={ - b1= "左移:", b2="右移:", b3="顺时针旋转:", b4="逆时针旋转:", - b5= "180°旋转:",b6="硬降:", b7="软降:", b8="暂存:", - b9= "功能键:", b10="重新开始:",b11="左瞬移:", b12="右瞬移:", - b13="软降到底:",b14="软降一格:",b15="软降四格:", b16="软降十格:", - b17="落在最左:",b18="落在最右:",b19="列在最左:", b20="列在最右:", - norm="标准", - pro="专业", - hide="显示虚拟按键", - track="按键自动跟踪", - sfx="按键音效", - vib="按键振动", - icon="图标", - tkset="跟踪设置", - alpha="透明度", - }, - setting_trackSetting={ - VKDodge="自动避让", - }, - customGame={ - title="自定义游戏", - subTitle="基本", - defSeq="默认序列", - noMsn="无任务", - - drop="下落延迟", - lock="锁定延迟", - wait="出块等待", - fall="消行延迟", - - bg="背景", - bgm="音乐", - - copy="复制场地+序列+任务", - paste="粘贴场地+序列+任务", - clear="开始-消除", - puzzle="开始-拼图", - - advance="更多设置(A)", - field="场地编辑(F)", - sequence="序列编辑(S)", - mission="任务编辑(M)", - }, - custom_advance={ - title="自定义游戏", - subTitle="高级", - - next="预览",hold="暂存",oncehold="暂存一次", - block="方块可见", - ghost="阴影透明度", - center="中心透明度", - bagLine="包分界线", - highCam="超屏视野", - nextPos="生成预览", - bone="骨块", - - mindas="最小DAS", - minarr="最小ARR", - minsdarr="最小软降ARR", - noTele="禁止瞬移", - ospin="O-spin", - target="目标行数", - visible="能见度", - freshLimit="锁延刷新限制", - easyFresh="普通刷新锁延", - fineKill="强制极简", - opponent="对手", - life="命数", - pushSpeed="上涨速度", - }, - custom_field={ - title="自定义游戏", - subTitle="场地", - - b17="[ ]", - any="不定", - space="×", - copy="复制", - paste="粘贴", - clear="清除", - pushLine="增加一行(K)", - delLine="消除行(L)", - demo="不显示×", - }, - custom_sequence={ - title="自定义游戏", - subTitle="序列", - - sequence="序列", - - Z="Z",S="S",J="J",L="L",T="T",O="O",I="I", - Z5="Z5",S5="S5",P="P",Q="Q",F="F",E="E",T5="T5",U="U", - V="V",W="W",X="X",J5="J5",L5="L5",R="R",Y="Y",N="N",H="H",I5="I5", - left="←", - right="→", - ten="→→", - backsp="1 then - langFallback(L0,L) + langFallback(langList[L.fallback or 1],L) end - --Metatable for getTip (table) + --Metatable:__call for table:getTip if type(L.getTip)=="table"then setmetatable(L.getTip,tipMeta) end diff --git a/Zframework/widgetList.lua b/Zframework/widgetList.lua index 9711b115..aa43f25b 100644 --- a/Zframework/widgetList.lua +++ b/Zframework/widgetList.lua @@ -658,11 +658,13 @@ local Widgets={ newButton({name="back", x=640, y=620,w=200,h=80,font=35,code=BACK}), }, lang={ - newButton({name="zh", x=160, y=100,w=200,h=120,font=45,code=setLang(1)}), - newButton({name="zh2", x=380, y=100,w=200,h=120,font=45,code=setLang(2)}), - newButton({name="en", x=600, y=100,w=200,h=120,font=45,code=setLang(3)}), - newButton({name="symbol", x=820, y=100,w=200,h=120,font=45,code=setLang(4)}), - newButton({name="yygq", x=1040, y=100,w=200,h=120,font=45,code=setLang(5)}), + newButton({name="zh", x=200, y=100,w=200,h=120,font=45,code=setLang(1)}), + newButton({name="zh2", x=420, y=100,w=200,h=120,font=45,code=setLang(2)}), + newButton({name="en", x=640, y=100,w=200,h=120,font=45,code=setLang(3)}), + newButton({name="fr", x=860, y=100,w=200,h=120,font=45,code=setLang(4)}), + newButton({name="sp", x=1080, y=100,w=200,h=120,font=45,code=setLang(5)}), + newButton({name="symbol", x=200, y=250,w=200,h=120,font=45,code=setLang(6)}), + newButton({name="yygq", x=420, y=250,w=200,h=120,font=45,code=setLang(7)}), newButton({name="back", x=640, y=600,w=200,h=80,font=35,code=BACK}), }, music={ diff --git a/parts/scenes/staff.lua b/parts/scenes/staff.lua index 3c5880a1..bafc67be 100644 --- a/parts/scenes/staff.lua +++ b/parts/scenes/staff.lua @@ -31,7 +31,7 @@ function Pnt.staff() setFont(40) gc.setColor(1,1,1) for i=1,#L do - mStr(L[i],640,800+80*i-t*40) + mStr(L[i],640,800+70*i-t*40) end mDraw(IMG.title_color,640,800-t*40,nil,2) mDraw(IMG.title_color,640,2160-t*40,nil,2) diff --git a/parts/scenes/stat.lua b/parts/scenes/stat.lua index dabd63e9..a232cbab 100644 --- a/parts/scenes/stat.lua +++ b/parts/scenes/stat.lua @@ -4,7 +4,7 @@ local Timer=love.timer.getTime local setFont=setFont local mStr=mStr -local int,sin=math.floor,math.sin +local abs,int,sin=math.abs,math.floor,math.sin local format=string.format function sceneInit.stat() @@ -62,8 +62,7 @@ function Pnt.stat() end gc.setColor(1,1,1) A,B=chart.X1,chart.X2 - mStr(text.stat.spin,650,45) - mStr(text.stat.clear,650,285) + for y=1,4 do mStr(A[y],650,40+40*y) mStr(B[y],650,280+40*y) @@ -86,4 +85,10 @@ function Pnt.stat() end gc.draw(IMG.title,260,615,.2+.04*sin(Timer()*3),nil,nil,206,35) + + local r=Timer()*2 + local R=int(r)%7+1 + gc.setColor(1,1,1,1-abs(r%1*2-1)) + gc.draw(TEXTURE.miniBlock[R],650,50,Timer()*10%6.2832,15,15,spinCenters[R][0][2]+.5,#blocks[R][0]-spinCenters[R][0][1]-.5) + gc.draw(TEXTURE.miniBlock[R],650,300,0,15,15,spinCenters[R][0][2]+.5,#blocks[R][0]-spinCenters[R][0][1]-.5) end \ No newline at end of file