From 2adb9bbd34fd3fa0fc25631fd768c2ebe76d250e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E7=B4=AB=E7=83=9Fowo?= <1532270678@qq.com> Date: Wed, 8 Oct 2025 01:28:18 +0800 Subject: [PATCH] =?UTF-8?q?AutoMonday-V1.3=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20(#2098)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 修复了投资券功能偶现的无法使用的bug 2. 修复了质变仪功能偶现的无法使用的bug 3. 修改了运行逻辑,某处任务执行失败不再影响后续任务的执行 4. 优化了部分功能 5. 阿巴阿巴……嘿嘿嘿……阿巴阿巴…… --- repo/js/AutoMonday/README.md | 9 +++- repo/js/AutoMonday/main.js | 92 ++++++++++++++++++-------------- repo/js/AutoMonday/manifest.json | 2 +- repo/js/AutoMonday/settings.json | 23 ++++---- 4 files changed, 76 insertions(+), 50 deletions(-) diff --git a/repo/js/AutoMonday/README.md b/repo/js/AutoMonday/README.md index e328edc45..8e182320a 100644 --- a/repo/js/AutoMonday/README.md +++ b/repo/js/AutoMonday/README.md @@ -28,12 +28,19 @@ 1. 脚本目前阶段以完成任务为主,某些任务例如做菜、锻造等的个性化程度较低。~~这不是压根没有吗~~ 以做菜和锻造等为目标的用户请移步仓库使用专项脚本(后续会逐渐完善) 2. cd记录文件有逻辑变动,之前使用过此脚本的用户请手动删除record文件夹,避免无用数据长期留存 ~~其实不删也没事,多一行少一行的,不过最好还是删了呗~~ 3. 爱可菲和质变仪由于逻辑的高度相似,二者写进了一个函数里,cd以质变仪为准。人话就是想运行爱可菲做菜就得用质变仪,质变仪没刷爱可菲也没办法用(历史遗留问题,后续会逐渐完善。 ~~是谁总喜欢动逻辑我不说~~ ) -4. 质变材料:默认使用薄荷,如果需要用其他材料请把assets里的图片替换掉。替换要注意要替换的材料在背包里和被替换的材料在一个目录并且名字要相同,例如拿铁块可以换白铁块、水晶块等,星蕈可以换苹果、泡泡桔等 +4. 质变材料:默认使用薄荷,如果需要用列表外的其他材料请把assets里的图片替换掉。替换要注意要替换的材料在背包里和被替换的材料在一个目录并且名字要相同,例如拿铁块可以换白铁块、水晶块等,星蕈可以换苹果、泡泡桔等(嗯?你是说你的文件夹里有个叫星蕈的图片里是一只甜甜花酿鸡?不是哥们别搞) 5. 晶蝶诱捕装置:脚本会自动识别地图左上角是否有晶蝶诱捕完成的标识,如果有,才会收取晶核。需要注意的是诱捕装置需要放在枫丹合成台旁边的巷子口(详见[诱捕位置](./assets/诱捕.png)), 实在找不到位置的话可以把assets中名为“晶蝶诱捕装置”的js复制在路径追踪里跑一遍,路径的终点就是诱捕装置的放置点,或者对位置不满意的话也可以自己录制一个路径放进assets里,需要注意名字必须叫“晶蝶诱捕装置”。 6. 首领和秘境任务需要配置战斗策略,首领是爆炎树急冻树,秘境是太山谷牛头人和讨债人 7. 四方网和兑换券等任务请开图 +8. 部分周常任务一周只能完成一次,故优化、制作进度较慢,敬请谅解。遇到问题请反馈到频道并艾特作者,Ciallo~(∠・ω< )⌒☆ + --------------------------------------------------------------------------------------------------------------------------------- ## 更新日志 +### 1.3(2025.10.07) +1. 修复了投资券功能偶现的无法使用的bug +2. 修复了质变仪功能偶现的无法使用的bug +3. 修改了运行逻辑,某处任务执行失败不再影响后续任务的执行 +4. 优化了部分功能 ### 1.2(2025.10.06) 1. 添加了自动纪行周常-秘境挑战的功能 2. 添加了自动纪行周常-每周做菜的功能 diff --git a/repo/js/AutoMonday/main.js b/repo/js/AutoMonday/main.js index 237043bb7..1850d7391 100644 --- a/repo/js/AutoMonday/main.js +++ b/repo/js/AutoMonday/main.js @@ -300,7 +300,7 @@ const maxRetries = 20; // 最大重试次数 let retries = 0; // 当前重试次数 while (retries < maxRetries) { - await imageRecognitionEnhanced(BH, 1, 0, 0); + const result = await imageRecognitionEnhanced(BH, 1, 0, 0); if (result.found) { await leftButtonUp(); await sleep(500); @@ -309,7 +309,7 @@ await click(440, 1008); //选择最大数量 await sleep(1000); await click(1792, 1019); //质变按钮 - await textOCR("参量质变仪", 3, 0, 0, 828, 253, 265, 73); if (!result.found) { throw new Error("单种材料不足,退出!"); } + await textOCR("参量质变仪", 3, 0, 0, 828, 253, 265, 73); if (!result.found) { log.error("单种材料不足,退出!"); } await sleep(1000); await click(1183, 764); //确认 ; await sleep(1000); @@ -325,7 +325,7 @@ await sleep(100); await moveMouseTo(1287, 131); await genshin.returnMainUi(); - throw new Error("未找到材料!"); + log.error("未找到材料!"); } await moveMouseTo(1287, 161 + YOffset); await sleep(300); @@ -481,7 +481,7 @@ // 获取当前账户id async function getCurrentUsername() { await genshin.returnMainUi(); - const texts = await textOCR("", 0.3, 0, 2, 1755, 1050, 110, 20); + const texts = await textOCR("", 0.3, 0, 2, 1751, 1050, 115, 25); if (result.found) { log.debug("当前用户:" + texts.text); await genshin.returnMainUi(); @@ -579,6 +579,8 @@ return; } + log.info("正在执行本周晶蝶诱捕装置收取任务……"); + keyPress("M"); await sleep(1000); @@ -613,6 +615,8 @@ // 更新CD记录(设置为七天后) updatedRecords[routeName] = getSevenDaysLater(); await writeCDRecords(updatedRecords); + + log.info("本周晶蝶诱捕装置收取完成!"); } @@ -632,6 +636,8 @@ return; } + log.info("正在执行本周质变仪&爱可菲任务……"); + // 检查质变仪cd是否已刷新 await sleep(500); await keyPress("B"); @@ -670,6 +676,7 @@ // 更新CD记录(设置为七天后) updatedRecords[routeName] = getSevenDaysLater(); await writeCDRecords(updatedRecords); + log.info("本周质变仪&爱可菲任务已完成!"); } // 每周做菜 @@ -707,7 +714,7 @@ const res = await textOCR(food, 10, 1, 0, 116, 116, 1165, 880); if (!res) { - throw new Error("未识别到料理!") + log.error("未识别到料理!") } await sleep(1000); @@ -717,7 +724,8 @@ await textOCR("自动烹饪", 5, 1, 0, 725, 1000, 130, 45); await sleep(800); click(960, 460); - inputText("20"); + await sleep(800); + inputText(cookCount); await sleep(800); click(1190, 755); await sleep(2500); // 等待烹饪完成 @@ -760,17 +768,17 @@ click(960, 540);// 对话 await sleep(1500); - click(560, 150);// 点击锻造任务界面,先领取一次 - await sleep(1500); + const res1 = await textOCR("可收取", 1, 0, 2, 625, 265, 130, 50); + if (res1.found) { + click(180, 1015);// 全部领取 + await sleep(1500); - click(180, 1015);// 全部领取 - await sleep(1500); + click(980, 900);// 确认按钮 + await sleep(1500); - click(980, 900);// 确认按钮 - await sleep(1500); - - click(220, 145);// 点击配方 - await sleep(1500); + click(220, 145);// 点击配方 + await sleep(1000); + } click(360, 1015);// 筛选按钮 await sleep(1500); @@ -782,7 +790,7 @@ for (i = 0; i < 4; i++) { click(1760, 1015);// 开始锻造 - await sleep(800); + await sleep(300); } await genshin.returnMainUi(); @@ -858,7 +866,7 @@ log.info(`战斗成功!当前完成 ${mijingCount} 次`); } else { log.error("战斗失败,终止脚本"); - throw new Error("自动秘境战斗失败"); + break; } await sleep(1500); mijingCount++; @@ -901,23 +909,28 @@ await textOCR("购买", 3, 1, 0, 1320, 630, 130, 60);// 对话:购买四方八方之网 await sleep(1000); - click(1670, 1015); - await sleep(800); + const res1 = await textOCR("已售罄", 0.5, 0, 0, 1515, 920, 90, 35); + if (!res1.found) { + click(1670, 1015); + await sleep(800); - for (i = 0; i < 7; i++) {// 拉满拉满,TMD全部拉满 - click(1290, 600); - await sleep(150); + for (i = 0; i < 7; i++) {// 拉满拉满,TMD全部拉满 + click(1290, 600); + await sleep(150); + } + + click(1175, 780);// 点击购买 + await sleep(100); + await genshin.returnMainUi(); + + log.info("本周四方网购买任务已完成!"); + + // 更新CD记录 + updatedRecords[routeName] = getNextMonday4AMISO(); + await writeCDRecords(updatedRecords); + } else { + log.warn("四方网CD未刷新!!!"); } - - click(1175, 780);// 点击购买 - await sleep(100); - await genshin.returnMainUi(); - - log.info("本周四方网购买任务已完成!"); - - // 更新CD记录 - updatedRecords[routeName] = getNextMonday4AMISO(); - await writeCDRecords(updatedRecords); } // 购买投资券 @@ -974,9 +987,9 @@ await genshin.returnMainUi(); - await sleep(800); + await sleep(1000); keyPress("F"); - await sleep(800); + await sleep(1000); click(960, 540); await sleep(1500); @@ -986,14 +999,14 @@ click(960, 540); } keyPress("F"); - await sleep(500); + await sleep(1000); click(110, 185); - await sleep(500); + await sleep(1000); click(1235, 815); - await sleep(500); + await sleep(1000); click(1620, 1020); - await sleep(500); + await sleep(1000); click(1620, 1020); @@ -1026,7 +1039,8 @@ const ifbuyTzq = settings.ifbuyTzq; const ifZBY = settings.ifZBY; const ifYB = settings.ifYB; - const food = settings.food; // 烹饪次数 + const food = settings.food; // 要烹饪的食物 + const cookCount = settings.cookCount;//烹饪数量 const Category = settings.Category;// 食物种类 const mineral = settings.mineral;// 矿石种类 const mineralFile = `assets/RecognitionObject/${mineral}.png`// 矿石模板路径 diff --git a/repo/js/AutoMonday/manifest.json b/repo/js/AutoMonday/manifest.json index a97ba108e..3df9109e1 100644 --- a/repo/js/AutoMonday/manifest.json +++ b/repo/js/AutoMonday/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 1, "name": "全自动周一", - "version": "1.2", + "version": "1.3", "tags": [ "周常", "纪行", diff --git a/repo/js/AutoMonday/settings.json b/repo/js/AutoMonday/settings.json index 51f3e1026..2f5d5718c 100644 --- a/repo/js/AutoMonday/settings.json +++ b/repo/js/AutoMonday/settings.json @@ -7,12 +7,12 @@ { "name": "ifZBY", "type": "checkbox", - "label": "是否执行质变仪&爱可菲任务" + "label": "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n是否执行质变仪&爱可菲任务" }, { "name": "ifAkf", "type": "checkbox", - "label": "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n是否拥有爱可菲" + "label": "是否拥有爱可菲" }, { "name": "TEAMname", @@ -43,17 +43,17 @@ { "name": "ifYB", "type": "checkbox", - "label": "是否执行晶蝶诱捕装置任务" + "label": "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n是否执行晶蝶诱捕装置任务" }, { "name": "ifCooking", "type": "checkbox", - "label": "是否执行每周做菜任务" + "label": "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n是否执行每周做菜任务" }, { "name": "food", "type": "input-text", - "label": "要制作的食物\n需要制作20个,请确保材料足够!", + "label": "要制作的食物", "default": "提瓦特煎蛋" }, { @@ -68,10 +68,15 @@ ], "default": "恢复类料理" }, + { + "name": "cookCount", + "type": "input-text", + "label": "要制作的数量\n请确保材料足够!" + }, { "name": "ifduanZao", "type": "checkbox", - "label": "是否执行每周锻造任务" + "label": "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n是否执行每周锻造任务" }, { "name": "mineral", @@ -87,7 +92,7 @@ { "name": "BossPartyName", "type": "input-text", - "label": "进行战斗的队伍" + "label": "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n进行战斗的队伍" }, { "name": "ifShouling", @@ -102,11 +107,11 @@ { "name": "ifbuyNet", "type": "checkbox", - "label": "是否购买四方八方之网" + "label": "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n是否购买四方八方之网" }, { "name": "ifbuyTzq", "type": "checkbox", - "label": "是否购买(提交)投资券" + "label": "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n是否购买(提交)投资券" } ] \ No newline at end of file