Skip to content

Commit b4c0f9b

Browse files
authored
全自动地脉花 4.4.4: fix: oneDragonMode 未正确引用,释放OCR识别结果列表以防内存泄漏 (#2419)
* fix: oneDragonMode 未正确引用 * fix: 释放OCR识别结果列表以防内存泄漏 * fix: 修复自动导航到奖励时的取消令牌创建逻辑
1 parent de44612 commit b4c0f9b

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

repo/js/AutoLeyLineOutcrop/main.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -811,7 +811,7 @@ async function autoFight(timeout) {
811811
*/
812812
async function autoNavigateToReward() {
813813
// 定义识别对象
814-
const cts = new CancellationTokenSource();
814+
let cts = new CancellationTokenSource();
815815
const MAX_RETRY = 3; // 最大重试次数
816816
let retryCount = 0;
817817

@@ -853,7 +853,7 @@ async function autoNavigateToReward() {
853853
keyUp("s");
854854
await sleep(500);
855855

856-
// 创建新的令牌
856+
// 创建新的令牌用于下一次重试
857857
cts = new CancellationTokenSource();
858858
} else {
859859
// 对于其他错误,直接抛出
@@ -1092,4 +1092,4 @@ async function openCustomMarks() {
10921092
log.error("未找到开关按钮");
10931093
genshin.returnMainUi();
10941094
}
1095-
}
1095+
}

repo/js/AutoLeyLineOutcrop/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"manifest_version": 1,
33
"name": "全自动地脉花",
4-
"version": "4.4.3",
4+
"version": "4.4.4",
55
"tags": ["地脉花"],
66
"bgi_version": "0.52.0",
77
"description": "基于OCR图像识别的全自动刷取地脉花。\n💡更多信息请查看README! \n\n----------注意事项----------\n●仅支持BetterGI 0.52.0 及以上版本!\n●部分地脉花因特殊原因不支持全自动,具体的点位请在手册中查看。\n●树脂使用的优先级:2倍原粹树脂 > 浓缩树脂 > 原粹树脂。\n●运行时会传送到七天神像设置中设置的七天神像,需要关闭七天神像设置中的“是否就近七天神像恢复血量”,并指定七天神像。\n●战斗策略注意调度器设置中地图追踪行走配置里的“允许在JsSpript中使用”和“覆盖JS中的自动战斗配置”,只有在都打开的情况下脚本才会使用下面的战斗配置,否则会使用独立任务中的战斗策略。战斗超时时间不能大于脚本自定义配置中的时间。\n\n如果遇到问题,请先参照README中的方法进行解决。",

repo/js/AutoLeyLineOutcrop/utils/calCountByResin.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,25 +163,30 @@ async function recognizeNumberByOCR(ocrRegion, pattern) {
163163

164164
if (!resList || resList.length === 0) {
165165
log.warn("OCR未识别到任何文本");
166+
resList.dispose();
166167
return null;
167168
}
168169

169170
for (const res of resList) {
170171
if (!res || !res.text) {
172+
resList.dispose();
171173
continue;
172174
}
173175

174176
const numberMatch = res.text.match(pattern);
175177
if (numberMatch) {
176178
const number = parseInt(numberMatch[1] || numberMatch[0]);
177179
if (!isNaN(number)) {
180+
resList.dispose();
178181
return number;
179182
}
180183
}
181184
}
182185
} catch (error) {
183186
log.error(`OCR识别时发生异常: ${error.message}`);
187+
resList.dispose();
184188
}
189+
resList.dispose();
185190
return null;
186191
}
187192

repo/js/AutoLeyLineOutcrop/utils/loadSettings.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ function () {
6767
// 设置通知状态
6868
isNotification = settings.isNotification;
6969

70+
// 设置一条龙模式
71+
oneDragonMode = settings.oneDragonMode;
72+
7073
if (isNotification) {
7174
notification.send(`全自动地脉花开始运行,以下是本次运行的配置:\n\n地脉花类型:${settings.leyLineOutcropType}\n国家:${settings.country}\n刷取次数:${settings.timesValue}`);
7275
}

0 commit comments

Comments
 (0)