From 6f5f4ad7ac19ba02b978b7ae3ed221327678da80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=A9=E8=99=B9QQ=E4=BA=BA?= <90805948+KRdingsan@users.noreply.github.com> Date: Sat, 25 Oct 2025 11:52:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=81=B6=E5=8F=91=E6=80=A7?= =?UTF-8?q?=E2=80=9C=E7=99=BB=E9=99=86=E5=85=B6=E4=BB=96=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E2=80=9D=E8=AF=86=E5=88=AB=E4=B8=8D=E5=88=B0=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20(#2239)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update README.md * Update main.js 解决循环无法跳出 * Update README.md 增加更新记录 * Update README.md * Update manifest.json * 解决偶发性识别不到“登陆其他账号”的问题 * Add files via upload --------- Co-authored-by: 起个名字好难 <25520958+MisakaAldrich@users.noreply.github.com> --- .../assets/login_other_account_1.png | Bin 0 -> 3876 bytes repo/js/切换账号(OCR)版本/main.js | 49 +++++++++++++----- 2 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 repo/js/切换账号(OCR)版本/assets/login_other_account_1.png diff --git a/repo/js/切换账号(OCR)版本/assets/login_other_account_1.png b/repo/js/切换账号(OCR)版本/assets/login_other_account_1.png new file mode 100644 index 0000000000000000000000000000000000000000..299b3138939b08add3dfc0c6c5cb2d0a8008102e GIT binary patch literal 3876 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 literal 0 HcmV?d00001 diff --git a/repo/js/切换账号(OCR)版本/main.js b/repo/js/切换账号(OCR)版本/main.js index 99804ee9e..515e30b8b 100644 --- a/repo/js/切换账号(OCR)版本/main.js +++ b/repo/js/切换账号(OCR)版本/main.js @@ -18,7 +18,7 @@ const out_account = { name: "out_account.png" }; const login_other_account = { - template:RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/login_other_account.png")), + template:RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/login_other_account_1.png")), name: "login_other_account.png" }; const input_phone_or_email = { @@ -53,6 +53,7 @@ async function matchImgAndClick(obj, desc, timeout = 8000) { let status = false; // 用于记录是否匹配成功 try { while (Date.now() - start < timeout && !status) { + await sleep(300); let result = captureGameRegion().Find(obj.template); await sleep(500); // 短暂延迟,避免过快循环 if (result.isExist()) { @@ -61,7 +62,7 @@ async function matchImgAndClick(obj, desc, timeout = 8000) { status = true; // 设置匹配成功状态 return {success: true, x: clickResult.x, y: clickResult.y}; } - await sleep(200); // 短暂延迟,避免过快循环 + // await sleep(200); // 短暂延迟,避免过快循环 log.info(`【IMG】第${retryCount++}次识别并点击 ${desc} 失败 | 耗时: ${Date.now() - start}ms`); } } catch (error) { @@ -107,10 +108,21 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { setGameMetrics(1920, 1080, 1); // 如果切换账号是第一个脚本,则有可能出现月卡选项 - await genshin.blessingOfTheWelkinMoon(); - await sleep(1000); - await genshin.blessingOfTheWelkinMoon(); - await sleep(1000); + //防止genshin.blessingOfTheWelkinMoon();方法失效,先使用物理点击。 + try { + keyDown("VK_MENU"); + await sleep(500); + for(let i = 0; i<=4; i++){ + await click(genshin.width / 2.0, genshin.height * 0.8); + await sleep(1000); + } + }finally { + keyUp("VK_MENU"); + } + //await genshin.blessingOfTheWelkinMoon(); + //await sleep(1000); + //await genshin.blessingOfTheWelkinMoon(); + //await sleep(1000); await genshin.returnMainUi(); await keyPress("VK_ESCAPE"); @@ -151,20 +163,33 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { */ await sleep(8000); await recognizeTextAndClick("点击进入", RecognitionObject.Ocr(862, 966, 206, 104), 960, 540, 5000); - await sleep(12000); + await sleep(15000); //可能登录账号的时候出现月卡提醒,则先点击一次月卡。 - await genshin.blessingOfTheWelkinMoon(); - await sleep(1000); - await genshin.blessingOfTheWelkinMoon(); + //await genshin.blessingOfTheWelkinMoon(); + //await sleep(1000); + //await genshin.blessingOfTheWelkinMoon(); + //await sleep(1000); + //防止genshin.blessingOfTheWelkinMoon();方法失效,先使用物理点击。 + await sleep(2000); + keyDown("VK_MENU"); + await sleep(500); + for(let i = 0; i<=4; i++){ + await click(genshin.width / 2.0, genshin.height * 0.8); + await sleep(1000); + } + //keyUp("VK_MENU"); + await genshin.returnMainUi(); await sleep(1000); // 如果配置了通知 - notification.send("【UID:" + settings.UID + "】切换成功"); + notification.send("账号【" + settings.UID + "】切换成功"); }catch (error) { log.error(`${script_name}脚本执行过程中发生错误:${error.message}`); //如果发生错误,则发送通知 notification.error(`${script_name}脚本执行过程中发生错误:${error.message}`); throw new Error(`${script_name}脚本执行过程中发生错误:${error.message}`); + }finally { + keyUp("VK_MENU"); } -})(); +})(); \ No newline at end of file