From 220d5ee1b96f451d2676a8946b6a9b7c6f233e8a Mon Sep 17 00:00:00 2001 From: wangbing Date: Mon, 9 Sep 2024 23:49:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=87=87=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- legend/仓库_补给完成#L284,599.png | Bin 0 -> 1041 bytes legend/兵营_任意位置继续#L168,903.png | Bin 0 -> 9464 bytes legend/无尽#L69,-22.png | Bin 0 -> 1037 bytes src/main/java/xyz/wbsite/jmacro/JMacro.java | 10 ++-- .../java/xyz/wbsite/jmacro/base/ViewRect.java | 16 ++++++- .../xyz/wbsite/jmacro/wjdr/MacroForWJDR.java | 13 +++++- .../wjdr/task/Task_仓库奖励领取.java | 43 +++++++++++++----- .../jmacro/wjdr/task/Task_自动练兵.java | 30 +++++++++++- .../jmacro/wjdr/task/Task_自动采矿.java | 2 +- 9 files changed, 92 insertions(+), 22 deletions(-) create mode 100644 legend/仓库_补给完成#L284,599.png create mode 100644 legend/兵营_任意位置继续#L168,903.png create mode 100644 legend/无尽#L69,-22.png diff --git a/legend/仓库_补给完成#L284,599.png b/legend/仓库_补给完成#L284,599.png new file mode 100644 index 0000000000000000000000000000000000000000..9ffdd68e452d098c15880b93f9497061bb5f938f GIT binary patch literal 1041 zcmV+s1n&EZP)4IgZ%rsIyEC)U8Y88e67<5Tt=bz-3lyj+ZQXKS78+w>O~gd&A<;D2YBgyu zv?0AAL9?{bP|8|L2_UVtCkk=~k=Ami$g(W#&OH7zX&MRV{(rvABs2Nm_xt|$dw)rF z?8MT(A0_C*#-VkG`Y2u+%;a`t2y==Is%=qds*1F!AsuEi7iKlwUI zV>xDiNuJ4HIiYBgO<#t{ybHN2gUywR6kj{Wq<@O;$$ma=`kF0OaVUfDEcjoNea>Y; z)X7}bJ|P~_YIU|?;djwKWh4{TV<)+$ko(iaXkvQdjQ%taNapzmA};p^NPc&T?m{4X5WLthMo`c$Nnf zOqB6#iwpmU;6B-06K zLH-=;;=_iogv^sTeY+Iz{ER7z5#JccZ~jEIJC(48M3jl_B^A5~%m{fR2WwLzVZXe= zq54m`JJP{yz;6m*&^yErEoT_@O_&vp`Nk=2FDL3}J7HJsD5KfSj?t1}MnpUmvc8o< zcx5cPmy4+%XlC3uX|~l^#&dFZigQ9haaEaE>g=du6jqv9$@;&cUI2!R2!9@Ow@~2a zB=&gTqqMDpfrs}@u<1D;p1uY$Jntgci;9M`2w%nWB+FFp@(%IHWR;;zHZ>-*t15>t zub$-YXa_a@jW~Wi%w|Ev82XiRJOvwGZVtJF*C+e?PW>YmHZtFyg1&I|=E_!0LCd z{aP`|8N$-nep4udlq8+l&eIon5z@04t2cjL3D$ZIDZ-UP|8ejiK7u-=n7(o=00000 LNkvXXu0mjfno0Sl literal 0 HcmV?d00001 diff --git a/legend/兵营_任意位置继续#L168,903.png b/legend/兵营_任意位置继续#L168,903.png new file mode 100644 index 0000000000000000000000000000000000000000..ed7bf05e7764c1ab692f5b0d0a44c46887550b68 GIT binary patch literal 9464 zcmV#vF~8^ z&1^QtEZ*YSu^lJrp7}f8TU7#iPr84(_lJ5w=X^Rk=lklddf)o$e3no>fnT$WRUZ^YF6 zD(-CWqrA2a5sF5{8%N)as~*R1-K$)izH_$NkHkVV=5F7`>gG1CmN*eb_j_I)#06Cc zV#}KmTiSp)MLpsQ?MN!MqgY=LqsE)qW%>o9X%;;p@Nu3=zcv zx-SQYZ!KebVGS9E7P|j#Bpl2~WLYb$z8*Yy@(jVjTR5L<37`Me+{77%@x{er_&Z18 zYYxI4XoshX{x){OL;w3)g77wW(C5yB;1k)UqJbwf8|%3Bbt8=z~y^&7fD98EQ#p<|SOV;_ZjH)7RYh$DZEDsRJOO&2bf z`Vgyd<8+D&Ba^du`Qy(pIehZFu?jDp_v5qQawuN-&oAU-esKjqzWy0DryCiiW@J~o zkW*Rzu4&!KH8dhc(}GC433l#7hi4$g(L=;)`Vd14b!a?!r}N!NE3d`u{4%!h@1dm1 zjpH|IK~QJbwhuY$SwJrc}Qzv=`MlrW|8~5(-^*pl@u_(vtH@ypF#PPiCT9w~xLI0_&3n7p+TKN6mKG5uO>&Osnl0Wq z_RjU=^n>{Q*&BHI`mgxm#VgD$EMtCogFw56t$RE8>F2-V{_Z}_#VQ?N$KuL59zJ?P zj`I`NH@9RQA75GBlzF;){{f0kK3ePc@I3L~DEb^n^W7R8qBVF<0O+HjSts{gVQZ)P zeFSfFH?qpiur-Y$P2E5~mWNt@5Rbllh73CXd2BvPYY225lSnN0k`DyK;O1vKS4uvX zro_VPT|9jJ6d4sZ3T~bB{DU~1WrNY%52K?ARW=`VCL3=Tf?!V{^cEK#_tW|2 zzYhR^jL9VcEXxEfE-hnhat7nK<~}r9sNu&3a72E-^RYn3(9eFPAd zYsZ<(IhdST6lcsVH6c3JMw!hoW8#%9h}Q%uaP$ZeBsggL@jt$Zz$=P`4<0^3p`ro` zl@TRM13J2b6yRQCaA*X@Wf~}yRZwe9n44d~cXaRd9v_M;^mN<+quGYdJ9lxHKvSr- zOU6BXj*GO`XDOg%s~r>swy;2eVdp%V?Zk=9T9lf+*xi4GhQ@Z3Ys^@nEL}sH?91qM zSnFHx=*jm;E7agmk*Vk$o+E(oBh%0}x0^eo!Ddfy#G-|6ff zfv05v$(4Z*(k?H+c~uZ6Zx~?rb%^84(LJlHY?z}ccW>tb-TSUM;MCkQdiw^+5q`w; z=RZJYs6m0&iNu0x{N;KjzRjq`xe@{yWvehvqin#}F0Cd<(AZFH$wSU-!q~(#0r4K{yp2$r+^8T2tDt*S z)igt4?LZ{aHV#0c?AVWg{whWQ@bJ-NvvmYce;3_H8wEfgwzjtMGi88@$tl#j zo8Tad%I80O+kyDvhw1asm{R;9I!iLZ>z{sxr=byrG--+|7g3e^x6Cc*E~7=dscU*C zy)$1+t?ESo#1c))Q|v!{@|Ha&dqmOriA3Wce|#+tvrmo{I``ICn$U&YTga~o3MC3> z0GgOs$_S@(9LTJwk?8y#(H~`%9Z|`}FnN1m_H;s18$gNCi%exLPM^Ob8G?cGuSYK6 zWNy81Xa@ZIyqu$dWMMs0lx|!ttj49RO2ns^BC}9M5oM2P!yYPhX2hkHAR$wYge*1U zZ&n~BSBbXH9z1*YTdd9@0{65;YGq<=H|nt`=D^JTWI3s><%i zu`3Ex)dw-NxPhhHn`9eei_5DN&F)GzTUuEqTMwUGTD^k-n(y<)-taTU&|3cc=@dNq z{)Jq7YIcDDwu+hg6|Ak_!S~Nz5SX^)x}44C7M3VG?h2LUYfsa->G|7OAf2;EPJDa) z9twzipDSsRV8@a9Y=H+il@83&m}Lq!nH5$Xy;>nrJV{|i1+B^M{zJ+D9rz|X1=a3$ z+}^l{r0jB3I~oK4DcPmaRy(nFX9o&euZX-lT%aHtFYDZo6B$+t1PyeZ$CA;HT+Bvt zc^%4~{WzYa#=mdgv925M?SIzDdZ($rLS4rRu_VI^Bq~**2Wcb4w(C zBU;8oyuHj1g}DjUo-R~5n_zG@hRo4ODZYWYcn8siZ9FC*v!ah^+t%4@*)ACqT=yQv4e zdk^Vv5XTa7aV5`y&cP}8TYKQ5Omzr=V{sWMG`MkVehujbYFG#WOlh)lkf$`` z4@A5El57Z%`zEyt$I>l0l~*s^nKc0a4o^JOm8dKer8P>slr=cju|r1PP)kMNgNRO1 zz!PMbwb`8pmZlaQRNN@d24!uNC(;^j;Ysv=6Tond8G$sdf%T35p+mNSqk<}wt zQ-}0oJ*sUU)HuD!uP`A)<3R*PNzVYYi=vO38e@0!JiTAPEw_lUCA zGq{QO8!h$^$BEU!?C?QBBKTx(9nMomj>vPMm>in9KR;`s(ul~bxv;uhuuD{hivdng zK)?~8fESliNJ5wZ?`=V5K{?T)R>}b1L2tCm_0^_2B<58iUP0NJs7-`|m_-JyvybW3 z6Lfa>PJeIoAh}t>g9Tew2DOum#5-Y z?UYg8WR|dzXgilvgN$;ER3*0Q2Fpz@oW7yQg%aO~B}eq01MdvIB}V>Ru@r`cj=#0QAm`=lJi87 zz*JbxwWa0TLZ#jw6EbpeG8XeqgNsslh$1R? zt;~hNv1z*h7g!{p@lddAp?O+a-5@c#jhr$)iYS=w?ma-TXF!13(LE#?zpb;I#;xIp z7cVe1HG_7_OzmC$=;$4VEznOIvYE2DLp0dN-EGl|9i&@4zGjS1PD_@p@wDO(5vkA- zUDQ}SXzA#MzqtcdRu{^&X7mk?pnq@_6?!Ww%`Vbs9U%aS(51;+Auh(HqUo7A+?rV+ zTRgCN+?t+$>+j+_=lEe?)Aw#Itm02`#bMFKP83UypH}II%0{Z+>_a(cmA9;nti<3% zt;;WBlDWT+Zd#$W(K+u2`A`#~cUE%X=aTQHS(1yyiA<*P@0AL5_H9DSN zjUdsQ{m0Mb8WF`l;@+cSf%|1#0Tx%cq+Fett3`~mBfN*g8Gtp1v0(sO3KlwRz0~+U z{uVJWSwo;jD8g%^y0=$XN$&;Z_@T*Iiqdryv9;u2`nq-$*9M7VdL+~47@H{y?})bA zzP}@smY;(oF9Y-2gd7y8Es_BShDIfVGccIyF;#r=;w66h zBx&0T0Cvin6QUCy(lwctaK>l4Ha)kD7zzqUi7haj`RY=sP$1sFNXk~?e}5B&f#Gos zj^4t*9Jz=;U&w)_w*CMB#IOGSOsYh2=1EBzg;Ki8s&xH^)k)-5X^rx|$=PN6{@l&* zCfLQQVO-X9!0PLh>d;}v_`t|9Rw=V^wSgl53$Zs@=tEn)eFxt5QCw9M70RzAZa$Bv z&wdbay1hP$Fbsej1sW1jKB8ve$ZjxYeex>iYCcSyu)ab=BA4xVeNzL2w@xsr!XO7BeTzD>w}^BYX# z==;1+z|s0I$vT|5l!ba<8yxjM)Yf@nrvT)r_hV>yOdN{osLkn-<91g7Hu`I$adkvt zwAC&gi_aBGdREaW_s%fV0vy|Vjs9TBdx#4LY5P>~DyN0Yn6#?-n9#PO^Uq6@cq)a*YaRB`5*HKcUll1y4 z#+9BE85YD}&y)=CQ2;Nr^4`WG@%4ActZZOx zc3m_J?=OU^LBohDs3%_R#7m-sW8;%3EK#ATf>L{h;S;7uVVMRsc9%poE+I2-=bc`u zya@o>kf9HtV{jS{U0 zN7R$oN~Co7{?2gd_d1YKQiUhqzog&UCfYTNahfOI$C;j8pzO9G6{0cO+gUoW1v<7U zCCr(nbzIIjg?{^>(7_ofhBD`6MIEA2N|8~hrhqgj6}i%?dK^#H3;>;H=8_0glp2=)!*YA!|eWUUk}I1{t>DP@YNCXMDt7*BP0KkZp`8YBZ7)VUh4QVKPD73Z6B0-nS;*E^|H`IEBf9?~S zoeeF>AaRsSj>6}&RW=k>)tQ5JoU!I24^<&86P(DyeB`8QciW*4jR%U}OXG@Z@il1#=C{#|Q;{lNHh zps7{L)oYtuxSU-n!u_yCg{c@j>DjzGBojUB9-NSZhL;@uaz?pSb0X6GUd8S{rB{_M}vstI*(D zz79o}Hhi0AL`{Gq|K>J^CuWKJ*Gi@7{N*&sj9gCtmm~2)+c;>10r2~X^e_N&3d@mK z>5v-lubQqN`D&Y}_CpHvpHW$10E8+)gOVa6a_zWTW<{;H6F19kQrY1fVB=JpTx=po z4Aq?rDV=?NU4t`4J~@B%h8fq3t+2S;k*g+7oKq_k!POkD-tZm(3*r;mbtux5IUzCc7+2)bT$|sGuW>ZTCc6RqZ0)WF}!Jt%wPUg@v=s8>5e+K|8$oZMC(;q6~_K$tq zC?XG!j0TsUcM$rTnt4+iiE#v2T_$D^u@~`iEFLkiv&ej1i#rxqJ=2;%g)=@&Lim! zIYEMkqnh+}l(pc7$|(!Zs8*P~B4k3%aAP=??}5hIfsL&_TI4}oDQ}RJ`*wpIkK-D# zLgyeydms^)%b;9(We0lO&g6UXyFZ-??E^e{ihuhi_JeVeWo;Chdqq4RMp1q)-dHk` zL%)3W8k18qP?G*p>#ekCq=j^5`akqnMaR^J8Znj5f_mc4EDBc$09*lL3i)9h#2DQN zWy&hghXA0loGFf8E)-7vi0(TfOC_A1@9|G0fcwb_exP+o%U9!Ep(k98`zQbkLI7Z` z!PStK_MTt0=C&Yu`vxRJe*l1k9qcO=KH}Z|vPt%m?t@!QmdH_A=x);5H4-rDeJvph zMD!&&y9{kTqtdcaPIKfYkO+bN}$79`M6>g$sd}Af6ElUBu70{x7A*-v9uoR_5VV zt~NaW?wN4KE2VYfobR_nybpkwOv6VzF8{H8fOoqo&r_7+65E5v-(%y>JqiRwuNK#( zfsCDdgBF`L#O%T<9pAw0(x#keO|iZ6fU@KYvS|?+VE-5Z#wCz^PLAHuKQ56zIj<6D z@?27#`X)Y40vJ0`#I+(sGQf;uzXE`A0>Iy-^5$@P;q)}Y>23bBk(h68X&2G?VFm~R zAfu`cx8`okoHG4k5g+UuL9M$*s(n|8)2mGm0f6*qk&wN!y@$^JTR0V;iE4*WfSp>X z!ROI8p|Q6TmDz!gf*+T@x#Vs2_e)y~*YGEZ269KM!ay{*qK0${X{5SV=`UKo9qP+s zy2j;PF0B0W%U^}UEs@W17F}Mwb4Y=P@YU5y5-T3)tsZ1347gEhK~{M+O7u=-ms==R z)gYsy7MZ0+l+zCusI5pVF%g}qA@OB|p~iz^L%m!lvE73`tw2v?ys;zHAVu49A&ik42w*bI_<;yD-@OKPIgPqD? zBTZ5#*GkUUVw;|u#r&BRcFwMkwniTUAe#a3w-5#D9~vVHF^j?Rxlh`_=rkrKrzPrs z3;>*+I0G16?J&7oWs~kkSq-ifRO4(KiP=0a=yx_+w-` ztnQG&PghjQbH)_dq4ka+N$JIT$^cw+$*&5)?CB!`*A?D+lpQYlUoXN@ngqMcHizmvY3VGw@H^ycFLc!9b= zP`3Alzv~C3n=q}yPIPKX08ngnOU;*o#7=i4wMsU+{(l01!5B%77@b)qd{$rU$2YMz zVRic8Z|z1}UIofX;BmX~DrJJ!u6`tuF#9sT7{}=T&)(3X(&9z`$P_AT0*K715p8s+ zFaACNjNqFz6Y83J<=$Psc3dp+%Gz+x5NF6%;=|`M&7XXp_cOri+B&K&b^)@*?)ikd zNyoV0@dac<^rIPoce6{I5UU_@Nxy&OstTu5wYZQ~B_Oz|szW*jRg2Rn0N{Ov)M6vj zb3b@~9)F6_aK0)6{{@Fo(&?|zUJ7T%=cPfbhlCDMyfxtk% z(cU*9U`n7YkgRSXE#g1|X(a9|>gw*5HlF!~WhgaO=pn~1*IIBjTZzw@|1%%Yq)5KA z|3tQv&u5!yl6=t8BH!PCih7!G7OLEUcD1M$ckVyH#M~NACaK8T{kT->CMvLo-3L!# zA#j|@Foh$~#{kgK+=UZY3K3gahuC5_BD1O~+n9+)gm!|JraFomlu3%~5ldp_)b%n- zZGnFn0K5~-QG=tCbSYMJibWJR;&)%14Qqh^b@ZY*#o>82{tg3>qwXR9KAmYnrPU`d zp|tmn<7`q1Zjs2^qLf^usl~};rBu6mhNmdCKR|ukDB|*KkYj8^QmK;w;*yP>x#dkL zs{K;Omv-gDKKG9RAgQDVrwbY+NHJ~VHWIC^2{Vgpl7*rONPj$^LxF3M=;aG(TRD+x zkV+4)fdm=d;K8nTsC9(<@BbHAjUhQlxWc!MKjVG*2=Q6cveXB-g_ z^Y28L_=%p@Be~RuoJuDJt!8*z`lO?idv}5)raOZD*x7p^WzdL}a-7O`5RG%=FT@DA zVUb^m;)cd=ZRhhw#YP%12?(IoNE2wnfGj3&#OxL1!Xp++EkMhFCu@s%u zQ%ft&lqUZhlhX_MBECc>lvOs@b~yqSYU~t|s>v~|vU$Yao2wi5kf-6^Z+m!?M%s!M zb)xKflV$wY4D^;d7@bXI&GK>rm&=%^aTTDQ7Q|5Nm2*5sZ>^UtY_8hy1pd7MIG0L` zlx0S;(k+X^n=x$H3kjf?QY4-8uH(h)nR4v#e6pejX(~4X+bfIA4s<4;7M9L&m*d{U zC*;g^IB_XgoRs@q6xtd|+s9J0()?v2E?S^*NV%|YY#ugW7h+Nruv3)Vp$IrMxj?_+ z5@C19)jtM+E4f-kXPIcxT}UM`T+7p-SYIXu;VGBk~nW0RZn!@D8w_f|8#!+9!>IS68rCO1a#DdM&dQ zk$JSn%2sK0;k}F`O%wcG<0R4-!PAGa=@q#)w~McD-b44mD9T9qrYc?dCPhym zAnH|UL5;gj+GF^AiF%^lM=urNT9E~$5)`%v1gKa0w-!or&?kDtmm_GMZ;-UQ>w z8FeKCKhq?!*!$1uEOEMH6kTdv0VxA=t@mr<{1HWdoJ-fCrE3u1Q-tpwok2{F`JiKS zOd{!}GB3Q%K@o4m1ksR+@fdSWY)W}rmk)E%X_YrpXACYjKz>)ZT=~(R< zo~F$D7#9Bk&X+ZZX^;SbqBHM)a%F=%J}>7~LS5S|8-2HCmkwG~-fBys;50ckE4?tx zaan)JnAt^4ks$3EotM%r11&?}0=+9JRE*o&nF8@XfZgd9KK|?GMPqYlAAon-tqu<~ zwT)0aI+3Ppm2!2qxf63McS)e`%d4Txv8x?)Tv>zUG82QLw&B+`mF6Nu1q|Wb$d{$iDB=5~WCh@^S^B5tBD=h5nUz|(D ziywax)y>=3{Hh*1`-OC+^ptZ`)ycFfN#k6NNGdjCgDBJnp}xe@98T}@nqGMTDvKYZ zlk?yprl`eH%6u{TcA_3b z1lk{@zCSuShfxO4fial4D{_yhp}nzBUbZgG|n!Zr!@aI0GNuEm;+K8 zDZ=5aeJIASXYLASfY(JK!P) z937z;AvAsnnlvs5g+zxAL|`DK6rcn~)Iaa8V{O$x@#Bxr_B_u&ujhHb&+`?STKM7b zE2T6gf(&IgUsW~JJ21-d{VB$#W@+oW&lgR%QJwh##pwpNxJP2L&K?ufjR*vSDD5 zv?>*e;WElUI*C?YMAPN(Y1DVoeDfY%!w=~n{gt5~=ja=rCON+a;f_QexAa;RpjNAC zYipyrx*Cl}LvnI5p`oD&5)xJ9m0Tn{tB9DmRB}H(%Z1i%y6--qYitJn&@}D0XXzQ7 zr~TF}=UYdxkrcDWE@W9J4GRmy%*+fyfwrEaFFQ%kts+Zv4o#JwiYq@;-#0`1_&oJ@ zW@#BUp!fcusb?OYew^@3JsaHOmkk@opA=st^YeDn%C1s)X^3MLKM`0qL2TnRCB2V0 z@%03u+DR(^xGAv$O=!!D76lE*Um*jexZ41fA|8;rs{@rQHM^|7=O9 zSS%(aWZ@?mVLJ~6+a+<>dqv~upTXAMN*p8~4ZEiTRFb90Ch* zPwilD{te{X4xIcV7KO^?a^vIr=b90=v^{{8QxsM%v6ye!!&95zV7-k$Lc2gLMDOyn zqYNvbR78>W?9RT%-qZ%f(qwkMm+`--PNy?=uK%uETU#S|(n5^crT_yJj>YzPgtjuC zwUr{YImk2HLU>7 0 ? 1 : 0)); - int interval = Math.min(500 / times, 10); + int interval = Math.max(500 / times, 10); times = Math.min(times, 10); // 分times次移动到指定点 @@ -171,7 +171,7 @@ public abstract class JMacro { * @param rect 矩形区域 */ public void mouseLeftClick(ViewRect rect) { - mouseLeftClick(new ViewPoint(rect.getCenter()[0], rect.getCenter()[1])); + mouseLeftClick(new ViewPoint(rect.getCenter().getX(), rect.getCenter().getY())); } /** @@ -235,7 +235,7 @@ public abstract class JMacro { */ public void mouseWheelClick(ViewRect rect) { delayUnstable(); - robot.mouseMove(rect.getCenter()[0], rect.getCenter()[1]); + robot.mouseMove(rect.getCenter().getX(), rect.getCenter().getY()); delayUnstable(); robot.mousePress(InputEvent.BUTTON2_DOWN_MASK); delayUnstable(); @@ -249,7 +249,7 @@ public abstract class JMacro { */ public void mouseRightClick(ViewRect rect) { delayUnstable(); - robot.mouseMove(rect.getCenter()[0], rect.getCenter()[1]); + robot.mouseMove(rect.getCenter().getX(), rect.getCenter().getY()); delayUnstable(); robot.mousePress(InputEvent.BUTTON3_DOWN_MASK); delayUnstable(); @@ -263,7 +263,7 @@ public abstract class JMacro { */ public void mouseLeftDoubleClick(ViewRect rect) { delayUnstable(); - robot.mouseMove(rect.getCenter()[0], rect.getCenter()[1]); + robot.mouseMove(rect.getCenter().getX(), rect.getCenter().getY()); delayUnstable(); robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); delay(100); diff --git a/src/main/java/xyz/wbsite/jmacro/base/ViewRect.java b/src/main/java/xyz/wbsite/jmacro/base/ViewRect.java index eef4b01..2e3687a 100644 --- a/src/main/java/xyz/wbsite/jmacro/base/ViewRect.java +++ b/src/main/java/xyz/wbsite/jmacro/base/ViewRect.java @@ -77,8 +77,20 @@ public class ViewRect { return this.bottom - this.top + 1; } - public int[] getCenter() { - return new int[]{(left + right) / 2, (top + bottom) / 2}; + public ViewPoint getCenter() { + return new ViewPoint((left + right) / 2, (top + bottom) / 2); + } + + public ViewRect offset(int offsetX, int offsetY) { + return new ViewRect(this.left + offsetX, this.top + offsetY, this.right + offsetX, this.bottom + offsetY); + } + + public ViewRect offsetX(int offsetX) { + return new ViewRect(this.left + offsetX, this.top, this.right + offsetX, this.bottom); + } + + public ViewRect offsetY(int offsetY) { + return new ViewRect(this.left, this.top + offsetY, this.right, this.bottom + offsetY); } @Override diff --git a/src/main/java/xyz/wbsite/jmacro/wjdr/MacroForWJDR.java b/src/main/java/xyz/wbsite/jmacro/wjdr/MacroForWJDR.java index 3fa01e4..fac9267 100644 --- a/src/main/java/xyz/wbsite/jmacro/wjdr/MacroForWJDR.java +++ b/src/main/java/xyz/wbsite/jmacro/wjdr/MacroForWJDR.java @@ -25,7 +25,7 @@ public class MacroForWJDR extends JMacro { /** * 工作结束时间 */ - private final String workEnd = "24:00:00"; + private final String workEnd = "23:00:00"; /** * 最大工作时间(ms) @@ -60,6 +60,17 @@ public class MacroForWJDR extends JMacro { Logger.info("当前时间:{}", currentTime); if (!DateUtil.parseTime(currentTime).isIn(DateUtil.parseTime(workStart), DateUtil.parseTime(workEnd))) { Logger.info("当前时间为非工作时间,休眠待命!"); + + Logger.info("检测游戏窗口是否关闭!"); + ViewRect 无尽 = findLegend(getFocusRect().offsetY(-30), "无尽", 0.8); + if (无尽 != null) { + Logger.info("游戏窗口存在,关闭窗口!"); + mouseMove(无尽.getCenter()); + delay(1000); + mouseLeftClick(无尽.getCenter()); + } + + Logger.info("休眠1分钟!"); delay(60 * 1000); return; } diff --git a/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_仓库奖励领取.java b/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_仓库奖励领取.java index 9ea8e45..2c13c15 100644 --- a/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_仓库奖励领取.java +++ b/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_仓库奖励领取.java @@ -34,26 +34,45 @@ public class Task_仓库奖励领取 extends BaseTask { Logger.info("滑动到底部"); macro.mouseLeftDrag(macro.of(158, 626), macro.of(163, 231), true); + macro.delay(1000); ViewRect 仓库_补给完成 = macro.matchLegend("仓库_补给完成", 0.9); - if (仓库_补给完成 != null) { - Logger.info("仓库补给完成,去领取"); - macro.mouseLeftClick(仓库_补给完成); + if (仓库_补给完成 == null) { + Logger.info("关闭面板"); + ViewRect rect = macro.matchLegend("城镇_关闭面板", 0.6); + if (rect != null) { + macro.mouseLeftClick(rect); + } else { + Logger.error("关闭面板失败"); + } + return; + } + Logger.info("仓库补给完成,去领取"); + macro.delay(500); + macro.mouseLeftClick(macro.of(164, 621)); + macro.delay(1000); - ViewRect 仓库_距离下个包裹 = macro.matchLegend("仓库_距离下个包裹", 0.5); + Logger.info("点击领取"); + macro.mouseLeftClick(macro.of(258, 433)); + macro.delay(1000); - if (仓库_距离下个包裹 != null) { - macro.mouseLeftClick(仓库_距离下个包裹); - } - return; + Logger.info("检测下个包裹提示"); + ViewRect 仓库_距离下个包裹 = macro.matchLegend("仓库_距离下个包裹", 0.5); + if (仓库_距离下个包裹 != null) { + Logger.info("关闭下个包裹提示"); + macro.mouseLeftClick(仓库_距离下个包裹); + macro.delay(1000); } - Logger.info("关闭面板"); - ViewRect rect = macro.matchLegend("城镇_关闭面板", 0.6); - if (rect == null) { + Logger.info("检测体力宝箱"); + ViewRect 仓库_体力宝箱 = macro.matchLegend("仓库_体力宝箱", 0.5); + if (仓库_体力宝箱 == null) { + Logger.info("无体力宝箱"); return; } - macro.mouseLeftClick(rect); + Logger.info("领取体力宝箱"); + macro.mouseLeftClick(仓库_体力宝箱); + macro.delay(1000); } } diff --git a/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_自动练兵.java b/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_自动练兵.java index 7b17a7f..85d7851 100644 --- a/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_自动练兵.java +++ b/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_自动练兵.java @@ -60,8 +60,20 @@ public class Task_自动练兵 extends BaseTask { macro.mouseLeftClick(macro.of(355, 632)); macro.delay(1000); + Logger.info("检测任意位置继续"); + ViewRect 兵营_任意位置继续 = macro.waitAndMatchLegend("兵营_任意位置继续", 0.9, 2); + if (兵营_任意位置继续 != null) { + Logger.error("点击继续"); + macro.mouseLeftClick(兵营_任意位置继续); + macro.delay(1500); + } + + ViewRect 兵营_训练 = macro.waitAndMatchLegend("兵营_训练", 0.9, 2); + if (兵营_训练 == null) { + Logger.error("训练失败,未检测到兵营训练"); + } Logger.error("确认训练"); - macro.mouseLeftClick(macro.of(396, 885)); + macro.mouseLeftClick(兵营_训练); macro.delay(1000); ViewRect 兵营_返回 = macro.matchLegend("兵营_返回", 0.9D); @@ -143,6 +155,14 @@ public class Task_自动练兵 extends BaseTask { macro.mouseLeftClick(macro.of(355, 632)); macro.delay(1000); + Logger.info("检测任意位置继续"); + ViewRect 兵营_任意位置继续 = macro.waitAndMatchLegend("兵营_任意位置继续", 0.9, 2); + if (兵营_任意位置继续 != null) { + Logger.error("点击继续"); + macro.mouseLeftClick(兵营_任意位置继续); + macro.delay(1500); + } + ViewRect 兵营_训练 = macro.waitAndMatchLegend("兵营_训练", 0.9, 2); if (兵营_训练 == null) { Logger.error("训练失败,未检测到兵营训练"); @@ -230,6 +250,14 @@ public class Task_自动练兵 extends BaseTask { macro.mouseLeftClick(macro.of(355, 632)); macro.delay(1000); + Logger.info("检测任意位置继续"); + ViewRect 兵营_任意位置继续 = macro.waitAndMatchLegend("兵营_任意位置继续", 0.9, 2); + if (兵营_任意位置继续 != null) { + Logger.error("点击继续"); + macro.mouseLeftClick(兵营_任意位置继续); + macro.delay(1500); + } + ViewRect 兵营_训练 = macro.waitAndMatchLegend("兵营_训练", 0.9, 2); if (兵营_训练 == null) { Logger.error("训练失败,未检测到兵营训练"); diff --git a/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_自动采矿.java b/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_自动采矿.java index 1a2b7bf..1f378f1 100644 --- a/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_自动采矿.java +++ b/src/main/java/xyz/wbsite/jmacro/wjdr/task/Task_自动采矿.java @@ -188,7 +188,7 @@ public class Task_自动采矿 extends BaseTask { return false; } - Logger.info("选择【{}】图标,坐标[{},{}]", type, typeRect.getCenter()[0], typeRect.getCenter()[1]); + Logger.info("选择【{}】图标,坐标[{},{}]", type, typeRect.getCenter().getX(), typeRect.getCenter().getY()); macro.mouseLeftClick(typeRect); switch (level) {