fix: 修复部分情况下错误替换肉鸽结算中难度识别的文本 (#7691)

This commit is contained in:
status102
2023-12-22 13:32:58 +08:00
committed by GitHub
parent 13bb38c6f2
commit 021bcba05a
3 changed files with 29 additions and 7 deletions

View File

@@ -3835,6 +3835,14 @@
"Refresh support"
]
},
"RoguelikeSettlementOcr-Difficulty": {
"ocrReplace": [
[
"Ca1m",
"Calm"
]
]
},
"RoguelikeTraderShoppingOcr": {
"ocrReplace": [
[

View File

@@ -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,

View File

@@ -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<OcrTaskInfo>("NumberOcrReplace")->replace_map;
const auto& task_replace = Task.get<OcrTaskInfo>(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;