mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-19 02:23:01 +08:00
13
CHANGELOG.md
13
CHANGELOG.md
@@ -1,3 +1,16 @@
|
||||
## v4.8.5
|
||||
|
||||
- 修复 macOS 依赖库闪退 @hguandl
|
||||
- 修复 未勾选自动下载更新包时无法自动更新 @ABA2396
|
||||
- 修复 关卡导航为 当前/上次 时,开启刷信用死循环的问题 @ABA2396
|
||||
- 修复 进程已存在时无法最小化启动模拟器 @ABA2396
|
||||
- 修复 掉落/仓库数量识别错误导致崩溃的问题 @MistEO
|
||||
- 优化 界面 刷信用功能提示 @ABA2396
|
||||
|
||||
### For overseas
|
||||
|
||||
- Fix the stage name error in the EN client @RiichiTsumo
|
||||
|
||||
## v4.8.4
|
||||
|
||||
- 修复 拉起模拟器时的报错 @ABA2396
|
||||
|
||||
@@ -8,18 +8,18 @@ set(COMPRESSED_SUFFIX ".tar.gz")
|
||||
|
||||
if(WIN32)
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-Windows")
|
||||
set(FASTDEPLOY_CHECKSUM "fa1e6457f0787f578fca877f11bc1dc41b6eb196c542946757224e80f24b8008")
|
||||
set(FASTDEPLOY_CHECKSUM "0a0700d4e8923bcd4c387a658e5e9a689ed9e0d114c260b11d082a2176c233d4")
|
||||
elseif(APPLE)
|
||||
if (CURRENT_OSX_ARCH STREQUAL "arm64")
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-macOS-arm64")
|
||||
set(FASTDEPLOY_CHECKSUM "5286563d17593f2124aff305181e22bedee264ef82730f54e6b538cacd9343ee")
|
||||
set(FASTDEPLOY_CHECKSUM "28a771814d197ba8056f1fcb7cc0671facec90a8733a0dac2cf0b68a8cc36d24")
|
||||
else()
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-macOS-x86_64")
|
||||
set(FASTDEPLOY_CHECKSUM "d0c8e4947301da1cbf295f79783c6016e1af139d67cc8ea3b532098ec6f1ae4d")
|
||||
set(FASTDEPLOY_CHECKSUM "76e97c7e944a18eb160646fa32ac0a7e24c87751b2b127dc33454f993f6d4b97")
|
||||
endif()
|
||||
else()
|
||||
set(FASTDEPLOY_FILENAME "FastDeploy-Linux")
|
||||
set(FASTDEPLOY_CHECKSUM "fc79d95251a82c584eac61c144f962de347469312c4be1d25fb2b8a624136998")
|
||||
set(FASTDEPLOY_CHECKSUM "4d106e5499e9b5b29426667617215ac7e4e70d2353af10caccdfdf6c1f1534a7")
|
||||
endif(WIN32)
|
||||
|
||||
set(FASTDEPLOY_URL ${FASTDEPLOY_URL_PREFIX}/${FASTDEPLOY_TAG}/${FASTDEPLOY_FILENAME}${COMPRESSED_SUFFIX})
|
||||
@@ -37,13 +37,9 @@ else ()
|
||||
set(FASTDEPLOY_FILENAME fastdeploy)
|
||||
set(FastDeploy_DIR ${THIRD_PARTY_PATH}/install/${FASTDEPLOY_FILENAME})
|
||||
|
||||
if (APPLE)
|
||||
list(APPEND DEPEND_LIBS ${FastDeploy_DIR}/lib/libfastdeploy.dylib)
|
||||
else ()
|
||||
find_package(FastDeploy REQUIRED PATHS ${FastDeploy_DIR} NO_DEFAULT_PATH)
|
||||
include_directories(${FastDeploy_INCLUDE_DIRS})
|
||||
list(APPEND DEPEND_LIBS ${FastDeploy_LIBS})
|
||||
endif (APPLE)
|
||||
find_package(FastDeploy REQUIRED PATHS ${FastDeploy_DIR} NO_DEFAULT_PATH)
|
||||
include_directories(${FastDeploy_INCLUDE_DIRS})
|
||||
list(APPEND DEPEND_LIBS ${FastDeploy_LIBS})
|
||||
endif (FASTDEPLOY_DIRECTORY)
|
||||
|
||||
if (INSTALL_THIRD_LIBS)
|
||||
|
||||
@@ -7,8 +7,9 @@ if (BUILD_XCFRAMEWORK)
|
||||
|
||||
add_custom_command(OUTPUT OpenCV.xcframework
|
||||
COMMAND rm -rf OpenCV.xcframework
|
||||
COMMAND mv ${OPENCV_DIRECTORY}/lib/libopencv_world.4.5.3.dylib ${OPENCV_DIRECTORY}/lib/libopencv_world.4.5.dylib
|
||||
COMMAND xcodebuild -create-xcframework -library ${OPENCV_DIRECTORY}/lib/libopencv_world.4.5.dylib -output OpenCV.xcframework
|
||||
COMMAND rm -f libopencv_world.4.5.dylib
|
||||
COMMAND cp ${OPENCV_DIRECTORY}/lib/libopencv_world.4.5.3.dylib libopencv_world.4.5.dylib
|
||||
COMMAND xcodebuild -create-xcframework -library libopencv_world.4.5.dylib -output OpenCV.xcframework
|
||||
)
|
||||
|
||||
add_custom_command(OUTPUT ONNXRuntime.xcframework
|
||||
@@ -30,3 +31,7 @@ if (BUILD_XCFRAMEWORK)
|
||||
DEPENDS MaaCore Paddle2ONNX.xcframework MaaCore.xcframework OpenCV.xcframework ONNXRuntime.xcframework FastDeploy.xcframework
|
||||
)
|
||||
endif (BUILD_XCFRAMEWORK)
|
||||
|
||||
target_compile_options(MaaCore PRIVATE
|
||||
-Wno-deprecated-declarations
|
||||
-Wno-gnu-zero-variadic-macro-arguments)
|
||||
|
||||
@@ -1744,15 +1744,15 @@
|
||||
"寒渊惜别"
|
||||
],
|
||||
[
|
||||
"Crying Over Spilt Milk",
|
||||
"The Point of No Return",
|
||||
"覆水难收"
|
||||
],
|
||||
[
|
||||
"Need No More",
|
||||
"All I Ask of You",
|
||||
"别无所求"
|
||||
],
|
||||
[
|
||||
"Nothing Ends Well",
|
||||
"Twisted Every Way",
|
||||
"诸事不顺"
|
||||
],
|
||||
[
|
||||
|
||||
@@ -320,10 +320,16 @@ int asst::DepotImageAnalyzer::match_quantity(const Rect& roi)
|
||||
digit_str.erase(m_pos, digit_str.size());
|
||||
}
|
||||
|
||||
constexpr char Dot = '.';
|
||||
if (digit_str.empty() ||
|
||||
!ranges::all_of(digit_str, [](const char& c) -> bool { return std::isdigit(c) || c == '.'; })) {
|
||||
!ranges::all_of(digit_str, [](const char& c) -> bool { return std::isdigit(c) || c == Dot; })) {
|
||||
return 0;
|
||||
}
|
||||
if (auto dot_pos = digit_str.find(Dot); dot_pos != std::string::npos) {
|
||||
if (dot_pos == 0 || dot_pos == digit_str.size() - 1 || digit_str.find(Dot, dot_pos + 1) != std::string::npos) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int quantity = static_cast<int>(std::stod(digit_str) * multiple);
|
||||
Log.info("Quantity:", quantity);
|
||||
|
||||
@@ -553,10 +553,16 @@ int asst::StageDropsImageAnalyzer::match_quantity(const Rect& roi, bool use_word
|
||||
digit_str.erase(k_pos, digit_str.size());
|
||||
}
|
||||
|
||||
constexpr char Dot = '.';
|
||||
if (digit_str.empty() ||
|
||||
!ranges::all_of(digit_str, [](const char& c) -> bool { return std::isdigit(c) || c == '.'; })) {
|
||||
!ranges::all_of(digit_str, [](const char& c) -> bool { return std::isdigit(c) || c == Dot; })) {
|
||||
return 0;
|
||||
}
|
||||
if (auto dot_pos = digit_str.find(Dot); dot_pos != std::string::npos) {
|
||||
if (dot_pos == 0 || dot_pos == digit_str.size() - 1 || digit_str.find(Dot, dot_pos + 1) != std::string::npos) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int quantity = static_cast<int>(std::stod(digit_str) * multiple);
|
||||
Log.info("Quantity:", quantity);
|
||||
|
||||
@@ -500,7 +500,7 @@ namespace MaaWpfGui
|
||||
}
|
||||
else if (taskChain == "Mall")
|
||||
{
|
||||
if (settingsModel.CreditFightTaskEnabledDisplay)
|
||||
if (settingsModel.CreditFightTaskEnabled)
|
||||
{
|
||||
settingsModel.LastCreditFightTaskTime = Utils.GetYJTimeDateString();
|
||||
}
|
||||
|
||||
@@ -449,13 +449,39 @@ namespace MaaWpfGui
|
||||
StartInfo = startInfo,
|
||||
};
|
||||
process.Start();
|
||||
process.WaitForInputIdle();
|
||||
if (MinimizingStartup)
|
||||
|
||||
try
|
||||
{
|
||||
for (int i = 0; !IsIconic(process.MainWindowHandle) && i < delay * 1000; ++i)
|
||||
// 如果之前就启动了模拟器,这步会抛出异常
|
||||
process.WaitForInputIdle();
|
||||
if (MinimizingStartup)
|
||||
{
|
||||
ShowWindow(process.MainWindowHandle, SWMINIMIZE);
|
||||
Thread.Sleep(1);
|
||||
for (int i = 0; !IsIconic(process.MainWindowHandle) && i < delay * 1000; ++i)
|
||||
{
|
||||
ShowWindow(process.MainWindowHandle, SWMINIMIZE);
|
||||
Thread.Sleep(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// 如果之前就启动了模拟器,如果开启了最小化启动,就把所有模拟器最小化
|
||||
// TODO:只最小化需要开启的模拟器
|
||||
string processName = Path.GetFileNameWithoutExtension(fileName);
|
||||
Process[] processes = Process.GetProcessesByName(processName);
|
||||
if (processes.Length > 0)
|
||||
{
|
||||
if (MinimizingStartup)
|
||||
{
|
||||
foreach (Process p in processes)
|
||||
{
|
||||
for (int i = 0; !IsIconic(p.MainWindowHandle) && i < delay * 1000; ++i)
|
||||
{
|
||||
ShowWindow(p.MainWindowHandle, SWMINIMIZE);
|
||||
Thread.Sleep(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -468,9 +494,10 @@ namespace MaaWpfGui
|
||||
else
|
||||
{
|
||||
Process.Start(EmulatorPath, EmulatorAddCommand);
|
||||
Thread.Sleep(delay * 1000);
|
||||
}
|
||||
}
|
||||
|
||||
Thread.Sleep(delay * 1000);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1120,6 +1147,12 @@ namespace MaaWpfGui
|
||||
{
|
||||
get
|
||||
{
|
||||
var task = _container.Get<TaskQueueViewModel>();
|
||||
if (task.Stage == string.Empty)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (Utils.GetYJTimeDate() > DateTime.ParseExact(_lastCreditFightTaskTime, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture))
|
||||
@@ -1144,7 +1177,10 @@ namespace MaaWpfGui
|
||||
|
||||
public bool CreditFightTaskEnabledDisplay
|
||||
{
|
||||
get => _creditFightTaskEnabled;
|
||||
get
|
||||
{
|
||||
return _creditFightTaskEnabled;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
|
||||
@@ -392,13 +392,13 @@ namespace MaaWpfGui
|
||||
}
|
||||
});
|
||||
|
||||
if (!goDownload)
|
||||
UpdatePackageName = _assetsObject?["name"]?.ToString() ?? string.Empty;
|
||||
|
||||
if (!goDownload || string.IsNullOrWhiteSpace(UpdatePackageName))
|
||||
{
|
||||
return CheckUpdateRetT.NoNeedToUpdate;
|
||||
}
|
||||
|
||||
UpdatePackageName = _assetsObject["name"]?.ToString();
|
||||
|
||||
// 下载压缩包
|
||||
var downloaded = false;
|
||||
var mirroredReplaceMap = new List<Tuple<string, string>>
|
||||
@@ -825,11 +825,7 @@ namespace MaaWpfGui
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (version.StartsWith("c"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (version.Contains("Local"))
|
||||
else if (version.StartsWith("c") || version.StartsWith("20") || version.Contains("Local"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
|
||||
<system:String x:Key="SocialPtShop">Social Point shopping</system:String>
|
||||
<system:String x:Key="CreditFight">Combat with Support to earn credits</system:String>
|
||||
<system:String x:Key="CreditFightTip">Combat with Support Unit in OF-1 after Visit Friends to earn 30 credits, do not check it if the stage is set to Current/Last</system:String>
|
||||
<system:String x:Key="CreditFightTip" xml:space="preserve">Combat with Support Unit in OF-1 after Visit Friends to earn 30 credits.
This function is invalid when the stage is selected as Current/Last.
Please do not check it when the stage OF-1 is not unlocked.</system:String>
|
||||
<system:String x:Key="HighPriority">Whitelist (split by semicolon)</system:String>
|
||||
<system:String x:Key="Blacklist">Blacklist (split by semicolon)</system:String>
|
||||
<system:String x:Key="HighPriorityDefault">Recruitment Permit;LMD</system:String>
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
|
||||
<system:String x:Key="SocialPtShop">信用购物</system:String>
|
||||
<system:String x:Key="CreditFight">借助战赚信用</system:String>
|
||||
<system:String x:Key="CreditFightTip">访问好友后借助战打一把OF-1赚30信用,关卡选择为「当前/上次」时请勿勾选,别传「火蓝之心」关卡OF-1未解锁时请勿勾选</system:String>
|
||||
<system:String x:Key="CreditFightTip" xml:space="preserve">访问好友后借助战打一把OF-1赚30信用。
关卡选择为「当前/上次」时此功能无效。
别传「火蓝之心」关卡OF-1未解锁时请勿勾选</system:String>
|
||||
<system:String x:Key="HighPriority">优先购买 子串即可 分号分隔</system:String>
|
||||
<system:String x:Key="Blacklist">黑名单 子串即可 分号分隔</system:String>
|
||||
<system:String x:Key="HighPriorityDefault">招聘许可;龙门币</system:String>
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
|
||||
<system:String x:Key="SocialPtShop">信用購物</system:String>
|
||||
<system:String x:Key="CreditFight">藉助戰賺信用</system:String>
|
||||
<system:String x:Key="CreditFightTip">訪問好友後藉助戰打一把OF-1賺30信用,關卡選擇爲「當前/上次」時請勿勾選</system:String>
|
||||
<system:String x:Key="CreditFightTip" xml:space="preserve">訪問好友後藉助戰打一把OF-1賺30信用。
關卡選擇爲「當前/上次」時此功能無效。
別傳「火藍之心」關卡OF-1未解鎖時請勿勾選</system:String>
|
||||
<system:String x:Key="HighPriority">優先購買 子串即可 分号分隔</system:String>
|
||||
<system:String x:Key="Blacklist">黑名單 子串即可 分号分隔</system:String>
|
||||
<system:String x:Key="HighPriorityDefault">招聘許可;龍門幣</system:String>
|
||||
|
||||
Reference in New Issue
Block a user