From 6a7eab49edc8cbd6ce9c48eed1ed4ca9ffd893d0 Mon Sep 17 00:00:00 2001 From: huiyadanli Date: Sat, 23 Dec 2023 18:30:55 +0800 Subject: [PATCH] new auto expedition task --- .../BetterGenshinImpact.csproj | 6 ++++ .../AutoSkip/Assets/1920x1080/collect.png | Bin 0 -> 1706 bytes .../GameTask/AutoSkip/Assets/1920x1080/re.png | Bin 0 -> 1811 bytes .../AutoSkip/Assets/AutoSkipAssets.cs | 21 +++++++++++++ .../GameTask/AutoSkip/AutoSkipTrigger.cs | 4 +-- .../GameTask/AutoSkip/ExpeditionTask.cs | 4 +++ .../GameTask/AutoSkip/OneKeyExpeditionTask.cs | 29 ++++++++++++++++++ .../Macro/QuickEnhanceArtifactMacro.cs | 3 ++ 8 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 BetterGenshinImpact/GameTask/AutoSkip/Assets/1920x1080/collect.png create mode 100644 BetterGenshinImpact/GameTask/AutoSkip/Assets/1920x1080/re.png create mode 100644 BetterGenshinImpact/GameTask/AutoSkip/OneKeyExpeditionTask.cs diff --git a/BetterGenshinImpact/BetterGenshinImpact.csproj b/BetterGenshinImpact/BetterGenshinImpact.csproj index 257da5d7..a1e828e5 100644 --- a/BetterGenshinImpact/BetterGenshinImpact.csproj +++ b/BetterGenshinImpact/BetterGenshinImpact.csproj @@ -260,6 +260,12 @@ Always + + Always + + + Always + Always diff --git a/BetterGenshinImpact/GameTask/AutoSkip/Assets/1920x1080/collect.png b/BetterGenshinImpact/GameTask/AutoSkip/Assets/1920x1080/collect.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4fe3aa28b34971d26e1a136ce1031a987607cf GIT binary patch literal 1706 zcmV;b237fqP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D20uweK~z{r)tUKI z6h{=t{ga%YUBN^|q)NaW6fflP!l0x)(5QeSDjF+lG)e&?qQNUlRH88fmT8WB&o)q=oC5>?V3Gwq#TUjRca3Ga^ z{^%#1I9hNXZ^XSaRa#%h`n9Xj*?x79 zu$%0ijs|3ISVJ+=Ds4nY%6vsGYLI1Q^<{9x$=kmRkM7+VEXz;O+jA2ohw~5~9wu$T z6De^dYn1eWtiC5EO^npyIxkDd2s>rl8Y{I7Bdh3*;gV%Grmw-nyVu=ic~p7#hlGrg zR`SMh%7%{*Lw(Kn&gh`Y@?u`Sa=EmEFSIo)5tAXS?~BiKve4IaOPA##=GewhAuH_4 z&NKzZ+k_kC`NDl8NhBQ+7Dlmw^)TMc!}BPtW}MytR-M9&3*_!t3|+LQHTBz0M` zF57nPvZ*rw3n$N0&|l4+8)SSzqR%Vo&@w~7qWXV0il)@B$u`%OYsWNMAy4pmAT?3J zA9W<)Yw8_Pxq*6txM*F}%t>zCxKLe|uPA&KkrncW)v93S0tK(H=^|1=2ljP3dn!%6 zUDS*$Uy+6+%LI>7usK!WT?>UTnqm!CNnR$zyJi(-`vQxzj8is{W#CHeWP#=qfj3QZ z+1C`J%JWndWCbqkTn1)0n31UwdU9wzCh%9IyX-)NipvEm3OB3B-xRp4bAy=)U9+Z8 z=$fIEK+K!2VDW5$+)TUhaiIymrJ&E7?@E!LsSaeQDB7Z8el(wdb-4c22zft7oT1B1 zQn-FX#h(pAV}N*8Ay7f-HjiX;(*=%f6{tTV&~;9rvOu6PTYr$;jRG}?1b(fh(Wec` zyrPFG-Q(XTb0!5d>2}`+fybBZYm<1}tP9r`(a4f${w8syCic9vM`3FN{UL>X*Zyo)f)*|V00UAB%Q#GGmJHay|+!ssB7t2hhuDeT%YzTS|uJyK}U z8m%f+=uDvaeH>)GUd0{o6PSI;!SIqunx)WGldy~IkGTqFPBJIT`1O*5G5h++fko9b zS|ue3TeZOXy#mou=0*K}edHj}7juHJsv{9(9ZB*drDeQf`o)|pAH*w9S3a1R$qcWZ z59T#J%R1m`;twEvz8vZYknLMH2J!*qF8ZI)FN~ys5pI~TLSKH7gC&a+O?_JWBzfV` zJ}ue$?wOW#@V|ewd-?1>Y<=AU$qp4+`=05-ziTt)AO2`U?*IS*07*qoM6N<$f-)9G AT>t<8 literal 0 HcmV?d00001 diff --git a/BetterGenshinImpact/GameTask/AutoSkip/Assets/1920x1080/re.png b/BetterGenshinImpact/GameTask/AutoSkip/Assets/1920x1080/re.png new file mode 100644 index 0000000000000000000000000000000000000000..e107c1ad23f33a6c85b3bb575104853f512c9361 GIT binary patch literal 1811 zcmV+u2kiKXP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2B=9yK~z{r&6)XA z6-N|>{gdpThwK7kWK|Iaw;(Et8;J`jf*PWc7#D~YS1^$n%cT%gMic`Aq9Ou<#(hPM z0+tJ@N-EKEJ-PP{qr=cVW_X(T!v~MYo$fO|-S?jE8T99)Hgt8|z>|*aws_or?Y*ID z-xGtnI_(Q(%$>DeZ$@3sVeH*igpC{4U}bI&a+Vm+%N{mNj;h>nWDgz<@(Ju?-Bn+tHRq58v!HIKyc%7gAviyJ)>LrENq5<=L9<5@i4VBX4Q zXsWAt+qSB2E4IYmywrfa70cWs=<7Q~DZ~jZI>6r_3Gs2*wmBbnXgaC-w$iWIQ`Kdd zGI^5wkvbj8{^0h4g95QQV;;^o)+qZo<56tszGB42M7?*BR=EAi$rDj~>=&gD1Etu9 z_pV^i&O$^*MkpKi1b1wp`oAY8j2nxpqX+Ql{?%TZm|kL8=+7lP-HS-oU|(pOfWMzW zXpp3=Ffg&q)Ra%%=}@)kdWhu!4xBb6S=o@4AwDE7SRnQjf$8G~w&V)belPKP%D}}k zOBOA_<#Q){3GN~G+J)0tmYqpC(nr|{6G)>M6)rF-P9Q5yVBdOy+lK^RHVL3v;!=r3 zYLa(iIpb{IxE}Xzo$oD{@1UdYB6jWAitz9-WdqFE7=ipn5=S>lbpEOVXNhJr66KpE zMn$}vw~Wgr5$I2af_|I7SM^~K6CLT!>pU%u5q>MSx&D~D!l*7ZSUyMMfg#esB=%LK zMA4VJFtgC8;SxEsC9-DF=VA85GRt!^arZ_`Pq93zy!wNKgOnE;@FH4~F7dEZEw<~p zMDAzr#4xi*%8%8#VlOvZvVUB8j-j-q!^O2z)VD;`efjYtisey@sDw({!Q5YK^tRCBF4) zlPc@JB6O zPgAD7Lc`)2>R2naw9wpQZ(eS2rz=&Enb07C)-oPJ4NvPdWY5xtO^%nS+$!;;N@8sW zRWQZ127bPjO|taSeL+v=SfNCazdF{;cLl3;u@{?9Acg9(D#*+d%BfG!P%b60jl0M- zb&nvASkg!mu~=aC#NO9g84)IM>lYGCquW|0Fq7u9D$Y#$oHSi*^O-8x@c^Y8DDj^a z?kTV)qvzsqQI_Bl@~4qAf3L!Ch`^7lbg^A01PZd%ac0I)>3555JXPVgX{sPIzm<~E z7G3O^D0Pe-_{P$cx!P%XPF1g@Kpkf$G&DpP%UcxQil~Cj@FQcfuSu+w>KMC>j?l%v zZWbupsE#qiTcm-BrA|17sbcIhV6l#;0d?}fO#{aZj5@I{FeiAmz?`J6XPmkyM>g($ zm%5zdRqC=^6vC(|v>m4MN@AZq2pgI0`slu-6xOm=VgU&Vp{!%g6*d zH8T8zEn>!kbY-xW#F5fnZr_mIW3zqdutag5#Jm(iwvQLkU|R8m$!QIC?=0A?l;lf1 zt|7BSrTRG;q4F&fu@tLn-wIpA2Y0(IBLA>!z8N;nDP&$MsKXcJw%98?J5AH#poSW< zh^6_oFIy{ckg`WzG1%EUjMNlIua;(|P4o8E z(oM%=4gT|&c3lr{qpP!9up+>UxifE3wcj__@h?KKF$vx>9BKdn002ovPDHLkV1nhz BcWeLv literal 0 HcmV?d00001 diff --git a/BetterGenshinImpact/GameTask/AutoSkip/Assets/AutoSkipAssets.cs b/BetterGenshinImpact/GameTask/AutoSkip/Assets/AutoSkipAssets.cs index 83c36f6b..5c736d90 100644 --- a/BetterGenshinImpact/GameTask/AutoSkip/Assets/AutoSkipAssets.cs +++ b/BetterGenshinImpact/GameTask/AutoSkip/Assets/AutoSkipAssets.cs @@ -17,6 +17,9 @@ public class AutoSkipAssets public RecognitionObject PageCloseRo; + public RecognitionObject CollectRo; + public RecognitionObject ReRo; + //public Mat BinaryStopAutoButtonMat; @@ -96,5 +99,23 @@ public class AutoSkipAssets RegionOfInterest = new Rect(info.CaptureAreaRect.Width - info.CaptureAreaRect.Width / 8 , 0, info.CaptureAreaRect.Width / 8, info.CaptureAreaRect.Height / 8), DrawOnWindow = true }.InitTemplate(); + + // 一键派遣 + CollectRo = new RecognitionObject + { + Name = "Collect", + RecognitionType = RecognitionTypes.TemplateMatch, + TemplateImageMat = GameTaskManager.LoadAssetImage("AutoSkip", "collect.png"), + RegionOfInterest = new Rect(0, info.CaptureAreaRect.Height - info.CaptureAreaRect.Height / 3, info.CaptureAreaRect.Width / 4, info.CaptureAreaRect.Height / 3), + DrawOnWindow = true + }.InitTemplate(); + ReRo = new RecognitionObject + { + Name = "Re", + RecognitionType = RecognitionTypes.TemplateMatch, + TemplateImageMat = GameTaskManager.LoadAssetImage("AutoSkip", "re.png"), + RegionOfInterest = new Rect(info.CaptureAreaRect.Width/2, info.CaptureAreaRect.Height - info.CaptureAreaRect.Height / 4, info.CaptureAreaRect.Width / 4, info.CaptureAreaRect.Height / 4), + DrawOnWindow = true + }.InitTemplate(); } } \ No newline at end of file diff --git a/BetterGenshinImpact/GameTask/AutoSkip/AutoSkipTrigger.cs b/BetterGenshinImpact/GameTask/AutoSkip/AutoSkipTrigger.cs index b74c47a5..039c1efa 100644 --- a/BetterGenshinImpact/GameTask/AutoSkip/AutoSkipTrigger.cs +++ b/BetterGenshinImpact/GameTask/AutoSkip/AutoSkipTrigger.cs @@ -148,8 +148,8 @@ public class AutoSkipTrigger : ITaskTrigger exploreIconRa.ClickCenter(); // 等待探索派遣界面打开 - Thread.Sleep(1000); - new ExpeditionTask().Run(content); + Thread.Sleep(800); + new OneKeyExpeditionTask().Run(_autoSkipAssets); exploreIconRa.Dispose(); return; } diff --git a/BetterGenshinImpact/GameTask/AutoSkip/ExpeditionTask.cs b/BetterGenshinImpact/GameTask/AutoSkip/ExpeditionTask.cs index da3c9644..80ce9a8f 100644 --- a/BetterGenshinImpact/GameTask/AutoSkip/ExpeditionTask.cs +++ b/BetterGenshinImpact/GameTask/AutoSkip/ExpeditionTask.cs @@ -6,6 +6,7 @@ using Microsoft.Extensions.Logging; using OpenCvSharp; using OpenCvSharp.Extensions; using Sdcb.PaddleOCR; +using System; using System.Collections.Generic; using System.Drawing; using System.Linq; @@ -16,7 +17,10 @@ namespace BetterGenshinImpact.GameTask.AutoSkip; /// 重新探索派遣 /// /// 必须在已经有探索派遣完成的情况下使用 +/// +/// 于 4.3 版本废弃 /// +[Obsolete] public class ExpeditionTask { private static readonly List ExpeditionCharacterList = new(); diff --git a/BetterGenshinImpact/GameTask/AutoSkip/OneKeyExpeditionTask.cs b/BetterGenshinImpact/GameTask/AutoSkip/OneKeyExpeditionTask.cs new file mode 100644 index 00000000..87dcc33e --- /dev/null +++ b/BetterGenshinImpact/GameTask/AutoSkip/OneKeyExpeditionTask.cs @@ -0,0 +1,29 @@ +using BetterGenshinImpact.GameTask.AutoSkip.Assets; +using BetterGenshinImpact.GameTask.Common; +using BetterGenshinImpact.View.Drawable; +using Microsoft.Extensions.Logging; +using OpenCvSharp; + +namespace BetterGenshinImpact.GameTask.AutoSkip; + +public class OneKeyExpeditionTask +{ + public void Run(AutoSkipAssets assets) + { + // 1.全部领取 + var content = TaskControl.CaptureToContent(); + content.CaptureRectArea.Find(assets.CollectRo, ra => + { + ra.ClickCenter(); + TaskControl.Logger.LogInformation("探索派遣:{Text}", "全部领取"); + TaskControl.Sleep(500); + // 2.重新派遣 + content = TaskControl.CaptureToContent(); + content.CaptureRectArea.Find(assets.ReRo, ra2 => + { + ra2.ClickCenter(); + TaskControl.Logger.LogInformation("探索派遣:{Text}", "再次派遣"); + }); + }); + } +} \ No newline at end of file diff --git a/BetterGenshinImpact/GameTask/Macro/QuickEnhanceArtifactMacro.cs b/BetterGenshinImpact/GameTask/Macro/QuickEnhanceArtifactMacro.cs index d5d9e252..5e36fa9e 100644 --- a/BetterGenshinImpact/GameTask/Macro/QuickEnhanceArtifactMacro.cs +++ b/BetterGenshinImpact/GameTask/Macro/QuickEnhanceArtifactMacro.cs @@ -5,6 +5,9 @@ using System.Windows; namespace BetterGenshinImpact.GameTask.Macro; +/// +/// 于 4.3 版本废弃 +/// [Obsolete] public class QuickEnhanceArtifactMacro {