From 941a98d90a4117dd5f4b30db642a64916b99e5d5 Mon Sep 17 00:00:00 2001 From: uye <99072975+ABA2396@users.noreply.github.com> Date: Fri, 6 Dec 2024 19:23:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BB=93=E5=BA=93=E8=AF=86=E5=88=AB?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=AF=86=E5=88=AB=20=E2=80=9D=E4=B8=87?= =?UTF-8?q?=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Vision/Miscellaneous/DepotImageAnalyzer.cpp | 5 +++++ src/MaaWpfGui/ViewModels/UI/RecognizerViewModel.cs | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/MaaCore/Vision/Miscellaneous/DepotImageAnalyzer.cpp b/src/MaaCore/Vision/Miscellaneous/DepotImageAnalyzer.cpp index bd1ce8832a..de419b1c9e 100644 --- a/src/MaaCore/Vision/Miscellaneous/DepotImageAnalyzer.cpp +++ b/src/MaaCore/Vision/Miscellaneous/DepotImageAnalyzer.cpp @@ -308,6 +308,11 @@ int asst::DepotImageAnalyzer::match_quantity(const ItemInfo& item) multiple = 10000; digit_str.erase(w_pos, digit_str.size()); } + // 更新:这个模型改成了 ASCII 识别,所以识别不到万了,得到的结果是 1.35 这种形式,表示 1.3 万 + else if (size_t w2_pos = digit_str.find('.'); digit_str.size() > 1 && w2_pos != std::string::npos && digit_str[digit_str.size() - 1] == '5') { + multiple = 10000; + digit_str.erase(digit_str.size() - 1, digit_str.size()); + } else if (size_t k_pos = digit_str.find('K'); k_pos != std::string::npos) { multiple = 1000; digit_str.erase(k_pos, digit_str.size()); diff --git a/src/MaaWpfGui/ViewModels/UI/RecognizerViewModel.cs b/src/MaaWpfGui/ViewModels/UI/RecognizerViewModel.cs index eb7984d995..9bfa108914 100644 --- a/src/MaaWpfGui/ViewModels/UI/RecognizerViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/RecognizerViewModel.cs @@ -335,7 +335,7 @@ namespace MaaWpfGui.ViewModels.UI public BitmapImage? Image { get; set; } - public int Count { get; set; } + public string? Count { get; set; } } /// @@ -391,7 +391,11 @@ namespace MaaWpfGui.ViewModels.UI Id = id, Name = ItemListHelper.GetItemName(id), Image = image, - Count = (int)(item["have"] ?? -1), + Count = item["have"] != null && int.TryParse(item["have"]?.ToString() ?? "-1", out int haveValue) + ? (haveValue > 10000 + ? $"{haveValue / 10000.0:F1}w" + : haveValue.ToString()) + : "-1", }; DepotResult.Add(result);