From 8b4d5cd1944e100de685958ffefe624534dd9ffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=A4=E5=8F=88?= <104784428+guyou45@users.noreply.github.com> Date: Thu, 28 Aug 2025 23:56:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20(#1753)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、优化相关功能的点击时间 2、优化背包滑动(感谢吉吉喵!!) 3、更新御神签的识别,以及修复挂签bug 4、输出福利餐得到的食物,以及幸运签的内容到本地,后续还会加入其他东西 --- repo/js/AutoPickLitter/README.md | 13 ++ .../assets/RecognitionObject/SliderBottom.png | Bin 0 -> 312 bytes .../RecognitionObject/YuShenQianHalf.png | Bin 0 -> 15891 bytes repo/js/AutoPickLitter/main.js | 152 +++++++++++++++--- repo/js/AutoPickLitter/manifest.json | 2 +- repo/js/AutoPickLitter/records/默认账户.txt | 1 - 6 files changed, 143 insertions(+), 25 deletions(-) create mode 100644 repo/js/AutoPickLitter/assets/RecognitionObject/SliderBottom.png create mode 100644 repo/js/AutoPickLitter/assets/RecognitionObject/YuShenQianHalf.png diff --git a/repo/js/AutoPickLitter/README.md b/repo/js/AutoPickLitter/README.md index e742d8d71..651afa245 100644 --- a/repo/js/AutoPickLitter/README.md +++ b/repo/js/AutoPickLitter/README.md @@ -4,3 +4,16 @@ 注意: 璃月上香:铜雀庙任务解锁方法,做完群玉阁重建活动后,现实第二天,到万民堂接取任务!!! + + + + + + + +更新 +版本:1.0.1 +1、优化相关功能的点击时间 +2、优化背包滑动(感谢吉吉喵!!) +3、更新御神签的识别,以及修复挂签bug +4、输出福利餐得到的食物,以及幸运签的内容到本地,后续还会加入其他东西 \ No newline at end of file diff --git a/repo/js/AutoPickLitter/assets/RecognitionObject/SliderBottom.png b/repo/js/AutoPickLitter/assets/RecognitionObject/SliderBottom.png new file mode 100644 index 0000000000000000000000000000000000000000..77ff483205cca77953fda650467c3f3811e04408 GIT binary patch literal 312 zcmV-80muG{P)PbXFR49?1kg-YwQ4mGX%q~P@RwJ7&L@PhRKee^8uob}+VkZ_N z*oas~uuu>S3yDZnk~KF7iC;TfA%NiGY@-WvDMLr$*-+zcMrDofg(RlWg;3s7Rl)*{vb0000< KMNUMnLSTZz9DpJK literal 0 HcmV?d00001 diff --git a/repo/js/AutoPickLitter/assets/RecognitionObject/YuShenQianHalf.png b/repo/js/AutoPickLitter/assets/RecognitionObject/YuShenQianHalf.png new file mode 100644 index 0000000000000000000000000000000000000000..720a96c73c7980239e9829c2509f842f3dda6211 GIT binary patch literal 15891 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

4BLh$rHl8~VtH{~Ft`-iTAj zj=}2&YHKPmJT!{&@hP;nHlV6XfTD?ybPAcK`ubWal=8{qHBF0j3$MI#l4tg&4V_Yh z)jcd`=RL`p>C_7H)+`4TuTy7t}_pP7cZ2vGC8k?A9>`;R_ShmA# zX0z!Ux(=8DqcYkGua4qw9mXJU$W7N#NXZchifzSHy98ipEL153v1_dVtR08Z!)O6U zoy%lQ?Hy?`?gWft8I=$d=1>L2+1kY@?9o9-i!N0Zn3=|0`>bwEgG8?jA{`@1yEK*- z7LZ;Frr&BUg`+5ZS$Di1biHT{Z@SQuaL}PQK zDl?Tx>hFL542~T;fsfqrK2(&K@TP<0HL(_23gf{C9^vm+R+ZyTd#**m=V8DsE`+gl z`{g)w;ynK2Yu`mvdpqkPakI5q(0avQg=l`Jed)qBuCyTSC8`^6gzPS zt>{yZVtPDQwZ2Rvx9Z3wMn^`lbxjxE_n|*W--QcY!mxHt2amzobLa8eYiDr#yKYhf zTv|6YJdTGSej0^E1&GHJxaF4XQCnNBLh^3x-+vfSKeZ2Uy=4!Zp4yr!j<3*334kvj zdIdv6qZk|-!G}Kd9D@Y5gt3h^s4%(ZCpn>`>vUDXl0d56Zua@ubrxo^&T9<3`IH%THT%gk z4wEG4VmZOPN(qyZUSyNhcSal>H5S&tRa$}ToJ@o B$nzx&MV0LB0}14iwtY3h1s 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 literal 0 HcmV?d00001 diff --git a/repo/js/AutoPickLitter/main.js b/repo/js/AutoPickLitter/main.js index 4025e0037..c9fe09074 100644 --- a/repo/js/AutoPickLitter/main.js +++ b/repo/js/AutoPickLitter/main.js @@ -87,8 +87,89 @@ async function findImgIcon(imagePath, xRange, yRange) { } } +//添加信息 +function writeContentToFile(content, judge) { + let finalAccountName = settings.accountName || "默认账户"; + try { + const illegalCharacters = /[\\/:*?"<>|]/; + const reservedNames = [ + "CON", "PRN", "AUX", "NUL", + "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", + "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" + ]; + if (finalAccountName === "" || + finalAccountName.startsWith(" ") || + finalAccountName.endsWith(" ") || + illegalCharacters.test(finalAccountName) || + reservedNames.includes(finalAccountName.toUpperCase()) || + finalAccountName.length > 255 + ) { + log.error(`账户名 "${finalAccountName}" 不合法,将使用默认值`); + finalAccountName = "默认账户"; + } + } catch (error) { + // 只在文件完全不存在时创建,避免覆盖 + file.writeTextSync(finalAccountName, content, false); + log.info(`创建新文件: ${finalAccountName}`); + } + + let filePath = `records/${finalAccountName}.txt`; + //读取现有内容 + let existingContent = ""; + try { + existingContent = file.readTextSync(filePath); + } catch (e) { + } + + if (judge == "true") { + runDate = `========${new Date().getFullYear()}年${String(new Date().getMonth() + 1).padStart(2, '0')}月${String(new Date().getDate()).padStart(2, '0')}日========`; + const finalContent1 = runDate + "\n" + existingContent; + //按行分割,保留最近365条完整记录(按原始换行分割,不过滤) + const lines = finalContent1.split("\n"); + const keepLines = lines.length > 365 * 5 ? lines.slice(0, 365 * 5) : lines; // 假设每条记录最多5行 + const result1 = file.writeTextSync(filePath, keepLines.join("\n"), false); + + if (result1) { + log.info(`写入成功: ${filePath}`); + } else { + log.error(`写入失败: ${filePath}`); + } + + } else { + + //拼接 + const finalContent = content + existingContent; + //按行分割,保留最近365条完整记录(按原始换行分割,不过滤) + const lines = finalContent.split("\n"); + const keepLines = lines.length > 365 * 5 ? lines.slice(0, 365 * 5) : lines; // 假设每条记录最多5行 + const result = file.writeTextSync(filePath, keepLines.join("\n"), false); + + if (result) { + log.info(`写入成功: ${filePath}`); + } else { + log.error(`写入失败: ${filePath}`); + } + } +} + +// 滚动页面 +async function scrollPage(totalDistance, stepDistance = 10, delayMs = 5) { + moveMouseTo(999, 750); + await sleep(50); + leftButtonDown(); + const steps = Math.ceil(totalDistance / stepDistance); + for (let j = 0; j < steps; j++) { + const remainingDistance = totalDistance - j * stepDistance; + const moveDistance = remainingDistance < stepDistance ? remainingDistance : stepDistance; + moveMouseBy(0, -moveDistance); + await sleep(delayMs); + } + await sleep(700); + leftButtonUp(); + await sleep(100); +} (async function() { @@ -108,8 +189,8 @@ async function findImgIcon(imagePath, xRange, yRange) { await sleep(1000); leftButtonClick(); await sleep(1000); - let recognizedOveer = await performOcr("已",{ min: 1482, max: 1630 }, { min: 912, max: 957 }, "false") - if (recognizedOveer.length != 0) { + let recognizedOver = await performOcr("已",{ min: 1482, max: 1630 }, { min: 912, max: 957 }, "false") + if (recognizedOver.length != 0) { log.info("已售罄!!!"); await genshin.returnMainUi(); } else { @@ -185,7 +266,7 @@ async function findImgIcon(imagePath, xRange, yRange) { await sleep(2000); let ocrResults1 = await performOcr("求签吧", xZone, yZone, "false"); if (ocrResults1.length != 0) { - await sleep(3000); + await sleep(2000); leftButtonClick(); await sleep(5000); leftButtonClick(); @@ -196,7 +277,7 @@ async function findImgIcon(imagePath, xRange, yRange) { if (ocrResults2.length != 0) { await sleep(700); leftButtonClick(); - await sleep(3000); + await sleep(700); let ocrResults3 = await performOcr("我要", xZone, yZone, "false"); if (ocrResults3.length != 0) { await sleep(700); @@ -215,25 +296,38 @@ async function findImgIcon(imagePath, xRange, yRange) { await sleep(1000); await click(1150,50); await sleep(700); - for(let i = 0; i <= 4; i++){ - //{ min: 93, max: 1283 }, { min: 99, max: 823 } - let img = await findImgIcon("assets/RecognitionObject/YuShenQian.png", { min: 99, max: 1295 }, { min: 104, max: 967 }) - if (img.length != 0) { + for(let scroll = 0; scroll <= 22; scroll++){ + //识别御神签 + let img1 = await findImgIcon("assets/RecognitionObject/YuShenQianHalf.png", { min: 99, max: 1295 }, { min: 104, max: 967 }) + if (img1.length != 0) { break; - } - await keyMouseScript.runFile(`assets/移动4行.json`); + }; + //判断是否到底 + let img = await findImgIcon("assets/RecognitionObject/SliderBottom.png", { min: 1284, max: 1293 }, { min: 916, max: 942 }) + if (img.length != 0) { + log.info("已到达最后一页!"); + break; + }; + //滑动背包 + await scrollPage(680, 10, 5); + await sleep(100); }; await sleep(2000); await click(1670,1025); - await sleep(2000); - let recognizedText = await performOcr("", { min: 720, max: 790 }, { min: 111, max: 155 }, "true"); - if(recognizedText == "大凶" || recognizedText == "凶-"){ - await genshin.returnMainUi(); - await pathingScript.runFile("assets/挂签路线.json"); - await performOcr("挂起来吧", { min: 900, max: 1700 }, { min: 380, max: 880 }, "false"); - await sleep(700); - leftButtonClick(); - log.info("事事顺利"); + await sleep(2500); + let recognizedText = await performOcr("", { min: 630, max: 800 }, { min: 100, max: 160 }, "true"); + if(recognizedText.includes("区")){ + await pathingScript.runFile("assets/挂签路线.json"); + await performOcr("御签挂", { min: 900, max: 1700 }, { min: 380, max: 880 }, "false"); + await genshin.chooseTalkOption("挂起来吧"); + await click(111,184); + await sleep(1000); + await click(1250,817); + await sleep(1000); + await click(1603,1013); + await sleep(1500); + await genshin.returnMainUi(); + log.info("事事顺利"); }; } else { await genshin.chooseTalkOption("再见"); @@ -284,12 +378,15 @@ async function findImgIcon(imagePath, xRange, yRange) { await sleep(1000); await click(1250,50); await sleep(1000); - for(let i = 0; i <= 2; i++){ + for(let scroll = 0; scroll <= 10; scroll++){ let img = await findImgIcon("assets/RecognitionObject/WelffareMeal.png", { min: 99, max: 1295 }, { min: 104, max: 967 }) if (img.length != 0) { break; } - await keyMouseScript.runFile(`assets/移动4行.json`); + //滑动背包 + await sleep(1000); + await scrollPage(680, 10, 5); + await sleep(1000); }; //这里是点击使用 await sleep(1000); @@ -304,6 +401,7 @@ async function findImgIcon(imagePath, xRange, yRange) { await sleep(2000); let recognizedText1 = await performOcr("", { min: 716, max: 1200 }, { min: 631, max: 710 }, "true"); log.info(`幸运签内容:${recognizedText1}`); + writeContentToFile(`获得的食物:${recognizedText}\n幸运签内容:${recognizedText1}`,"false"); }; } else { @@ -344,20 +442,26 @@ async function findImgIcon(imagePath, xRange, yRange) { switch (settings.pickupDragonEgg) { case "闪闪礼蛋·山之血": figure = 1; + writeContentToFile(`获得龙蛋:闪闪礼蛋·山之血\n`,"false"); break; case "闪闪礼蛋·太阳的轰鸣": figure = 2; + writeContentToFile(`获得龙蛋:闪闪礼蛋·太阳的轰鸣\n`,"false"); break; case "闪闪礼蛋·圣龙君临": + writeContentToFile(`获得龙蛋:闪闪礼蛋·圣龙君临\n`,"false"); figure = 3; break; case "闪闪礼蛋·菲耶蒂娜": + writeContentToFile(`获得龙蛋:闪闪礼蛋·菲耶蒂娜\n`,"false"); figure = 4; break; case "闪闪礼蛋·献给小酒杯": + writeContentToFile(`获得龙蛋:闪闪礼蛋·献给小酒杯\n`,"false"); figure = 5; break; case "闪闪礼蛋·飞澜鲨鲨": + writeContentToFile(`获得龙蛋:闪闪礼蛋·飞澜鲨鲨\n`,"false"); figure = 6; break; default: @@ -378,7 +482,9 @@ async function findImgIcon(imagePath, xRange, yRange) { await genshin.returnMainUi(); }; + //输出日期 + writeContentToFile("", "true"); - - + + })(); \ No newline at end of file diff --git a/repo/js/AutoPickLitter/manifest.json b/repo/js/AutoPickLitter/manifest.json index 8990f321c..830461684 100644 --- a/repo/js/AutoPickLitter/manifest.json +++ b/repo/js/AutoPickLitter/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 1, "name": "提瓦特杂事(收集)", - "version": "1.0", + "version": "1.0.1", "description": "买圣水、抽签、上香、领福利餐、领闪闪礼蛋", "authors": [ { diff --git a/repo/js/AutoPickLitter/records/默认账户.txt b/repo/js/AutoPickLitter/records/默认账户.txt index 527a8d9d9..e69de29bb 100644 --- a/repo/js/AutoPickLitter/records/默认账户.txt +++ b/repo/js/AutoPickLitter/records/默认账户.txt @@ -1 +0,0 @@ -待加入,后续功能,暂不开放 \ No newline at end of file