全自动地脉花 4.4.3: 添加一条龙模式并更新依赖版本 (#2409)

* feat: 添加一条龙模式并更新依赖版本

- 新增一条龙模式选项,可跳过初始传送和强制更新检查
- 更新BGI最低支持版本至0.52.0
- 添加脚本自动更新检查功能
- 优化奖励领取时的等待时间
- 更新README文档结构和内容

* fix: 更新检查更新函数中的manifest.json路径

* docs: 更新README添加HTTP权限说明
This commit is contained in:
ddaodan
2025-11-29 15:53:00 +08:00
committed by GitHub
parent 071c020b2a
commit cc86b8873c
5 changed files with 96 additions and 16 deletions

View File

@@ -1,8 +1,29 @@
# BGI全自动地脉花脚本使用手册
**仅支持BetterGI 0.44.7 及以上版本!**
**仅支持Bitblt截图方式**
**仅支持 BetterGI 0.52.0 及以上版本!**
**仅支持 Bitblt 截图方式!**
**仅支持 V4 OCR模型**
目前脚本仍在更新开发阶段会有很多bug详见下方已知问题如果遇到没有提到的bug请反馈给我们非常感谢
[TOC]
## 目录
- [配置](#配置)
- [配置地图追踪策略和战斗策略](#配置地图追踪策略和战斗策略)
- [七天神像](#七天神像)
- [特色介绍](#特色介绍)
- [常见问题](#常见问题)
- [一运行就报错退出了](#一运行就报错退出了)
- [找不到地脉花/找到地脉花,未找到策略](#找不到地脉花--找到地脉花未找到策略)
- [走到地脉花旁边没有开启地脉花](#走到地脉花旁边没有开启地脉花)
- [路线中途跳过了一个点位](#路线中途跳过了一个点位)
- [跑完后大地图所有自定义的标点都没了](#跑完后大地图所有自定义的标点都没了)
- [更新日志](#更新日志)
- [路线](#路线)
- [蒙德](#蒙德)
- [璃月](#璃月)
- [稻妻](#稻妻)
- [须弥](#须弥)
- [枫丹](#枫丹)
- [纳塔](#纳塔)
- [挪德卡莱](#挪德卡莱)
- [特别感谢](#特别感谢)
## 配置
使用前需要对脚本以及战斗策略进行配置
在调度器新建一个配置组,将脚本添加进来,脚本只能在配置组内使用
@@ -14,15 +35,22 @@
![](assets/image/image5.png)
### 配置地图追踪策略和战斗策略
点击配置组设置,开启战斗策略配置,**关闭自动检测战斗结束**,其他的根据你的队伍进行配置。
> 脚本不通过按L检查战斗是否结束关闭**自动检测战斗结束**可能导致提前结束战斗!
> 脚本不通过按L检查战斗是否结束请务必关闭 **自动检测战斗结束** ,不关闭可能导致提前结束战斗!
> 也因此无法在战斗后进行拾取,配置与否均不会影响。
> 战斗超时时间一定要大于或与脚本配置内的时间一样,太短会原地罚站!
> 脚本强制启用自动拾取,开关与否均不会影响。
![](assets/image/image6.png)
### 七天神像
在bgi设置内**关闭就近七天神像**,指定一个七天神像,如无特殊要求推荐选择须弥道成林。
在bgi设置内**关闭就近七天神像**,指定一个七天神像,如无特殊要求推荐选择须弥道成林。
如果您开启了一条龙模式,将会跳过以节约时间。
> 不要开启**传送到七天神像之后是否需要移动后回血**目前这个功能Bug很多
![](assets/image/image7.png)
### 开启 HTTP 权限
脚本需要开启 HTTP 权限检查是否有更新。
在配置组内右键脚本选择修改通用配置将JS HTTP权限从**禁用**修改为**启用**。
![](assets/image/image9.png)
## 特色介绍
- **全自动运行**:配置好之后,只需要点击运行,就可以全部打完,无需任何其他操作。
- **自动寻找地脉花**:通过大地图定位地脉花位置的方式来寻找地脉花,并执行后续的路线。
@@ -37,9 +65,9 @@
脚本还未适配,请等待脚本更新。
如果不是,请将出错的**完整游戏界面截图**反馈。
注意:为了方便截图反馈,出现该错误时不会关闭大地图界面!也不会将关闭的自定义标记按钮打开!
### 走到地脉花旁边就开始战斗了,没有开启地脉花
请使用bitblt截图方式脚本只支持这个
切换ocr引擎v4
### 走到地脉花旁边没有开启地脉花
- 请使用bitblt截图方式脚本只支持这个
-切换ocr引擎v4,其他引擎脚本未进行适配
### 路线中途跳过了一个点位
当地脉花打完后,下一个点位已经存在另一类型的地脉花,则下一朵地脉花将跳过这个点,刷新在下一个位置。
脚本会跳过这个被占用的点位。
@@ -51,6 +79,9 @@
## 更新日志
### 4.4
- 新增树脂耗尽模式
- 新增更新提醒
- 新增一条龙模式
- BGI最低版本要求改为0.52.0
### 4.3
- 适配新的奖励领取界面
- 修复挪德卡莱识别错误及通过冒险之证寻找地脉花总会选择挪德卡莱的bug

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -90,7 +90,7 @@ async function runLeyLineOutcropScript() {
* 初始化
* @returns {Promise<void>}
*/
function initialize() {
async function initialize() {
// 预定义工具函数
try {
const utils = [
@@ -117,8 +117,47 @@ function initialize() {
} catch (error) {
throw new Error("配置文件加载失败请检查config.json文件是否存在");
}
try {
// 3. 检查脚本更新
await checkUpdate();
} catch (updateError) {
log.warn(`检查脚本更新时出错: ${updateError.message},请自行前往脚本仓库检查脚本是否存在更新版本!`);
}
}
/**
* 检查脚本更新
* @returns {Promise<void>}
*/
async function checkUpdate() {
try {
// 发送GET请求
const response = await http.request("GET", "https://cnb.cool/bettergi/bettergi-scripts-list/-/git/raw/release/repo/js/AutoLeyLineOutcrop/manifest.json",
JSON.stringify({"Content-Type": "text/plain; charset=utf-8"})
);
const latestManifest = JSON.parse(response.body);
const manifest = JSON.parse(file.readTextSync("manifest.json"));
const currentVersion = manifest.version;
const latestVersion = latestManifest.version;
if (currentVersion !== latestVersion) {
log.info(`发现新的脚本版本: ${latestVersion}(当前版本: ${currentVersion}`);
if (isNotification) {
notification.send(`发现新的脚本版本: ${latestVersion}(当前版本: ${currentVersion}),请前往脚本仓库更新脚本!`);
}
if (!oneDragonMode) {
throw new Error("脚本有新版本,请前往脚本仓库更新脚本!");
} else {
log.warn("请及时更新脚本,以获得最新功能和修复!");
}
} else {
log.debug("脚本是最新版本");
}
} catch (error) {
throw new Error(`检查脚本更新时出错: ${error.message}`);
}
}
/**
* 处理树脂耗尽模式
* 如果开启了树脂耗尽模式,则统计可刷取次数并替换设置中的刷取次数
@@ -293,8 +332,9 @@ async function prepareForLeyLineRun() {
await genshin.returnMainUi(); // 回到主界面
setGameMetrics(1920, 1080, 1); // 看起来没什么用
// 1. 开局传送到七天神像
// TODO考虑添加选项禁用这个特性看起来有点浪费时间需要提示风险
await genshin.tpToStatueOfTheSeven();
if (!oneDragonMode) {
await genshin.tpToStatueOfTheSeven();
}
// 2. 切换战斗队伍
if (settings.team) {
@@ -905,7 +945,7 @@ async function navigateTowardReward(timeout, token) {
while (!token.isCancellationRequested) {
if (await adjustViewForReward(boxIconRo, token)) {
keyDown("w");
await sleep(300);
await sleep(200);
} else if (!token.isCancellationRequested) { // 如果没有取消,则继续尝试调整
keyPress("x");
keyUp("w");

View File

@@ -1,10 +1,10 @@
{
"manifest_version": 1,
"name": "全自动地脉花",
"version": "4.4.2",
"version": "4.4.3",
"tags": ["地脉花"],
"bgi_version": "0.44.7",
"description": "基于OCR图像识别的全自动刷取地脉花。\n💡更多信息请查看在线手册https://hcnsvf0s8d0s.feishu.cn/wiki/Tb1twpThLi7UlykqcYOcuccTnjJ \n\n----------注意事项----------\n●仅支持BetterGI 0.44.7 及以上版本!\n●部分地脉花因特殊原因不支持全自动具体的点位请在手册中查看。\n●树脂使用的优先级2倍原粹树脂 > 浓缩树脂 > 原粹树脂。\n●运行时会传送到七天神像设置中设置的七天神像需要关闭七天神像设置中的“是否就近七天神像恢复血量”并指定七天神像。\n●战斗策略注意调度器设置中地图追踪行走配置里的“允许在JsSpript中使用”和“覆盖JS中的自动战斗配置”只有在都打开的情况下脚本才会使用下面的战斗配置否则会使用独立任务中的战斗策略。战斗超时时间不能大于脚本自定义配置中的时间。\n\n如果遇到问题请先参照手册中的方法进行解决。",
"bgi_version": "0.52.0",
"description": "基于OCR图像识别的全自动刷取地脉花。\n💡更多信息请查看README! \n\n----------注意事项----------\n●仅支持BetterGI 0.52.0 及以上版本!\n●部分地脉花因特殊原因不支持全自动具体的点位请在手册中查看。\n●树脂使用的优先级2倍原粹树脂 > 浓缩树脂 > 原粹树脂。\n●运行时会传送到七天神像设置中设置的七天神像需要关闭七天神像设置中的“是否就近七天神像恢复血量”并指定七天神像。\n●战斗策略注意调度器设置中地图追踪行走配置里的“允许在JsSpript中使用”和“覆盖JS中的自动战斗配置”只有在都打开的情况下脚本才会使用下面的战斗配置否则会使用独立任务中的战斗策略。战斗超时时间不能大于脚本自定义配置中的时间。\n\n如果遇到问题请先参照README中的方法进行解决。",
"authors": [
{
"name": "ddaodan",
@@ -36,6 +36,10 @@
}
],
"settings_ui": "settings.json",
"main": "main.js"
"main": "main.js",
"http_allowed_urls": [
"https://cnb.cool/*",
"https://*.github.com/*"
]
}

View File

@@ -72,6 +72,11 @@
"type": "checkbox",
"label": "通过BGI通知系统发送详细通知"
},
{
"name": "oneDragonMode",
"type": "checkbox",
"label": "一条龙模式\n开启后会跳过开始的前往七天神像以及强制更新"
},
{
"name": "isResinExhaustionMode",
"type": "checkbox",