js:锄地一条龙1.17 (#1340)

### 1.1.7(2025.07.13)
1. 获取结束坐标添加独立地图处理
2. 含有传奇或高危标签的路线将不再被视为小怪路线
This commit is contained in:
mno
2025-07-13 02:36:24 +08:00
committed by GitHub
parent 8c1ba11f72
commit cad6906ed5
4 changed files with 20 additions and 14 deletions

View File

@@ -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);
}
}