From c56022c38ac3a08f80abc55019e5b8f5d1a48a12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8F=90=E7=93=A6=E7=89=B9=E9=92=93=E9=B1=BC=E7=8E=B3?= =?UTF-8?q?=E5=B8=88?= <144542161+Hijiwos@users.noreply.github.com> Date: Thu, 17 Jul 2025 17:37:34 +0800 Subject: [PATCH] =?UTF-8?q?JS=E8=84=9A=E6=9C=AC=EF=BC=9A=E6=8F=90=E7=93=A6?= =?UTF-8?q?=E7=89=B9=E5=85=A8=E8=87=AA=E5=8A=A8=E9=92=93=E9=B1=BC=E3=80=90?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E3=80=91=20(#1361)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- repo/js/AutoFishingTeyvat/READEME.md | 4 ++- repo/js/AutoFishingTeyvat/main.js | 42 +++++++++++++++---------- repo/js/AutoFishingTeyvat/manifest.json | 7 +++-- 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/repo/js/AutoFishingTeyvat/READEME.md b/repo/js/AutoFishingTeyvat/READEME.md index a872c175..b7054f23 100644 --- a/repo/js/AutoFishingTeyvat/READEME.md +++ b/repo/js/AutoFishingTeyvat/READEME.md @@ -13,7 +13,7 @@ 7. 支持自定义钓鱼超时时间 8. 支持设置定时关闭(最多24小时) 9. 4点自动领取月卡(可选) -10. 自动记录垂钓点冷却时间(进入其他世界钓鱼时请关闭此功能) +10. 自动记录垂钓点冷却时间(多人模式自动关闭) 11. 启用自动拾取(可选) ## 注意事项 @@ -23,6 +23,8 @@ 3. 同时选择鱼类和鱼饵的情况下按照以下逻辑选择路线: 所有被选的鱼类会被加入任务列表,如果选择的鱼饵中某个鱼饵不是已选的任何一个鱼类的对应的鱼饵,那么这个鱼饵对应的所有鱼类将被添加到任务列表 4. JS脚本的设置内各设置项含有优先级,如果存在高优先级且选项不为默认,则只有最高优先级的设置项生效 5. 部分钓鱼点为路径追踪+键鼠脚本(GCM)的混合模式,可能会出现因键鼠脚本误差卡死的情况,如果出现这种情况,请在JS脚本设置禁用键鼠路线来禁用所有包含键鼠脚本的钓鱼点 +6. 如果启用了自动记录垂钓点冷却时间,进入其他世界钓鱼时请关闭该功能,防止垂钓点CD冲突(关闭后不会影响本地的CD存档,回到单人后再次启用即可) +7. 请确保```F2```用于打开**多人游戏**窗口,否则会影响多人模式检测,导致CD记录出现误差 ## 其它 diff --git a/repo/js/AutoFishingTeyvat/main.js b/repo/js/AutoFishingTeyvat/main.js index c2c12432..703ec5bd 100644 --- a/repo/js/AutoFishingTeyvat/main.js +++ b/repo/js/AutoFishingTeyvat/main.js @@ -468,7 +468,7 @@ let step_flag = 0; // 领取月卡步骤标志 while (auto_skip && time_now < time_4 && time_predict_end >= time_4) { log.info(`等待领取月卡(剩余${Math.floor((time_4 - new Date()) / 1000)}s)...`); - if (step_flag == 0) { + if (step_flag === 0) { // 传送到七天神像 await pathingScript.runFile(base_path_pathing + statue_name + ".json"); step_flag += 1; @@ -486,8 +486,8 @@ } // 领取月卡(点击两次) - if (step_flag == 2) { - step_flag = 0; + if (step_flag === 2) { + // step_flag = 0; await sleep(5); // 补回容错时间 await click(1450, 1020); // 点击时间调节的确认按钮的位置 await sleep(5); // 等待月卡动画时间 @@ -555,7 +555,7 @@ } } - //await pathingScript.runFile(base_path_pathing + file_name + ".json"); + await pathingScript.runFile(base_path_pathing + file_name + ".json"); // 执行键鼠脚本 if (path_msg["addition"] === "GCM") { @@ -563,12 +563,12 @@ } // 调用自动钓鱼 - // await genshin.autofishing(fishing_time_dic[fishing_time]["param"]); - // await dispatcher.runTask(new SoloTask("AutoFishing", { - // "fishingTimePolicy": fishing_time_dic[fishing_time]["param"], - // "throwRodTimeOutTimeoutSeconds": time_out_throw, - // "wholeProcessTimeoutSeconds": time_out_whole - // })); + await genshin.autofishing(fishing_time_dic[fishing_time]["param"]); + await dispatcher.runTask(new SoloTask("AutoFishing", { + "fishingTimePolicy": fishing_time_dic[fishing_time]["param"], + "throwRodTimeOutTimeoutSeconds": time_out_throw, + "wholeProcessTimeoutSeconds": time_out_whole + })); if (fishing_cd) { write_archive(file_name, fishing_time, Date.now(), uid); @@ -603,7 +603,7 @@ // 读取4点自动领取月卡的设置 const auto_skip = typeof(settings.auto_skip) === 'undefined' ? false : settings.auto_skip; // 读取垂钓点CD统计 - const fishing_cd = typeof(settings.fishing_cd) === 'undefined' ? false: settings.fishing_cd; + let fishing_cd = typeof(settings.fishing_cd) === 'undefined' ? false: settings.fishing_cd; // 读取终止时间 const kill_hour = typeof(settings.time_kill_hour) === 'undefined' ? "无" : settings.time_kill_hour; const kill_minute = typeof(settings.time_kill_minute) === 'undefined' ? "无" : settings.time_kill_minute; @@ -613,20 +613,30 @@ // 获取当前用户UID let uid = "default_user"; if (fishing_cd) { - const ocrRo = RecognitionObject.Ocr(166, 198, 120, 22); + const ocrRoUid = RecognitionObject.Ocr(166, 198, 120, 22); + const ocrRoText = RecognitionObject.Ocr(1565, 997, 177, 39); genshin.returnMainUi(); await sleep(1000); keyPress("Escape"); await sleep(1000); - let ocr = captureGameRegion().Find(ocrRo); // 当前页面OCR - if (ocr.isExist()) { - uid = ocr.text; + let ocrUid = captureGameRegion().Find(ocrRoUid); // 当前页面OCR + if (ocrUid.isExist()) { + uid = ocrUid.text; } - keyPress("Escape"); + await genshin.returnMainUi(); + keyPress("F2"); // 按下F2打开多人模式界面 + await sleep(1000); + let ocrText = captureGameRegion().Find(ocrRoText); // 当前页面OCR + if (ocrText.isExist() && ocrText.text === "回到单人模式") { + fishing_cd = false; // 多人模式下关闭CD记录功能 + } + + await sleep(500); + keyPress("Escape"); } if (is_time_kill) { diff --git a/repo/js/AutoFishingTeyvat/manifest.json b/repo/js/AutoFishingTeyvat/manifest.json index 002f2c19..2748edcd 100644 --- a/repo/js/AutoFishingTeyvat/manifest.json +++ b/repo/js/AutoFishingTeyvat/manifest.json @@ -1,12 +1,13 @@ { "manifest_version": 1, "name": "提瓦特自动钓鱼(全流程+自选)", - "version": "2.2.0", + "version": "2.2.1", "bgi_version": "0.47.0", - "description": "脚本名称:提瓦特自动钓鱼(全流程+自选)\n功能描述:支持自动追踪并垂钓bgi支持的全提瓦特垂钓点\n核心功能------------------------------>\n1.可自选地区、鱼类、鱼饵\n2.可直接钓取特定物品的兑换材料(例如渔获)\n3.脚本会根据需要的鱼类自动调节时间,不需要的时段会跳过\n4.支持部分地图追踪无法到达的钓鱼点(例如炽岩斗士急流鱼钓鱼点,枫丹廷东北钓鱼点、雷鸣仙垂钓点)\n5.支持从特定的垂钓点继续任务(仅启用所有垂钓点时可用)\n6.默认禁用需要战斗的路线,如有需要请在JS脚本配置内启用\n7.支持自定义钓鱼超时时间\n8.支持设置定时关闭(最多24小时)\n9.4点自动领取月卡(可选)\n10.自动记录垂钓点冷却时间(进入其他世界钓鱼时请关闭此功能)\n11.启用自动拾取(可选)\n注意事项------------------------------>\n1.部分点位涉及战斗,且队伍内不能有双风和跑步(不是冲刺)时加移速的角色\n2.跑图位必须是少男体型(防止键鼠路线[GCM]出错)\n3.同时选择鱼类和鱼饵的情况下按照以下逻辑选择路线: 所有被选的鱼类会被加入任务列表,如果选择的鱼饵中某个鱼饵不是已选的任何一个鱼类的对应的鱼饵,那么这个鱼饵对应的所有鱼类将被添加到任务列表\n4.JS脚本的设置内各设置项含有优先级,如果存在高优先级且选项不为默认,则只有最高优先级的设置项生效\n5.部分钓鱼点为路径追踪+键鼠脚本(GCM)的混合模式,可能会出现因键鼠脚本误差卡死的情况,如果出现这种情况,请在JS脚本设置禁用键鼠路线来禁用所有包含键鼠脚本的钓鱼点\n---------------------------------------->\n作者:提瓦特钓鱼玳师\n脚本反馈邮箱:hijiwos@hotmail.com", + "description": "脚本名称:提瓦特自动钓鱼(全流程+自选)\n功能描述:支持自动追踪并垂钓bgi支持的全提瓦特垂钓点\n核心功能------------------------------>\n1.可自选地区、鱼类、鱼饵\n2.可直接钓取特定物品的兑换材料(例如渔获)\n3.脚本会根据需要的鱼类自动调节时间,不需要的时段会跳过\n4.支持部分地图追踪无法到达的钓鱼点(例如炽岩斗士急流鱼钓鱼点,枫丹廷东北钓鱼点、雷鸣仙垂钓点)\n5.支持从特定的垂钓点继续任务(仅启用所有垂钓点时可用)\n6.默认禁用需要战斗的路线,如有需要请在JS脚本配置内启用\n7.支持自定义钓鱼超时时间\n8.支持设置定时关闭(最多24小时)\n9.4点自动领取月卡(可选)\n10.自动记录垂钓点冷却时间(多人模式自动关闭)\n11.启用自动拾取(可选)\n注意事项------------------------------>\n1.部分点位涉及战斗,且队伍内不能有双风和跑步(不是冲刺)时加移速的角色\n2.跑图位必须是少男体型(防止键鼠路线[GCM]出错)\n3.同时选择鱼类和鱼饵的情况下按照以下逻辑选择路线: 所有被选的鱼类会被加入任务列表,如果选择的鱼饵中某个鱼饵不是已选的任何一个鱼类的对应的鱼饵,那么这个鱼饵对应的所有鱼类将被添加到任务列表\n4.JS脚本的设置内各设置项含有优先级,如果存在高优先级且选项不为默认,则只有最高优先级的设置项生效\n5.部分钓鱼点为路径追踪+键鼠脚本(GCM)的混合模式,可能会出现因键鼠脚本误差卡死的情况,如果出现这种情况,请在JS脚本设置禁用键鼠路线来禁用所有包含键鼠脚本的钓鱼点\n6. 如果启用了自动记录垂钓点冷却时间,进入其他世界钓鱼时请关闭该功能,防止垂钓点CD冲突(关闭后不会影响本地的CD存档,回到单人后再次启用即可)\n7. 请确保F2用于打开多人游戏窗口,否则会影响多人模式检测,导致CD记录出现误差\n---------------------------------------->\n作者:提瓦特钓鱼玳师\n脚本反馈邮箱:hijiwos@hotmail.com", "authors": [ { - "name": "提瓦特钓鱼玳师" + "name": "提瓦特钓鱼玳师", + "links": "https://github.com/Hijiwos" } ], "settings_ui": "settings.json",