From 526b39cb0d44c1271374ff74193cde1e121efb66 Mon Sep 17 00:00:00 2001 From: ddaodan <40017293+ddaodan@users.noreply.github.com> Date: Sat, 2 Aug 2025 14:36:43 +0800 Subject: [PATCH] js: Language (#1452) --- repo/js/Language/README.md | 17 +++++++++ repo/js/Language/main.js | 67 ++++++++++++++++++++++++++++++++++ repo/js/Language/manifest.json | 16 ++++++++ repo/js/Language/settings.json | 15 ++++++++ 4 files changed, 115 insertions(+) create mode 100644 repo/js/Language/README.md create mode 100644 repo/js/Language/main.js create mode 100644 repo/js/Language/manifest.json create mode 100644 repo/js/Language/settings.json diff --git a/repo/js/Language/README.md b/repo/js/Language/README.md new file mode 100644 index 00000000..5f936701 --- /dev/null +++ b/repo/js/Language/README.md @@ -0,0 +1,17 @@ +更改游戏语言。 +更改遊戲語言。 +Change the game language. +ゲーム言語を変更します。 +게임 언어를 변경하십시오. + +默认情况下会切换至简体中文。 +默認情況下會切換至簡體中文。 +By default, it will switch to Simplified Chinese. +デフォルトでは簡体字中国語に切り替わります。 +기본적으로 간체 중국어로 전환됩니다. + +如果需要切换至其他语言,将脚本加入调度器中,右键脚本并选择修改JS脚本自定义配置。 +如果需要切換至其他語言,將腳本加入調度器中,右鍵腳本並選擇修改JS腳本自定義配置。 +If you need to switch to another language, add the script to the scheduler, right-click the script, and select "Modify JS Script Custom Configuration". +別の言語に切り替える必要がある場合は、スクリプトをスケジューラに追加し、スクリプトを右クリックして、JSスクリプトカスタム構成の変更を選択します。 +언어를 다른 언어로 전환하려면 스크립트를 스케줄러에 추가하고 스크립트를 마우스 오른쪽 버튼으로 클릭한 다음 JS 스크립트 사용자 정의 구성을 수정하십시오. \ No newline at end of file diff --git a/repo/js/Language/main.js b/repo/js/Language/main.js new file mode 100644 index 00000000..6475c6e8 --- /dev/null +++ b/repo/js/Language/main.js @@ -0,0 +1,67 @@ +(async function () { + setGameMetrics(1920, 1080, 1); + await genshin.returnMainUi(); + + let language = settings.language; + + const languageMessages = { + "简体中文": ["切换至简体中文", 260], + "繁體中文": ["切換至繁體中文", 310], + "English": ["Switch to English", 360], + "日本語": ["日本語に切り替え", 460], + "한국어": ["한국어로 전환", 410] + }; + + const [message, yPos] = languageMessages[language] || ["Unknown language, switch to Chinese", 260]; + log.info(message); + + keyPress("ESCAPE"); + await sleep(1000); + click(50, 830); //点击设置 + await sleep(1000); + click(180, 510); //点击语言 + await sleep(1000); + click(1630, 210); //点击选项 + await sleep(1000); + moveMouseTo(1630, 260); + await PageScroll(1); + await sleep(1000); + click(1630, yPos); + await genshin.returnMainUi(); +})(); + +// 自动执行划页操作 +async function PageScroll(scrollCount) { + try { + const clickX = 1630; // 假设点击的起始坐标 + const clickY = 260; + const totalDistance = 200; // 假设每次滑动的总距离 + const stepDistance = 15; // 每步移动的距离 + + for (let i = 0; i < scrollCount; ++i) { + // 如果点击坐标为 (0, 0),则跳过点击 + if (clickX !== 0 || clickY !== 0) { + moveMouseTo(clickX, clickY); // 移动到指定坐标 + await sleep(100); + } + + // 按住鼠标左键 + leftButtonDown(); + + // 将鼠标移动到目标位置,模拟更自然的拖动操作 + const steps = totalDistance / stepDistance; // 分成若干步移动 + + for (let j = 0; j < steps; j++) { + moveMouseBy(0, stepDistance); // 每次移动 stepDistance 像素 + await sleep(10); // 每次移动后延迟10毫秒 + } + + // 释放鼠标左键 + await sleep(700); + leftButtonUp(); + await sleep(100); + } + } catch (error) { + log.error(`执行滑动操作时发生错误:${error.message}`); + } +} \ No newline at end of file diff --git a/repo/js/Language/manifest.json b/repo/js/Language/manifest.json new file mode 100644 index 00000000..915819c1 --- /dev/null +++ b/repo/js/Language/manifest.json @@ -0,0 +1,16 @@ +{ + "manifest_version": 1, + "name": "语言 / 語言 / Language / 言語 / 언어", + "version": "1.0", + "bgi_version": "0.45.0", + "description": "更改游戏语言。\n更改遊戲語言。\nChange the game language.\nゲーム言語を変更します。\n게임 언어를 변경하십시오.", + "authors": [ + { + "name": "ddaodan", + "link": "https://github.com/ddaodan" + } + ], + "settings_ui": "settings.json", + "main": "main.js" + } + \ No newline at end of file diff --git a/repo/js/Language/settings.json b/repo/js/Language/settings.json new file mode 100644 index 00000000..07442a1c --- /dev/null +++ b/repo/js/Language/settings.json @@ -0,0 +1,15 @@ +[ + { + "name": "language", + "type": "select", + "label": "语言 / 語言 / Language / 言語 / 언어", + "options": [ + "简体中文", + "繁體中文", + "English", + "日本語", + "한국어" + ], + "default": "简体中文" + } +] \ No newline at end of file