From e7f6fcb9864d23689b6ade23a317ef8bbeb6df14 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sun, 29 May 2022 16:35:36 +0800 Subject: [PATCH] =?UTF-8?q?fix.=E4=BF=AE=E5=A4=8D=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=88=98=E6=96=97cost=5Fchanges=E5=92=8Ckills=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E5=AD=98=E5=9C=A8=E6=97=B6=EF=BC=8Ccost=5Fchanges?= =?UTF-8?q?=E5=9F=BA=E5=87=86=E8=AE=A1=E7=AE=97=E9=94=99=E8=AF=AF=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAssistant/BattleProcessTask.cpp | 36 ++++++++++++++------------ 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/MeoAssistant/BattleProcessTask.cpp b/src/MeoAssistant/BattleProcessTask.cpp index 2ee3714968..cbd4207bfc 100644 --- a/src/MeoAssistant/BattleProcessTask.cpp +++ b/src/MeoAssistant/BattleProcessTask.cpp @@ -333,24 +333,8 @@ bool asst::BattleProcessTask::do_action(const BattleAction& action) bool asst::BattleProcessTask::wait_condition(const BattleAction& action) { cv::Mat image; - while (m_kills < action.kills) { - if (need_exit()) { - return false; - } - image = m_ctrler->get_image(); - BattleImageAnalyzer analyzer(image); - analyzer.set_target(BattleImageAnalyzer::Target::Kills); - if (analyzer.analyze()) { - m_kills = analyzer.get_kills(); - if (m_kills >= action.kills) { - break; - } - } - - try_possible_skill(image); - std::this_thread::yield(); - } + // 因为要算基准cost,所以这个要放在kills前面 if (action.cost_changes != 0) { int cost_base = -1; @@ -374,6 +358,24 @@ bool asst::BattleProcessTask::wait_condition(const BattleAction& action) } } + while (m_kills < action.kills) { + if (need_exit()) { + return false; + } + image = m_ctrler->get_image(); + BattleImageAnalyzer analyzer(image); + analyzer.set_target(BattleImageAnalyzer::Target::Kills); + if (analyzer.analyze()) { + m_kills = analyzer.get_kills(); + if (m_kills >= action.kills) { + break; + } + } + + try_possible_skill(image); + std::this_thread::yield(); + } + // 部署干员还有额外等待费用够或 CD 转好 if (action.type == BattleActionType::Deploy) { const std::string& name = m_group_to_oper_mapping[action.group_name].name;