From f15e812df2201910e01d0bb6efbf86c462438eb8 Mon Sep 17 00:00:00 2001 From: status102 Date: Sun, 5 Nov 2023 15:46:44 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=87=AA=E5=8A=A8=E5=9C=A8=E5=88=B7?= =?UTF-8?q?=E7=90=86=E6=99=BA=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E6=97=B6=E8=B0=83=E6=95=B4=E8=BF=9E=E6=88=98=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E4=B8=BA1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 38 +++++++++++++++++++- resource/template/FightSeries-Default-1.png | Bin 0 -> 2251 bytes resource/template/FightSeries-Icon.png | Bin 0 -> 2028 bytes resource/template/FightSeries-List-1.png | Bin 0 -> 2503 bytes src/MaaCore/MaaCore.vcxproj | 2 ++ src/MaaCore/MaaCore.vcxproj.filters | 12 ++++--- src/MaaCore/Task/Fight/FightTimesPlugin.cpp | 25 +++++++++++++ src/MaaCore/Task/Fight/FightTimesPlugin.h | 20 +++++++++++ src/MaaCore/Task/Interface/FightTask.cpp | 2 ++ 9 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 resource/template/FightSeries-Default-1.png create mode 100644 resource/template/FightSeries-Icon.png create mode 100644 resource/template/FightSeries-List-1.png create mode 100644 src/MaaCore/Task/Fight/FightTimesPlugin.cpp create mode 100644 src/MaaCore/Task/Fight/FightTimesPlugin.h diff --git a/resource/tasks.json b/resource/tasks.json index 9de9a065af..4fc9076cc0 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -3948,7 +3948,43 @@ "StartButton1" ] }, + "FightSeries-Default-1": { + "action": "DoNothing", + "roi": [ + 945, + 580, + 100, + 50 + ] + }, + "FightSeries-Icon": { + "action": "ClickSelf", + "roi": [ + 945, + 580, + 100, + 50 + ], + "next": [ + "FightSeries-List-1" + ] + }, + "FightSeries-List": { + "template": "empty.png", + "action": "ClickSelf", + "roi": [ + 950, + 180, + 100, + 400 + ] + }, + "FightSeries-List-1": { + "baseTask": "FightSeries-List", + "template": "FightSeries-List-1.png" + }, "StartButton1": { + "doc": "绑定插件调整连战次数", "algorithm": "OcrDetect", "action": "ClickSelf", "text": [ @@ -15939,4 +15975,4 @@ "Stop" ] } -} \ No newline at end of file +} diff --git a/resource/template/FightSeries-Default-1.png b/resource/template/FightSeries-Default-1.png new file mode 100644 index 0000000000000000000000000000000000000000..1ec13473bfe6a9f39bacb9b06a7454970126fddf GIT binary patch literal 2251 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 KMNUMnLSTYcNyQ8R literal 0 HcmV?d00001 diff --git a/resource/template/FightSeries-List-1.png b/resource/template/FightSeries-List-1.png new file mode 100644 index 0000000000000000000000000000000000000000..33c73cfa563bed37e98b3982b054edfe2fb882aa GIT binary patch literal 2503 zcmV;&2{`tNP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D30z4;K~!i%&6>+{ zQ&$#-mn7T4Hw@TZ3aUC3$%HBx=Q2r8$rPRf#tfvfGE3P`e(plZ+MzD;jj(Ksqo+x=#=Yc%#PSu!~6?LkVY z6VT8_rsCu@q>!t-9}1EYA6}NpMQPIeG6s8UwGkQ6uuGRN+5P(u?8%cS_W1E*yLa!N z!BsWM(e!9SAgzY9LPktP=mLR?Ty8v~&dXKN)Yx9Gw96F+P8_5)nkeR~DG;Mr)Am#e zX-)>UD8~myX(i*lpFXvbn#iiz*yxCTHioA)b?cT*PM^1iybFHthUw{P zyLt0-`|`^#Y)a`+Eg2xt2Gwhbz!|1B^ zQ*38%gZMq|Y3@-XVUPU-D4hvyus39C=%)vhUe|uco<^RwsrlfEb1%V=kuZep{$b`gh1=JHw%J(N<`HBvlq;vkBpH9x;-n;RQawCMy* zj8C}d&77b1cASn|TU)lcxah&n%0{`yK`hDT!{2?-%nng&(3uC5t zwzuuWhY$Ag<43B=>Mwpno^51u<5K^k!@WMsKqWinNfZ+T}!Cqj4`^|Y6+tW}gq zfW)B@7pLbnT{mXZ@y?^+o`-T16BAxPGc)6NHT1+I-B@Vj(-|aza8v}T-0Ol+?s3@* z+dz?%r?v`Bk?EdEzf?Um;_~SUIM_Bfw{3Z8(Y7|%bS(+x$H&j9O%qt_xNHre1A@f9^Ohn|D+f{ z#BpM-tgPr%-LQp)1zjmV+S+>E*8fqKN+Wn>ib)D(o=AG2&?{OYmU2q#ndJ~$NPO_8~2 z>#Hlel5FbO--^8lHT9t#x)-zEBk1Yl@bq`wg4|Y{2;L$xpeRp81Q^Pp4Xuiy5eEUw z%gcTTD_(g7UTfAj_S_@q=YO}F)vZ>EuY4d6(m3fFeiA|iz7(;0BBeasph(wLK_J~m zIQ6MbQCIv$og-(8f`i~f^S4Nz9h@8ys8?4vhPREXPFq$guj(28;;t+nNsML0Tw!*1 zw(Zwn|7}10^iTWkxBtY7^A_GJ{ve7Dd~%@P)8+c`R$}szZf~Pd@nuZiae;2Vx+T4P z)^~#Txc~TP5XasYJ$LJR!PkpKCeXKPDa$*s6G)BHexP_z+dOy=cy-S<^JD{p})ydcGgq6M?x;8`PB6cw>Z8VWfIP@^ps# z9TM42Tt^Sz8bbDPi7V9Tv><8GO&RyTF%*tGF|XZa0x>exrZ}aFY%eoYgHnI!YITfq za_p&WA@Q0xMB)k?Ksl2%I7|_~6d2X(S^1q?IVWvT2M8}FY}^Ryl+`x2aM)PLr%$!2 zO#;I5E}))XSFKbv)L~*i4ce41XVUOT(SmLxB5+JgI4-!c4~4_{Lh^&6xsNC6{?~|s zvW?NM1(u!1=}}8WAt}cocjMb(ChADUg=j&E&Vi4ELJlZrN-~cs-n;7&UPuxvT88EU za;_z}eFS<$oYAR4)Ns$-)76NHpoIt*#RnP(TEYY}JzE}*)ZJ0YEf*#nReonz9EY1p z;W6$>?1aYyr3J>7(NPNe-@x;-#xC)?rtRXv$Wj)2#lPV zG{!k`=aZxFQfwMSY3;6b{iBXF3t5 zv+e+Kh|8f3-3nzmw)?#&N?OPT2P#S^$vZIK&~UPmMcgS=R#$p+!E`C75Cu-zeQ3~u zYSo$aPvVmRL)j>ckPA + @@ -241,6 +242,7 @@ + diff --git a/src/MaaCore/MaaCore.vcxproj.filters b/src/MaaCore/MaaCore.vcxproj.filters index 74e958498e..701c886351 100644 --- a/src/MaaCore/MaaCore.vcxproj.filters +++ b/src/MaaCore/MaaCore.vcxproj.filters @@ -558,9 +558,6 @@ Source\Controller - - Source\Controller - Source\Controller @@ -672,6 +669,9 @@ Source\Task\Miscellaneous + + Source\Task\Fight + @@ -1118,5 +1118,9 @@ Source\Task\Fight + + + Source\Task\Fight + - + \ No newline at end of file diff --git a/src/MaaCore/Task/Fight/FightTimesPlugin.cpp b/src/MaaCore/Task/Fight/FightTimesPlugin.cpp new file mode 100644 index 0000000000..48e570a4f1 --- /dev/null +++ b/src/MaaCore/Task/Fight/FightTimesPlugin.cpp @@ -0,0 +1,25 @@ +#include "FightTimesPlugin.h" + +#include "Task/ProcessTask.h" + +bool asst::FightTimesPlugin::verify(AsstMsg msg, const json::value& details) const +{ + if (msg != AsstMsg::SubTaskStart || details.get("subtask", std::string()) != "ProcessTask") { + return false; + } + + return !inited && details.at("details").at("task").as_string().ends_with("StartButton1"); +} + +bool asst::FightTimesPlugin::_run() +{ + // 目前也可以做成subtask,但是给以后糊屎留个地方 + bool result = ProcessTask(*this, { "FightSeries-Default-1", "FightSeries-Icon" }).run(); + + if (!result) { + return false; + } + + inited = true; + return true; +} diff --git a/src/MaaCore/Task/Fight/FightTimesPlugin.h b/src/MaaCore/Task/Fight/FightTimesPlugin.h new file mode 100644 index 0000000000..5f70a0033f --- /dev/null +++ b/src/MaaCore/Task/Fight/FightTimesPlugin.h @@ -0,0 +1,20 @@ +#pragma once +#include "Task/AbstractTaskPlugin.h" +namespace asst +{ + class FightTimesPlugin : public AbstractTaskPlugin + { + public: + using AbstractTaskPlugin::AbstractTaskPlugin; + virtual ~FightTimesPlugin() override = default; + + virtual bool verify(AsstMsg msg, const json::value& details) const override; + + protected: + virtual bool _run() override; + + private: + // 是否成功初始化为1次 + bool inited = false; + }; +} diff --git a/src/MaaCore/Task/Interface/FightTask.cpp b/src/MaaCore/Task/Interface/FightTask.cpp index b834178e4e..6819854c2f 100644 --- a/src/MaaCore/Task/Interface/FightTask.cpp +++ b/src/MaaCore/Task/Interface/FightTask.cpp @@ -4,6 +4,7 @@ #include "Config/TaskData.h" #include "Task/Fight/DrGrandetTaskPlugin.h" +#include "Task/Fight/FightTimesPlugin.h" #include "Task/Fight/MedicineCounterPlugin.h" #include "Task/Fight/SanityBeforeStagePlugin.h" #include "Task/Fight/SideStoryReopenTask.h" @@ -50,6 +51,7 @@ asst::FightTask::FightTask(const AsstCallback& callback, Assistant* inst) m_dr_grandet_task_plugin_ptr = m_fight_task_ptr->register_plugin(); m_dr_grandet_task_plugin_ptr->set_enable(false); m_fight_task_ptr->register_plugin(); + m_fight_task_ptr->register_plugin(); m_medicine_plugin = m_fight_task_ptr->register_plugin(); m_subtasks.emplace_back(m_start_up_task_ptr);