From 778a8a1a73c9d810bf28350c9461269f83174924 Mon Sep 17 00:00:00 2001 From: mno <718135749@qq.com> Date: Fri, 7 Nov 2025 20:06:37 +0800 Subject: [PATCH] =?UTF-8?q?js=EF=BC=9A=E9=94=81=E6=95=99=E5=AE=98=20(#2324?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 带识别与筛选锁定符合条件的四星教官 --- .../assets/RecognitionObject/Artifacts.png | Bin 0 -> 1846 bytes .../assets/RecognitionObject/chargeE1.png | Bin 0 -> 2133 bytes .../assets/RecognitionObject/chargeE2.png | Bin 0 -> 2111 bytes .../assets/RecognitionObject/confirm.png | Bin 0 -> 1391 bytes .../RecognitionObject/confirmFilter.png | Bin 0 -> 2507 bytes .../assets/RecognitionObject/filter.png | Bin 0 -> 672 bytes .../assets/RecognitionObject/filterSet.png | Bin 0 -> 9787 bytes .../assets/RecognitionObject/fourStar.png | Bin 0 -> 1855 bytes .../assets/RecognitionObject/instructor.png | Bin 0 -> 2459 bytes .../assets/RecognitionObject/lock.png | Bin 0 -> 598 bytes .../assets/RecognitionObject/notFullLevel.png | Bin 0 -> 2637 bytes .../assets/RecognitionObject/notLocked.png | Bin 0 -> 2517 bytes .../assets/RecognitionObject/reset.png | Bin 0 -> 3028 bytes .../assets/RecognitionObject/sequence.png | Bin 0 -> 5777 bytes .../assets/RecognitionObject/threeStart.png | Bin 0 -> 785 bytes .../AutoInstructorLock/assets/滚轮下翻.json | 25 ++++ repo/js/AutoInstructorLock/main.js | 110 ++++++++++++++++++ repo/js/AutoInstructorLock/manifest.json | 13 +++ repo/js/AutoInstructorLock/settings.json | 24 ++++ 19 files changed, 172 insertions(+) create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/Artifacts.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/chargeE1.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/chargeE2.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/confirm.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/confirmFilter.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/filter.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/filterSet.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/fourStar.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/instructor.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/lock.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/notFullLevel.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/notLocked.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/reset.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/sequence.png create mode 100644 repo/js/AutoInstructorLock/assets/RecognitionObject/threeStart.png create mode 100644 repo/js/AutoInstructorLock/assets/滚轮下翻.json create mode 100644 repo/js/AutoInstructorLock/main.js create mode 100644 repo/js/AutoInstructorLock/manifest.json create mode 100644 repo/js/AutoInstructorLock/settings.json diff --git a/repo/js/AutoInstructorLock/assets/RecognitionObject/Artifacts.png b/repo/js/AutoInstructorLock/assets/RecognitionObject/Artifacts.png new file mode 100644 index 0000000000000000000000000000000000000000..8cc3d95f898528106ad8293a93bc2c55adba3fb3 GIT binary patch literal 1846 zcmV-62g&$}P)j~c?FWc5hKmFKUQpv4$I#VhxM~?{i7BsYel~}c{~fM>$8^u7+_{*>B5cc zo2<%csS^&zqV=0Lzt?7Qczheciyyt+O-hO~=`3oNnSn1Lpu-EY2{3?cU0EBCDS}GY z%AYC^h}w&mn07%J=doxIHAV{v6ksy=_VLI>geM@-E@v?~D@xs99Ma%KfFHm4avvhX z6R7~YG5;|mh3fKgDB}*9?>u}k2r!cKg6FgIOR}MQzTI7E2|}u8&M%F7J|Q ztdk^22#~i{mS2BOq|pc#Ps?&V+1}pWbxyW-0s6B#MFsBWT*KIdc)IPM`1ZmBbOAtve{Tk zcM1u?$k~h%WE8_%AKz#X_IeAQb@lQ7?Ymc&B9}C*EIZon_J)=Bb?Mrz=L|keKX|8= zk2G$@;$isL?#(6zW->XjMqvLLBZ44Y&Aa%j@y7ejET5chCMZa^cEq@(vkf z&@W5xjYg@*#v7O4jH8gnE>ct;)7y|+nfgE?YD~vs7ca%7sZuEQNSJZuN)%ZZN6w)N zHvNjcm8%Z`T{<00xO6G5pdx^yf#M-c7aAxgE>5jtluWjMC>mjl%QP^Syh7yHx&vPl zgv=*&`9i{M8bt{!bJ>I2l7z6e0|1Cy?b4iI-Dqo71%m_OE7A5^%c!bh0;bvHuQLEg z#h2B^vm!zo>Fi88awOnDRAmyiSDQxXoS#Nf_UQK4sxT*yWTE8*N(h~tNkRmM;0P-6 z=)(CJuoA0rwg2CH`-B;Q>BEKL=0=gDsvMXsMwy5~H%KzM{Qf0JSg&f1_P^SCo>@KX zYP*lBq=5971ZcRuJ_zW#Sr(tWdMO4&IM~1U`Iq;5fQZmQ3T@}B=c6J{grf0uFBgNZ zT8Lk}`o>yGG5_F;oul0Zr8rSDQY3hC^wSv978ftIrh_t2yCSRCU%MO?Rz2O@{HWXF zE~7#T3udAdM#;@jet%*7z?xOzI!Ai|Z<5pXix*q%s^aA+o=mZQ|NefP>b)U~ip^`+ zl2kdJ4hO)`KMw~b^qhzfhu@Eymp59efKh9))AXZEs3K+Z!Cx<*jfs#hHWzza4-du_ zq32b?1T504X`-+w3EW)aWE4b2*FXGI2N|Q_gAY8sdl36l;mm_hkdOKa1Pn0I<*T85 z*wE?v^&5*Ok$?`A!Lv*%Q@{lS94#O9SHuYO;4pM$GO9v+?fTge#K8nGmp#kGLjVEm z{n+2`Q)@-hI9h${LI~@>OD&ke3>JL$WXO6y3qT6Ydf)e`G=S7-eAK-VLichS%wPZ* zs_e;-6k>(}s8RpHsPOet^^6*COY)woXdT_GtI9w~wy$B7c0tS-Mb29<6VAM%JAM;G`)!viWH!T@0MP@Sk zX6xz5hgl;D=;loQEqIM>di1P!cyLtg-hJ1im48Ije(%X=Tfo;N)PuygV|4dn?WEJTHU2WUY?5o~_g1wHo@?T7$4Eo_u?2x2(Y03e2RQdhVn_ zBS1km$Xz1^+H&XLdqtSLjbletb8u{cC;(ixop#Ou)z1CHG8a9?kJk6wiF~8%UVBX> zzq8|OLSOZxcFc$wKxoYD$0E}F&a*}k&hmIsf}C)HGi8M@0><~8eKQpgA?D{NF*wm9 z01So4_+Es&xmI?Hhm}_>FCnTf?2fHWT+Q-J7W|jKiUuP@DCO=?vY&>6v*VLQob=># zF3im6p1|jR)*Al8?Z4{ZKp0HqiFqGh;rV3@Yols3BG}LQIO3_^UtS6_%hEzML0pDY kzd!`1f&hWh$*F<<2lZiQ4^or*xc~qF07*qoM6N<$g1(K4FaQ7m literal 0 HcmV?d00001 diff --git a/repo/js/AutoInstructorLock/assets/RecognitionObject/chargeE1.png b/repo/js/AutoInstructorLock/assets/RecognitionObject/chargeE1.png new file mode 100644 index 0000000000000000000000000000000000000000..ccfa4e3953265d288e4f78e0dcb8c3c49b8ef62e GIT binary patch literal 2133 zcmV-b2&(sqP)J z)#W6PlazP}1_L%=W)QQGkdB5k?7jb9^m~C1%K%Do79RdsDc-YvKqA4l0ubJI!_Mbg zY4VqS`yI;)JVS6Gr8`TF!4d~x%v)gDbD`FZ5ddh-n654~t#^h=D?|W9001B$L_h)% zM4*W<+MRA54HX#xDaHv1MD%nvef1+S+6Vt=WK(^(-^p_z&{6p>;Yg;3Ku z5$cFXOKa7^$!x4+yM^noHfJ6(#=Kp0N~S?Xnl`qC4EN0Nz86To)AE)NcypQrgnVmjQJo^Lk!4G6Zw(CBu9nUWAa zK^Y>khd_?wE&Ndk5lKTx;O)neFbJYTs*ixcFg2l2(&SpKue3Pl4I;}*gj=#@Xq`@1 zlWOJpPGPbyh*#&j1j%4(kLRvmO~J-zRVAfxc7N|UAIJ77THMuunR{koyqP2btd~W} zK5`u2>eTxzp*2GYJ678SjwHnpFrwhC(l9h2n_edmm`J2pv^>MzhQFucv*s0&L34O? zWEcU`sZ$Yj6Jx$`6O{uBm%@m#`~$OayLrww#QN8jfuFd~V-rcezBiWVia679scD@v z4W^~I8`w~LzF*ZJewc4hugBgSjDYMQv>evibfc2{c9AO)|Jei=vBP$cap~OAW;&By zRbxGTfhET}{t_iFV|4gz@y?xG`Pq8!W%c$I^e3N9F_lXa0{MG?J}sDMZLOprQ`csu zPf`9)x=L`}(@RJ9X`1$Zm<_eOL62;pRUKxnl!Z}weibZXzYZ(E`huoK|DT&mtrAFsSU zq-?zPedtWyc=4jQc&)?*0s!N-1c3?+Aw=WVqhN4otg4j|Ft*eF-uXasCfa{9k!h_| z>eBtvf&W+o$f3)DvG<7eO=j(TU#vXJWw$cb!8);ShMdJ83_mtTdOPhe;^+D!YqIwy zM`@}xCCxpnEsiY7SW)=1|Ea_~r!PBU7)4=dQ}{&Q&U(l==OaYTvcPO{w~=K;@eA)J z$}miwjqym9Nfrv8nhkXT6&1a{u_Bbrjx-vr|hE zWFCr6&3Dw^zA!DT(Fpq{J+(U1+l9zD&pkw3sR*oZrOw{y(YoT=we^?0IMfk8{#Q7( zU((^)&^Axxv{G_wbGkD6sx~t?IJmYu_}O7~dva3vhIe2hxFk9Ok|TxFJ7yXuYZU)! z&ks-C{4b3C!f~T6w3fL4F91I>z+3XVCiUTAx$8ot^C|e<$Ky}S>HA$L&cI4_PP-*Z z5WM-alAK7tu7{1I<9h70)g52*D(4Hq`Ce)J3!DwR(#|JD?B)%no~=lG)NoOD96xur zl1O<>D@-&2ywE1m36s_j zkr=&LS6c97-8*E zv!X_Z5tC{A{rS13lQ?g4sryH_BYV_ksA9#R5A@{y`zmo#b5xi|v^AR;0_)BzWOynWDw#09A|AexeREbuKP!tIvS zDFp(x>0ayUDy7H+04Ly?(@twAlho*Qv!)nnV8`EYqSBm4kq^gH3ks2d@a97z05qJA zu$X2x2|~8}w46v@P?`Xl)j}3*;#nY|;&nebJpqB*O5G>`)}uz2^RT>A=XvkD)Omon z-?n;>o`?~~;)Wn3MAOiLYmyU5&V`VQfXFiX>s;_oL?phXjOdFl;4C2yL z@3%@4E8KU2ALbaEPBZW{;L+mDZydEcz0M~JE2}Te?wy&|_~^4`+sxbUt#JSVjH1~& z`^pH{3XyS#0FW8IpNODWL;y^bS60_q>GCxXm`%+8E{<$t^VeJ{Vj=fdjuDv=W8uOM zVq@+ig!?b2x*yz%ow1Kr+Fw?#zuzyW-tap^y1&2y0Xpq1?Po6%5CI@*L z{R0LuBqYNBe@GGx&`5y)P7jBnApn$$M{Prs5P@wp-DszqbE9>NqRS5a7!m2fj#qqN z1H7WxMsU-k_(#OZ?vsRlS0uTWrAZP+006_R3*i~aFXGP8V00000 LNkvXXu0mjf@<;i` literal 0 HcmV?d00001 diff --git a/repo/js/AutoInstructorLock/assets/RecognitionObject/chargeE2.png b/repo/js/AutoInstructorLock/assets/RecognitionObject/chargeE2.png new file mode 100644 index 0000000000000000000000000000000000000000..d161279f0737cb4c4fe67753599ec479438a3c4f GIT binary patch literal 2111 zcmV-F2*CG=P)@K+qYs>bd|B+w(XAKL6ELqw_F2m%xlWyqlDnIN(s)u?x zKozQRfb-!$6p#P_;cFqPf&zeo0uo1o-z7iQOFHqR;MH34Mn5J*c zrc7LnF%o-^6jgC}3mU;-^`1O8`^4p%ExB*2Z?$zVB%rS~QRc%Hj07QWXrzIjla%>3) zFVD*U^=8H0$+YhEi*Ua`IHYAazkIHkd%XymCQ0Da9093@I(M&;i9+0LzyM)PRQ`B@ z#tM);D~&Cqe*70uStwNj1J}3Hzh{oxZyIaTkwna&qDx1KWwUu^n8t zdffMW2Tf~d);PLC08~XyUlS3v4IH8&mGVbW{N09#4HDPy$3|5onB86k!Osqmr7n@! zS66LAlJPc8w}S)S-pay@AHI3E)csRat!F{b{^GJNC%wPM`}+~3uY6OqzS?hf4chOy zdT(jlWO=(MH5`QYpnrIYaAezF z=EG{F0ax2~*)*X0Mc!65n_}L$kybkF;74B_O8KC0UF_b6Ykb}eFWV!jk;X9rDySkN zC^)N9cT&Gdq96{)KPxab)QRmU(X*WK;pZ*t7+~hv2rjYl$0N~s-q7)v5Qqkw<1gnE zZpxE(TEBqmE@FP1DZ49#gS{@c=3+c^-}h;k?9ga-%Z#WhLWH1VOkIDb7sM<|l(a>P zgycHmS0|QFU(x61V`9{Hbua1#m*87u#Feo$zNqRvAN<>SH|jD)*sV+w4Vz< zCEvc86`e)$O@F!0CUG{aTWhFyWsFMEs7dt*i^dg8Kpvl+ zw2$u~XTwW3Iege6+s-Q_HX&?2rIop42Azr-Px#X#uLiH@hm1PVJ?@n7_{j|IavCnP z*(%az{ZyevL+f7?)9noWdQG>gPXOe7P4B^)(I`DWK9#++{;+2fAU=D`_jHkF%&INk zr2jc!>a}VT>r%7sRw7>ZhfkDUx%&s3F7>2y7*O7HwmTrs<0@V){WVX^0at+974b&v zJEHtDr{%lhrK_eJ<`8RV%+~4k+pV_DgfXT2u5&|)^wnP9veZ)>z zz&Eq$)tegU^H8YHW_Em$ADc{pV%;nXs}_Q6K#N30V#rUO^#HTyUhI{t-*y}CA#9HvX@!@XkrLH zA7p%Ng8)fnYFsejr3AF95@Y8F-#)MQ-rCJaMA3N!(=7YRp(Kj3r~=9yv9PW!4*-u* zlG*?nLwy&vwJL%tpdmUsn288BASfPo9=M3I20$ z$M;~|nN@ITj4^!a10lfv0gR{)CuiZ~eVc?vc%a6fXDa^rP1mIPR#bfdb-7tjYa3&K zbY85c5u&e?uBe`OR*2MmTFE!Vrad4)j=f$E^Y->8E@P)VUhA0e_b0b}ci<-kASAjh zs?Q1lptWbCo$iYl^4lF}G1ie^UpogMHpS)SDlV6uL0^O4+~;R`f3@lt{l1$$Oa-OY z#^+zIA)fh5E zgFm;c)%zw@2vg31Lfp-JgR5RStLm$3b2#dJ-tYG(Fz;O=e!goXK%Dpcry1&csnPiI z*tt1r%SN`nGts(P%FAz?yWOs;l6;JJ^V+TaaJ1h6f~qnxwhRIQNEQsOm$R9OjfmlS zU$6;bcQD)eU3DayL(^^{gs{mo6GhA2?jV9F^TRqu(Crq&?$`CvC-rerFRR2MHqAVf z)qL)QOLn`HheaoC*PHzS1yDhSO$iGF|`vX#kcyBzzMR|l?LEW8Ifb`9v$Xcs%$ix7>jsbj38*2p-(-2;nsLif~QrCl8R5$e0kg~e-w<{>gH`0c}%;+71b?Sl# ztg(1!ASwVp&-$k;0p+z|=Ei?C01OTldbd6<4Ia*frl3zH!gX3G1~&CbV^bR_xwJJo zwP?L97qc|eBvYZjeJZK`>!U>iFg1;-0O46PL$*>BjYH|I3&9m;QdQ zIryDpIg@DlJ8@>QGV&D?FpaLz7S#ZVnNli`R7Qr<(*2v2|cW!@DIrxLuOI^K2 zivQK6uW!sORRPmHwU)3gDd5fE-1bJ~$Y5>f=FLj)!`~Git{3a|xqI=YGrgcNd+UWy z4~&s!8q-$GiCRZz2xGRq$rB^CH#Pk@hV|7_p1H8KQ-Daj{y+6!z5wIRi_8Z~L zk@BF=>dTLl6C)T(q%Y6X0-OsyNhmg?s8drRs>#JMA;@L~_ZxZIVSCe0|m)4#q70_Ewd5%}6k5~h_s3p@K_Uy?&2{{FhpH@BTT>0Qj#2QSi8 zh;z>6dm5YrVPu|FYRI>D#YY2S@I}r3vk*fzVinNLxx2N!ZL40rGpA~>SHHV=?ba3y zP?T7!#l)>t`ozHq_(H2WGavJjpMCyU0OtI|H8oT#ovkVs4o@|VfJALQT(6}m*R~6V zM2&z1tj;!K(uyX8S_x#FU%Y(u{&I5Y z-01r9{OTz$5(uA&ih~j$bgz+w)wQA(bhc$gTM&TtE9K^Ko!uHaH(Wfk`S0rk7YcQP z;%O9%YDUxDh8LG+md3ia$s`RZF4Qg@yfWJ}c7C|{^mxze?X{MY@EzA1(1uZVcba3D z&tHGP(tr8c-+oXKfK0NWA-p;{CUwt>-r{{j+61xf`W=1l+q002ovPDHLkV1jO4tJ?qo literal 0 HcmV?d00001 diff --git a/repo/js/AutoInstructorLock/assets/RecognitionObject/confirmFilter.png b/repo/js/AutoInstructorLock/assets/RecognitionObject/confirmFilter.png new file mode 100644 index 0000000000000000000000000000000000000000..25568994fe993a7eb010a7f7baad779eb7c4c87d GIT binary patch literal 2507 zcmV;+2{iVJP)MhHUfVQ?`J0?y z=bpOfe5b0uI#or(00@8T!T7Tb1_1rj!>ax{w6z5Kgtn6}kF+hiF`ToaSG=#40fZe* zb7WI{r%PQoo5sfJ)}_~dDvV5ifZXzr_E`{7YUcdmhjyo#o7R7{ke=ARa?9-89se21 z+vW=Y_`KwAUk3o`=@+E6JV!Km@$&#sJDD#P&OU*TN9Mp1K`MQR8(-AUcaOjLx*OZo z-ihc0kiT~PlavDSd5x<4d2SgU3UJ3EAz@*ey+$|wav=VQ#H(d z0Okv)fcSV{Utiyc2>{SJ0;yu~pQf7bxf`hb=9g%@Z*6>VhY!{~+;B#6__a=l>4m*54Pu^<=R6YiIv0ZGUh%$QmGeV|$WY|G<%-e2lRR zf6xkmp(={>!W44X0O_e;W8UV^@yTa>=7vXSDG+}4`>XxXegIGhaOMh&Upkas_sHUV zi_zhu6Tc2`c(i@x)?oCR$!x{|$ldx_cl6$?Z+=>YS}2qeodOjXLxy%FNIyIl4@RJ= z|3K@PS^&T-{qC_dn*cy#z|UOf{J`G%U);dBX~~=Mg7Kc~Z(|hhTDf26&C0{iEIW9y zdlz-x-{Ma`h4R+L0K%r(08&z_et^QN0GD>22cib8>qmhF@$3niwQCzlHNah_g1P30 z<&yXl|A_7f`z|#1_s{b3X*Au@FjQ&t#B=qohgQH%0k-q1Iog6Ca&9mQS7|n!U#!RZ zd@W+mWuwS>#`!nShu)_PzLqKgnGQ9&L;?^InabzBB+kl zm`K%KN(rOFqEKQ5)W^c$uzM!&-ONy!>&&RyHjlB#2bs{awZne^Ah{%U+c#iUrD!;VGj;~Y)swNoPb0ji6jdb{DaS()?*OttN_{4!Q(|OCoI(p!Ml>hdPmnthB4MXo2 zq@vb4uD^D6{tUc|cwzM;?d|6(t+k-*BAAp}nMhSsVJjz9N)(@|=jJ3OKwNrhP!*w1 zed%ISXp=y|>P_OLHG?4aCf}6tHZ^TwJ@x>xODGy%dObq~;zUKR{f8fIEC*Y*e_O#& zwoF7&6;&IZ($ebI`X7$hj5Q1epiuR$kmr2wrWHP0zH##c6&ETb$VcBx%nQVj_Szj8hqW z`o%w1<;2eY>b;UGEK;>co;cuV-bQ=R&8yiRsX&}4h$yJn3~2^H&1G$rGzAqRZB!14 zA#gbT?oiUc5fA}04*qzL_udLri6BZb0r3=@@q=OHf+O$etTF)#51X9Xd3I#O@5gIx z4`&x{c;)!(~ithb6M= z0WiE$9YB5B*b+GtAT-_z5vh`=Af)4+Up~3J(tfYWE!gn(=EyE|#fTZ``)&I)d$(>*A z`xj++z|>O2$)a1k{(G!z<7bNX?A4oIzVN%xrbJ{m-PAm_BWzxoF)15^G;7CaikHv? zWU7^2m0)~t;aJCQUx|z>uDa=PnkKU53kCHu3#%~I$012=U|vhvHPcABE{hxtJi*jb z^fS!abuH9HM4ng|Eb3xGsbASV{%7GEvv{ThON42==pbv(WD&p|8%l#T>D?# zb}N!x#iQ^@I$gLYyRs3C zO%rLoM}G0z*tc5s^xjwG>ie65?gy<+5`?kav~jGILxe)TwfI?6+V{9*uz&u@D9udb5oe|YfVNEBogAXPTX`Fx8g(K$ea zAdR8K(b0Vm778LRjXG=5-qSsQ(Nzb?5Cy|8Z0)GA5n&c@jrb@!wk{an9^AX89(x~H zK;*4w7TmHvRSg5@l4R)WT-N(ErFxobqxm4`jVYA?ItPVeFHizkx<4RceF=?g{vSq4 V97wI!t+N0C002ovPDHLkV1gEf-#Y*R literal 0 HcmV?d00001 diff --git a/repo/js/AutoInstructorLock/assets/RecognitionObject/filter.png b/repo/js/AutoInstructorLock/assets/RecognitionObject/filter.png new file mode 100644 index 0000000000000000000000000000000000000000..fc72cca1e713598781207f2dfb67a3f32105595f GIT binary patch literal 672 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%0D=r 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 V&DWFuduRXv002ovPDHLkV1j%^PI3SM literal 0 HcmV?d00001 diff --git a/repo/js/AutoInstructorLock/assets/RecognitionObject/fourStar.png b/repo/js/AutoInstructorLock/assets/RecognitionObject/fourStar.png new file mode 100644 index 0000000000000000000000000000000000000000..09ac8859b4abf6b753cedb44a4c47830d0a2dbb6 GIT binary patch literal 1855 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 literal 0 HcmV?d00001 diff --git a/repo/js/AutoInstructorLock/assets/RecognitionObject/lock.png b/repo/js/AutoInstructorLock/assets/RecognitionObject/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..7581e4f26a5db3e81b90bb38b913e3ef1237b4c5 GIT binary patch literal 598 zcmV-c0;&CpP)?DxT6v5cEZqp{T|NnEQP5aV~wGv`wp%4-~_Voj!5C{(bX6L!f>$}%S z_kgV|qiYEj5+H$k%OK&0nO#-)1SCw!L9eI$d|hoTTgF1#ie=U#0PrZ1GTy9e9SP&; zW=Dg3`GY|U!@?p=2v;l`1gxdQ;BW#koX+QYfpj#=WFwD=H&!yDW(_v8*%m;#NTzoU zo)oMEM3esYTa#2=o6R@esnaW;R&4&LRW?anK3|!iy>Z~j^LZgB(+qg`_WPokXD9ec zckH?lqt6);1-D;9JZ+s9uL=_lZwLUy@I#VH@`|yRRkTY%(btcn@5coJLNM+4@T}1% zIC*w0xZn4Da#ik%I?i6^Wwo+;;fRlvqyyECFJ^@`*3FlVgtyb|0{*uKgUhmMi}zW3 zn~ZA{ZCtB%2GO1-!MqQpOILM!I_RgI?rFe0t*^?sZ2YU(bejF{|aGZ8)_( zdPQIt;Y!@(&+JyK4*a!*Hm#n@N7KKWA~9bAnFR0hdqrq>z1_R{sl3Uv_8WLQF8PjNvy;F+c@^m z0Sh4rYh1Tn1t|iQ)pdBG5eh{vH&?)1{DUGPL+E8ubC;0(2_htk5Lzz}j%ttNx`yZl kkf1QAtTCNKG7JUq0;k9AMAytMp8x;=07*qoM6N<$f}r~u4FCWD literal 0 HcmV?d00001 diff --git a/repo/js/AutoInstructorLock/assets/RecognitionObject/notFullLevel.png b/repo/js/AutoInstructorLock/assets/RecognitionObject/notFullLevel.png new file mode 100644 index 0000000000000000000000000000000000000000..4663d322e3c56e9a470e1e02c86ffe376700178c GIT binary patch literal 2637 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 literal 0 HcmV?d00001 diff --git a/repo/js/AutoInstructorLock/assets/RecognitionObject/notLocked.png b/repo/js/AutoInstructorLock/assets/RecognitionObject/notLocked.png new file mode 100644 index 0000000000000000000000000000000000000000..f0d3204f53ecc0049b3e3262718e5e97ec686c9c GIT binary patch literal 2517 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 literal 0 HcmV?d00001 diff --git a/repo/js/AutoInstructorLock/assets/RecognitionObject/reset.png b/repo/js/AutoInstructorLock/assets/RecognitionObject/reset.png new file mode 100644 index 0000000000000000000000000000000000000000..ad56e6fba5706dba2fa1276cc86b09f1a2b71f35 GIT binary patch literal 3028 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 P00000NkvXXu0mjf?QeLO literal 0 HcmV?d00001 diff --git a/repo/js/AutoInstructorLock/assets/滚轮下翻.json b/repo/js/AutoInstructorLock/assets/滚轮下翻.json new file mode 100644 index 000000000..f4bbe28e0 --- /dev/null +++ b/repo/js/AutoInstructorLock/assets/滚轮下翻.json @@ -0,0 +1,25 @@ +{ + "macroEvents": [ + { + "type": 6, + "mouseX": 0, + "mouseY": -300, + "time": 0 + }, + { + "type": 6, + "mouseX": 0, + "mouseY": 0, + "time": 16 + } + ], + "info": { + "name": "", + "description": "模拟鼠标滚轮向上滚动300单位", + "x": 0, + "y": 0, + "width": 1920, + "height": 1080, + "recordDpi": 1 + } +} \ No newline at end of file diff --git a/repo/js/AutoInstructorLock/main.js b/repo/js/AutoInstructorLock/main.js new file mode 100644 index 000000000..42281f7b6 --- /dev/null +++ b/repo/js/AutoInstructorLock/main.js @@ -0,0 +1,110 @@ +// 主逻辑 +(async function () { + let scrollTimes = (+settings.scrollTimes) || 0; + let scrollLoops = (+settings.scrollLoops) || 37; + //先回到主界面 + await genshin.returnMainUi(); + keyPress("B"); + //切换到圣遗物界面 + await ClickPNG("Artifacts"); + //点击关闭“按时间排序” + await ClickPNG("sequence", 2); + //点击筛选 + await ClickPNG("filter"); + //重置条件 + await ClickPNG("reset"); + //筛选套装 + await ClickPNG("filterSet"); + moveMouseTo(400, 750); + //开始寻找教官 + let attempts = 0; + while (attempts < 100) { + attempts++; + if (await ClickPNG("instructor", 1)) { + //找到教官,终止循环 + break; + } + //没找到教官,尝试向下翻页 + await keyMouseScript.runFile(`assets/滚轮下翻.json`); + } + if (attempts >= 100) { + log.warn("未找到教官"); + } else { + log.info("成功找到教官"); + //确认筛选 + await ClickPNG("confirmFilter"); + //筛选未满级 + await ClickPNG("notFullLevel"); + //筛选未锁定 + await ClickPNG("notLocked"); + //确认 + await ClickPNG("confirm"); + //开始锁定四星教官 + for (let n = 1; n <= scrollTimes + 1; n++) { + if (n != 1) { + //当不是第一次循环时,进行翻页 + await sleep(200); + log.info("执行翻页"); + moveMouseTo(960, 540); + for (let k = 1; k <= scrollLoops; k++) { + await keyMouseScript.runFile(`assets/滚轮下翻.json`); + } + } + for (let j = 1; j <= 4; j++) { + let dobreak = false; + for (let i = 1; i <= 8; i++) { + const fourStarRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync(`assets/RecognitionObject/fourStar.png`), 120 + 145 * (i - 1), 200 + (j - 1) * 176, 150, 180); + if (await findAndClick(fourStarRo)) { + //成功找到并点击四星教官,根据自定义配置决定是否锁定 + let dolock = true; + await sleep(50); + if (settings.chargeOnly) { + let hasCharge1 = await ClickPNG("chargeE1", 1); + let hasCharge2 = await ClickPNG("chargeE2", 1); + if (!hasCharge1 && !hasCharge2) { + log.info("不含充能词条,不锁定"); + dolock = false; + } + } + if (settings.thressStartONly) { + const threeStartRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync(`assets/RecognitionObject/threeStart.png`), 1330, 590, 70, 35); + let threeStart = await findAndClick(threeStartRo, 1); + if (!threeStart) { + log.info("不是初始三,不锁定"); + dolock = false; + } + } + if (dolock) { + log.info("满足锁定条件,点击锁定"); + await ClickPNG("lock", 5); + } + } else { + //已经没有四星教官,终止 + dobreak = true; + break; + } + } + if (dobreak) { + break; + } + } + } + } +})(); + +async function ClickPNG(png, maxAttempts = 20) { + const pngRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync(`assets/RecognitionObject/${png}.png`)); + return await findAndClick(pngRo, maxAttempts); +} + +async function findAndClick(target, maxAttempts = 20) { + for (let i = 0; i < maxAttempts; i++) { + const rg = captureGameRegion(); + try { + const res = rg.find(target); + if (res.isExist()) { await sleep(50); res.click(); return true; } + } finally { rg.dispose(); } + if (i < maxAttempts - 1) await sleep(50); + } + return false; +} \ No newline at end of file diff --git a/repo/js/AutoInstructorLock/manifest.json b/repo/js/AutoInstructorLock/manifest.json new file mode 100644 index 000000000..191a04d3f --- /dev/null +++ b/repo/js/AutoInstructorLock/manifest.json @@ -0,0 +1,13 @@ +{ + "manifest_version": 1, + "name": "锁定四星教官", + "version": "1.1", + "description": "锁定背包中的四星教官", + "authors": [ + { + "name": "mno" + } + ], + "settings_ui": "settings.json", + "main": "main.js" +} \ No newline at end of file diff --git a/repo/js/AutoInstructorLock/settings.json b/repo/js/AutoInstructorLock/settings.json new file mode 100644 index 000000000..403cd649e --- /dev/null +++ b/repo/js/AutoInstructorLock/settings.json @@ -0,0 +1,24 @@ +[ + { + "name": "chargeOnly", + "type": "checkbox", + "label": "是否只锁定带充能词条教官" + }, + { + "name": "thressStartONly", + "type": "checkbox", + "label": "是否只锁定初始三教官" + }, + { + "name": "scrollTimes", + "type": "input-text", + "label": "翻页次数,锁定完该页教官后将尝试翻到下一页继续锁定\n警告:填几次翻几次,不检测翻到底", + "default": 0 + }, + { + "name": "scrollLoops", + "type": "input-text", + "label": "翻页距离,影响单次翻页时滑动的距离\n数值越大一次滑动越多", + "default": 37 + } +] \ No newline at end of file