js:自动狗粮重置版1.1正式更新 (#1012)

This commit is contained in:
mno
2025-06-06 23:10:12 +08:00
committed by GitHub
parent 49d7c03c91
commit dbed2372f0
15 changed files with 139 additions and 294 deletions

View File

@@ -1,4 +1,4 @@
# 自动好感与全富6A1B狗粮脚本
# 自动好感与狗粮脚本
**重要免责声明:**
@@ -20,96 +20,30 @@
---
## 简介
## 一、调查点类型收益
1. 本脚本可自动完成好感任务并执行狗粮路线,通过识图和路径追踪实现自动化操作。
| 类型 | 等效1星圣遗物 | 平均经验值 | 平均摩拉 | 计算公式 |
|------|--------------|------------|----------|----------|
| 穷点 | 1.35个 | 567 EXP | 0 | 65%出1星(420EXP)+35%出2星(840EXP) |
| 富点 | 1.5个 | 630 EXP | 200 | 50%出1个1星(420EXP)+50%出2个1星(840EXP) |
## 二、路线配置与收益
### 1. 主要路线参数
| 路线名称 | 总点数 | 富点数量 | 穷点数量 | 总经验值 | 总摩拉 | 运行时间 |
|----------|--------|----------|----------|----------|--------|----------|
| 富A路线 | 162 | 104 | 58 | 98,406 | 20,800 | 68分钟 |
| 富B路线 | 127 | 69 | 58 | 76,356 | 13,800 | 60分钟 |
| ABE A线 | 137 | 33 | 104 | 77,742 | 6,600 | 53分钟 |
| ABE B线 | 138 | 34 | 104 | 77,868 | 6,800 | 53分钟 |
### 2. 经验值计算公式
`总经验 = (富点数×1.5 + 穷点数×1.35) × 420`
## 三、周循环方案对比
### 1. 富6A1B方案
- **执行方式**
- 连续6天跑富A路线富A与富A间隔≥24H+5min
- 第7天跑富B路线与富A间隔≥12H+5min
- **周总收益**
- 经验6×98,406 + 76,356 = 666,792 EXP
- 摩拉6×20,800 + 13,800 = 138,600
### 2. 1A1B方案ABE基准
- **执行方式**
- 每天交替跑ABE A线和B线点位不重叠,无要求)
- **周总收益**
- 经验3.5×(77,742+77,868) = 544,677 EXP
- 摩拉3.5×(6,600+6,800) = 46,900
### 3. 收益对比表
| 指标 | 6A1B方案 | 1A1B方案 | 差值 | 增幅 |
|----------|----------|----------|----------|---------|
| 周经验 | 666,792 | 544,677 | +122,115 | +22.4% |
| 周摩拉 | 138,600 | 46,900 | +91,700 | +195.5% |
| 周耗时 | 7.8小时 | 6.2小时 | +1.6小时 | - |
## 四、路径结构
1. 00激活少数点位需要提前转变为发光点
2. 00清怪部分优质富点有小怪镇守
3. 01普通98个调查点路径
4. 02收尾超出100以外的调查点
5. 03额外不受上限影响消失
## 五、队伍配置
- **双风阵容**:早柚+枫原万叶/砂糖(提升移动效率)
- **迪希雅**:白天时段提供移速加成
## 六、选择建议
1. **追求极限收益**采用6A1B方案每周可多获得12.2万经验
2. **时间有限玩家**使用1A1B方案保持基础收益
3. **摩拉需求优先**富路线摩拉收益是ABE的3倍
## 七、文件结构
## 文件结构
1. **main.js**:负责核心业务逻辑,包括好感任务和狗粮路线的执行。
2. **manifest.json**:脚本配置文件,记录基本信息和设置。
3. **settings.json**:用户配置文件,用于设置好感队和狗粮队的名称、任务间隔等参数。
4. **record.txt**:运行记录文件,用于存储运行信息。
## 八、使用方法
## 使用方法
1. 将脚本添加至调度器。
2. 右键点击脚本以修改 JS 自定义配置。
3. 在配置文件中设置好感队和狗粮队的名称、任务间隔等参数。
## 九、功能特点
## 功能特点
1. 完成好感任务。
2. 执行狗粮路线,自动计算时间并进行路线选择。
3. 可选择在狗粮路线结束后继续完成剩余的好感任务。
## 十、使用说明
## 使用说明
1. 确保在配置文件中正确设置好感队和狗粮队的名称。
2. 根据需要调整任务间隔时间和超时设置。
@@ -117,7 +51,7 @@
## 更新日志
### 1.12025.06.05
### 1.02025.05.27
1. 初始版本发布,支持自动好感任务和狗粮路线执行。
## 注意事项

View File

@@ -1,72 +0,0 @@
{
"info": {
"name": "璃月-地中之盐3",
"type": "collect",
"author": "汐",
"version": "",
"description": "",
"bgiVersion": "0.42.3"
},
"positions": [
{
"id": 1,
"x": -164.5927734375,
"y": 1182.50537109375,
"action": "",
"move_mode": "walk",
"type": "teleport"
},
{
"id": 2,
"x": -156.55859375,
"y": 1191.83740234375,
"action": "combat_script",
"move_mode": "dash",
"action_params": "wait(0.3),keypress(e)",
"type": "path"
},
{
"id": 3,
"x": -101.333984375,
"y": 1236.02978515625,
"action": "",
"move_mode": "run",
"action_params": "",
"type": "path"
},
{
"id": 4,
"x": -95.0634765625,
"y": 1238.294921875,
"action": "combat_script",
"move_mode": "dash",
"action_params": "keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),",
"type": "target"
},
{
"id": 5,
"x": -94.11328125,
"y": 1235.544921875,
"action": "",
"move_mode": "walk",
"type": "target"
},
{
"id": 6,
"x": -90.9267578125,
"y": 1235.23193359375,
"action": "",
"move_mode": "walk",
"type": "target"
},
{
"id": 7,
"x": -93.0693359375,
"y": 1238.69384765625,
"action": "combat_script",
"move_mode": "walk",
"action_params": "keypress(f)",
"type": "path"
}
]
}

View File

@@ -40,28 +40,19 @@
"id": 4,
"x": 3239.5126953125,
"y": -671.578125,
"action": "combat_script",
"type": "path",
"move_mode": "walk",
"action_params": "attack(0.2)",
"type": "path"
"action": "combat_script",
"action_params": "attack(0.2)"
},
{
"id": 5,
"x": 3243.59375,
"y": -669.6561946673019,
"x": 3243.728515625,
"y": -669.79833984375,
"type": "target",
"move_mode": "walk",
"action": "combat_script",
"move_mode": "walk",
"action_params": "keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.5)",
"type": "target"
},
{
"id": 6,
"x": 3243.083984375,
"y": -667.75537109375,
"type": "path",
"move_mode": "walk",
"action": "",
"action_params": ""
"action_params": "keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.5)"
}
]
}

View File

@@ -85,17 +85,17 @@
},
{
"id": 10,
"x": 9053.2548828125,
"y": -2795.486328125,
"type": "path",
"x": 9053.48828125,
"y": -2797.310546875,
"action": "combat_script",
"move_mode": "walk",
"action": "",
"action_params": ""
"action_params": "keypress(f),w(0.2)",
"type": "path"
},
{
"id": 11,
"x": 9053.812519750414,
"y": -2797.187530315927,
"x": 9054.71875,
"y": -2797.2811172015245,
"action": "combat_script",
"move_mode": "walk",
"action_params": "keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),",
@@ -103,15 +103,6 @@
},
{
"id": 12,
"x": 9055.494140625,
"y": -2799.2548828125,
"type": "path",
"move_mode": "walk",
"action": "",
"action_params": ""
},
{
"id": 13,
"x": 9060.9853515625,
"y": -2791.96484375,
"action": "combat_script",
@@ -120,7 +111,7 @@
"type": "target"
},
{
"id": 14,
"id": 13,
"x": 9068.6044921875,
"y": -2798.8125,
"action": "combat_script",

View File

@@ -40,28 +40,19 @@
"id": 4,
"x": 3239.5126953125,
"y": -671.578125,
"action": "combat_script",
"type": "path",
"move_mode": "walk",
"action_params": "attack(0.2)",
"type": "path"
"action": "combat_script",
"action_params": "attack(0.2)"
},
{
"id": 5,
"x": 3243.59375,
"y": -669.6561946673019,
"x": 3243.728515625,
"y": -669.79833984375,
"type": "target",
"move_mode": "walk",
"action": "combat_script",
"move_mode": "walk",
"action_params": "keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.5)",
"type": "target"
},
{
"id": 6,
"x": 3243.083984375,
"y": -667.75537109375,
"type": "path",
"move_mode": "walk",
"action": "",
"action_params": ""
"action_params": "keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.5)"
}
]
}

View File

@@ -6,16 +6,14 @@
"version": "1.0",
"description": "",
"map_name": "Teyvat",
"bgi_version": "0.45.0",
"tags": [],
"last_modified_time": 1748154261518
"bgi_version": "0.45.0"
},
"positions": [
{
"id": 1,
"x": 4783.79,
"y": -3065.62,
"action": "",
"action": "exit_and_relogin",
"move_mode": "dash",
"action_params": "",
"type": "path"

View File

@@ -20,13 +20,12 @@
},
{
"id": 2,
"x": -2736.60,
"x": -2736.6,
"y": -3415.44,
"type": "path",
"action": "exit_and_relogin",
"move_mode": "walk",
"action": "combat_script",
"action_params": "wait(0.5)",
"locked": false
"action_params": "",
"type": "path"
}
]
}

View File

@@ -5,23 +5,24 @@
"author": "秋云",
"version": "1.0",
"description": "",
"bgi_version": "0.45.1"
"map_name": "Teyvat",
"bgi_version": "0.45.0"
},
"positions": [
{
"id": 1,
"x": 3605.18,
"y": -513.31,
"type": "path",
"move_mode": "dash",
"action": "",
"action_params": ""
"move_mode": "dash",
"action_params": "",
"type": "path"
},
{
"id": 1,
"id": 2,
"x": 3614.63,
"y": -521.6,
"action": "",
"action": "exit_and_relogin",
"move_mode": "dash",
"action_params": "",
"type": "path"

View File

@@ -146,8 +146,12 @@ const DEFAULT_FIGHT_TIMEOUT_SECONDS = 120;
runRouteA = true;
}
if (operationType === "不卡时间ab交替运行" && lastRunRoute === "A") {
runRouteA = false;
if (operationType === "不卡时间ab交替运行") {
// 定义 1970-01-01T20:00:00.000Z 的时间对象
const epochTime = new Date('1970-01-01T20:00:00.000Z');
// 根据当前时间与 1970-01-01T20:00:00.000Z 的天数差的奇偶性给布尔变量 runRouteA 赋值
runRouteA = Math.floor((now - epochTime) / (24 * 60 * 60 * 1000)) % 2 === 0;
}
// 根据 runRouteA 的值给 runningRoute 赋值
@@ -292,7 +296,7 @@ const DEFAULT_FIGHT_TIMEOUT_SECONDS = 120;
await AutoPath('愚人众-准备');
}
if (enemyType === "鳄鱼") {
log.info(`导航到盗宝团触发点...`);
log.info(`导航到鳄鱼触发点...`);
await AutoPath('鳄鱼-准备');
}
// 好感循环开始
@@ -671,21 +675,29 @@ function isPositiveInteger(value) {
// 根据敌人类型获取OCR关键词
function getOcrKeywords(enemyType) {
if (enemyType === "愚人众") {
return ["买卖", "不成", "正义存", "愚人众", "禁止", "危险", "运输", "打倒", "盗宝团"];
return ["买卖", "不成", "正义存", "愚人众", "禁止", "危险", "运输", "打倒", "盗宝团", "丘丘人", "今晚", "伙食", "所有人"];
}
else if (enemyType === "盗宝团") {
return ["岛上", "无贼", "消灭", "鬼鬼祟祟", "盗宝团"];
}
else if (enemyType === "鳄鱼") {
return ["张牙", "舞爪", "恶党", "鳄鱼", "打倒", "所有", "鳄鱼"];
}
else {
return ["突发", "任务", "打倒", "消灭", "敌人", "所有"]; // 兜底关键词
}
}
// 根据敌人类型获取目标战斗点坐标
function getTargetCoordinates(enemyType) {
if (enemyType === "愚人众") {
// 愚人众战斗点坐标(需要根据实际位置调整)
return { x: 4840.55, y: -3078.01 }; // 这里需要替换为实际的愚人众战斗点坐标
} else {
return { x: 4840.55, y: -3078.01 };
} else if (enemyType === "盗宝团") {
// 盗宝团战斗点坐标
return { x: -2757.281, y: -3468.437 };
return { x: -2757.28, y: -3468.43 };
} else if (enemyType === "鳄鱼") {
// 鳄鱼战斗点坐标
return { x: 3578.08, y: -500.75 };
}
}

View File

@@ -1,9 +1,9 @@
{
"manifest_version": 1,
"name": "自动狗粮重制版",
"version": "1.0",
"tags": ["好感", "盗宝团", "狗粮"],
"description": "通过突发事件【岛上无贼】卡时间后运行狗粮任务以提高狗粮总收益,需要正确配置好感队伍的战斗策略,并在自定义配置中指定好感和狗粮队伍名称",
"version": "1.1",
"tags": ["好感", "盗宝团", "愚人众", "鳄鱼", "兽肉", "狗粮"],
"description": "通过不同好感任务卡时间后运行狗粮任务以提高狗粮总收益,需要正确配置好感队伍的战斗策略,并在自定义配置中指定好感和狗粮队伍名称",
"authors": [
{
"name": "mno"

View File

@@ -31,8 +31,8 @@
{
"name": "waitTimePeriod",
"type": "input-text",
"label": "卡时间时间段\n【格式参考4:00-4:40默认为4:00-4:40】",
"default": "4:00-4:40"
"label": "卡时间时间段\n【格式参考4:05-4:45默认为4:05-4:45】",
"default": "4:05-4:45"
},
{
"name": "ocrTimeout",

View File

@@ -27,7 +27,7 @@ const DEFAULT_FIGHT_TIMEOUT_SECONDS = 120;
await AutoPath('愚人众-准备');
}
if (enemyType === "鳄鱼") {
log.info(`导航到盗宝团触发点...`);
log.info(`导航到鳄鱼触发点...`);
await AutoPath('鳄鱼-准备');
}
// 验证超时设置