diff --git a/repo/js/TeyvatScanner/README.md b/repo/js/TeyvatScanner/README.md new file mode 100644 index 00000000..109eff2e --- /dev/null +++ b/repo/js/TeyvatScanner/README.md @@ -0,0 +1,21 @@ +# 提瓦特扫描仪 + +## 使用说明 +在启用本工具之前,请确保完成以下准备工作: +1. **装备寻宝罗盘**:确保已经装备寻宝罗盘,并启用自动切换不同国家的罗盘。 +2. **准备配队**:准备一个含有旅行者的配队,并为该配队配置对应的战斗策略。 +3. **宝藏记录存储**:宝藏记录将被存储到 `js` 文件夹下的 `records` 文件夹中。 + +## 自定义配置说明 + +### 操作模式 +在配置文件中,你可以选择以下两种操作模式之一: +- **寻宝模式**:工具将自动寻找宝藏。 +- **导航至宝藏**:工具将自动导航至宝藏位置,并在到达宝藏位置后等待10秒。你可以使用快捷键暂停脚本,并在该位置找齐所有宝箱后继续运行。 + +### 终止运行时间段 +你可以指定一个时间段,在该时间段内工具将自动终止运行。这有助于在特定的时间(如凌晨四点后)切换到其他任务。 + +## 注意事项 +- 确保在使用前仔细检查自定义配置。 +- 如果在使用过程中遇到任何问题,请及时查看日志文件以获取更多信息。 diff --git a/repo/js/TeyvatScanner/assets/icon/Anemo.png b/repo/js/TeyvatScanner/assets/icon/Anemo.png new file mode 100644 index 00000000..36da1a69 Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Anemo.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Anemo_off.png b/repo/js/TeyvatScanner/assets/icon/Anemo_off.png new file mode 100644 index 00000000..4d884ff4 Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Anemo_off.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Dendro.png b/repo/js/TeyvatScanner/assets/icon/Dendro.png new file mode 100644 index 00000000..5b6078e2 Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Dendro.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Dendro_off.png b/repo/js/TeyvatScanner/assets/icon/Dendro_off.png new file mode 100644 index 00000000..e885c354 Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Dendro_off.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Electro.png b/repo/js/TeyvatScanner/assets/icon/Electro.png new file mode 100644 index 00000000..9189a3e7 Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Electro.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Electro_off.png b/repo/js/TeyvatScanner/assets/icon/Electro_off.png new file mode 100644 index 00000000..0660c80e Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Electro_off.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Geo.png b/repo/js/TeyvatScanner/assets/icon/Geo.png new file mode 100644 index 00000000..c182eba7 Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Geo.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Geo_off.png b/repo/js/TeyvatScanner/assets/icon/Geo_off.png new file mode 100644 index 00000000..b63a5f76 Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Geo_off.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Hydro.png b/repo/js/TeyvatScanner/assets/icon/Hydro.png new file mode 100644 index 00000000..fdb22c79 Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Hydro.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Hydro_off.png b/repo/js/TeyvatScanner/assets/icon/Hydro_off.png new file mode 100644 index 00000000..4ca738d4 Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Hydro_off.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Pyro.png b/repo/js/TeyvatScanner/assets/icon/Pyro.png new file mode 100644 index 00000000..665706dc Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Pyro.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/Pyro_off.png b/repo/js/TeyvatScanner/assets/icon/Pyro_off.png new file mode 100644 index 00000000..ad123d6d Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/Pyro_off.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/chest.png b/repo/js/TeyvatScanner/assets/icon/chest.png new file mode 100644 index 00000000..7797de1c Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/chest.png differ diff --git a/repo/js/TeyvatScanner/assets/icon/flag.png b/repo/js/TeyvatScanner/assets/icon/flag.png new file mode 100644 index 00000000..c7628283 Binary files /dev/null and b/repo/js/TeyvatScanner/assets/icon/flag.png differ diff --git a/repo/js/TeyvatScanner/assets/switchElement/岩.json b/repo/js/TeyvatScanner/assets/switchElement/岩.json new file mode 100644 index 00000000..41d997db --- /dev/null +++ b/repo/js/TeyvatScanner/assets/switchElement/岩.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "岩", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751302360644 + }, + "positions": [ + { + "id": 1, + "x": 978.720703125, + "y": -353.53662109375, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 984.4345703125, + "y": -351.3369140625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 985.9130859375, + "y": -348.8408203125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 986.513671875, + "y": -344.76611328125, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/assets/switchElement/水.json b/repo/js/TeyvatScanner/assets/switchElement/水.json new file mode 100644 index 00000000..bb90fee0 --- /dev/null +++ b/repo/js/TeyvatScanner/assets/switchElement/水.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "水", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751302729676 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 4610.498046875, + "y": 3600.668701171875, + "action_params": "" + }, + { + "id": 2, + "x": 4631.1494140625, + "y": 3598.541259765625, + "type": "path", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/assets/switchElement/火.json b/repo/js/TeyvatScanner/assets/switchElement/火.json new file mode 100644 index 00000000..c1d5c081 --- /dev/null +++ b/repo/js/TeyvatScanner/assets/switchElement/火.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "火", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751302846273 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 8597.341796875, + "y": -1928.5986328125, + "action_params": "" + }, + { + "id": 2, + "x": 8597.623046875, + "y": -1932.87451171875, + "type": "path", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/assets/switchElement/草.json b/repo/js/TeyvatScanner/assets/switchElement/草.json new file mode 100644 index 00000000..ef1afce8 --- /dev/null +++ b/repo/js/TeyvatScanner/assets/switchElement/草.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "草", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751302613795 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 2297.580078125, + "y": -824.5205078125, + "action_params": "" + }, + { + "id": 2, + "x": 2295.8798828125, + "y": -825.7041015625, + "type": "path", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/assets/switchElement/雷.json b/repo/js/TeyvatScanner/assets/switchElement/雷.json new file mode 100644 index 00000000..daa8111c --- /dev/null +++ b/repo/js/TeyvatScanner/assets/switchElement/雷.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "雷", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751302521509 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -3233.314453125, + "y": -3534.126953125, + "action_params": "" + }, + { + "id": 2, + "x": -3237.7265625, + "y": -3533.8779296875, + "type": "path", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/assets/switchElement/风.json b/repo/js/TeyvatScanner/assets/switchElement/风.json new file mode 100644 index 00000000..a7f33708 --- /dev/null +++ b/repo/js/TeyvatScanner/assets/switchElement/风.json @@ -0,0 +1,42 @@ +{ + "info": { + "name": "风主", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751300321221 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -1266.748046875, + "y": 1933.923828125, + "action_params": "" + }, + { + "id": 2, + "x": -1266.5419921875, + "y": 1929.845703125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1265.130859375, + "y": 1924.84375, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/assets/waitFor10Seconds.json b/repo/js/TeyvatScanner/assets/waitFor10Seconds.json new file mode 100644 index 00000000..63c18b8d --- /dev/null +++ b/repo/js/TeyvatScanner/assets/waitFor10Seconds.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "waitFor10Seconds", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750964027700 + }, + "positions": [ + { + "id": 1, + "action": "combat_script", + "move_mode": "walk", + "type": "orientation", + "x": 0, + "y": 0, + "action_params": "wait(10)" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/main.js b/repo/js/TeyvatScanner/main.js new file mode 100644 index 00000000..92361aab --- /dev/null +++ b/repo/js/TeyvatScanner/main.js @@ -0,0 +1,963 @@ +// 主函数 +(async function () { + await fakeLog("提瓦特扫描仪", true, true, 0); + //去七天神像切换到可战斗配队 + await genshin.tpToStatueOfTheSeven(); + await switchPartyIfNeeded(settings.partyName); + //文件处理 + const pathFolder = "pathing"; + const paths = await readFolder(pathFolder, true); + + for (let i = 0; i < 30; i++) { + if (await isCompassFree(1)) { + keyPress("Z"); + break; + } else { + log.warn(`第${i + 1}次尝试未找到罗盘图标`); + } + if (i === 29) { + log.warn("请装备罗盘后再启动本js"); + return; + } + await sleep(1000); + } + + if (!isValidAccountName(settings.accountName || "默认账户")) { + return; + } + + const recordFilePath = `records/${settings.accountName || "默认账户"}.txt`; + + // 初始化结果对象 + const result = {}; + + if (!doFileExist(recordFilePath)) { + log.warn("对应记录文件不存在,将创建空白文件"); + } else { + // 读取文件内容 + const content = await file.readText(recordFilePath); + + // 按行分割内容 + const lines = content.split('\n'); + + // 当前国家 + let currentCountry = null; + + // 遍历每一行 + for (const line of lines) { + // 去除行首行尾的空格 + const trimmedLine = line.trim(); + + // 如果行以国家名称结尾(冒号),更新当前国家 + if (trimmedLine.endsWith(":")) { + currentCountry = trimmedLine.slice(0, -1).trim(); + result[currentCountry] = {}; + continue; + } + + // 如果行以“-”开头,表示路线信息 + if (trimmedLine.startsWith("-")) { + // 提取路线名称和宝藏信息 + const [routeInfo, treasureInfo] = trimmedLine.slice(1).split(":"); + const routeName = routeInfo.trim(); + const treasures = treasureInfo.split(",").map(t => t.trim()); + + // 将路线信息添加到当前国家 + if (currentCountry) { + result[currentCountry][routeName] = treasures; + } + } + } + + } + + // 创建一个对象来存储每条路线的文件路径 + const routes = {}; + + // 遍历 paths,将文件按路线分类 + for (const file of paths) { + // 获取文件所在的路线文件夹路径 + const folderPathArray = file.folderPathArray; + + // 确保路径数组长度足够 + if (folderPathArray.length < 2) { + log.debug(`文件路径 ${file.fullPath} 的层级不足,跳过该文件`); + continue; + } + + const routeFolder = folderPathArray[folderPathArray.length - 1]; // 倒数第一个元素是路线文件夹 + const countryFolder = folderPathArray[folderPathArray.length - 2]; // 倒数第二个元素是国家文件夹 + + // 如果国家文件夹不存在于 routes 对象中,则初始化 + if (!routes[countryFolder]) { + routes[countryFolder] = {}; + } + + // 如果路线文件夹不存在于国家文件夹中,则初始化 + if (!routes[countryFolder][routeFolder]) { + routes[countryFolder][routeFolder] = []; + } + + // 将文件的完整路径添加到对应的路线文件夹中 + routes[countryFolder][routeFolder].push(file.fullPath); + log.debug(`找到文件${file.fullPath},在${countryFolder}的${routeFolder}`); + } + + let currentElement = ""; + + if (settings.operationMode != "导航至宝藏地点") { + log.info("开启扫描模式"); + // 遍历 routes 对象 + for (const country in routes) { + // 使用 switch 语句判断是否跳过该国家 + // 获取当前国家的所有路线 + const routesForCountry = routes[country]; + // 检查 result 中是否存在多余的路线,并移除 + if (result[country]) { + const resultRoutes = Object.keys(result[country]); + for (const resultRoute of resultRoutes) { + if (!routesForCountry[resultRoute]) { + // 如果 result 中的路线在 routes 中不存在,则移除该路线 + delete result[country][resultRoute]; + log.warn(`移除路线: ${resultRoute},因为该路线在 routes 中不存在`); + } + } + } + + switch (country) { + case "蒙德": + if (settings.disableMondstadt) { + log.info(`跳过国家: ${country}`); + continue; + } + break; + case "璃月": + if (settings.disableLiyue) { + log.info(`跳过国家: ${country}`); + continue; + } + break; + case "稻妻": + if (settings.disableInazuma) { + log.info(`跳过国家: ${country}`); + continue; + } + break; + case "须弥": + if (settings.disableSumeru) { + log.info(`跳过国家: ${country}`); + continue; + } + break; + case "枫丹": + if (settings.disableFontaine) { + log.info(`跳过国家: ${country}`); + continue; + } + break; + case "纳塔": + if (settings.disableNatlan) { + log.info(`跳过国家: ${country}`); + continue; + } + break; + default: + log.warn(`跳过未知国家: ${country}`); + continue; + } + + log.info(`开始处理 ${country}的路线`); + for (const route in routes[country]) { + // 获取当前路线下的文件数量 + const fileCount = routes[country][route].length; + + // 检查 result 中是否存在该路线 + if (result[country] && result[country][route]) { + const treasureResults = result[country][route]; + const allNotExist = treasureResults.every(item => item === "不存在宝藏"); + + // 如果所有项都是“不存在宝藏”且文件数量与项目数量一致,则跳过该路线 + if (allNotExist && fileCount === treasureResults.length) { + log.info(`跳过路线: ${route},所有点位都已确认不存在宝藏`); + continue; + } + } + + // 如果 result 中不存在该路线,或者项目数量与文件数量不一致 + if (!result[country] || !result[country][route] || fileCount !== result[country][route].length) { + // 在 result 中新增或修改该路线,项目改为文件数量的“未知” + if (!result[country]) { + result[country] = {}; + } + result[country][route] = Array(fileCount).fill("未知"); + } + + log.info(`开始处理路线: ${route}`); + + let targetElement = null; // 初始化 targetElement + + // 检查字符串是否以“主”结尾 + if (route.endsWith("主")) { + // 获取“主”字前的一个字 + targetElement = route[route.length - 2]; // 获取倒数第二个字符 + log.info(`该路线需要${targetElement}系主角`); + if (targetElement != currentElement) { + currentElement = targetElement; + await switchTravelerElement(targetElement); + } + } + + await fakeLog(`${route}.json`, false, true, 0); + let index = 0; // 添加一个计数器 + let xyCheck = false; + for (const pathingPath of routes[country][route]) { + // 判断是否处于限制运行时间 + if (await isTimeRestricted(settings.timeRule)) { + return; + } + log.info(`地图追踪:${pathingPath}`); + await pathingScript.runFile(pathingPath); + try { + await sleep(10); + } catch (error) { + log.error(`终止任务: ${error}`); + return; + } + + // 获取 JSON 文件中的最后一个点位坐标及 description + const jsonINfo = await checkJson(pathingPath); + + // 获取当前在小地图上的位置坐标,确保调用之前在主界面 + const miniMapPosition = await genshin.getPositionFromMap(); + log.info(`当前小地图坐标: X=${miniMapPosition.X}, Y=${miniMapPosition.Y}`); + + // 比较坐标 + const diffX = Math.abs(jsonINfo.lastX - miniMapPosition.X); + const diffY = Math.abs(jsonINfo.lastY - miniMapPosition.Y); + if (diffX + diffY >= 5 && jsonINfo.description !== "终点处小地图无效") { + log.error(`坐标偏差过大,地图追踪可能异常。偏差: X=${diffX}, Y=${diffY}`); + xyCheck = true; + continue; //跳出该路线 + } else { + log.info(`坐标偏差在允许范围内。偏差: X=${diffX}, Y=${diffY}`); + } + + const compassResult = await checkTreasure(); + // 根据 compassResult 更新 result 中对应项的信息 + if (compassResult === "罗盘状态异常,可能在战斗中") { + result[country][route][index] = "未知"; + log.error("出错啦,请检查路线"); + } else if (compassResult === "未发现宝藏或宝藏相关线索") { + result[country][route][index] = "不存在宝藏"; + log.info("这里的宝箱都找齐啦"); + } else if (compassResult === "发现宝藏或宝藏相关线索") { + result[country][route][index] = "存在宝藏"; + log.warn("快看,是野生的宝箱"); + } else { + result[country][route][index] = "未知"; + } + // 更新记录文件 + await writeDataToFile(result, recordFilePath); + index++; // 更新计数器 + } + await fakeLog(`${route}.json`, false, false, 0); + } + } + } else { + log.info("开启导航模式,将带您前往扫描到宝箱的地点,请到达后使用快捷键暂停bgi,找齐后继续运行,前往下一个地点"); + // 遍历 result 对象 + for (const country in result) { + for (const country in result) { + if (Object.keys(result[country]).length === 0) { + log.warn(`国家 ${country} 不包含任何路线,将从 result 中删除`); + delete result[country]; + } + } + //更新记录文件 + await writeDataToFile(result, recordFilePath); + for (const route in result[country]) { + const treasures = result[country][route]; + // 检查 routes 中是否存在对应的国家和路线 + if (!routes[country] || !routes[country][route]) { + log.warn(`路线 ${route}不存在,从 result 中删除`); + delete result[country][route]; // 从 result 中删除对应的路线 + for (const country in result) { + if (Object.keys(result[country]).length === 0) { + log.warn(`国家 ${country} 不包含任何路线,将从 result 中删除`); + delete result[country]; + } + } + //更新记录文件 + await writeDataToFile(result, recordFilePath); + continue; + } + const filesForRoute = routes[country][route]; // 获取该路线下的所有文件路径 + for (let i = 0; i < treasures.length; i++) { + if (treasures[i] === "存在宝藏") { + // 检查字符串是否以“主”结尾 + if (route.endsWith("主")) { + // 获取“主”字前的一个字 + targetElement = route[route.length - 2]; // 获取倒数第二个字符 + log.info(`该路线需要${targetElement}系主角`); + if (targetElement != currentElement) { + currentElement = targetElement; + await switchTravelerElement(targetElement); + } + } + // 遍历前 i + 1 个地图追踪文件 + log.info(`路线${route}第${i + 1}个点位存在宝藏`); + for (let j = 0; j <= i; j++) { + if (j < filesForRoute.length) { + const filePath = filesForRoute[j]; + await pathingScript.runFile(filePath); + try { + await sleep(10); + } catch (error) { + log.error(`终止任务: ${error}`); + return; + } + } else { + log.error("路线数量错误,请检查文件"); + return; + } + } + keyPress("Z"); + result[country][route][i] = "未知"; + await writeDataToFile(result, recordFilePath); + log.info("到啦,野生的宝箱在召唤你,请在10秒内按下快捷键暂停bgi运行,找齐该点位宝箱后继续运行"); + await pathingScript.runFile("assets/waitFor10Seconds.json"); + log.info("已更新记录中对应项目为未知,继续运行"); + } + } + } + } + log.info("所有存在宝藏的位置都处理了") + } + await fakeLog("提瓦特扫描仪", true, false, 2333); +})(); + +/** + * 切换主角元素 + */ +async function switchTravelerElement(element) { + const fullPath = `assets/switchElement/${element}.json`; + //导航至对应的七天神像 + await pathingScript.runFile(fullPath); + //点击与某元素共鸣 + log.info(`旅行者正在汲取${element}元素力`); + for (let i = 0; i < 5; i++) { + await click(1400, 675); + await sleep(500); + } + //传送离开防止影响后续 + await genshin.returnMainUi(); + await genshin.tpToStatueOfTheSeven(); +} + +/** + * 检查罗盘是否处于冷却状态 + * @returns {Promise} + */ +async function isCompassFree(totalAttempts = 3) { + const iconPaths = [ + { path: "assets/icon/Anemo.png", name: "风" }, + { path: "assets/icon/Geo.png", name: "岩" }, + { path: "assets/icon/Electro.png", name: "雷" }, + { path: "assets/icon/Dendro.png", name: "草" }, + { path: "assets/icon/Hydro.png", name: "水" }, + { path: "assets/icon/Pyro.png", name: "火" }, + //{ path: "assets/icon/Cryo.png", name: "冰" } + ]; // 定义寻宝罗盘图标的路径及名称 + + for (let i = 0; i < totalAttempts; i++) { + // 后续每次暂停 100 毫秒 + if (i > 0) { + await sleep(100); + } + + // 遍历所有图标路径 + for (const icon of iconPaths) { + // 使用图像识别方法查找图标 + const iconList = captureGameRegion().findMulti( + RecognitionObject.TemplateMatch(file.ReadImageMatSync(icon.path)) + ); + + // 判断是否找到图标 + if (iconList && iconList.count > 0) { + log.debug(`${icon.name}之寻宝罗盘已刷新`); + return true; // 任意一个图标存在则返回 true + } else { + } + } + } + log.debug(`寻宝罗盘未刷新`); + return false; // 所有图标都不存在则返回 false +} + +/** + * 检查罗盘是否处于冷却状态 + * @returns {Promise} + */ +async function isCompassFree(totalAttempts = 3) { + const iconPaths = [ + { path: "assets/icon/Anemo.png", name: "风" }, + { path: "assets/icon/Geo.png", name: "岩" }, + { path: "assets/icon/Electro.png", name: "雷" }, + { path: "assets/icon/Dendro.png", name: "草" }, + { path: "assets/icon/Hydro.png", name: "水" }, + { path: "assets/icon/Pyro.png", name: "火" }, + //{ path: "assets/icon/Cryo.png", name: "冰" } + ]; // 定义寻宝罗盘图标的路径及名称 + + for (let i = 0; i < totalAttempts; i++) { + // 后续每次暂停 100 毫秒 + if (i > 0) { + await sleep(100); + } + + // 遍历所有图标路径 + for (const icon of iconPaths) { + // 使用图像识别方法查找图标 + const iconList = captureGameRegion().findMulti( + RecognitionObject.TemplateMatch(file.ReadImageMatSync(icon.path)) + ); + + // 判断是否找到图标 + if (iconList && iconList.count > 0) { + log.debug(`${icon.name}之寻宝罗盘已刷新`); + return true; // 任意一个图标存在则返回 true + } else { + } + } + } + log.debug(`寻宝罗盘未刷新`); + return false; // 所有图标都不存在则返回 false +} + +/** + * 检查罗盘是否处于不可用状态 + * @returns {Promise} + */ +async function isCompassLocked(totalAttempts = 3) { + const iconPaths = [ + { path: "assets/icon/Anemo_off.png", name: "风" }, + { path: "assets/icon/Geo_off.png", name: "岩" }, + { path: "assets/icon/Electro_off.png", name: "雷" }, + { path: "assets/icon/Dendro_off.png", name: "草" }, + { path: "assets/icon/Hydro_off.png", name: "水" }, + { path: "assets/icon/Pyro_off.png", name: "火" }, + //{ path: "assets/icon/Cryo_off.png", name: "冰" } + ]; // 定义寻宝罗盘图标的路径及名称 + + for (let i = 0; i < totalAttempts; i++) { + // 后续每次暂停 100 毫秒 + if (i > 0) { + await sleep(100); + } + + // 遍历所有图标路径 + for (const icon of iconPaths) { + // 使用图像识别方法查找图标 + const iconList = captureGameRegion().findMulti( + RecognitionObject.TemplateMatch(file.ReadImageMatSync(icon.path)) + ); + + // 判断是否找到图标 + if (iconList && iconList.count > 0) { + log.debug(`${icon.name}之寻宝罗盘处于锁定状态`); + return true; // 任意一个图标存在则返回 true + } else { + } + } + } + log.debug(`寻宝罗盘不处于锁定状态`); + return false; // 所有图标都不存在则返回 false +} + +/** + * 检查 chest.png 或 flag.png 是否存在 + * @param {number} [totalAttempts=3] - 尝试次数,默认为 3 次 + * @returns {Promise} - 如果 chest.png 或 flag.png 存在,则返回 true,否则返回 false + */ +async function doTreasureExist(totalAttempts = 3) { + const iconPaths = [ + { path: "assets/icon/chest.png", name: "宝箱" }, + { path: "assets/icon/flag.png", name: "旗帜" } + ]; // 定义图标路径及名称 + + for (let i = 0; i < totalAttempts; i++) { + // 后续每次暂停 100 毫秒 + if (i > 0) { + await sleep(100); + } + + // 遍历所有图标路径 + for (const icon of iconPaths) { + // 使用图像识别方法查找图标 + const iconList = captureGameRegion().findMulti( + RecognitionObject.TemplateMatch(file.ReadImageMatSync(icon.path)) + ); + + // 判断是否找到图标 + if (iconList && iconList.count > 0) { + log.debug(`${icon.name}图标存在`); + return true; // 任意一个图标存在则返回 true + } + } + } + + log.debug(`未找到任何图标`); + return false; // 所有图标都不存在则返回 false +} + + +/** + * 检查宝藏状态 + * @returns {Promise} 返回检查结果的描述 + */ +async function checkTreasure() { + let checkTime = 0; + let compassFree = false; + let offCount = 0; + let WaitStartTime = Date.now(); // 记录检查开始时间 + while (checkTime < 31000) { + // 检查罗盘状态 + const startTime = Date.now(); // 记录调用结束时间 + compassFree = await isCompassFree(1); + let compassOff = await isCompassLocked(1); + const endTime = Date.now(); // 记录调用结束时间 + checkTime = endTime - WaitStartTime; // 计算实际调用时间 + + if (compassOff) { + offCount++; //累计失败次数 + } + if (compassFree) { + break; // 如果返回 true,则跳出循环 + } + if (offCount > 2) { + break; + } + //确保每轮循环时间不少于3秒 + await sleep(startTime + 3000 - endTime) + } + + if (!compassFree) { + //31秒后罗盘仍然不处于刷新状态,或三次以上处于锁定状态 + return "罗盘状态异常,可能在战斗中"; + } + + // 按下 Z 键两次 + keyPress("Z"); + await sleep(500); + keyPress("Z"); + await sleep(500); + + checkTime = 0; + let compassOff = false; + offCount = 0; + WaitStartTime = Date.now(); // 记录检查开始时间 + while (checkTime < 10000) { + // 检查罗盘状态 + const startTime = Date.now(); // 记录调用结束时间 + compassFree = await isCompassFree(1); + compassOff = await isCompassLocked(1); + const endTime = Date.now(); // 记录调用结束时间 + checkTime = endTime - WaitStartTime; // 计算实际调用时间 + + if (compassOff) { + offCount++; //累计失败次数 + } + if (compassFree) { + break; // 如果返回 true,则跳出循环 + } + if (offCount > 0) { + break; + } + //确保每轮循环时间不少于3秒 + await sleep(startTime + 3000 - endTime) + } + if (compassFree) { + //罗盘刷新了说明此处没有宝箱 + return "未发现宝藏或宝藏相关线索"; + } else if (checkTime >= 10000) { + //罗盘10秒内都没有刷新,说明此处有宝箱 + return "发现宝藏或宝藏相关线索"; + } else { + //识别到罗盘处于锁定状态 + return "罗盘状态异常,可能在战斗中"; + } +} + +//切换队伍 +async function switchPartyIfNeeded(partyName) { + if (!partyName) { + await genshin.returnMainUi(); + return; + } + try { + log.info("正在尝试切换至" + partyName); + if (!await genshin.switchParty(partyName)) { + log.info("切换队伍失败,前往七天神像重试"); + await genshin.tpToStatueOfTheSeven(); + await genshin.switchParty(partyName); + } + } catch { + log.error("队伍切换失败,可能处于联机模式或其他不可切换状态"); + notification.error(`队伍切换失败,可能处于联机模式或其他不可切换状态`); + await genshin.returnMainUi(); + } +} + +// 定义 readFolder 函数 +/* +该函数可以实现输入要处理的文件夹路径后,将其中所有文件/仅json文件按照原顺序存储在一个对象中,具体使用参考主函数 +*/ +async function readFolder(folderPath, onlyJson) { + log.info(`开始读取文件夹:${folderPath}`); + + // 新增一个堆栈,初始时包含 folderPath + const folderStack = [folderPath]; + + // 新增一个数组,用于存储文件信息对象 + const files = []; + + // 当堆栈不为空时,继续处理 + while (folderStack.length > 0) { + // 从堆栈中弹出一个路径 + const currentPath = folderStack.pop(); + + // 读取当前路径下的所有文件和子文件夹路径 + const filesInSubFolder = file.ReadPathSync(currentPath); + + // 临时数组,用于存储子文件夹路径 + const subFolders = []; + for (const filePath of filesInSubFolder) { + if (file.IsFolder(filePath)) { + // 如果是文件夹,先存储到临时数组中 + subFolders.push(filePath); + } else { + // 如果是文件,根据 onlyJson 判断是否存储 + if (onlyJson) { + if (filePath.endsWith(".json")) { + const fileName = filePath.split('\\').pop(); // 提取文件名 + const folderPathArray = filePath.split('\\').slice(0, -1); // 提取文件夹路径数组 + files.push({ + fullPath: filePath, + fileName: fileName, + folderPathArray: folderPathArray + }); + //log.info(`找到 JSON 文件:${filePath}`); + } + } else { + const fileName = filePath.split('\\').pop(); // 提取文件名 + const folderPathArray = filePath.split('\\').slice(0, -1); // 提取文件夹路径数组 + files.push({ + fullPath: filePath, + fileName: fileName, + folderPathArray: folderPathArray + }); + //log.info(`找到文件:${filePath}`); + } + } + } + // 将临时数组中的子文件夹路径按原顺序压入堆栈 + folderStack.push(...subFolders.reverse()); // 反转子文件夹路径 + } + + return files; +} + +/** + * 检查当前时间是否处于限制时间内或即将进入限制时间 + * @param {string} timeRule - 时间规则字符串,格式如 "4, 4-6, 10-12" + * @param {number} [threshold=10] - 接近限制时间的阈值(分钟) + * @returns {Promise} - 如果处于限制时间内或即将进入限制时间,则返回 true,否则返回 false + */ +async function isTimeRestricted(timeRule, threshold = 10) { + // 如果输入的时间规则为 undefined 或空字符串,视为不进行时间处理,返回 false + if (timeRule === undefined || timeRule === "") { + return false; + } + + // 初始化 0-23 小时为可用状态 + const hours = Array(24).fill(false); + + // 解析时间规则 + const rules = timeRule.split(',').map(rule => rule.trim()); + + // 校验输入的字符串是否符合规则 + for (const rule of rules) { + if (rule.includes('-')) { + // 处理时间段,如 "4-6" + const [startHour, endHour] = rule.split('-').map(Number); + if (isNaN(startHour) || isNaN(endHour) || startHour < 0 || startHour >= 24 || endHour <= startHour || endHour > 24) { + // 如果时间段格式不正确或超出范围,则报错并返回 true + log.error("时间填写不符合规则,请检查"); + return true; + } + for (let i = startHour; i < endHour; i++) { + hours[i] = true; // 标记为不可用 + } + } else { + // 处理单个时间点,如 "4" + const hour = Number(rule); + if (isNaN(hour) || hour < 0 || hour >= 24) { + // 如果时间点格式不正确或超出范围,则报错并返回 true + log.error("时间填写不符合规则,请检查"); + return true; + } + hours[hour] = true; // 标记为不可用 + } + } + + // 获取当前时间 + const now = new Date(); + const currentHour = now.getHours(); + const currentMinute = now.getMinutes(); + log.info(`当前小时数为${currentHour},分钟数为${currentMinute}`); + + // 检查当前时间是否处于限制时间内 + if (hours[currentHour]) { + log.warn("处于限制时间内"); + return true; // 当前时间处于限制时间内 + } + + // 检查当前时间是否即将进入限制时间 + for (let i = 0; i < 24; i++) { + if (hours[i]) { + const nextHour = i; + const timeUntilNextHour = (nextHour - currentHour - 1) * 60 + (60 - currentMinute); + if (timeUntilNextHour > 0 && timeUntilNextHour <= threshold) { + // 如果距离下一个限制时间小于等于阈值,则等待到限制时间开始 + log.warn("接近限制时间,开始等待"); + await sleep(timeUntilNextHour * 60 * 1000); + return true; + } + } + } + log.info("不处于限制时间"); + return false; // 当前时间不在限制时间内 +} + + +/** + * 检查账户名是否合法 + * @param {string} accountName - 账户名 + * @returns {boolean} - 如果账户名合法,返回 true;否则返回 false + */ +function isValidAccountName(accountName) { + // Windows文件名非法字符列表 + const illegalCharacters = /[\\/:*?"<>|]/; + // Windows保留设备名称列表 + const reservedNames = [ + "CON", "PRN", "AUX", "NUL", + "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", + "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" + ]; + + // 检查accountName是否为空字符串 + if (accountName === "") { + log.error(`账户名 "${accountName}" 不合法,为空字符串。`); + log.error(`请使用合法的名称`); + return false; + } + // 检查accountName是否以空格开头 + else if (accountName.startsWith(" ")) { + log.error(`账户名 "${accountName}" 不合法,以空格开头。`); + log.error(`请使用合法的名称`); + return false; + } + // 检查accountName是否以空格结尾 + else if (accountName.endsWith(" ")) { + log.error(`账户名 "${accountName}" 不合法,以空格结尾。`); + log.error(`请使用合法的名称`); + return false; + } + // 检查accountName是否包含非法字符 + else if (illegalCharacters.test(accountName)) { + log.error(`账户名 "${accountName}" 不合法,包含非法字符。`); + log.error(`请使用合法的名称`); + return false; + } + // 检查accountName是否是保留设备名称 + else if (reservedNames.includes(accountName.toUpperCase())) { + log.error(`账户名 "${accountName}" 不合法,是保留设备名称。`); + log.error(`请使用合法的名称`); + return false; + } + // 检查accountName长度是否超过255字符 + else if (accountName.length > 255) { + log.error(`账户名 "${accountName}" 不合法,账户名过长。`); + log.error(`请使用合法的名称`); + return false; + } + else { + log.info(`账户名 "${accountName}" 合法。`); + return true; + } +} + +/** + * 将对象内容写入文件 + * @param {Object} data - 要写入的对象 + * @returns {Promise} + */ +async function writeDataToFile(data, recordFilePath) { + // 初始化内容字符串 + let content = ""; + + // 遍历对象,将内容逐行转化为文字 + for (const country in data) { + content += `${country}:\n`; + for (const route in data[country]) { + // 每条路线的最后一项之后没有逗号 + const treasures = data[country][route].join(',').replace(/,$/, ''); + content += `-${route}:${treasures}\n`; + } + } + + // 异步写入文件 + await file.writeText(recordFilePath, content); +} + +// fakeLog 函数,使用方法:将本函数放在主函数前,调用时请务必使用await,否则可能出现v8白框报错 +//在js开头处伪造该js结束运行的日志信息,如 await fakeLog("js脚本", true, true, 0); +//在js结尾处伪造该js开始运行的日志信息,如 await fakeLog("js脚本", true, false, 2333); +//duration项目仅在伪造结束信息时有效,且无实际作用,可以任意填写,当你需要在日志中输出特定值时才需要,单位为毫秒 +//在调用地图追踪前伪造该地图追踪开始运行的日志信息,如 await fakeLog(`地图追踪.json`, false, true, 0); +//在调用地图追踪后伪造该地图追踪结束运行的日志信息,如 await fakeLog(`地图追踪.json`, false, false, 0); +//如此便可以在js运行过程中伪造地图追踪的日志信息,可以在日志分析等中查看 + +async function fakeLog(name, isJs, isStart, duration) { + await sleep(10); + const currentTime = Date.now(); + // 参数检查 + if (typeof name !== 'string') { + log.error("参数 'name' 必须是字符串类型!"); + return; + } + if (typeof isJs !== 'boolean') { + log.error("参数 'isJs' 必须是布尔型!"); + return; + } + if (typeof isStart !== 'boolean') { + log.error("参数 'isStart' 必须是布尔型!"); + return; + } + if (typeof currentTime !== 'number' || !Number.isInteger(currentTime)) { + log.error("参数 'currentTime' 必须是整数!"); + return; + } + if (typeof duration !== 'number' || !Number.isInteger(duration)) { + log.error("参数 'duration' 必须是整数!"); + return; + } + + // 将 currentTime 转换为 Date 对象并格式化为 HH:mm:ss.sss + const date = new Date(currentTime); + const hours = String(date.getHours()).padStart(2, '0'); + const minutes = String(date.getMinutes()).padStart(2, '0'); + const seconds = String(date.getSeconds()).padStart(2, '0'); + const milliseconds = String(date.getMilliseconds()).padStart(3, '0'); + const formattedTime = `${hours}:${minutes}:${seconds}.${milliseconds}`; + + // 将 duration 转换为分钟和秒,并保留三位小数 + const durationInSeconds = duration / 1000; // 转换为秒 + const durationMinutes = Math.floor(durationInSeconds / 60); + const durationSeconds = (durationInSeconds % 60).toFixed(3); // 保留三位小数 + + // 使用四个独立的 if 语句处理四种情况 + if (isJs && isStart) { + // 处理 isJs = true 且 isStart = true 的情况 + const logMessage = `正在伪造js开始的日志记录\n\n` + + `[${formattedTime}] [INF] BetterGenshinImpact.Service.ScriptService\n` + + `------------------------------\n\n` + + `[${formattedTime}] [INF] BetterGenshinImpact.Service.ScriptService\n` + + `→ 开始执行JS脚本: "${name}"`; + log.debug(logMessage); + } + if (isJs && !isStart) { + // 处理 isJs = true 且 isStart = false 的情况 + const logMessage = `正在伪造js结束的日志记录\n\n` + + `[${formattedTime}] [INF] BetterGenshinImpact.Service.ScriptService\n` + + `→ 脚本执行结束: "${name}", 耗时: ${durationMinutes}分${durationSeconds}秒\n\n` + + `[${formattedTime}] [INF] BetterGenshinImpact.Service.ScriptService\n` + + `------------------------------`; + log.debug(logMessage); + } + if (!isJs && isStart) { + // 处理 isJs = false 且 isStart = true 的情况 + const logMessage = `正在伪造地图追踪开始的日志记录\n\n` + + `[${formattedTime}] [INF] BetterGenshinImpact.Service.ScriptService\n` + + `------------------------------\n\n` + + `[${formattedTime}] [INF] BetterGenshinImpact.Service.ScriptService\n` + + `→ 开始执行地图追踪任务: "${name}"`; + log.debug(logMessage); + } + if (!isJs && !isStart) { + // 处理 isJs = false 且 isStart = false 的情况 + const logMessage = `正在伪造地图追踪结束的日志记录\n\n` + + `[${formattedTime}] [INF] BetterGenshinImpact.Service.ScriptService\n` + + `→ 脚本执行结束: "${name}", 耗时: ${durationMinutes}分${durationSeconds}秒\n\n` + + `[${formattedTime}] [INF] BetterGenshinImpact.Service.ScriptService\n` + + `------------------------------`; + log.debug(logMessage); + } +} + +/** + * 检查指定文件是否存在 + * @param {string} filePath - 文件的完整路径 + * @returns {boolean} - 如果文件存在,返回 true;否则返回 false + */ +function doFileExist(filePath) { + // 提取文件夹路径和文件名 + const folderPath = filePath.substring(0, filePath.lastIndexOf('/') + 1); // 获取文件夹路径 + log.info(`目标文件夹路径:${folderPath}`) + const fileName = filePath.substring(filePath.lastIndexOf('/') + 1); // 获取文件名 + log.info(`目标文件名:${fileName}`) + // 读取子文件夹中的所有文件路径 + const filesInSubFolder = file.ReadPathSync(folderPath); + + // 检查指定文件是否存在 + for (const currentFilePath of filesInSubFolder) { + const currentFileName = currentFilePath.substring(currentFilePath.lastIndexOf('\\') + 1); // 提取文件名 + if (currentFileName === fileName) { + return true; // 文件存在 + } + } + + return false; // 文件不存在 +} + +/** + * 读取并解析 JSON 文件 + * @param {string} filePath - JSON 文件路径 + * @returns {Promise} - 包含最后一个点位的 x 和 y 坐标,以及 description 字段 + */ +async function checkJson(filePath) { + try { + // 使用 file.readText() 读取文件内容 + const content = await file.readText(filePath); + + // 解析 JSON 数据 + const parsedData = JSON.parse(content); + + // 获取最后一个点位的 x 和 y 坐标 + const lastPosition = parsedData.positions[parsedData.positions.length - 1]; + const lastX = lastPosition.x; + const lastY = lastPosition.y; + + // 获取 description 字段 + const description = parsedData.info.description; + + // 返回结果对象 + return { + lastX: lastX, + lastY: lastY, + description: description + }; + } catch (error) { + log.error('读取或解析文件时发生错误:', error); + } +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/manifest.json b/repo/js/TeyvatScanner/manifest.json new file mode 100644 index 00000000..f39d5e00 --- /dev/null +++ b/repo/js/TeyvatScanner/manifest.json @@ -0,0 +1,16 @@ +{ + "manifest_version": 1, + "name": "提瓦特扫描仪", + "version": "0.1", + "tags": ["宝箱"], + "bgi_version": "0.46.0", + "description": "通过使用寻宝罗盘,判断指定区域是否存在宝藏并进行记录,同时根据记录,将用户导航至找到宝藏的地点,建议配合“罗盘找不到的宝箱"视频食用”, + "authors": [ + { + "name": "mno", + } + ], + "settings_ui": "settings.json", + "main": "main.js" + } + \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A01-石门.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A01-石门.json new file mode 100644 index 00000000..6576ba2a --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A01-石门.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A01-石门", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750868891854 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 207.50390625, + "y": 1573.005859375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A02-山脊守望.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A02-山脊守望.json new file mode 100644 index 00000000..e8a0b1dd --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A02-山脊守望.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A02-山脊守望", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750868945661 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": -321.5966796875, + "y": 1473.2958984375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A03-荻花洲.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A03-荻花洲.json new file mode 100644 index 00000000..793ea36e --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A03-荻花洲.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A03-荻花洲", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869062853 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 253.16015625, + "y": 1285.13330078125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A04-望舒客栈.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A04-望舒客栈.json new file mode 100644 index 00000000..dff06470 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A04-望舒客栈.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A04-望舒客栈", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869119464 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 328.912109375, + "y": 873.61376953125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A05-地中之盐.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A05-地中之盐.json new file mode 100644 index 00000000..95435144 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A05-地中之盐.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A05-地中之盐", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869193482 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": -164.52734375, + "y": 1182.53564453125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A06-无妄坡下.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A06-无妄坡下.json new file mode 100644 index 00000000..62a896e2 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A06-无妄坡下.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A06-无妄坡下", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869248194 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 489.744140625, + "y": 1435.1298828125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A07-无妄引咎密宫.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A07-无妄引咎密宫.json new file mode 100644 index 00000000..7780dd7a --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A07-无妄引咎密宫.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A07-无妄引咎密宫", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869322027 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 385.9150390625, + "y": 1688.5625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A08- 轻策庄.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A08- 轻策庄.json new file mode 100644 index 00000000..b1efbae6 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A08- 轻策庄.json @@ -0,0 +1,43 @@ +{ + "info": { + "name": "璃月-A08- 轻策庄", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869497977 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 844.169921875, + "y": 1535.88427734375, + "action_params": "" + }, + { + "id": 2, + "x": 840.05859375, + "y": 1532.77685546875, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "wait(3)", + "locked": false + }, + { + "id": 3, + "x": 840.05859375, + "y": 1532.77685546875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A09-轻策庄右.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A09-轻策庄右.json new file mode 100644 index 00000000..98622ddf --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A01-09/璃月-A09-轻策庄右.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A09-轻策庄右", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869562344 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 547.6865234375, + "y": 1766.771484375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A10-轻策庄左.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A10-轻策庄左.json new file mode 100644 index 00000000..2b00ae6e --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A10-轻策庄左.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A10-轻策庄左", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869694709 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 801.5908203125, + "y": 1796.07177734375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A11-药蝶谷右.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A11-药蝶谷右.json new file mode 100644 index 00000000..1fd898d6 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A11-药蝶谷右.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A11-药蝶谷右", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869768103 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 1271.138671875, + "y": 1564.01025390625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A12-奥藏山右.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A12-奥藏山右.json new file mode 100644 index 00000000..a634ea10 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A12-奥藏山右.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A12-奥藏山右", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869821658 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1121.017578125, + "y": 1190.359375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A13-华池岩岫.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A13-华池岩岫.json new file mode 100644 index 00000000..684e2ed6 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A13-华池岩岫.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A13-华池岩岫", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750869939777 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1436.3330078125, + "y": 1289.9130859375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A14-奥藏山下.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A14-奥藏山下.json new file mode 100644 index 00000000..419e1ca9 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A14-奥藏山下.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A14-奥藏山下", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750870022825 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1604.4619140625, + "y": 1039.6787109375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A15-庆云顶神像.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A15-庆云顶神像.json new file mode 100644 index 00000000..90cdca10 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A15-庆云顶神像.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A15-庆云顶神像", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750870080508 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1474.59375, + "y": 763.6416015625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A16-庆云顶锚点.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A16-庆云顶锚点.json new file mode 100644 index 00000000..22f82b28 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A16-庆云顶锚点.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A16-庆云顶锚点", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873437527 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1433.3994140625, + "y": 837.1103515625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A17-琥牢山.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A17-琥牢山.json new file mode 100644 index 00000000..0dd3724c --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A17-琥牢山.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A17-琥牢山", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873493676 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1794.2255859375, + "y": 717.45947265625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A18-南天门山顶.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A18-南天门山顶.json new file mode 100644 index 00000000..3e0096be --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A18-南天门山顶.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A18-南天门山顶", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873555580 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1389.029296875, + "y": 516.47998046875, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A19-南天门.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A19-南天门.json new file mode 100644 index 00000000..144e5e8a --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A11-19/璃月-A19-南天门.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A19-南天门", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873591382 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1665.8896484375, + "y": 386.5791015625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A20-天遒谷.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A20-天遒谷.json new file mode 100644 index 00000000..092603a1 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A20-天遒谷.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A20-天遒谷", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873650178 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1153.36328125, + "y": 139.78466796875, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A21-奥藏山右下.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A21-奥藏山右下.json new file mode 100644 index 00000000..9c4a2ccd --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A21-奥藏山右下.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A21-奥藏山右下", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873705648 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1451.505859375, + "y": 1028.58349609375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A22-绝云间右上.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A22-绝云间右上.json new file mode 100644 index 00000000..8e7f44e2 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A22-绝云间右上.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A22-绝云间右上", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873758370 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 1045.5341796875, + "y": 950.5810546875, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A23-荻花洲左.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A23-荻花洲左.json new file mode 100644 index 00000000..ed27ef24 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A23-荻花洲左.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A23-荻花洲左", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873803098 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 730.36328125, + "y": 1062.19580078125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A24-绝云间下.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A24-绝云间下.json new file mode 100644 index 00000000..1da621fe --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A24-绝云间下.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A24-绝云间下", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873847026 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 1182.7060546875, + "y": 626.07177734375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A25-翠珏坡左上.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A25-翠珏坡左上.json new file mode 100644 index 00000000..9cfee5b8 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A25-翠珏坡左上.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A25-翠珏坡左上", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873931036 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 897.8369140625, + "y": 583.482421875, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A26-翠珏坡下.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A26-翠珏坡下.json new file mode 100644 index 00000000..d9a476fb --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A26-翠珏坡下.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A26-翠珏坡下", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750873976305 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 837.4560546875, + "y": 235.1640625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A27-禄华池右.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A27-禄华池右.json new file mode 100644 index 00000000..978870f1 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A27-禄华池右.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A27-禄华池右", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874024139 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 489.4306640625, + "y": 222.1767578125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A28-明蕴镇上.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A28-明蕴镇上.json new file mode 100644 index 00000000..7b042593 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A28-明蕴镇上.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A28-明蕴镇上", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874091402 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -188.544921875, + "y": 972.51220703125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A29-明蕴镇神像.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A29-明蕴镇神像.json new file mode 100644 index 00000000..1c998675 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A21-29/璃月-A29-明蕴镇神像.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "璃月-A29-明蕴镇神像", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874254592 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -255.0458984375, + "y": 630.11279296875, + "action_params": "" + }, + { + "id": 2, + "x": -256.5458984375, + "y": 622.85205078125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -261.6103515625, + "y": 618.7109375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -263.1142578125, + "y": 611.904296875, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A30-震雷连山密宫.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A30-震雷连山密宫.json new file mode 100644 index 00000000..393634c3 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A30-震雷连山密宫.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A30-震雷连山密宫", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874306953 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -416.125, + "y": 729.04833984375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A31-瑶光滩右.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A31-瑶光滩右.json new file mode 100644 index 00000000..884d3e43 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A31-瑶光滩右.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A31-瑶光滩右", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874343785 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -473.9794921875, + "y": 441.60693359375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A32-瑶光滩左上.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A32-瑶光滩左上.json new file mode 100644 index 00000000..0ac155bc --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A32-瑶光滩左上.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A32-瑶光滩左上", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874385072 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -57.447265625, + "y": 656.94384765625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A33-归离原.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A33-归离原.json new file mode 100644 index 00000000..7d31079f --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A33-归离原.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A33-归离原", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874419927 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 341.3388671875, + "y": 548.09619140625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A34-墟散人离之处.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A34-墟散人离之处.json new file mode 100644 index 00000000..c8e9a3e8 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A34-墟散人离之处.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A34-墟散人离之处", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874474154 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 173.9384765625, + "y": 389.595703125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A35-云来海.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A35-云来海.json new file mode 100644 index 00000000..24ea3189 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A35-云来海.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A35-云来海", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874515725 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 54.3046875, + "y": 139.3203125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A36-云来海下.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A36-云来海下.json new file mode 100644 index 00000000..0700614a --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A36-云来海下.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A36-云来海下", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874567649 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 25.9521484375, + "y": -112.228515625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A37-孤云阁.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A37-孤云阁.json new file mode 100644 index 00000000..2f1139b8 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A37-孤云阁.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A37-孤云阁", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "终点处小地图无效", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874685844 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": -657.2549999999992, + "y": -91.21900000000005, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A38-孤云凌霄之处.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A38-孤云凌霄之处.json new file mode 100644 index 00000000..a86c4a75 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A38-孤云凌霄之处.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A38-孤云凌霄之处", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750876063789 + }, + "positions": [ + { + "id": 1, + "x": -963.3369140625, + "y": -288.96044921875, + "action": "force_tp", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A39-死兆星.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A39-死兆星.json new file mode 100644 index 00000000..da7776aa --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A31-39/璃月-A39-死兆星.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A39-死兆星", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "终点处小地图无效", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874806999 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": -1146.4089999999997, + "y": -390.5169999999998, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A40-璃月港上.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A40-璃月港上.json new file mode 100644 index 00000000..f466bb24 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A40-璃月港上.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A40-璃月港上", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874861525 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 295.5751953125, + "y": -247.27783203125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A41-璃月港左.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A41-璃月港左.json new file mode 100644 index 00000000..9ac1dc85 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A41-璃月港左.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A41-璃月港左", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874896041 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 366.7841796875, + "y": -502.52587890625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A42-璃月港下.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A42-璃月港下.json new file mode 100644 index 00000000..a95eeeda --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A42-璃月港下.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A42-璃月港下", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750874972774 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 267.9326171875, + "y": -665.150390625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A43-云来海神像.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A43-云来海神像.json new file mode 100644 index 00000000..d12e32ff --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A43-云来海神像.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A43-云来海神像", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750875011030 + }, + "positions": [ + { + "id": 1, + "x": 259.4921875, + "y": -13.921875, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A44-天衡山上.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A44-天衡山上.json new file mode 100644 index 00000000..30d55261 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A44-天衡山上.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A44-天衡山上", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750875050777 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 611.7138671875, + "y": -284.662109375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A45-天衡山下.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A45-天衡山下.json new file mode 100644 index 00000000..0e24f335 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A45-天衡山下.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A45-天衡山下", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750875085879 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 508.0029296875, + "y": -630.46044921875, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A46-黄金屋.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A46-黄金屋.json new file mode 100644 index 00000000..8f76d7d5 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A46-黄金屋.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A46-黄金屋", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750875147196 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 254.4716796875, + "y": -904.6240234375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A47-群玉阁左.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A47-群玉阁左.json new file mode 100644 index 00000000..fbf173d1 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A47-群玉阁左.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A47-群玉阁左", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750875196060 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 710.7626953125, + "y": -772.42919921875, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A48-天衡山左.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A48-天衡山左.json new file mode 100644 index 00000000..b65646ad --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A48-天衡山左.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A48-天衡山左", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750875229611 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 828.234375, + "y": -583.36279296875, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A49-青墟浦.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A49-青墟浦.json new file mode 100644 index 00000000..3f8a384a --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A41-49/璃月-A49-青墟浦.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A49-青墟浦", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750875274823 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 1128.4697265625, + "y": -984.302734375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A51-59/璃月-A50-灵矩关.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A51-59/璃月-A50-灵矩关.json new file mode 100644 index 00000000..3eb63def --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A51-59/璃月-A50-灵矩关.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A50-灵矩关", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750875320276 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 1043.1611328125, + "y": -558.03662109375, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A51-59/璃月-A51-遁玉陵神像.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A51-59/璃月-A51-遁玉陵神像.json new file mode 100644 index 00000000..dc7b8083 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A51-59/璃月-A51-遁玉陵神像.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A51-遁玉陵神像", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750875361154 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 978.72265625, + "y": -353.5400390625, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-A51-59/璃月-A52-天遒谷下.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-A51-59/璃月-A52-天遒谷下.json new file mode 100644 index 00000000..b795ba82 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-A51-59/璃月-A52-天遒谷下.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "璃月-A52-天遒谷下", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750875403123 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 1268.4873046875, + "y": -64.1298828125, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B001.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B001.json new file mode 100644 index 00000000..687f82f6 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B001.json @@ -0,0 +1,97 @@ +{ + "info": { + "name": "璃月-B01", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751298878387 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 207.4755859375, + "y": 1573.0087890625, + "action_params": "" + }, + { + "id": 2, + "x": 195.421875, + "y": 1563.53564453125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 191.7216796875, + "y": 1560.53564453125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 188.88671875, + "y": 1558.38671875, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w),wait(1); 荧 attack,keypress(e);空 attack,keypress(e);", + "locked": false + }, + { + "id": 5, + "x": 188.88671875, + "y": 1558.38671875, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "wait(3),keypress(space),wait(0.1),keypress(space),wait(4)" + }, + { + "id": 6, + "x": 151.0537109375, + "y": 1527.0341796875, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 7, + "x": 139.6162109375, + "y": 1531.6689453125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": 117.0078125, + "y": 1501.20947265625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": 112.42578125, + "y": 1490.9873046875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B002.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B002.json new file mode 100644 index 00000000..1b5a35f5 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B002.json @@ -0,0 +1,89 @@ +{ + "info": { + "name": "璃月-B02", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751299446093 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": 111.3095703125, + "y": 1490.693359375, + "action_params": "" + }, + { + "id": 2, + "x": 89.244140625, + "y": 1490.42431640625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 49.373046875, + "y": 1531.79052734375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 25.1806640625, + "y": 1518.95361328125, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "", + "locked": false + }, + { + "id": 5, + "x": 25.1806640625, + "y": 1518.95361328125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 6, + "x": 21.892578125, + "y": 1544.38623046875, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 7, + "x": 21.892578125, + "y": 1544.38623046875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": 13.619140625, + "y": 1549.82861328125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B003.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B003.json new file mode 100644 index 00000000..de071a65 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B003.json @@ -0,0 +1,142 @@ +{ + "info": { + "name": "璃月-B03", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751383709464 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": 14.048828125, + "y": 1549.4560546875, + "action_params": "" + }, + { + "id": 2, + "x": 20.6435546875, + "y": 1566.98876953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 31.984375, + "y": 1568.3515625, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 55.4873046875, + "y": 1560.61572265625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 67.599609375, + "y": 1558.7861328125, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 57.689453125, + "y": 1595.3974609375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": 19.2314453125, + "y": 1584.916015625, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 8, + "x": 19.2314453125, + "y": 1584.916015625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": 11.4853515625, + "y": 1577.89306640625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": 6.123046875, + "y": 1577.4052734375, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -18.3583984375, + "y": 1554.607421875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 12, + "x": -28.220703125, + "y": 1540.9775390625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 13, + "x": -47.6142578125, + "y": 1543.83251953125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 14, + "x": -50.0634765625, + "y": 1540.375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B004.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B004.json new file mode 100644 index 00000000..40c02dee --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B004.json @@ -0,0 +1,69 @@ +{ + "info": { + "name": "璃月-B04", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751384068633 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -47.87109375, + "y": 1547.7080078125, + "action_params": "" + }, + { + "id": 2, + "x": -51.23046875, + "y": 1572.4921875, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -55.9033203125, + "y": 1600.00537109375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -56.4287109375, + "y": 1605.625, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -84.943359375, + "y": 1675.17236328125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -86.3994140625, + "y": 1680.35791015625, + "type": "target", + "move_mode": "jump", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B005.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B005.json new file mode 100644 index 00000000..67b2e77d --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B005.json @@ -0,0 +1,78 @@ +{ + "info": { + "name": "璃月-B05", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751384273398 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -86.556640625, + "y": 1680.87939453125, + "action_params": "" + }, + { + "id": 2, + "x": -69.73046875, + "y": 1675.19140625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -65.416015625, + "y": 1673.7080078125, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -15.2822265625, + "y": 1628.28271484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 0.791015625, + "y": 1639.802734375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 31.4951171875, + "y": 1645.15966796875, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 7, + "x": 43.48046875, + "y": 1672.12890625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B006.json b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B006.json new file mode 100644 index 00000000..97812073 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/璃月/璃月-B001-006-岩主/璃月-B006.json @@ -0,0 +1,79 @@ +{ + "info": { + "name": "璃月-B06", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751385409463 + }, + "positions": [ + { + "id": 1, + "x": 41.6279296875, + "y": 1671.39501953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 46.3583984375, + "y": 1711.91650390625, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 3, + "x": 55.7138671875, + "y": 1737.76123046875, + "type": "path", + "move_mode": "dash", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 4, + "x": 55.7138671875, + "y": 1737.76123046875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 78.0205078125, + "y": 1718.51611328125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 98.1103515625, + "y": 1713.17578125, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 7, + "x": 78.58984375, + "y": 1714.111328125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线01/纳塔-安饶之野-路线01-1.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线01/纳塔-安饶之野-路线01-1.json new file mode 100644 index 00000000..ee07f104 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线01/纳塔-安饶之野-路线01-1.json @@ -0,0 +1,69 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线01-1", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838384112 + }, + "positions": [ + { + "id": 1, + "x": 9282.5751953125, + "y": -2163.6015625, + "action": "force_tp", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": 9261.953125, + "y": -2197.5283203125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": 9248.12890625, + "y": -2236.96484375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": 9288.189453125, + "y": -2261.119140625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": 9311.0634765625, + "y": -2252.6416015625, + "action": "fight", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": 9311.0634765625, + "y": -2252.6416015625, + "action": "combat_script", + "move_mode": "dash", + "action_params": "wait(1)", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线02/纳塔-安饶之野-路线02-2.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线02/纳塔-安饶之野-路线02-2.json new file mode 100644 index 00000000..f15c1d97 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线02/纳塔-安饶之野-路线02-2.json @@ -0,0 +1,78 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线02-2", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838408428 + }, + "positions": [ + { + "id": 1, + "x": 9522.37890625, + "y": -2216.0185546875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": 9568.5, + "y": -2218.376953125, + "action": "", + "move_mode": "fly", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": 9628, + "y": -2225.4306640625, + "action": "fight", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": 9628, + "y": -2225.4306640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": 9635.365234375, + "y": -2245.7021484375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 6, + "x": 9642.2734375, + "y": -2249.501953125, + "action": "stop_flying", + "move_mode": "fly", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": 9642.2734375, + "y": -2249.501953125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "wait(1)", + "type": "orientation" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线03/纳塔-安饶之野-路线03-3.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线03/纳塔-安饶之野-路线03-3.json new file mode 100644 index 00000000..3eeb8470 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线03/纳塔-安饶之野-路线03-3.json @@ -0,0 +1,78 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线03-3", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838397938 + }, + "positions": [ + { + "id": 1, + "x": 9713.416015625, + "y": -2420.5322265625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": 9721.6083984375, + "y": -2476.18359375, + "action": "fight", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": 9721.6083984375, + "y": -2476.18359375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": 9737.748046875, + "y": -2491.02734375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": 9729.376953125, + "y": -2505.8134765625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": 9718.61328125, + "y": -2508.654296875, + "action": "fight", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": 9718.61328125, + "y": -2508.654296875, + "action": "combat_script", + "move_mode": "dash", + "action_params": "wait(1)", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线03/纳塔-安饶之野-路线03-4.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线03/纳塔-安饶之野-路线03-4.json new file mode 100644 index 00000000..ffe8ba0f --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线03/纳塔-安饶之野-路线03-4.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线03-4", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838423003 + }, + "positions": [ + { + "id": 1, + "x": 9719.0869140625, + "y": -2508.744140625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": 9750.43359375, + "y": -2508.611328125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": 9808.4755859375, + "y": -2510.8359375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": 9831.3037109375, + "y": -2505.9853515625, + "action": "combat_script", + "move_mode": "dash", + "action_params": "wait(1)", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线04/纳塔-安饶之野-路线04-5.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线04/纳塔-安饶之野-路线04-5.json new file mode 100644 index 00000000..bea5ab2c --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线04/纳塔-安饶之野-路线04-5.json @@ -0,0 +1,96 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线04-5", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838432593 + }, + "positions": [ + { + "id": 1, + "x": 9795.7568359375, + "y": -2665.5986328125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": 9751.83203125, + "y": -2697.76953125, + "action": "stop_flying", + "move_mode": "fly", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": 9745.4794921875, + "y": -2707.5126953125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": 9724.880859375, + "y": -2716.2294921875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": 9685.8837890625, + "y": -2715.498046875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": 9660.9306640625, + "y": -2708.6923828125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": 9647.953125, + "y": -2705.0068359375, + "action": "", + "move_mode": "jump", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": 9649.1201171875, + "y": -2674.4248046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": 9646.3056640625, + "y": -2674.7177734375, + "action": "combat_script", + "move_mode": "walk", + "action_params": "wait(1)", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线05/纳塔-安饶之野-路线05-6.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线05/纳塔-安饶之野-路线05-6.json new file mode 100644 index 00000000..9ccde3f0 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线05/纳塔-安饶之野-路线05-6.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线05-6", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "终点处小地图无效", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838442062 + }, + "positions": [ + { + "id": 1, + "x": 9643.806, + "y": -2805.074, + "action": "force_tp", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线06/纳塔-安饶之野-路线06-7.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线06/纳塔-安饶之野-路线06-7.json new file mode 100644 index 00000000..9e8ba6f8 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线06/纳塔-安饶之野-路线06-7.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线06-7", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838454232 + }, + "positions": [ + { + "id": 1, + "x": 9812.71875, + "y": -2852.5966796875, + "action": "force_tp", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": 9812.71875, + "y": -2852.5966796875, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "orientation" + }, + { + "id": 3, + "x": 9812.71875, + "y": -2852.5966796875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": 9847.203125, + "y": -2860.099609375, + "action": "combat_script", + "move_mode": "dash", + "action_params": "wait(1)", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线07/纳塔-安饶之野-路线07-8.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线07/纳塔-安饶之野-路线07-8.json new file mode 100644 index 00000000..0c94e838 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线07/纳塔-安饶之野-路线07-8.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线07-8", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838463348 + }, + "positions": [ + { + "id": 1, + "x": 9923.705078125, + "y": -3277.525390625, + "action": "force_tp", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线08/纳塔-安饶之野-路线08-9.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线08/纳塔-安饶之野-路线08-9.json new file mode 100644 index 00000000..38584dd0 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线08/纳塔-安饶之野-路线08-9.json @@ -0,0 +1,87 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线08-9", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838472208 + }, + "positions": [ + { + "id": 1, + "x": 10025.986328125, + "y": -2615.8779296875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": 10088.765625, + "y": -2648.166015625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": 10098.1396484375, + "y": -2663.869140625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": 10116.470703125, + "y": -2683.208984375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": 10149.9208984375, + "y": -2699.8564453125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": 10165.25, + "y": -2684.9326171875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": 10175.283203125, + "y": -2684.984375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "target" + }, + { + "id": 8, + "x": 10173.279296875, + "y": -2688.33203125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线09/纳塔-安饶之野-路线09-10.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线09/纳塔-安饶之野-路线09-10.json new file mode 100644 index 00000000..523cbd40 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线09/纳塔-安饶之野-路线09-10.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线09-10", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838483008 + }, + "positions": [ + { + "id": 1, + "x": 10260.708984375, + "y": -2538.646484375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": 10257.94140625, + "y": -2526.189453125, + "action": "", + "move_mode": "run", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": 10249.7822265625, + "y": -2477.9423828125, + "action": "stop_flying", + "move_mode": "fly", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": 10249.7822265625, + "y": -2477.9423828125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "wait(1)", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线10/纳塔-安饶之野-路线10-11.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线10/纳塔-安饶之野-路线10-11.json new file mode 100644 index 00000000..2415bcfb --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线10/纳塔-安饶之野-路线10-11.json @@ -0,0 +1,42 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线10-11", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838322920 + }, + "positions": [ + { + "id": 1, + "x": 10595.28515625, + "y": -2654.416015625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": 10584.04296875, + "y": -2667.5771484375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": 10586.75390625, + "y": -2668.8828125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线11/纳塔-安饶之野-路线11-12.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线11/纳塔-安饶之野-路线11-12.json new file mode 100644 index 00000000..45123059 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线11/纳塔-安饶之野-路线11-12.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线11-12", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750838277639 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 10925.71875, + "y": -2363.615234375, + "action_params": "" + }, + { + "id": 2, + "x": 10930.36328125, + "y": -2365.5986328125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线12/纳塔-安饶之野-路线12-13.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线12/纳塔-安饶之野-路线12-13.json new file mode 100644 index 00000000..e03b8ba7 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线12/纳塔-安饶之野-路线12-13.json @@ -0,0 +1,61 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线12-13", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750839061292 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 10931.4912109375, + "y": -2366.181640625, + "action_params": "" + }, + { + "id": 2, + "x": 10889.5625, + "y": -2369.1748046875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 10842.41015625, + "y": -2364.634765625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 10821.03125, + "y": -2351.404296875, + "type": "path", + "move_mode": "dash", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 5, + "x": 10821.03125, + "y": -2351.404296875, + "type": "target", + "move_mode": "dash", + "action": "combat_script", + "action_params": "wait(1)" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线13/纳塔-安饶之野-路线13-14.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线13/纳塔-安饶之野-路线13-14.json new file mode 100644 index 00000000..1e8566ec --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线13/纳塔-安饶之野-路线13-14.json @@ -0,0 +1,42 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线13-14", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750839182092 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 10595.3359375, + "y": -2654.41796875, + "action_params": "" + }, + { + "id": 2, + "x": 10630.1796875, + "y": -2674.85546875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 10652.982421875, + "y": -2670.3134765625, + "type": "target", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线14/纳塔-安饶之野-路线14-15.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线14/纳塔-安饶之野-路线14-15.json new file mode 100644 index 00000000..88d3fcd4 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线14/纳塔-安饶之野-路线14-15.json @@ -0,0 +1,61 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线14-15", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750839410252 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 10794.7314453125, + "y": -3069.646484375, + "action_params": "" + }, + { + "id": 2, + "x": 10814.40234375, + "y": -3052.806640625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 10825.357421875, + "y": -3021.28125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 10856.3291015625, + "y": -2977.8701171875, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "", + "locked": false + }, + { + "id": 5, + "x": 10856.3291015625, + "y": -2977.8701171875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线15/纳塔-安饶之野-路线15-16.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线15/纳塔-安饶之野-路线15-16.json new file mode 100644 index 00000000..e0e28fb6 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线15/纳塔-安饶之野-路线15-16.json @@ -0,0 +1,97 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线15-16", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750840114987 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 10794.658203125, + "y": -3069.640625, + "action_params": "" + }, + { + "id": 2, + "x": 10819.46875, + "y": -3102.8291015625, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 3, + "x": 10827.609375, + "y": -3114.966796875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 10851.60546875, + "y": -3151.5654296875, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 5, + "x": 10887.3837890625, + "y": -3224.0732421875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 10897.701171875, + "y": -3265.5341796875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": 10928.34765625, + "y": -3290.66796875, + "type": "path", + "move_mode": "dash", + "action": "fight", + "action_params": "" + }, + { + "id": 8, + "x": 10939.634765625, + "y": -3294.998046875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": 10948.90625, + "y": -3258.2421875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "", + "locked": false + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线16/纳塔-安饶之野-路线16-17.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线16/纳塔-安饶之野-路线16-17.json new file mode 100644 index 00000000..7c3f2b91 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线16/纳塔-安饶之野-路线16-17.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线16-17", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750840318726 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 10548.1015625, + "y": -3373.0888671875, + "action_params": "" + }, + { + "id": 2, + "x": 10600.4453125, + "y": -3361.03515625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 10627.861328125, + "y": -3380.3251953125, + "type": "path", + "move_mode": "dash", + "action": "fight", + "action_params": "" + }, + { + "id": 4, + "x": 10619.3203125, + "y": -3373.1708984375, + "type": "target", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线17/纳塔-安饶之野-路线17-18.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线17/纳塔-安饶之野-路线17-18.json new file mode 100644 index 00000000..ef16651a --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线17/纳塔-安饶之野-路线17-18.json @@ -0,0 +1,106 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线17-18", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750840643599 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 10363.783203125, + "y": -3315.8828125, + "action_params": "" + }, + { + "id": 2, + "x": 10409.455078125, + "y": -3299.724609375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 10397.8291015625, + "y": -3290.2626953125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 10409.2578125, + "y": -3275.28515625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 10455.6455078125, + "y": -3265.5888671875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 10463.12890625, + "y": -3269.6083984375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": 10467.06640625, + "y": -3286.5673828125, + "type": "path", + "move_mode": "dash", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 8, + "x": 10467.06640625, + "y": -3286.5673828125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": 10471.9033203125, + "y": -3292.2744140625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": 10484.4375, + "y": -3265.46484375, + "type": "target", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线18/纳塔-安饶之野-路线18-19.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线18/纳塔-安饶之野-路线18-19.json new file mode 100644 index 00000000..87800525 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线18/纳塔-安饶之野-路线18-19.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线18-19", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "终点处小地图无效", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750841209901 + }, + "positions": [ + { + "id": 1, + "x": 10184.7265625, + "y": -3017.64453125, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 10204.8076171875, + "y": -3003.544921875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 10208.6904296875, + "y": -2984.5947265625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 10207.80796875, + "y": -2981.384765625, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "w(4.5)" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线19/纳塔-安饶之野-路线19-20.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线19/纳塔-安饶之野-路线19-20.json new file mode 100644 index 00000000..cae22849 --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线19/纳塔-安饶之野-路线19-20.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线19-20", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750841321680 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 10263.8271484375, + "y": -2711.673828125, + "action_params": "" + }, + { + "id": 2, + "x": 10256.30859375, + "y": -2717.0615234375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 10251.3232421875, + "y": -2737.1259765625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 10237.9521484375, + "y": -2759.3583984375, + "type": "target", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线20/纳塔-安饶之野-路线20-21.json b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线20/纳塔-安饶之野-路线20-21.json new file mode 100644 index 00000000..2245a05a --- /dev/null +++ b/repo/js/TeyvatScanner/pathing/纳塔/纳塔-安饶之野-路线20/纳塔-安饶之野-路线20-21.json @@ -0,0 +1,24 @@ +{ + "info": { + "name": "纳塔-安饶之野-路线20-21", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "终点处小地图无效", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750841518273 + }, + "positions": [ + { + "id": 1, + "action": "force_tp", + "move_mode": "walk", + "type": "teleport", + "x": 10570.958, + "y": -3133.4969999999994, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/TeyvatScanner/records/占位.json b/repo/js/TeyvatScanner/records/占位.json new file mode 100644 index 00000000..e69de29b diff --git a/repo/js/TeyvatScanner/settings.json b/repo/js/TeyvatScanner/settings.json new file mode 100644 index 00000000..4bb5da33 --- /dev/null +++ b/repo/js/TeyvatScanner/settings.json @@ -0,0 +1,58 @@ +[ + { + "name": "operationMode", + "type": "select", + "label": "操作模式", + "options": [ + "寻找宝藏位置并记录", + "导航至宝藏地点" + ], + "default": "寻找宝藏位置并记录" + }, + { + "name": "partyName", + "type": "input-text", + "label": "运行使用的队伍名称,最好有战斗能力" + }, + { + "name": "accountName", + "type": "input-text", + "label": "账户名称,用于多用户运行时区分不同账户\n单用户时无需修改", + "default": "默认账户" + }, + { + "name": "timeRule", + "type": "input-text", + "label": "输入不运行的时间或时间段的小时,以本地时间为准\n将提前10分钟结束路线,并等待到对应时间\n允许填入时间如4表示4点不运行,或4-6表示4点到6点都不运行\n允许多项,由中文逗号分隔", + }, + { + "name": "disableMondstadt", + "type": "checkbox", + "label": "是否禁用蒙德路线" + }, + { + "name": "disableLiyue", + "type": "checkbox", + "label": "是否禁用璃月路线" + }, + { + "name": "disableInazuma", + "type": "checkbox", + "label": "是否禁用稻妻路线" + }, + { + "name": "disableSumeru", + "type": "checkbox", + "label": "是否禁用须弥路线" + }, + { + "name": "disableFontaine", + "type": "checkbox", + "label": "是否禁用枫丹路线" + }, + { + "name": "disableNatlan", + "type": "checkbox", + "label": "是否禁用纳塔路线" + } +] \ No newline at end of file diff --git a/repo/js/切换主角元素/assets/switchElement/岩.json b/repo/js/切换主角元素/assets/switchElement/岩.json new file mode 100644 index 00000000..41d997db --- /dev/null +++ b/repo/js/切换主角元素/assets/switchElement/岩.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "岩", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751302360644 + }, + "positions": [ + { + "id": 1, + "x": 978.720703125, + "y": -353.53662109375, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 984.4345703125, + "y": -351.3369140625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 985.9130859375, + "y": -348.8408203125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 986.513671875, + "y": -344.76611328125, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/切换主角元素/assets/switchElement/水.json b/repo/js/切换主角元素/assets/switchElement/水.json new file mode 100644 index 00000000..bb90fee0 --- /dev/null +++ b/repo/js/切换主角元素/assets/switchElement/水.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "水", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751302729676 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 4610.498046875, + "y": 3600.668701171875, + "action_params": "" + }, + { + "id": 2, + "x": 4631.1494140625, + "y": 3598.541259765625, + "type": "path", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/切换主角元素/assets/switchElement/火.json b/repo/js/切换主角元素/assets/switchElement/火.json new file mode 100644 index 00000000..c1d5c081 --- /dev/null +++ b/repo/js/切换主角元素/assets/switchElement/火.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "火", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751302846273 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 8597.341796875, + "y": -1928.5986328125, + "action_params": "" + }, + { + "id": 2, + "x": 8597.623046875, + "y": -1932.87451171875, + "type": "path", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/切换主角元素/assets/switchElement/草.json b/repo/js/切换主角元素/assets/switchElement/草.json new file mode 100644 index 00000000..ef1afce8 --- /dev/null +++ b/repo/js/切换主角元素/assets/switchElement/草.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "草", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751302613795 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": 2297.580078125, + "y": -824.5205078125, + "action_params": "" + }, + { + "id": 2, + "x": 2295.8798828125, + "y": -825.7041015625, + "type": "path", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/切换主角元素/assets/switchElement/雷.json b/repo/js/切换主角元素/assets/switchElement/雷.json new file mode 100644 index 00000000..daa8111c --- /dev/null +++ b/repo/js/切换主角元素/assets/switchElement/雷.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "雷", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751302521509 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -3233.314453125, + "y": -3534.126953125, + "action_params": "" + }, + { + "id": 2, + "x": -3237.7265625, + "y": -3533.8779296875, + "type": "path", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/切换主角元素/assets/switchElement/风.json b/repo/js/切换主角元素/assets/switchElement/风.json new file mode 100644 index 00000000..a7f33708 --- /dev/null +++ b/repo/js/切换主角元素/assets/switchElement/风.json @@ -0,0 +1,42 @@ +{ + "info": { + "name": "风主", + "type": "collect", + "author": "mno", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751300321221 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -1266.748046875, + "y": 1933.923828125, + "action_params": "" + }, + { + "id": 2, + "x": -1266.5419921875, + "y": 1929.845703125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1265.130859375, + "y": 1924.84375, + "type": "orientation", + "move_mode": "walk", + "action": "combat_script", + "action_params": "keypress(w); 荧 attack,wait(2),keypress(f); 空 attack,wait(2),keypress(f);" + } + ] +} \ No newline at end of file diff --git a/repo/js/切换主角元素/main.js b/repo/js/切换主角元素/main.js new file mode 100644 index 00000000..792538cc --- /dev/null +++ b/repo/js/切换主角元素/main.js @@ -0,0 +1,39 @@ +(async function () { + //处理自定义配置 + const partyName = settings.partyName || ""; + const element = settings.element || "风"; + const fullPath = `assets/switchElement/${element}.json`; + //切换到用户指定的含有主角的配队 + await switchPartyIfNeeded(partyName); + //导航至对应的七天神像 + await pathingScript.runFile(fullPath); + //点击与某元素共鸣 + log.info(`旅行者正在汲取${element}元素力`); + for (let i = 0; i < 5; i++) { + await click(1400, 675); + await sleep(500); + } + //传送离开防止影响后续 + await genshin.returnMainUi(); + await genshin.tpToStatueOfTheSeven(); +})(); + +//切换队伍 +async function switchPartyIfNeeded(partyName) { + if (!partyName) { + await genshin.returnMainUi(); + return; + } + try { + log.info("正在尝试切换至" + partyName); + if (!await genshin.switchParty(partyName)) { + log.info("切换队伍失败,前往七天神像重试"); + await genshin.tpToStatueOfTheSeven(); + await genshin.switchParty(partyName); + } + } catch { + log.error("队伍切换失败,可能处于联机模式或其他不可切换状态"); + notification.error(`队伍切换失败,可能处于联机模式或其他不可切换状态`); + await genshin.returnMainUi(); + } +} \ No newline at end of file diff --git a/repo/js/切换主角元素/manifest.json b/repo/js/切换主角元素/manifest.json new file mode 100644 index 00000000..2812c405 --- /dev/null +++ b/repo/js/切换主角元素/manifest.json @@ -0,0 +1,13 @@ +{ + "manifest_version": 1, + "name": "切换主角元素", + "version": "1.0", + "description": "", + "authors": [ + { + "name": "mno" + } + ], + "settings_ui": "settings.json", + "main": "main.js" +} diff --git a/repo/js/切换主角元素/settings.json b/repo/js/切换主角元素/settings.json new file mode 100644 index 00000000..9fdd4293 --- /dev/null +++ b/repo/js/切换主角元素/settings.json @@ -0,0 +1,21 @@ +[ + { + "name": "element", + "type": "select", + "label": "要切换的元素", + "options": [ + "风", + "岩", + "雷", + "草", + "水", + "火" + ], + "default": "不卡时间,ab交替运行" + }, + { + "name": "partyName", + "type": "input-text", + "label": "含有主角的队伍名称" + } +] \ No newline at end of file