From 021bcba05ae476bdd47a040d031347f2e2b7bf12 Mon Sep 17 00:00:00 2001 From: status102 Date: Fri, 22 Dec 2023 13:32:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=83=85=E5=86=B5=E4=B8=8B=E9=94=99=E8=AF=AF=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E8=82=89=E9=B8=BD=E7=BB=93=E7=AE=97=E4=B8=AD=E9=9A=BE=E5=BA=A6?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E7=9A=84=E6=96=87=E6=9C=AC=20(#7691)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/global/YoStarEN/resource/tasks.json | 8 ++++++++ resource/tasks.json | 16 +++++++++++----- .../Roguelike/RoguelikeSettlementTaskPlugin.cpp | 12 ++++++++++-- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/resource/global/YoStarEN/resource/tasks.json b/resource/global/YoStarEN/resource/tasks.json index 01a7a0e4d2..e219d2b013 100644 --- a/resource/global/YoStarEN/resource/tasks.json +++ b/resource/global/YoStarEN/resource/tasks.json @@ -3835,6 +3835,14 @@ "Refresh support" ] }, + "RoguelikeSettlementOcr-Difficulty": { + "ocrReplace": [ + [ + "Ca1m", + "Calm" + ] + ] + }, "RoguelikeTraderShoppingOcr": { "ocrReplace": [ [ diff --git a/resource/tasks.json b/resource/tasks.json index 64b031e19a..f067b1d05b 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -10798,8 +10798,8 @@ ] }, "RoguelikeSettlementOcr-Difficulty": { - "baseTask": "NumberOcrReplace", - "isAscii": false, + "algorithm": "OcrDetect", + "text": [], "roi": [ 750, 372, @@ -10853,7 +10853,9 @@ ] }, "RoguelikeSettlementOcr-Score": { - "baseTask": "NumberOcrReplace", + "algorithm": "OcrDetect", + "isAscii": true, + "text": [], "roi": [ 280, 525, @@ -10862,7 +10864,9 @@ ] }, "RoguelikeSettlementOcr-Skill": { - "baseTask": "NumberOcrReplace", + "algorithm": "OcrDetect", + "isAscii": true, + "text": [], "roi": [ 920, 530, @@ -10871,7 +10875,9 @@ ] }, "RoguelikeSettlementOcr-Step": { - "baseTask": "NumberOcrReplace", + "algorithm": "OcrDetect", + "isAscii": true, + "text": [], "roi": [ 102, 238, diff --git a/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp index c2610ec742..85d2dec30a 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeSettlementTaskPlugin.cpp @@ -15,11 +15,13 @@ bool asst::RoguelikeSettlementTaskPlugin::verify(AsstMsg msg, const json::value& auto task_name = details.at("details").at("task").as_string(); if (task_name.ends_with("Roguelike@GamePass")) { m_game_pass = true; - return m_config->get_mode() == RoguelikeMode::Exp; + return true; + //m_config->get_mode() == RoguelikeMode::Exp; } else if (task_name.ends_with("Roguelike@MissionFailedFlag2")) { m_game_pass = false; - return m_config->get_mode() == RoguelikeMode::Exp; + return true; + //m_config->get_mode() == RoguelikeMode::Exp; } else { return false; @@ -86,6 +88,12 @@ bool asst::RoguelikeSettlementTaskPlugin::get_settlement_info(json::value& info, RegionOCRer ocr(image); ocr.set_task_info(m_config->get_theme() + "@" + task_name); ocr.set_bin_threshold(50, 255); + static const auto& number_replace = Task.get("NumberOcrReplace")->replace_map; + const auto& task_replace = Task.get(task_name)->replace_map; + + auto merge_map = std::vector(number_replace.begin(), number_replace.end()); + ranges::copy(task_replace, std::back_inserter(merge_map)); + ocr.set_replace(merge_map); if (!ocr.analyze()) { Log.error(__FUNCTION__, "analyze battle data failed, task:", task_name); return;