菈乌玛兽肉采集 (#2187)

* 新增菈乌玛兽肉

* 新增菈乌玛兽肉

* 新增菈乌玛兽肉

* Update repo/js/DeerGameMeat/main.js

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* 新增菈乌玛兽肉

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
躁动的氨气
2025-10-19 21:42:09 +08:00
committed by GitHub
parent efd099ae1f
commit fd025489cf
14 changed files with 1911 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
# 🦌菈乌玛兽肉采集
## 📖 脚本说明
本脚本可利用菈乌玛能够吸引挪德卡莱小动物,并让獾给自己挖肉的特性,榨干挪德卡莱生态的每一份养料。
本脚本与纯地图追踪的版本的主要区别为自动根据天气,等待雨天结束,并能够直接判断你队伍里是否有菈乌玛🦌。
兽肉资源每天的刷新时间为击杀后12小时如有需要可自行规划采集
## 🚀 运行效率
- **理论收获**11分钟可收获最多83个兽肉
- **实际收获**常态下拾取约65个兽肉
## ⚠️ 运行须知(必看)
1. **角色要求**:运行前请确保队伍中有「菈乌玛」与「枫原万叶」,并在`调度器`设置中将`菈乌玛`设置为行走位
![设置](assets/settings.png)
2. **路线冲突**:运行前请确保今天没有跑过`虹滴晶`路线和`霜夜灵嗣`路线,这些路线与兽肉路线存在重叠
3. **传送点解锁**苔古荒原中间的传送点处有一个需要寻找10个机器人才能解锁的飞高高装置请解锁它
4. **游戏窗口**请确保游戏窗口为1920x1080分辨率以减少问题发生的概率2560暂时没发现问题
## ⚙️ 设置选项
### 启用潮湿状态检测
- **功能**:自动检测游戏中的潮湿状态(下雨等)
- **作用**:潮湿状态下小动物会消失,脚本会自动调整时间到非潮湿状态
- **建议**:保持启用状态
### 最大等待次数
- **功能**:设置潮湿状态检测的最大尝试次数
- **默认值**5次
### 运行高危路线
- **功能**:是否运行包含霜夜灵嗣的容易暴毙路线
- **说明**:高危路线物资丰厚,可选择性关闭
- **默认**:启用
### 队伍名称
- **功能**:设置要切换到的队伍名称
- **说明**:脚本开始时会自动切换到指定队伍,务必关闭`调度器`设置中的`切换队伍`

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@@ -0,0 +1,378 @@
(async function () {
setGameMetrics(1920, 1080, 1);
// 读取用户设置
const enableDampDetection = settings.enableDampDetection === true; // 默认启用
const maxWaitAttempts = parseInt(settings.maxWaitAttempts) || 5; // 转换数字输入
const enableHighRiskRoutes = settings.enableHighRiskRoutes === true; // 默认启用高危路线
const partyName = settings.partyName || ""; // 队伍名称
// 检测当前队伍角色
function checkRequiredCharacters() {
const avatars = getAvatars();
let hasLayla = false;
let hasKazuha = false;
if (avatars && avatars.length > 1) {
for (let i = 0; i < avatars.length; i++) {
if (avatars[i] === "菈乌玛") hasLayla = true;
if (avatars[i] === "枫原万叶") hasKazuha = true;
}
if (!hasLayla || !hasKazuha) {
log.error(`队伍角色检查失败 - 菈乌玛:${hasLayla ? '✓' : '✗'} 枫原万叶:${hasKazuha ? '✓' : '✗'}`);
return false;
}
return true;
}
return false;
}
// 高危路线数组目前只有07路线
const highRiskRoutes = ["07"];
log.info(`兽肉路线脚本启动 - 潮湿检测:${enableDampDetection ? '启用' : '禁用'} 高危路线:${enableHighRiskRoutes ? '启用' : '禁用'} 队伍:${partyName || '未设置'}`);
// 切换队伍函数
async function switchPartyIfNeeded(partyName) {
if (!partyName) {
await genshin.returnMainUi();
return;
}
try {
partyName = partyName.trim();
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();
}
}
// 读取文件夹中的所有文件
async function readFolder(folderPath, onlyJson) {
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 {
if (filePath.endsWith(".js")) {
//跳过js结尾的文件
continue;
}
// 如果是文件,根据 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
});
}
} else {
const fileName = filePath.split('\\').pop(); // 提取文件名
const folderPathArray = filePath.split('\\').slice(0, -1); // 提取文件夹路径数组
files.push({
fullPath: filePath,
fileName: fileName,
folderPathArray: folderPathArray
});
}
}
}
// 将子文件夹路径添加到堆栈中
for (let i = subFolders.length - 1; i >= 0; i--) {
folderStack.push(subFolders[i]);
}
}
return files;
}
// 动态获取兽肉路线文件
async function getMeatRoutes() {
try {
// 使用与锄地一条龙相同的方式读取路径文件
const pathsDir = "paths";
const allRoutes = [];
const routeOptions = [];
// 读取路径文件夹中的所有文件
const pathings = await readFolder(pathsDir, true);
for (const pathing of pathings) {
const fullPath = pathing.fullPath;
const fileName = pathing.fileName;
allRoutes.push(fullPath);
// 提取路线ID和名称用于选项
const routeId = fileName.match(/^(\d+)/)?.[1];
if (routeId) {
const routeName = fileName.replace('.json', '');
routeOptions.push({
value: routeId,
label: routeName
});
}
}
return allRoutes;
} catch (err) {
log.error("获取路线文件时出错:", err);
return [];
}
}
// 根据设置选择要运行的路线
const allRoutes = await getMeatRoutes();
let meatRoutes = allRoutes.filter(route => {
// 从路径中提取路线ID假设文件名以数字开头
const fileName = route.split('\\').pop(); // 使用反斜杠分割因为Windows路径
const routeId = fileName.match(/^(\d+)/)?.[1];
if (!routeId) return false;
// 如果是高危路线,需要检查是否启用高危路线
if (highRiskRoutes.includes(routeId)) {
return enableHighRiskRoutes;
}
// 非高危路线默认运行
return true;
});
// 检查是否找到路线文件
if (meatRoutes.length === 0) {
log.error("未找到任何路线文件请确保paths目录下存在路线文件。");
return;
}
log.info(`将运行 ${meatRoutes.length} 条路线`);
// 检测潮湿状态
async function checkDampStatus() {
try {
// 读取模板图像
const templateImage = file.ReadImageMatSync("assets/damp.png");
if (!templateImage) {
log.warn("无法读取潮湿状态模板图像");
return false;
}
// 创建模板匹配对象
const dampRo = RecognitionObject.TemplateMatch(templateImage, 700, 880, 260, 200);
dampRo.threshold = 0.8;
dampRo.InitTemplate();
const gameRegion = captureGameRegion();
// 执行模板匹配
const result = gameRegion.find(dampRo);
gameRegion.dispose();
return result.isExist();
} catch (err) {
log.error("检测潮湿状态时出错:", err.message || err);
return false;
}
}
// 设置游戏时间
async function setTime(hour, minute) {
setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI
try {
//拖动鼠标
async function moveMouseSmoothly(x1, y1, x2, y2) {
const deltaX = x2 - x1;
const deltaY = y2 - y1;
const steps = Math.max(Math.abs(deltaX), Math.abs(deltaY));
const stepX = deltaX / steps;
const stepY = deltaY / steps;
await moveMouseTo(x1, y1);
await leftButtonDown();
for (let i = 1; i <= steps; i++) {
const newX = x1 + stepX * i;
const newY = y1 + stepY * i;
const validX = Math.round(newX);
const validY = Math.round(newY);
await moveMouseTo(validX, validY);
await sleep(10);
}
await leftButtonUp();
}
//设定时间
async function settime(time) {
const centerX = 1441;
const centerY = 501;
const radius = 100;
let angle;
angle = (90 + time * 15) % 360;
angle = angle >= 0 ? angle : 360 + angle;
const angle1 = (angle + 90) % 360;
const angle2 = (angle + 180) % 360;
const angle3 = (angle + 270) % 360;
const radians = angle * (Math.PI / 180);
const radians1 = angle1 * (Math.PI / 180);
const radians2 = angle2 * (Math.PI / 180);
const radians3 = angle3 * (Math.PI / 180);
const x = centerX + radius * Math.cos(radians);
const y = centerY + radius * Math.sin(radians);
const x1 = centerX + radius * Math.cos(radians1);
const y1 = centerY + radius * Math.sin(radians1);
const x2 = centerX + radius * Math.cos(radians2);
const y2 = centerY + radius * Math.sin(radians2);
const x3 = centerX + radius * Math.cos(radians3);
const y3 = centerY + radius * Math.sin(radians3);
// 输出最终的坐标
await sleep(2000);
await moveMouseSmoothly(centerX,centerY, x1,y1);
await sleep(2000);
await moveMouseSmoothly(centerX,centerY, x2,y2);
await sleep(2000);
await moveMouseSmoothly(centerX,centerY, x3,y3);
await sleep(2000);
await moveMouseSmoothly(centerX,centerY, x,y);
}
//设置时间
log.info('设置时间到6点');
await sleep(1000)
await keyPress("Escape");
await sleep(1000);
await click(50,700);
await sleep(2000);
await settime(6)
await sleep(3000);
await click(1500,1000);//确认
await sleep(20000);
await keyPress("Escape");
await sleep(2000);
await keyPress("Escape");
await sleep(2000);
} finally {
// 恢复为脚本既定基准
setGameMetrics(1920, 1080, 1);
}
}
// 循环检测并调整潮湿状态
async function handleDampStatus() {
let attempts = 0;
while (attempts < maxWaitAttempts) {
if (await checkDampStatus()) {
log.info(`检测到潮湿状态,第${attempts + 1}次调整时间`);
await setTime(6, 0);
await sleep(3000); // 等待调时间生效
} else {
log.info("潮湿状态已解除");
return true;
}
attempts++;
}
log.warn("潮湿状态调整超时");
return false;
}
// 传送到路线第一个点位
async function teleportToFirstPoint(routePath) {
try {
// 读取路线文件获取第一个点位坐标
const routeContent = file.readTextSync(routePath);
const routeData = JSON.parse(routeContent);
if (!routeData || !routeData.positions || routeData.positions.length === 0) {
log.error(`路线文件格式错误: ${routePath}`);
return false;
}
const firstPoint = routeData.positions[0];
if (typeof firstPoint.x !== "number" || typeof firstPoint.y !== "number"
|| Number.isNaN(firstPoint.x) || Number.isNaN(firstPoint.y)) {
log.error(`坐标无效: ${routePath}`);
return false;
}
// 使用传送功能传送到第一个点位
await genshin.tp(firstPoint.x, firstPoint.y);
await sleep(2000); // 等待传送完成
return true;
} catch (err) {
log.error(`传送失败 ${routePath}:`, err);
return false;
}
}
// 运行单条兽肉路线
async function runMeatRoute(routePath) {
try {
// 运行路径追踪脚本
await pathingScript.runFile(routePath);
} catch (err) {
log.error(`路线运行失败 ${routePath}:`, err);
}
}
// 主执行逻辑
// 设置游戏分辨率和DPI缩放
setGameMetrics(1920, 1080, 1);
// 切换队伍
await switchPartyIfNeeded(partyName);
// 检查队伍角色
if (!checkRequiredCharacters()) {
log.error("队伍角色检查失败,脚本终止");
return;
}
// 开启自动拾取
dispatcher.addTimer(new RealtimeTimer("AutoPick"));
for (let i = 0; i < meatRoutes.length; i++) {
const route = meatRoutes[i];
log.info(`路线 ${i + 1}/${meatRoutes.length}: ${route.split('\\').pop()}`);
// 先传送到路线的第一个点位
const teleportSuccess = await teleportToFirstPoint(route);
if (!teleportSuccess) {
log.error(`传送失败,跳过路线`);
continue;
}
// 检测潮湿状态
if (enableDampDetection) {
if (await checkDampStatus()) {
await handleDampStatus();
}
}
// 运行路线
await runMeatRoute(route);
// 路线间等待
if (i < meatRoutes.length - 1) {
await sleep(2000);
}
}
log.info("所有路线运行完成");
})();

View File

@@ -0,0 +1,19 @@
{
"manifest_version": 1,
"name": "菈乌玛兽肉",
"version": "1.0",
"bgi_version": "0.52.0",
"description": "菈乌玛兽肉路线脚本,支持潮湿状态检测和自动调时间功能",
"authors": [
{
"name": "zaodonganqi",
"link": "https://github.com/zaodonganqi"
}
],
"settings_ui": "settings.json",
"main": "main.js",
"saved_files": [
"data/*.txt",
"user_data.txt"
]
}

View File

@@ -0,0 +1,51 @@
{
"info": {
"authors": [
{
"links": "https://github.com/zaodonganqi",
"name": "躁动的氨气"
}
],
"bgi_version": "0.52.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1760449172232,
"map_match_method": "",
"map_name": "Teyvat",
"name": "01-苔骨荒原右下-8个",
"tags": [
"菈乌玛"
],
"type": "collect",
"version": "1.1"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": 9222.5312,
"y": 1899.25
},
{
"action": "combat_script",
"action_params": "枫原万叶 wait(6),e(hold),wait(0.2),attack",
"id": 2,
"move_mode": "swim",
"type": "target",
"x": 9222.125,
"y": 1899.2188
},
{
"action": "pick_around",
"action_params": "",
"id": 3,
"move_mode": "swim",
"type": "target",
"x": 9222.125,
"y": 1899.2188
}
]
}

View File

@@ -0,0 +1,358 @@
{
"info": {
"authors": [
{
"links": "https://github.com/zaodonganqi",
"name": "躁动的氨气"
}
],
"bgi_version": "0.52.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1760449187836,
"map_match_method": "",
"map_name": "Teyvat",
"name": "02-蓝珀胡下方峡谷-21个",
"tags": [
"菈乌玛"
],
"type": "collect",
"version": "1.2"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": 9224.7549,
"y": 2246.7224
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "dash",
"type": "path",
"x": 9273.1338,
"y": 2226.5007
},
{
"action": "",
"action_params": "",
"id": 3,
"move_mode": "fly",
"type": "path",
"x": 9272.7402,
"y": 2224.9041
},
{
"action": "",
"action_params": "",
"id": 4,
"move_mode": "fly",
"type": "target",
"x": 9265.4463,
"y": 2203.5005
},
{
"action": "stop_flying",
"action_params": "1000",
"id": 5,
"move_mode": "fly",
"type": "target",
"x": 9261.75,
"y": 2185.25
},
{
"action": "",
"action_params": "",
"id": 6,
"move_mode": "dash",
"type": "path",
"x": 9212.6133,
"y": 2158.48
},
{
"action": "",
"action_params": "",
"id": 7,
"move_mode": "walk",
"type": "path",
"x": 9209.7461,
"y": 2134.2407
},
{
"action": "combat_script",
"action_params": "枫原万叶 wait(5),e(hold),wait(0.2),attack",
"id": 8,
"move_mode": "walk",
"type": "target",
"x": 9210.0625,
"y": 2130.875
},
{
"action": "",
"action_params": "",
"id": 9,
"move_mode": "swim",
"type": "target",
"x": 9205.0625,
"y": 2134.75
},
{
"action": "",
"id": 10,
"move_mode": "swim",
"type": "target",
"x": 9213.375,
"y": 2129.8125
},
{
"action": "",
"action_params": "",
"id": 11,
"move_mode": "swim",
"type": "target",
"x": 9206.25,
"y": 2136.5625
},
{
"action": "",
"id": 12,
"move_mode": "swim",
"type": "target",
"x": 9215.25,
"y": 2132.8125
},
{
"action": "",
"action_params": "",
"id": 13,
"move_mode": "swim",
"type": "target",
"x": 9207.375,
"y": 2138.8125
},
{
"action": "",
"action_params": "",
"id": 14,
"move_mode": "swim",
"type": "target",
"x": 9214.25,
"y": 2131.0625
},
{
"action": "",
"action_params": "",
"id": 15,
"move_mode": "swim",
"type": "target",
"x": 9211.875,
"y": 2127.875
},
{
"action": "",
"id": 16,
"move_mode": "swim",
"type": "target",
"x": 9204.25,
"y": 2133.375
},
{
"action": "",
"id": 17,
"move_mode": "swim",
"type": "target",
"x": 9210.9375,
"y": 2125.9375
},
{
"action": "",
"id": 18,
"move_mode": "swim",
"type": "target",
"x": 9203.625,
"y": 2131.4375
},
{
"action": "",
"id": 19,
"move_mode": "walk",
"type": "path",
"x": 9212.3438,
"y": 2137.6875
},
{
"action": "",
"action_params": "",
"id": 20,
"move_mode": "dash",
"type": "path",
"x": 9190.8281,
"y": 2094.9775
},
{
"action": "",
"action_params": "",
"id": 21,
"move_mode": "dash",
"type": "path",
"x": 9183.0,
"y": 2078.75
},
{
"action": "",
"action_params": "",
"id": 22,
"move_mode": "dash",
"type": "path",
"x": 9166.8223,
"y": 2071.209
},
{
"action": "",
"action_params": "",
"id": 23,
"move_mode": "walk",
"type": "target",
"x": 9151.5625,
"y": 2075.8125
},
{
"action": "",
"action_params": "",
"id": 24,
"move_mode": "dash",
"type": "path",
"x": 9128.7354,
"y": 2088.4778
},
{
"action": "combat_script",
"action_params": "wait(3)",
"id": 25,
"move_mode": "walk",
"type": "target",
"x": 9105.0,
"y": 2082.0
},
{
"action": "combat_script",
"action_params": "枫原万叶 wait(6),e(hold),wait(0.2),attack",
"id": 26,
"move_mode": "walk",
"type": "path",
"x": 9072.0625,
"y": 2096.4375
},
{
"action": "",
"id": 27,
"move_mode": "swim",
"type": "target",
"x": 9071.875,
"y": 2098.5
},
{
"action": "",
"action_params": "",
"id": 28,
"move_mode": "swim",
"type": "path",
"x": 9069.3125,
"y": 2087.9375
},
{
"action": "",
"id": 29,
"move_mode": "swim",
"type": "path",
"x": 9073.5625,
"y": 2098.4375
},
{
"action": "",
"id": 30,
"move_mode": "swim",
"type": "path",
"x": 9071.6875,
"y": 2087.1875
},
{
"action": "",
"id": 31,
"move_mode": "swim",
"type": "path",
"x": 9074.875,
"y": 2098.125
},
{
"action": "",
"id": 32,
"move_mode": "swim",
"type": "path",
"x": 9073.1875,
"y": 2086.375
},
{
"action": "",
"id": 33,
"move_mode": "swim",
"type": "path",
"x": 9077.25,
"y": 2099.625
},
{
"action": "",
"id": 34,
"move_mode": "swim",
"type": "path",
"x": 9074.9375,
"y": 2085.5
},
{
"action": "",
"id": 35,
"move_mode": "swim",
"type": "path",
"x": 9079.0,
"y": 2098.5625
},
{
"action": "",
"id": 36,
"move_mode": "swim",
"type": "path",
"x": 9069.0625,
"y": 2092.25
},
{
"action": "",
"id": 37,
"move_mode": "swim",
"type": "path",
"x": 9081.9375,
"y": 2094.9375
},
{
"action": "",
"id": 38,
"move_mode": "swim",
"type": "path",
"x": 9068.9375,
"y": 2090.0625
},
{
"action": "",
"action_params": "",
"id": 39,
"move_mode": "swim",
"type": "path",
"x": 9080.3125,
"y": 2089.3125
}
]
}

View File

@@ -0,0 +1,193 @@
{
"info": {
"authors": [
{
"links": "https://github.com/zaodonganqi",
"name": "躁动的氨气"
}
],
"bgi_version": "0.52.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1760449198029,
"map_match_method": "",
"map_name": "Teyvat",
"name": "03-星砂滩右上-9个",
"tags": [
"菈乌玛"
],
"type": "collect",
"version": "1.1"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": 9248.2324,
"y": 2350.2634
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "walk",
"type": "path",
"x": 9253.2822,
"y": 2343.4441
},
{
"action": "",
"action_params": "",
"id": 3,
"move_mode": "walk",
"type": "path",
"x": 9271.3965,
"y": 2340.749
},
{
"action": "",
"action_params": "",
"id": 4,
"move_mode": "walk",
"type": "path",
"x": 9287.5742,
"y": 2345.7505
},
{
"action": "",
"action_params": "",
"id": 5,
"move_mode": "walk",
"type": "path",
"x": 9335.5723,
"y": 2333.3455
},
{
"action": "",
"action_params": "",
"id": 6,
"move_mode": "walk",
"type": "path",
"x": 9343.707,
"y": 2315.1614
},
{
"action": "",
"action_params": "",
"id": 7,
"move_mode": "walk",
"type": "target",
"x": 9349.8428,
"y": 2303.2068
},
{
"action": "combat_script",
"action_params": "枫原万叶 wait(5),e(hold),wait(0.2),attack",
"id": 8,
"move_mode": "walk",
"type": "target",
"x": 9337.9375,
"y": 2292.375
},
{
"action": "",
"id": 9,
"move_mode": "swim",
"type": "path",
"x": 9340.3438,
"y": 2289.3438
},
{
"action": "",
"action_params": "",
"id": 10,
"move_mode": "swim",
"type": "path",
"x": 9344.75,
"y": 2294.5
},
{
"action": "",
"action_params": "",
"id": 11,
"move_mode": "swim",
"type": "path",
"x": 9341.875,
"y": 2286.5938
},
{
"action": "",
"action_params": "",
"id": 12,
"move_mode": "swim",
"type": "path",
"x": 9338.1025,
"y": 2288.2322
},
{
"action": "",
"action_params": "",
"id": 13,
"move_mode": "swim",
"type": "path",
"x": 9336.2002,
"y": 2291.8354
},
{
"action": "",
"action_params": "",
"id": 14,
"move_mode": "swim",
"type": "path",
"x": 9334.376,
"y": 2294.1499
},
{
"action": "",
"action_params": "",
"id": 15,
"move_mode": "swim",
"type": "path",
"x": 9337.9492,
"y": 2297.762
},
{
"action": "",
"id": 16,
"move_mode": "swim",
"type": "path",
"x": 9336.4688,
"y": 2293.4062
},
{
"action": "",
"action_params": "",
"id": 17,
"move_mode": "swim",
"type": "path",
"x": 9342.0225,
"y": 2298.0981
},
{
"action": "",
"action_params": "",
"id": 18,
"move_mode": "swim",
"type": "path",
"x": 9347.0742,
"y": 2297.8345
},
{
"action": "",
"action_params": "",
"id": 19,
"move_mode": "swim",
"type": "path",
"x": 9337.9688,
"y": 2290.1875
}
]
}

View File

@@ -0,0 +1,356 @@
{
"info": {
"authors": [
{
"links": "https://github.com/zaodonganqi",
"name": "躁动的氨气"
}
],
"bgi_version": "0.52.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1760449208658,
"map_match_method": "",
"map_name": "Teyvat",
"name": "04-星砂滩左下-15个",
"tags": [
"菈乌玛"
],
"type": "collect",
"version": "1.2"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "dash",
"type": "teleport",
"x": 9746.3359,
"y": 1916.6514
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "dash",
"type": "path",
"x": 9776.5088,
"y": 1919.7988
},
{
"action": "",
"action_params": "",
"id": 3,
"move_mode": "dash",
"type": "path",
"x": 9809.2676,
"y": 1927.7632
},
{
"action": "",
"action_params": "",
"id": 4,
"move_mode": "walk",
"type": "path",
"x": 9829.7705,
"y": 1922.2373
},
{
"action": "",
"action_params": "",
"id": 5,
"move_mode": "swim",
"type": "path",
"x": 9843.7207,
"y": 1925.2319
},
{
"action": "combat_script",
"action_params": "枫原万叶 wait(4),e(hold),wait(0.2),attack",
"id": 6,
"move_mode": "walk",
"type": "path",
"x": 9846.6543,
"y": 1923.6958
},
{
"action": "",
"action_params": "",
"id": 7,
"move_mode": "swim",
"type": "path",
"x": 9846.2139,
"y": 1923.0205
},
{
"action": "",
"id": 8,
"move_mode": "swim",
"type": "path",
"x": 9849.3438,
"y": 1921.625
},
{
"action": "",
"id": 9,
"move_mode": "swim",
"type": "path",
"x": 9849.125,
"y": 1923.4375
},
{
"action": "",
"action_params": "",
"id": 10,
"move_mode": "swim",
"type": "path",
"x": 9850.8125,
"y": 1921.75
},
{
"action": "",
"id": 11,
"move_mode": "swim",
"type": "path",
"x": 9850.1875,
"y": 1924.4375
},
{
"action": "",
"action_params": "",
"id": 12,
"move_mode": "swim",
"type": "path",
"x": 9852.3438,
"y": 1922.0625
},
{
"action": "",
"id": 13,
"move_mode": "swim",
"type": "path",
"x": 9853.3125,
"y": 1922.6562
},
{
"action": "",
"action_params": "",
"id": 14,
"move_mode": "swim",
"type": "path",
"x": 9849.1562,
"y": 1925.7812
},
{
"action": "",
"id": 15,
"move_mode": "swim",
"type": "path",
"x": 9849.0625,
"y": 1923.7812
},
{
"action": "",
"id": 16,
"move_mode": "swim",
"type": "path",
"x": 9848,
"y": 1925.75
},
{
"action": "",
"action_params": "",
"id": 17,
"move_mode": "swim",
"type": "path",
"x": 9848.0312,
"y": 1922.75
},
{
"action": "",
"id": 18,
"move_mode": "swim",
"type": "path",
"x": 9846.8125,
"y": 1926.0625
},
{
"action": "",
"action_params": "",
"id": 19,
"move_mode": "swim",
"type": "path",
"x": 9844.2227,
"y": 1925.5527
},
{
"action": "",
"action_params": "",
"id": 20,
"move_mode": "swim",
"type": "path",
"x": 9846.9951,
"y": 1924.0649
},
{
"action": "",
"action_params": "",
"id": 21,
"move_mode": "dash",
"type": "teleport",
"x": 9746.335,
"y": 1916.6504
},
{
"action": "",
"id": 22,
"move_mode": "walk",
"type": "path",
"x": 9745.5,
"y": 1978.75
},
{
"action": "",
"action_params": "",
"id": 23,
"move_mode": "dash",
"type": "path",
"x": 9746.291,
"y": 1996.0615
},
{
"action": "combat_script",
"action_params": "枫原万叶 wait(5),e(hold),wait(0.2),attack",
"id": 24,
"move_mode": "walk",
"type": "path",
"x": 9755.4844,
"y": 2002.1201
},
{
"action": "",
"action_params": "",
"id": 25,
"move_mode": "swim",
"type": "path",
"x": 9757.2812,
"y": 2003.2524
},
{
"action": "",
"action_params": "",
"id": 26,
"move_mode": "swim",
"type": "path",
"x": 9759.041,
"y": 2004.4248
},
{
"action": "",
"action_params": "",
"id": 27,
"move_mode": "swim",
"type": "path",
"x": 9759.126,
"y": 2007.54
},
{
"action": "",
"action_params": "",
"id": 28,
"move_mode": "swim",
"type": "path",
"x": 9756.9473,
"y": 2009.603
},
{
"action": "",
"action_params": "",
"id": 29,
"move_mode": "swim",
"type": "path",
"x": 9753.4062,
"y": 2010.5
},
{
"action": "",
"id": 30,
"move_mode": "swim",
"type": "path",
"x": 9757.9375,
"y": 2007.125
},
{
"action": "",
"action_params": "",
"id": 31,
"move_mode": "swim",
"type": "path",
"x": 9753.3896,
"y": 2007.8955
},
{
"action": "",
"id": 32,
"move_mode": "swim",
"type": "path",
"x": 9758.0938,
"y": 2005.625
},
{
"action": "",
"action_params": "",
"id": 33,
"move_mode": "swim",
"type": "path",
"x": 9753.0898,
"y": 2004.7959
},
{
"action": "",
"action_params": "",
"id": 34,
"move_mode": "swim",
"type": "path",
"x": 9752.418,
"y": 2002.8955
},
{
"action": "",
"action_params": "",
"id": 35,
"move_mode": "swim",
"type": "path",
"x": 9752.0645,
"y": 1999.0312
},
{
"action": "",
"action_params": "",
"id": 36,
"move_mode": "swim",
"type": "path",
"x": 9754.8721,
"y": 2000.0142
},
{
"action": "",
"action_params": "",
"id": 37,
"move_mode": "swim",
"type": "path",
"x": 9756.6045,
"y": 2001.1826
},
{
"action": "",
"action_params": "",
"id": 38,
"move_mode": "swim",
"type": "target",
"x": 9756.1328,
"y": 2003.186
}
]
}

View File

@@ -0,0 +1,219 @@
{
"info": {
"authors": [
{
"links": "https://github.com/zaodonganqi",
"name": "躁动的氨气"
}
],
"bgi_version": "0.52.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1760764363466,
"map_match_method": "",
"map_name": "Teyvat",
"name": "05-苔古荒原下方-12个",
"tags": [
"菈乌玛"
],
"type": "collect",
"version": "1.2"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"locked": false,
"move_mode": "walk",
"type": "teleport",
"x": 9370.3994,
"y": 1865.4717
},
{
"action": "",
"action_params": "",
"id": 2,
"locked": false,
"move_mode": "walk",
"type": "orientation",
"x": 9342.5,
"y": 1890.5
},
{
"action": "combat_script",
"action_params": "wait(3),keypress(VK_F),wait(3),click,wait(10),keypress(VK_SPACE)",
"id": 3,
"locked": false,
"move_mode": "fly",
"type": "orientation",
"x": 9342.5,
"y": 1890.5
},
{
"action": "stop_flying",
"action_params": "1000",
"id": 4,
"locked": false,
"move_mode": "fly",
"type": "target",
"x": 9385.25,
"y": 1759.5
},
{
"action": "",
"action_params": "",
"id": 5,
"locked": false,
"move_mode": "dash",
"type": "path",
"x": 9397.5,
"y": 1748.5
},
{
"action": "",
"action_params": "",
"id": 6,
"locked": false,
"move_mode": "dash",
"type": "path",
"x": 9421.75,
"y": 1746.0
},
{
"action": "combat_script",
"action_params": "枫原万叶 wait(4),e(hold),wait(0.2),attack",
"id": 7,
"locked": false,
"move_mode": "walk",
"type": "target",
"x": 9444.3809,
"y": 1757.8408
},
{
"action": "",
"action_params": "",
"id": 8,
"locked": false,
"move_mode": "swim",
"type": "path",
"x": 9444.6445,
"y": 1757.8359
},
{
"action": "",
"action_params": "",
"id": 9,
"locked": false,
"move_mode": "swim",
"type": "path",
"x": 9440.8369,
"y": 1756.0884
},
{
"action": "",
"action_params": "",
"id": 10,
"locked": false,
"move_mode": "swim",
"type": "path",
"x": 9437.6289,
"y": 1761.5488
},
{
"action": "",
"action_params": "",
"id": 11,
"locked": false,
"move_mode": "swim",
"type": "path",
"x": 9443.4971,
"y": 1765.9624
},
{
"action": "",
"action_params": "",
"id": 12,
"locked": false,
"move_mode": "swim",
"type": "path",
"x": 9447.666,
"y": 1759.5054
},
{
"action": "",
"action_params": "",
"id": 13,
"locked": false,
"move_mode": "swim",
"type": "path",
"x": 9445.3281,
"y": 1754.7812
},
{
"action": "",
"action_params": "",
"id": 14,
"locked": false,
"move_mode": "swim",
"type": "path",
"x": 9440.1797,
"y": 1763.9966
},
{
"action": "",
"action_params": "",
"id": 15,
"locked": false,
"move_mode": "swim",
"type": "path",
"x": 9442.875,
"y": 1754.2812
},
{
"action": "",
"action_params": "",
"id": 16,
"move_mode": "swim",
"type": "path",
"x": 9442.3262,
"y": 1756.1201
},
{
"action": "",
"action_params": "",
"id": 17,
"move_mode": "swim",
"type": "path",
"x": 9439.2783,
"y": 1751.0
},
{
"action": "",
"action_params": "",
"id": 18,
"move_mode": "swim",
"type": "path",
"x": 9433.0059,
"y": 1752.4941
},
{
"action": "",
"action_params": "",
"id": 19,
"move_mode": "swim",
"type": "path",
"x": 9431.8467,
"y": 1749.9717
},
{
"action": "",
"action_params": "",
"id": 20,
"move_mode": "swim",
"type": "path",
"x": 9443.2852,
"y": 1762.793
}
]
}

View File

@@ -0,0 +1,133 @@
{
"info": {
"authors": [
{
"links": "https://github.com/zaodonganqi",
"name": "躁动的氨气"
}
],
"bgi_version": "0.52.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1760449142682,
"map_match_method": "",
"map_name": "Teyvat",
"name": "06-苔古荒原上方-6个",
"tags": [
"菈乌玛"
],
"type": "collect",
"version": "1.1"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "dash",
"type": "teleport",
"x": 9370.4004,
"y": 1865.4727
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "walk",
"type": "path",
"x": 9425.9414,
"y": 1878.2812
},
{
"action": "combat_script",
"action_params": "枫原万叶 wait(6),e(hold),wait(0.2),attack",
"id": 3,
"move_mode": "walk",
"type": "target",
"x": 9450.1406,
"y": 1880.9834
},
{
"action": "",
"action_params": "",
"id": 4,
"locked": false,
"move_mode": "swim",
"type": "path",
"x": 9451.0938,
"y": 1875.7812
},
{
"id": 5,
"move_mode": "swim",
"type": "path",
"x": 9450.875,
"y": 1885.8438
},
{
"id": 6,
"move_mode": "swim",
"type": "path",
"x": 9452.5938,
"y": 1875.7188
},
{
"id": 7,
"move_mode": "swim",
"type": "path",
"x": 9452.9062,
"y": 1885.9375
},
{
"id": 8,
"move_mode": "swim",
"type": "path",
"x": 9454.5312,
"y": 1875.6875
},
{
"id": 9,
"move_mode": "swim",
"type": "path",
"x": 9456.3125,
"y": 1882.125
},
{
"id": 10,
"move_mode": "swim",
"type": "path",
"x": 9448.0938,
"y": 1885.875
},
{
"id": 11,
"move_mode": "swim",
"type": "path",
"x": 9449.25,
"y": 1875.4688
},
{
"id": 12,
"move_mode": "swim",
"type": "path",
"x": 9446.0312,
"y": 1885.75
},
{
"id": 13,
"move_mode": "swim",
"type": "path",
"x": 9447.2812,
"y": 1875.4375
},
{
"action": "",
"action_params": "",
"id": 14,
"move_mode": "swim",
"type": "path",
"x": 9444.1875,
"y": 1885.2812
}
]
}

View File

@@ -0,0 +1,114 @@
{
"info": {
"authors": [
{
"links": "https://github.com/zaodonganqi",
"name": "躁动的氨气"
}
],
"bgi_version": "0.52.0",
"description": "",
"enable_monster_loot_split": false,
"last_modified_time": 1760764234436,
"map_match_method": "",
"map_name": "Teyvat",
"name": "07-苔古荒原中间-12个",
"tags": [
"菈乌玛"
],
"type": "collect",
"version": "1.2"
},
"positions": [
{
"action": "",
"action_params": "",
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": 9370.3994,
"y": 1865.4717
},
{
"action": "",
"action_params": "",
"id": 2,
"move_mode": "walk",
"type": "orientation",
"x": 9342.5,
"y": 1890.5
},
{
"action": "combat_script",
"action_params": "枫原万叶 attack,wait(3),keypress(VK_F),wait(3),click,wait(10),keypress(VK_SPACE)",
"id": 3,
"move_mode": "fly",
"type": "orientation",
"x": 9342.5,
"y": 1890.5
},
{
"action": "combat_script",
"action_params": "keypress(VK_E),wait(0.2),attack",
"id": 4,
"move_mode": "fly",
"type": "target",
"x": 9469.9023,
"y": 1809.1797
},
{
"action": "",
"action_params": "",
"id": 5,
"move_mode": "walk",
"type": "path",
"x": 9470.2539,
"y": 1805.1245
},
{
"action": "",
"action_params": "",
"id": 6,
"move_mode": "walk",
"type": "path",
"x": 9466.5264,
"y": 1805.5381
},
{
"action": "",
"action_params": "",
"id": 7,
"move_mode": "walk",
"type": "path",
"x": 9466.5371,
"y": 1812.5723
},
{
"action": "",
"action_params": "",
"id": 8,
"move_mode": "walk",
"type": "path",
"x": 9473.0703,
"y": 1810.7129
},
{
"action": "",
"action_params": "",
"id": 9,
"move_mode": "walk",
"type": "path",
"x": 9474.6426,
"y": 1805.8882
},
{
"action": "",
"action_params": "",
"id": 10,
"move_mode": "walk",
"type": "teleport",
"x": 9370.3994,
"y": 1865.4717
}
]
}

View File

@@ -0,0 +1,22 @@
## 配置与运行要求
> 虽然全线会路过两只霜夜灵嗣,但是不用战斗,都是直接冲过去的哦。
### 🎯 角色要求
- 确保队伍中有「菈乌玛」与「枫原万叶」
-`行走位`设置为「菈乌玛」
### ⚠️ 运行须知(必看)
- 运行前请确保游戏内不在下雨状态,下雨时挪德卡莱的小动物会消失。运行中途若开始下雨,将无法避免地白跑!
- 运行前请确保你今天没有跑过`虹滴晶`路线和`霜夜灵嗣`路线,这两个路线与犀牛路线存在重叠,会导致犀牛跑走。
- 苔古荒原中间的传送点处有一个需要寻找10个机器人才能解锁的飞高高装置请解锁它否则请禁用`05``07`两条线路。
### 🚀 运行效率
- 9分钟可收获理论最多83个兽肉
- 常态下拾取约65个
### ⚔️ 风险点位说明
最后一条路径落地点有一只精英怪,拾取时会发生战斗,可选择性关闭,但这个点位物资丰厚,高风险高回报。
#### 更新计划在js版中支持钟离举盾检测下雨状态

View File

@@ -0,0 +1,26 @@
[
{
"name": "enableDampDetection",
"type": "checkbox",
"default": true,
"label": "启用潮湿状态检测"
},
{
"name": "maxWaitAttempts",
"type": "input-text",
"default": "5",
"label": "最大等待次数"
},
{
"name": "enableHighRiskRoutes",
"type": "checkbox",
"default": true,
"label": "运行高危路线"
},
{
"name": "partyName",
"type": "input-text",
"default": "",
"label": "队伍名称"
}
]