From 532acde4c33c366850591fcd626e807f96403deb Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Fri, 6 Jun 2025 13:01:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=BC=8F=E4=BA=86.jpg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [skip changelog] --- src/MaaCore/Common/AsstBattleDef.h | 3 ++- src/MaaCore/Config/Miscellaneous/CopilotConfig.cpp | 4 ++-- src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp | 3 ++- src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp | 9 ++++++++- src/MaaWpfGui/Main/Bootstrapper.cs | 2 ++ 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/MaaCore/Common/AsstBattleDef.h b/src/MaaCore/Common/AsstBattleDef.h index be1f4fae7b..9cf878ffcf 100644 --- a/src/MaaCore/Common/AsstBattleDef.h +++ b/src/MaaCore/Common/AsstBattleDef.h @@ -182,7 +182,8 @@ using RoleCounts = std::unordered_map; namespace copilot { -using OperUsageGroups = std::unordered_map>; +using OperUsageGroup = std::pair>; +using OperUsageGroups = std::vector; enum class ActionType { diff --git a/src/MaaCore/Config/Miscellaneous/CopilotConfig.cpp b/src/MaaCore/Config/Miscellaneous/CopilotConfig.cpp index 82c969d977..980acb0617 100644 --- a/src/MaaCore/Config/Miscellaneous/CopilotConfig.cpp +++ b/src/MaaCore/Config/Miscellaneous/CopilotConfig.cpp @@ -92,7 +92,7 @@ asst::battle::copilot::OperUsageGroups asst::CopilotConfig::parse_groups(const j oper.skill_times = oper_info.get("skill_times", 1); // 使用技能的次数,默认为 1,兼容曾经的作业 oper_vec.emplace_back(std::move(oper)); } - groups.emplace(std::move(group_name), std::move(oper_vec)); + groups.emplace_back(OperUsageGroup { std::move(group_name), std::move(oper_vec) }); } } @@ -106,7 +106,7 @@ asst::battle::copilot::OperUsageGroups asst::CopilotConfig::parse_groups(const j // 单个干员的,干员名直接作为组名 std::string group_name = oper.name; - groups.emplace(std::move(group_name), std::vector { std::move(oper) }); + groups.emplace_back(OperUsageGroup { std::move(group_name), std::vector { std::move(oper) } }); } } diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp index 64abd18ce0..26512f5593 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp @@ -2,6 +2,7 @@ #include "Utils/Ranges.hpp" +#include "Common/AsstBattleDef.h" #include "Config/GeneralConfig.h" #include "Config/Miscellaneous/BattleDataConfig.h" #include "Config/Miscellaneous/CopilotConfig.h" @@ -536,7 +537,7 @@ bool asst::BattleFormationTask::parse_formation() groups = &SSSCopilot.get_data().groups; } - for (const auto& [name, opers_vec] : *groups) { + for (const auto& [name, opers_vec] : (*groups)) { if (opers_vec.empty()) { continue; } diff --git a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp index fdf901a4b0..130359ae56 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleProcessTask.cpp @@ -154,7 +154,14 @@ bool asst::BattleProcessTask::to_group() } for (const auto& [group_name, oper_name] : m_oper_in_group) { - auto& this_group = get_combat_data().groups[group_name]; + const auto& group_it = ranges::find_if(get_combat_data().groups, [&](const OperUsageGroup& pair) { + return pair.first == group_name; + }); + if (group_it == get_combat_data().groups.end()) { + Log.warn(__FUNCTION__, "Group not found in combat data: ", group_name); + continue; + } + const auto& this_group = group_it->second; // there is a build error on macOS // https://github.com/MaaAssistantArknights/MaaAssistantArknights/actions/runs/3779762713/jobs/6425284487 const std::string& oper_name_for_lambda = oper_name; diff --git a/src/MaaWpfGui/Main/Bootstrapper.cs b/src/MaaWpfGui/Main/Bootstrapper.cs index 11383b79d3..c2eacc9495 100644 --- a/src/MaaWpfGui/Main/Bootstrapper.cs +++ b/src/MaaWpfGui/Main/Bootstrapper.cs @@ -335,6 +335,8 @@ namespace MaaWpfGui.Main // ignored } } + + return; } else if (!_isRestartingWithoutArgs) {