diff --git a/repo/js/AutoHoeingOneDragon/README.md b/repo/js/AutoHoeingOneDragon/README.md index c95f2868..a569c0cc 100644 --- a/repo/js/AutoHoeingOneDragon/README.md +++ b/repo/js/AutoHoeingOneDragon/README.md @@ -1,5 +1,3 @@ -# 锄地一条龙 - **重要免责声明:** 1. **使用风险:** @@ -73,6 +71,9 @@ --- ### 更新日志 +### 1.1.7(2025.07.13) +1. 获取结束坐标添加独立地图处理 +2. 含有传奇或高危标签的路线将不再被视为小怪路线 ### 1.1.5(2025.07.10) 1. 添加验证,游戏卡住等情况下会终止js并不再将后续路线视为运行完成,便于重跑 2. 添加优先关键词,便于优先考虑部分路线 diff --git a/repo/js/AutoHoeingOneDragon/assets/index2.json b/repo/js/AutoHoeingOneDragon/assets/index2.json index eccd3fb0..e0287dff 100644 --- a/repo/js/AutoHoeingOneDragon/assets/index2.json +++ b/repo/js/AutoHoeingOneDragon/assets/index2.json @@ -1600,12 +1600,12 @@ { "fileName": "6706--纳塔_踞石山_彩石顶2_(7-16).json", "时间": 241.03, - "精英摩拉": 0, + "精英摩拉": 200, "小怪摩拉": 1048.5, "小怪数量": 20.5, "水免": 0, "高危": 0, - "精英数量": 0 + "精英数量": 1 }, { "fileName": "6707--纳塔_踞石山_庙宇_(9-11).json", diff --git a/repo/js/AutoHoeingOneDragon/main.js b/repo/js/AutoHoeingOneDragon/main.js index 37c02f52..8bd8a1c9 100644 --- a/repo/js/AutoHoeingOneDragon/main.js +++ b/repo/js/AutoHoeingOneDragon/main.js @@ -180,8 +180,9 @@ async function processPathings() { // 去除重复标签 pathing.tags = [...new Set(pathing.tags)]; + // 处理 map_name 属性 + pathing.map_name = parsedContent.info?.map_name || "Teyvat"; // 如果有 map_name,则使用其值,否则默认为 "Teyvat" } - return pathings; // 返回处理后的 pathings 数组 } @@ -343,7 +344,11 @@ async function findBestRouteGroups(pathings, k, targetEliteNum, targetMonsterNum // 为最终选中且精英怪数量为0的路线添加小怪标签 pathings.forEach(pathing => { - if (pathing.selected && pathing.e === 0) { + // 检查是否包含 "传奇" 或 "高危" 标签 + const hasLegendOrHighRisk = pathing.tags.includes("传奇") || pathing.tags.includes("高危"); + + // 如果路径被选中、没有精英怪物且不包含 "传奇" 或 "高危" 标签,则添加 "小怪" 标签 + if (pathing.selected && pathing.e === 0 && !hasLegendOrHighRisk) { pathing.tags.push("小怪"); } }); @@ -810,7 +815,7 @@ async function processPathingsByGroup(pathings, targetTexts, blacklistKeywords, await fakeLog(`${pathing.fileName}`, false, false, 0); try { - const miniMapPosition = await genshin.getPositionFromMap(); + const miniMapPosition = await genshin.getPositionFromMap(pathing.map_name); // 比较坐标 const diffX = Math.abs(lastX - miniMapPosition.X); const diffY = Math.abs(lastY - miniMapPosition.Y); @@ -819,14 +824,19 @@ async function processPathingsByGroup(pathings, targetTexts, blacklistKeywords, if ((diffX + diffY) < 5) { runningFailCount++; } else { - //log.info(`当前坐标(${miniMapPosition.X},${miniMapPosition.Y},距离上次距离${(diffX + diffY)}`) runningFailCount = 0; } + //log.info(`当前位于${pathing.map_name}地图的(${miniMapPosition.X},${miniMapPosition.Y},距离上次距离${(diffX + diffY)}`); } catch (error) { log.error(`执行任务时发生错误:${error.message}`); runningFailCount++; } + if (runningFailCount >= 1) { + log.error("连续两条路线终止时坐标不变,不记录运行数据"); + continue; + } + // 计算下一个 UTC 时间的晚上 8 点(即北京时间凌晨四点) const nextEightClock = new Date(now); nextEightClock.setUTCHours(20, 0, 0, 0); // 设置为 UTC 时间的 20:00 @@ -847,11 +857,6 @@ async function processPathingsByGroup(pathings, targetTexts, blacklistKeywords, const remainingseconds = predictRemainingTime % 60; log.info(`当前进度:第 ${targetGroup} 组第 ${groupPathCount}/${totalPathsInGroup} 个 ${pathing.fileName}已完成,该组预计剩余: ${remaininghours} 时 ${remainingminutes} 分 ${remainingseconds.toFixed(0)} 秒`); - if (runningFailCount >= 1) { - log.error("连续两条路线终止时坐标不变,暂时不记录运行数据"); - continue; - } - await updateCdTimeRecord(pathings, accountName); } } diff --git a/repo/js/AutoHoeingOneDragon/manifest.json b/repo/js/AutoHoeingOneDragon/manifest.json index 5f567b58..27a70d2c 100644 --- a/repo/js/AutoHoeingOneDragon/manifest.json +++ b/repo/js/AutoHoeingOneDragon/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 1, "name": "锄地一条龙", - "version": "1.1.6", + "version": "1.1.7", "description": "一站式解决自动化锄地,支持只拾取狗粮,请阅读README.md后使用", "authors": [ {