fix:增加OCR超时 (#662)

This commit is contained in:
起个名字好难的喵
2025-04-28 21:01:44 +08:00
committed by GitHub
parent a134c3f8b6
commit 25a8c9cd88
3 changed files with 12 additions and 5 deletions

View File

@@ -71,7 +71,7 @@
} }
// 好感核心函数 // 好感核心函数
async function AutoFriendship(runTimes, statueTimes, GetMeatMode, delayTime, startTime) { async function AutoFriendship(runTimes, statueTimes, GetMeatMode, delayTime, startTime, ocrTimeout) {
for (let i = 0; i < runTimes; i++) { for (let i = 0; i < runTimes; i++) {
if ((i + 1) % statueTimes === 0) { // 判断当前循环次数否达到去神像设置值 if ((i + 1) % statueTimes === 0) { // 判断当前循环次数否达到去神像设置值
await genshin.tpToStatueOfTheSeven(); await genshin.tpToStatueOfTheSeven();
@@ -85,9 +85,10 @@
await genshin.relogin(); await genshin.relogin();
// OCR识别是否触发任务 // OCR识别是否触发任务默认30秒超时
let ocrStatus = false; let ocrStatus = false;
for (let c = 0; c < 3; c++) { let ocrStartTime = Date.now();
while (Date.now() - ocrStartTime < ocrTimeout) {
let captureRegion = captureGameRegion(); let captureRegion = captureGameRegion();
let resList = captureRegion.findMulti(RecognitionObject.ocr(0, 200, 300, 300)); let resList = captureRegion.findMulti(RecognitionObject.ocr(0, 200, 300, 300));
for (let o = 0; o < resList.count; o++) { for (let o = 0; o < resList.count; o++) {
@@ -137,6 +138,7 @@
let statueTimes = goStatue ? (isNaN(settings.statueTimes) ? 5 : settings.statueTimes) : 0; let statueTimes = goStatue ? (isNaN(settings.statueTimes) ? 5 : settings.statueTimes) : 0;
// 延迟相关 // 延迟相关
let delayTime = settings.delayTime ? settings.delayTime * 1000 : 0; let delayTime = settings.delayTime ? settings.delayTime * 1000 : 0;
let ocrTimeout = settings.ocrTimeout ? settings.ocrTimeout * 1000 : 30000;
// 卡时间相关参数 // 卡时间相关参数
if (settings.waitTimeMode) { if (settings.waitTimeMode) {
let maxTimes = settings.maxTimes ? settings.maxTimes : runTimes; let maxTimes = settings.maxTimes ? settings.maxTimes : runTimes;
@@ -193,6 +195,6 @@
} }
const startTime = Date.now(); const startTime = Date.now();
await AutoFriendship(runTimes, statueTimes, GetMeatMode, delayTime, startTime); await AutoFriendship(runTimes, statueTimes, GetMeatMode, delayTime, startTime, ocrTimeout);
})(); })();

View File

@@ -1,7 +1,7 @@
{ {
"manifest_version": 1, "manifest_version": 1,
"name": "兽肉好感:自动好感度&刷两只鳄鱼兽肉&卡时间", "name": "兽肉好感:自动好感度&刷两只鳄鱼兽肉&卡时间",
"version": "1.3.4", "version": "1.3.5",
"bgi_version": "0.44.6", "bgi_version": "0.44.6",
"description": "通过突发事件:张牙舞爪的恶党刷兽肉并顺带获取好感度好感度超过10次后不再获取请使用满员好感度队伍并为全体队伍角色配置相应的战斗策略", "description": "通过突发事件:张牙舞爪的恶党刷兽肉并顺带获取好感度好感度超过10次后不再获取请使用满员好感度队伍并为全体队伍角色配置相应的战斗策略",
"authors": [ "authors": [

View File

@@ -48,5 +48,10 @@
"name": "delayTime", "name": "delayTime",
"type": "input-text", "type": "input-text",
"label": "到达触发地点后的延迟时间(秒)" "label": "到达触发地点后的延迟时间(秒)"
},
{
"name": "ocrTimeout",
"type": "input-text",
"label": "OCR超时时间选填默认为30秒"
} }
] ]