diff --git a/repo/js/使用历练点完成每日委托/README.md b/repo/js/使用历练点完成每日委托/README.md index b10d3e7e0..e448560b7 100644 --- a/repo/js/使用历练点完成每日委托/README.md +++ b/repo/js/使用历练点完成每日委托/README.md @@ -7,38 +7,40 @@ - 可选择是否传送至七天神像切换队伍 2. **历练点使用**: + - 自动检查是否可以领取历练点奖励(需使用120体力) - 自动领取历练点奖励 - - 支持直接使用历练点(不获取双倍好感) 3. **灵活执行时间设置**: - 可设置为每天执行 - 或指定每周的特定几天执行(如只在周一、周三、周五执行) + - 自动处理凌晨时段(00:00~04:00视为前一天) 4. **双倍好感度获取**: - - **在好友的尘歌壶内,队伍人数≤2人时使用历练点完成每日委托才能获取双倍好感度** + - **在好友的尘歌壶内,使用历练点完成每日委托可获取双倍好感度** + - **需保持队伍为4人队伍,但可通过设置让指定位置角色离队,实际出战角色可≤2人** - 自动进入好友的尘歌壶 - 支持指定特定好友 - - 可让指定角色离队,确保队伍人数≤2人(双倍好感度必要条件) + - 支持依次申请多个好友尘歌壶 + - 可让指定位置角色离队,确保实际出战角色符合需求 5. **自动检查是否可以使用历练点完成4个任务**: - - 如果运行时未识别到 完成所有任務,不领取历练点奖励 - -6. **前往指定的冒险家协会领取奖励**: - - 领取历练点奖励后,前往冒险家协会领取奖励 - - 未识别到 完成所有任務時,會跳過领取奖励 - - 預計的前往领取奖励的冒险家协会地区為 : 蒙德 - - 推荐設置為枫丹 + - 如果运行时未识别到 完成4个任务,不领取历练点奖励 +6. **自动前往冒险家协会领取奖励**: + - 领取历练点奖励后,自动前往指定地区的冒险家协会领取每日委托奖励 + - 支持多个地区选择(蒙德、璃月、稻妻、须弥、枫丹、挪德卡莱等) + - 自动进行对话交互,完成奖励领取 ## 参数设置说明 ### 基本设置 | 说明 | 默认值 | 示例 | |------|--------|------| -|需要领取好感的队伍名称(不填则不切换队伍) | 无 | "好感队" | -|关闭前往七天神像切换队伍 | 未勾选 | 勾选后不传送到神像 | -|指定星期几执行(","分隔)
输入"0"为每天执行 | "0" | "1,3,5"(周一、三、五执行) | -|直接使用历练点完成每日委托
(全角色满好感时推荐启用) | 已勾选 | 勾选后不获取双倍好感 | +| 需要领取好感的队伍名称(不填则不切换队伍) | 无 | "好感队" | +| 关闭前往七天神像切换队伍 | 未勾选 | 勾选后不传送到神像 | +| 指定星期几执行(","分隔)
输入"0"为每天执行 | "0" | "1,3,5"(周一、三、五执行) | +| 直接使用历练点完成每日委托
(全角色满好感时推荐启用) | 已勾选 | 勾选后不获取双倍好感 | +| 前往指定地区的冒险家协会领取奖励 | "蒙德" | "枫丹" | ### 尘歌壶双倍好感设置 |说明 | 示例 | @@ -50,44 +52,46 @@ | 让3号位角色离队 | 勾选 | | 让4号位角色离队 | 勾选 | -### 尘歌壶双倍好感设置 -|说明 | 示例 | -|前往指定地区的冒险家协会领取奖励|枫丹| - ## 使用建议 ### 双倍好感度获取流程 -0. 先自行消耗120体力 -1. 自动进入好友尘歌壶 -2. 让指定位置角色离队(确保队伍≤2人) -3. 打开冒险之证领取历练点奖励 -4. 返回大世界 -5. 前往冒险家协会 +1. 先自行消耗120体力(获得历练点) +2. 自动进入好友尘歌壶 +3. 让指定位置角色离队(根据设置) +4. 打开冒险之证领取历练点奖励 +5. 返回大世界 +6. 前往冒险家协会领取每日委托奖励 ### 角色离队策略 -- 当需要获取双倍好感时,建议保留2个需要提升好感的角色 +- 当需要获取双倍好感时,建议只保留2个需要提升好感的角色在队伍中 - 勾选需要离队的角色位置(1号位为最左侧角色) -- **注意**:不能同时让所有角色离队(至少保留1个角色) +- **注意**:不能同时让所有角色离队(至少保留1个角色在队伍中) +- 离队操作在进入尘歌壶后自动执行 ### 时间设置技巧 - 使用"0"设置为每天执行 - 使用"1,3,5"设置为周一、三、五执行 - 脚本会自动处理凌晨时段(00:00-04:00视为前一天) +### 冒险家协会地区选择 +- 推荐设置为"枫丹",路程较短 +- 可根据需要选择其他地区(蒙德、璃月、稻妻、须弥等) + ## 常见问题 **Q:为什么没有进入好友尘歌壶?** A:请检查: -1. 是否已禁用双倍好感 (**直接使用历练点完成每日委托** 被勾选) +1. 是否已禁用双倍好感(**直接使用历练点完成每日委托**被勾选) 2. 好友名称是否正确(区分大小写和空格) 3. 好友尘歌壶权限是否设置为"允许直接加入" +4. 网络连接是否良好 +5. 是否非战斗状态 **Q:角色没有离队怎么办?** A:请检查: 1. 是否正确勾选了角色位置 2. 游戏是否处于可切换队伍状态 - **Q:如何知道今天是否会执行脚本?** A:脚本日志会显示: - "今天是星期X,开始使用历练点完成每日委托" @@ -97,10 +101,21 @@ A:脚本日志会显示: A:可能因为: 1. 处于联机模式 2. 队伍名称设置错误 +3. 无法正确识别游戏界面 + +**Q:冒险家协会奖励没有领取怎么办?** +A:请检查: +1. 是否已经完成所有每日委托 +2. 是否已经领取过奖励 +3. 自动寻路是否正常执行 +4. BGI是否最新版 +5. 队伍是否4人 ## 注意事项 1. 游戏需运行在**1920×1080分辨率**下 2. 进入好友尘歌壶需要**网络连接良好** -3. 双倍好感度需要队伍中**不超过2个角色** +3. 双倍好感度需要在好友尘歌壶内,自己角色不超过2个角色时,领取历练点奖励 4. 若使用指定好友功能,请确保**好友名称完全匹配** +5. 确保有足够的历练点可以领取(需完成所有每日委托并消耗120体力) +6. 冒险家协会领奖功能依赖自动寻路,请确保游戏内队伍为4人队伍 diff --git a/repo/js/使用历练点完成每日委托/main.js b/repo/js/使用历练点完成每日委托/main.js index 6000d042d..0a6501da3 100644 --- a/repo/js/使用历练点完成每日委托/main.js +++ b/repo/js/使用历练点完成每日委托/main.js @@ -68,6 +68,7 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用 log.info(`今天是星期 ${dayOfWeek},开始使用历练点完成每日委托`); } else { log.info(`今天是星期 ${dayOfWeek},不使用历练点`); + log.info(`交互或拾取:"不运行"`); return; } } else { @@ -77,13 +78,15 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用 } // 检查是否可以领取历练点奖励 - if (settingsNotDoublePoints == false) { - if (await checkEncounterPointsRewards() == true) { - log.info("可以领取历练点奖励,开始执行"); - } else { - log.warn("无法领取历练点奖励,可能是未完成委托或已领取\n或 未识别到 完成所有任務,而不领取历练点奖励"); - return; - } + //好友尘歌壶历時檢查 + // 直接領取時檢查&領取 + log.info("检查是否可以领取历练点奖励"); + if (await checkEncounterPointsRewards() == true) { + log.info("可以领取历练点奖励,开始执行"); + } else { + log.warn("无法领取历练点奖励,可能是未完成委托或已领取\n或 未识别到 完成所有任務,而不领取历练点奖励"); + log.info(`交互或拾取:"未满足领取条件"`); + return; } if (shouldRun) { @@ -111,8 +114,8 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用 // 区分双倍好感 if (settingsNotDoublePoints == true) { - log.info(`不使用好友尘歌壶历练点领取双倍好感,直接使用历练点`); - await claimEncounterPointsRewards(); + + // await claimEncounterPointsRewards(); await fontaineCatherineCommissionAward() } else if (settingsNotDoublePoints == false) { // 进好友尘歌壶领历练点奖励后返回大世界 @@ -164,7 +167,6 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用 } } - // 以下为可供调用的函数部分 // 切换队伍 @@ -443,9 +445,9 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用 // 模板匹配领取历练点奖励 async function claimEncounterPointsRewards() { - await sleep(2000); + await sleep(1300); log.info("正在打开冒险之证领取历练点奖励"); - await sleep(2000); + await sleep(1300); keyPress("VK_ESCAPE"); await sleep(2000); @@ -495,9 +497,9 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用 let returnValue = false; - await sleep(1000); + await sleep(1300); log.info("正在打开冒险之证檢查历练点完成度"); - await sleep(1000); + await sleep(1300); keyPress("VK_ESCAPE"); await sleep(2000); @@ -535,6 +537,23 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用 await sleep(2000); log.info("可领取历练点奖励"); + + if (settingsNotDoublePoints == true) { + log.info(`不使用好友尘歌壶历练点领取双倍好感,直接使用历练点`); + const ro29 = captureGameRegion(); + let EncounterPointsStageRewardsButton = ro29.find(EncounterPointsStageRewardsRo); + ro29.dispose(); + if (EncounterPointsStageRewardsButton.isExist()) { + log.info("识别到历练点领取按钮"); + EncounterPointsStageRewardsButton.click(); + await sleep(2000); + log.info("已领取历练点奖励"); + keyPress("VK_ESCAPE"); + } else if (EncounterPointsStageRewardsButton.isEmpty()) { + log.warn("未识别到历练点领取奖励按钮,可能是已领取或未完成"); + } + } + keyPress("VK_ESCAPE"); } else if (EncounterPointsStageRewardsButton.isEmpty()) { log.info("未识别到 完成所有任務"); @@ -724,8 +743,19 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用 // 自動凱瑟琳領奬 async function fontaineCatherineCommissionAward() { await sleep(1000); + try { + const avatars = Array.from(getAvatars?.() || []); + if (avatars.length < 4) { + log.warn(`非4人隊伍 或 识别角色失败,不前往冒险家协会領奬`); + log.info(`交互或拾取:"领取失败"`); + return; + } + } catch (e) { + return; + } + //到指定冒险家协会領奬 - log.info(`开始到${adventurePath}冒险家协会領奬`); + log.info(`开始前往${adventurePath}冒险家协会領奬`); let Catherine_Egeria = `Assets/AutoPath/冒险家协会_${adventurePath}.json`; await pathingScript.runFile(Catherine_Egeria); log.info('开始每日委托或探索派遣,若无退出对话,则说明重复领取或未完成派遣'); @@ -737,6 +767,7 @@ const adventurePath = settings.adventurePath || '蒙德'; // 若未定义,用 await sleep(10000); await genshin.returnMainUi(); await sleep(1000); + log.info(`交互或拾取:"领取完成"`); } })(); \ No newline at end of file diff --git a/repo/js/使用历练点完成每日委托/manifest.json b/repo/js/使用历练点完成每日委托/manifest.json index 7bd1127db..beddbd19e 100644 --- a/repo/js/使用历练点完成每日委托/manifest.json +++ b/repo/js/使用历练点完成每日委托/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 1, "name": "使用历练点完成每日委托", - "version": "2.0.2", + "version": "2.1.0", "bgi_version": "0.44.1", "description": "使用历练点完成每日委托:\n支持进入好友尘歌壶,使用历练点领取双倍好感(队伍中小于等于两人时,能使队伍中两人获得双倍好感)\n支持进入好友尘歌壶后,让指定位置角色离队\n能指定星期几执行,星期几不执行\n前往冒险家协会领取奖励", "authors": [