From 91746c2af384f3796f3bd36db4a8b8f777dbce4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B7=E4=B8=AA=E5=90=8D=E5=AD=97=E5=A5=BD=E9=9A=BE?= =?UTF-8?q?=E7=9A=84=E5=96=B5?= <25520958+MisakaAldrich@users.noreply.github.com> Date: Sun, 29 Mar 2026 11:20:33 +0800 Subject: [PATCH] feat: SwitchGlobalAccountMode (#3051) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * style: 添加换行 * style: 更换OCR模式的变量名 * style: 账号+密码更改为账号+密码+键鼠 * style: mode对应作用域 * feat: 国际服账密登陆及切换服务器 * clean: 清理未使用及重复文件和代码 * docs: 更新readme和版本号 * improvement: 防止非预期的换服操作 * improvement: 处理空月祝福 --- .../Assets/RecognitionObject/america.png | Bin 0 -> 4821 bytes .../Assets/RecognitionObject/asia.png | Bin 0 -> 2266 bytes .../Assets/RecognitionObject/confirm.png | Bin 0 -> 1307 bytes .../RecognitionObject/confirm_button.png | Bin 0 -> 2414 bytes .../Assets/RecognitionObject/europe.png | Bin 0 -> 4095 bytes .../input_email_username.png | Bin 0 -> 2134 bytes .../RecognitionObject/login_other_account.png | Bin 3868 -> 0 bytes .../login_other_account_1.png | Bin 3876 -> 0 bytes .../RecognitionObject/login_out_account.png | Bin 852 -> 646 bytes .../Assets/RecognitionObject/logout.png | Bin 646 -> 0 bytes .../Assets/RecognitionObject/pm_menu.png | Bin 2661 -> 0 bytes .../RecognitionObject/switch_server.png | Bin 0 -> 2760 bytes .../Assets/RecognitionObject/twhkmo.png | Bin 0 -> 3151 bytes repo/js/SwitchAccountMultipleMode/README.md | 18 +- repo/js/SwitchAccountMultipleMode/main.js | 192 +++++++++++++----- .../SwitchAccountMultipleMode/manifest.json | 4 +- .../SwitchAccountMultipleMode/settings.json | 19 +- 17 files changed, 172 insertions(+), 61 deletions(-) create mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/america.png create mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/asia.png create mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/confirm.png create mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/confirm_button.png create mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/europe.png create mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/input_email_username.png delete mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/login_other_account.png delete mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/login_other_account_1.png delete mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/logout.png delete mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/pm_menu.png create mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/switch_server.png create mode 100644 repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/twhkmo.png diff --git a/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/america.png b/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/america.png new file mode 100644 index 0000000000000000000000000000000000000000..080611627d55932ea1bbb1c8dfd2609992c368ee GIT binary patch literal 4821 zcmZ8F1yoes)|U{6@B;~j0Y$ozW+*{wXc3SOiJ_$iK}r;4P?~{3>5^vX5G0gFN=mvx zKw{{Qcm3X5>tE|X>+G}l>3w&ebw6lp!Ecd3NdN%2rK+N+1L80cI3f68TOxS)3q*KG z9k@JD($BCCb_nerYd!{m@@Ucv%Nt;y*iFR<2>_J;0$v1j-A!cp#+)0{#E!zwB`0 z5&S#;mmxtseBd^SjX`h-CH!~X8KnP~>JdC(jo|m?tW4%}AeMzTC zdPGuZ`lFG0<60Y|CcddKT$`2~B_*U)^c@Anh$tWG^~Un~+p-b?(5)eiSh}1^e2CPBpWIY4J_>*eHq2J;D zqq$>!-Q@HO8UTPi0J&ki%25V&#HK~cc1Iy0;Ww8<))32l@%jgvlz;`rx}k`I;=UiB ziurD@y_@RwA-sr9)aypezNKsp5s`?KUnq9yGOe_E?=@}yd!()KQ(cnEeVtuBA3{N+ zJ6MHfF-PhF^p*l3#H08{T$7vF=GyQzBxGn*WY!NN@$`N-8#JY)45!{pRl6S%PcoA$ z1}LI7g~POsmYGJ3HeU!bTe?vJgiMD@?3zRsAJi6dH<^rop;fZ9HIkjDF_1zWr7+VD zf$*beBaeZ%6d?x^kz_`N90KmDZLZ}%*@88w_)g79+Arh}lGz@^YzhXR$W^g?PaA3b zN``l<++!%1k)oLu-KHD+ncI+(KZAVe%lL7Q?|Vww#k0>9Ol&8yiabVzbnnN9t&bk$ zsmj!KsWDK}PY*4#B4X|&utMNAkwAX1dMi_nzXd~F+A=#L^!bQ`7`F7Qw;49U;5G^3 zg)-WXe{aajPKV;-8?p~uehEaaKL=c<;;o06iu}&u$BcCp;nZL8-$&k!6OrEksixXf zhlH><{_gu&OLrg*5fBvJPsasHteVKV3-ZLUscxXzFT_-*k8L7b(*kkzlV^X1z=|2o ziGEb3T&mldt$QlPByCxtdUNm%jujtLR#?(d)#dnemq^CKa-ayy%apZi0kyV5^Tzen zay`)vR>+C3dGOXR zg*>G8%E*QdE%=E|rwqA>jUo)m8~o!tI701fydiiK1OPU*v2xajT5^5QwDGk%nmRmw z@=7Gqqg#OHS>#ZehMqq4qgPJ|To8~({ZWt1sb&fa9F=u*Gm3WdTo08A=Nv-#Rx+&>|JRH!B^dlp@_u0X+A0i^USepj906!8)JIi zHoRdvTq~UeUhFTlMKo!~c@IUs!d1n^1pC~D{L1^x zlJI~^RRbgQjIjbc=_Zvdq96bo`NMKx?n{kw-m_bgTCwF_E%k-yj`}^Y{s@ydi4vqG z^I5%M5AJBDAOzmOV2!O7D;hL+=HaTEELJwpAtRLku5GAe%bn0rR)Xcd>Wj+b3_C0F zKA8)=o=9%?#UD_})IOP;os|$=@0i@-ZvTU!VGEH^x*^eETo8{0)znB}ee7ylu!13L zg#=MRP$iy+TeEXkJ%TQm>ys_gl^Pv7K&*;q|Elbq?`1L-)`lk+*xT=omTf4h>MGQB z6H3T*kc37O1uaOVUoTG-!L@3Lg8;x0la*OgT-9Z)^L%tiEhI?FJr_CfHX+?PKk$`q zw)}UctieI|v2?F{N3Q}zG)JFd;y*4=guh_VR_0ozCfOce=Skm^`oQ=?$dS>ntl-Df ze7!D&5GvE*@f$aoP%{ODFbLS0x}KB~kG`{r57Dm9TKn#&Pcz;tM5jJ1@`mCc_$BGv zl8xFXN&htG_=4x$h0xEI4nCWixkFi|0BqX7AkS5g|D&Z3Ey}CT&hHFfE^V8AwBCus zdQlto`SO+OaKp0Ab(c7Q^oZ^`=BRNQ6j2*Ta?6gzTmO>vw@?U?naf!6!N_BE>|f

*yBdr6;%3&8NXVX|=n9j|=OR-K5@Q54DGT>TiP_q>KW0|crt-C=oUYbqf44sk$-> zUcL%^fWsPzBvWpz$#Y!}JWg$x9&{31Kafnz;tWaQDNFq7N>(p}1TtcfrOhXX4w)DP z9RPdTC$PMGw%t@jQfj5#VMd?qSbV3^$u|LE zkFumqsxdy8OR*;nX=$}C$tAj3s&91;sxelYfn#cS@z)+&TB`&9Te0_5_6)pP(tms8 zv?J19W50Y@9!`o5A>w~&~v}_h;#IfhI6`oZCTj zlx4cS{hae+bfMCkYMB4n`Fj3jP(asqusn zx9t-+#zdX}w5a$_04ww!G*ue84%O1AC~;Tv`EZNxJun~F$kA`s^av&-0TY^d8L$)g zFd8=-s7CRwf|7oyRA3H$cfWNu*p3L*+1X(>BTi&u9nO`2*q+iRj~{78J2~*wg1mK! zew_5ndWy$MA!m>K(@JcZU{qNV)W!6!_4e^5Llb!@3yZZbDd~4@*y2$y7{nIy7s?Ah zsCo-f|3jo8bD6!&I#5Kj)+6KOd%4Ei<%`2O79*$Nu! zB>G2pwdDTEQOnM_p3`dI!eD{KT#)N*bWM8DgM*ncaZz-nrf7aM{PYXG;Tc(&pnxGL`}qvj)`-e64td3#<3p6P>sI{CFo54cKSh!4dBLbJ2D{OA_L)2V)@SgMM5| z=`~LYcLfbI*8XB`Zfkdu=C;Bx&ks^%7?`|DFUe=!D= zw9|`4VtV4v?jLF|PL6(mqy0s+bjY_U<5`pa)gtdU{Nr3>^RYJ$7vQ~mrJ@LA97w)I zC_T1JyJ45dUk0E!W1HORPa{^WmSPKwktsRWknIo_P5y0GPW7np$eF z&88Z*e?!vdTNvY}+FJYKM7ZL&dE+Ij_^46p zMx|8Yeajykd6p1!*E|z=qsG(;7yYCnl2m@17gc;OX}`-P0uYc`NsK;}P1V1=7$$Gn z9a>7pS(uqTGyP;|Yh>H8q}~-*zrb992?f)Ao5GWMm{HoOia9S!R1d^GtR*k|-7QKS zt0Bh+=88--YwOH%Ro>F19NhaFvwd|`(o|C<{?M$>J@fGF^w-8Jf1vlN+Q3kViWV#- zBh;8p>z!&w8wu3&g1&jWKC^%w47EFjCJOz>R~|dHf#WkC=(+?5|#oQ`LDsV0?>i zmcAN$m?V3;cXC>DqPE~Cw4TIv+UITHBTmf;wTw1<|yg>D!s7m1zou?<)j72eo?<2>4ODn=RX-$JpG77LZ=b_1Pq|$kukE0+lkIQ-$tFmbNwwyZ4$U%)v#p}*+lfa71 z*9c9AfS2o+^afW;>e0;y`{^YXW+BiD!l4%DPf14^5A7bBotJpihJp{a>y^>1;}`j* z#hh;OG}Dc_XVt5<7cWdU{PWZIzBW_pLuHDF2@~UbR1m_@PSfnA5)~02+~YD{YcWS8A5nH% zG)YT0GSxAs#ZizsgpeX7PB@!tH#qXb6d9$;(Izd=@9fAEj^L#yf#=#aEcLIyo1^CZ zxxzbDadiBGP2B#SaO7(qh13)S2nK5R^AXjpH_OC*G z0-sOv-B)-&n+ysbcu+>6xFL?R)xKmN zge*wC&E-nUdMZxBaTaB1AC^V0}yx?Q;T#MK6{Ok#(t%|txv)YZX-5gD-2av zGGnA(AuIEwFC5z^eauUWe-?fnr^hWu7yD2>*Q>XJD)6E3Lf`Ud_O{LFfa#~NANYL! zLxD%={%}F6yQsYf!lk-MfPNHd|IGd6HcU1}8d9FH`y;oIeZBI_qwqQW0rWdlbZv() zHJ!nY=GlaiMXB%PeB|s;Id}~U!>G2^J=tHskiM+$x*j@Lg!ujJOl9mu?`3xftF9># z&*>DfxqETnwZ6llmGo#gllaet{l&@NgTArcV*UaR^ xTr`ra~HV}{^t}e==ON1ybn9wl<5&{VcEredBhTcJXfDk%_ z05OIZdX-)Tq$5pHv9Y4NAMV~icb<9Ayk}<4%%7PPVW6iabma6A004ww+M0%-wE%HN zkRLpG;%7xc193Ifx(iecNUVbw0o)zkI{;7}dvp(d008(Z4RjDtZ37z^sBlm*MwTQG zpHO%2kcVb?orl=y*rcrN+@O#s<42^bit?V0=I)NB5(WcqVsA(EoE+&{njIeMYeSkl ztS^mktxUd}AEkH(XJ+R321KN!J_)DB=^$(ed)w+*)lOvp#hIbmiGEvx2j0bbEcNe_t&r^c6+mXs71KMsw4@DQ7wo!i0VqA;$OHZBhgu{sFsP=C9-ckuGd;b%{4 zO;L^nCm)K}V`oaBjUC0t-rdTJJ!^S(I4(XVJ|Q(WK4rMS{pHj^XIoe-p8)1S)Cun*t>iC zg{7os7+DalY{`WMg^Z#izd$M)=eD^#Sy5gZ5g9)=)D;t#eBTh$+Wd^eW{nMYPL1>w z(Tj8*+UDiu(+la9>e827}St*|It}LUi_xjZ2;x?`JWq3{31jd_qi6q=dxO zg8V{o5cG}h6BE>eq{|TgAAUZND?#`GVbGd^un!aX;dcP}zSNFFfHiR8{%8NcD*%AO zxI=&dn5(F)q6o?Tx9)z=1G)d!N&)%4@PU>2eq3mX(+(<`9L77DrH~v#{ix@4q%=r*CIIlQ^7nmYlu4b8FkP@%gQttPndn7?XCH zD%Z`Vbup`@dpWJ?Z~fa0Brj+ORd`*5)*r8MZOhUVS15K7C$Wjq!VBEvs#rODbjf*h ze|c3Vkus}uGOY5TON@5pu$cUPl+m-RBG(AlID)_NqJ}@fl=%C-)z)IPEiGyvp zwHw8+C7#NI=|{`GoGG-+Rwr2V*JTr&eA6&Qfb1tQs~LGyY4To;L%v5(aZ#2+ggw(s zBCp`lN$f@>PA4)VA_AG;r+YGB-T56ZJK3tZ+sj4;A^j0DX>%T?t~RvdlI2=~j=UGH zY(1-C$UM+-rjA!zf;nTcDfO9j&_oIzm*4;1b1T#ScNVUYUXo%IcAh{~>b&nQEAy)K zEkcsSEql>q|H#USvr^|(=Ul8h&FFKgQs^>RNUzBv%c~FuW;}Ol@{6eA425|78|~y{ zCe0sqFIqV0mC9bgp)1;LmNxA&bhthXP$v{uu-UpbBQ?jTyD(L^$zsccat9s1dU>FU zw%jAIBu}M^j}aUPk*7?ULC3m6Y2nAt;m}PCO znv>)|Y-;86MZi%%Co%>4@I%{(y!+%yq}+fd>;{xP9wT|7th zWO0(3u*IMKB;e!5-7cXSwhjm!?TWu72|1M0_gv zqlFTiD2mkQ#D76JI&P16Lq=0XhE#k)LUCVZYs2{j{~6 zLp@juUbt|F>#QLfyQ86Uwdc@8XEFbp?+D*n2>{PIHY8Cu=MqF)SA6^FXWhMX!ZfZs zMjFdlX;uty*Jbk>K6PtuSI;g8K;d6}f7%wCD9;qDl)(S7cqu`hvG+@}7Bk@MWeXuI zdEwp3@x%^8vtQ2cu&aAg0PWuyTYoK&1Sy#A${lZpn-0%U%cO?ctqi_@<5#z|!ZsgW?n>B`hp0NI= z{vY+<4BZRXjMZzj{I2XZM9u!0kyk`mDKv(U-Zs_*FgRLl>_oMk<;3P0dz> z$s{)E(`n?RGw(KW@5xs({1eRQ6G>6!GKK}W>EHRQ^mj!T(vdCuUmOgor&)2=D(D{+ Cr#rC# literal 0 HcmV?d00001 diff --git a/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/confirm.png b/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/confirm.png new file mode 100644 index 0000000000000000000000000000000000000000..4871ce6fee6703c6b2264cea707b9d0d5065a38a GIT binary patch literal 1307 zcmeAS@N?(olHy`uVBq!ia0vp^=0GgR!3-q#FDvT;QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1eZ4U4WakaE|sL1iD%JWT&^K^4{wzhQ$@O8;b^lU2eb8vJF_IJIzJK^4* z1a~**D_i1vYXkb~0yoVH&r0-K+8=s$eQaNCfUApBQHJ-8?eRWdE^DWS)#UpoMSEl> zc;4O>-%#u~tvP7R?1(*!BI6_6?d%;7FOOa`HEeEY@Vu^&Yun<^u8VbXacV5~D@gO6 z-4VRFFSNTl;P|Q-KW~@NK-bN)BTlY~admYn&GNamGrp%Lpsn10dP`7rsQbp5;j5;E zWh8h;hPZ8*5gz34+EMB6<>_3Q?mek7(A(4H^xBwn>tpvXiQ2a~>gv|GUY(G}5Ap>A8}L`X6s4hbT1CVTN`Nq@I978PppHBW8-5n^=Ab**?`hC(A-K@2yMr{$x z#FW#Hg&j+B64n%&)+O>u@YC7(Z>p@{Z`)k{Y4_>Bmy73p-+BMD&2uaFC-uqA$;rL8 z;nCsyGdJ5tc3wVEaBDJe?}nrEL?*7)J8CxZ?S(5jo1FCvq${Gnv?Qr_#a_yC4NzCg zy{FWW*!nj0{KMA_`_EsOyun+&>l<6*{W`&w`hQ)Om%P8h%I@++K}P6h+hO-JIkqOP z+AlU%x*IAf9bd3r{}uCMdnwy}&*olO?UGaw6g{trQE>V3Yv*4+GcH`~<#MiU_t#XW zJ4(+dJ%8xLb?Kku)&AraUEQ;$Nj7=My?+`dp2BR9Q#$=-J(?f-DOUZngO0 z;x!0<<-LktcoKUv+r&k>JkLS-4i{7pLl*QhdE?oclS5;&MU-zQ(=KS7raa;Ds+-Hv4 z84(qBFS|nd(uZjY71x-b{eE4aK2f*2bL!Nocg~p1`<_&_kw0_Bq%%y(bCu-7d2@3n z{c6izVmC8i<*|Ovyv8S+bc`0vb3QzM{c2g(?iI0<^Y42mdKI;Vst0BR}#VE_OC literal 0 HcmV?d00001 diff --git a/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/confirm_button.png b/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/confirm_button.png new file mode 100644 index 0000000000000000000000000000000000000000..680dca235d27448678258d2e9afbe5b97ba2bae5 GIT binary patch literal 2414 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 EFI03eNdN!< literal 0 HcmV?d00001 diff --git a/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/europe.png b/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/europe.png new file mode 100644 index 0000000000000000000000000000000000000000..7041415621f8057b221da316339e6f9742804bb9 GIT binary patch literal 4095 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 diff --git a/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/login_out_account.png b/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/login_out_account.png index 7efbff243965b9c40046c9ba72689c175a9cca15..99cc210ea98b7121196f8227047b54233b2356f8 100644 GIT binary patch literal 646 zcmV;10(t$3P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0vkz0K~z{r&6qo{ z0YMms&u<|*jYLDMbtyCoQ4k_7QHaD3Q27CRr9wy$5l1PfK0&D$3PE*t#dq>evKwZ0 zW6bRBP2OrI?>@UbGvCa7fk&h$Dt!O^!WZ4(rW95677*$M=<#?E-|u(m_xliuM8N0s z2|Ex7Ksud<{eDj}d1MGwEEbt?83%(w7z_r_k1`blG#ZVVKr0-J#hxE!Dh8-tuY=$3 zX98u7nLOeGipS&R%T1@#x1LNU#Fa{gf#MM}%WAb66LdTt>27a@FGuI_hzm$W2!w-K z%fK1OBin#b+wE5WmFxAIZZ?#yKq7JkXt&!zG#Z7~YDG6Oas;T+Xy{qJUXP3~GdTi8 zF9F?dm+qp=5g?^#9aY z^A3lDJP-z)&u3UJm&`!s9n_gjhGb}qr4$gaj55)MLV?WE=at(vpj<8os;cVyculSV zbvhjeM3W;x&1O^2(u%9AK%315!r?H?=X1J=kt0B#$W|avZDDQQ@$1vUX6cR;%^_Sz)20G#1O@aL9yNVWGeD!q+hx5N^J$y0A*6QsNg@ gUXZ7N{uCAd0e~SdWl-dWF8}}l07*qoM6N<$g2Oct3IG5A literal 852 zcmV-a1FQUrP)eh4bY)!^&fNe20_jOaK~z|Uy;wa= zB0&^>vx_0w7(pVn7FIwgEx-b!9fh5tByRknu`ni7R(6J9Mc7af8=}c2T&&iRK&&u1 z3Mwe9Os)_^MIaoq?93ID+k;j1&t1N1_RY8R&3kWlX5OMdW7+Lu009E0KmdTi$3*_| z>o>xLP^+_g001x=%ZL!7#kCu*nTZer02t#^sU!%(`}@1`fmoIehr`#`*X!%+EX&TL z&G<*#CnqP>YSr}20RVvGxXa7SgM)*41V;7z@bF++3;>41VWCjaAgJ|fwHiX-S~{<< zuNu8BjXnSf1OhzIFD)(2BhVCxqWJjuIBhYchY%u!OutYp7X5y|_M8A99*=KsZtBwD zb39crB1XY+9BpVUPSA~~K_Gdk-9gRk7wc3L8 z3WY+a(>Xdi%IEW6E>xTKBuS!;OeT}bWE|IHnEwL`g23~h61jN7(fe~Inw zZ9x#GPbde!_rt@(+uK`~Wf4Nk9mQt<+-^5*TwGkx4?qQ*{Yxg3KA$g_%cW8&^bgYn zoBa!gLXAd4gJ7FptJPBO6Ol;7Sv^8XB9RylhXBB`?90o`Jf=?my4|ipNh$^avMg)R z)b$F@u(Cb!JkRsI%QZI)l&M^Hb)gf_R;zV>er|9q3hi=WCY~7MSSAqr z?CPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0vkz0K~z{r&6qo{ z0YMms&u<|*jYLDMbtyCoQ4k_7QHaD3Q27CRr9wy$5l1PfK0&D$3PE*t#dq>evKwZ0 zW6bRBP2OrI?>@UbGvCa7fk&h$Dt!O^!WZ4(rW95677*$M=<#?E-|u(m_xliuM8N0s z2|Ex7Ksud<{eDj}d1MGwEEbt?83%(w7z_r_k1`blG#ZVVKr0-J#hxE!Dh8-tuY=$3 zX98u7nLOeGipS&R%T1@#x1LNU#Fa{gf#MM}%WAb66LdTt>27a@FGuI_hzm$W2!w-K z%fK1OBin#b+wE5WmFxAIZZ?#yKq7JkXt&!zG#Z7~YDG6Oas;T+Xy{qJUXP3~GdTi8 zF9F?dm+qp=5g?^#9aY z^A3lDJP-z)&u3UJm&`!s9n_gjhGb}qr4$gaj55)MLV?WE=at(vpj<8os;cVyculSV zbvhjeM3W;x&1O^2(u%9AK%315!r?H?=X1J=kt0B#$W|avZDDQQ@$1vUX6cR;%^_Sz)20G#1O@aL9yNVWGeD!q+hx5N^J$y0A*6QsNg@ gUXZ7N{uCAd0e~SdWl-dWF8}}l07*qoM6N<$g2Oct3IG5A diff --git a/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/pm_menu.png b/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/pm_menu.png deleted file mode 100644 index f1c7a3855b4be00b5498bc6e9992b7d4eaeae0e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2661 zcmV-r3YztaP)eh4bY)!^&fNe23HnJyK~z|UwU~Ky zRMj2Ff4_U*d$YV*lS~#e**8KW3X&)wRXj?CRy|bf5~=hkITl3=R$I$KNfizi(I8bp z+py?SszL$91u7810tpF$1cZ+BGw0p+`+eW%-rw)O zd*4M_kr4?&gwgENeN`oom&M1&g~MT<(oHWfE}oFjQ99UX@6Px4tS=KSw*0BHZ@aHl zCmIIdWsF_=W0x9^pE>u^+I4MGLt1k)N049?900Iw*M5!{08k@nWLdfEv8BH&x#JJ> z?lFiuRaF515hqXo1tnN8aY|gG{ksZ?7@>$fkTJ;5Of4EWspnMp`3wm!6OL@{T|Lw8 zS|DfzL=sU!#BN7lN@CpIGk-So=E(-F#-3y|n+&5$T^^grPrut!`ogkqR!^eg0Dyf5 z>w>aE2!}`z2_=*ejE}W=Lu~!_FYkS5@ol$1a`Z$~G*W|;fCw=bQ&C1P07iw<)YAD} z`9_P$h=dTz5ne!EAe@F1jaq|V0T!Q=+^>@4aD;M%(ny~uVIhBT&9n1=0LNgURD0sYf&yArRyKm4tf+Qs zKMBVbQ1Y@;_Uu2{?dZFrw_c~2KK0u7Rxa|oU6QQCS`5}0>;DUdQn+PG!SULfa9A2H zrXVNn^=E$D+ui-+OJpPzv)Q`*jqMx%wYz-nCXdHET-b~oCf-3c~~)t@?>dDGn9e)n(=-`9qY3dhmh?6iRaZ%%gd>^p8) zTd{e=yW9HvUEf`*3UkwouO8cUzI||GSdxOl&<`6FBFplSrU~Nr*`a z<`@%(!V@MHc6RmnzzRHh11rXD;-dX}j3#m%^NIsNw9KCsxaZR}|12 zHBs(6^*XKIXw-;e@zmlKYc^arqhxKx=Emk0Ng8EbIg3gBbnhXfL8M3lAkCf(0E=JR z+|}9<2r93xm~W3aoNsc9q8JSa0O+)ucw4N?A2jIn&4+dzYdGE0=epSIR2j?9$ruTx z;dD!LONYPXWYP$;N3N4wStJfDzYJJWjM zll|2%E}@eq6h;}yZQSyCND4?{vhcA7o?SRs9_TNfbLZ2K=_uuy-%nH^6hks3n_{9> zL>ECj;~>al^%NyZ4f>g?0DvmVjA2}i zIZ8!D6alpHyBk_Z9-uy3l9Au>w*lEmpv97jiz8DuJB z;jkp|g4r5Vd%8Uk2t_ew9^LwBuVadd$n3ErBqRw zYrr2ZidLsVWB_V!pL^kRFH@ZvK_&nMfDrQU$|GqRIh2l+oxRn^T<-rZilK1W=?QSW zKq$wwT5ljYDul{ZMNuwo5|Dw>Y~1q6fmLhY25l?=pdi+qY{@COCe~^hK}C|~m1{Pf zZSA<+;tPa*K?w*2!Xcs2uhExKBBh$1nz(%R#&@>tpq7;V)kn{FxeN2MM~?66aW>Z+ zb`09@_4YauHApC-lmOFlqkr{9i~|(_K~ZFtF~7oDlgBPx^>KS=U;eo9vu8~ob@y7^ zaOy&TfDG#U$Cb4T03ty`DW$O%)2I-#tdy_Y%mIL`C<#gN0e>*SjHzQ1?kdcF@V*&o zDfVaX4GH+aC?2vtlH4i=l%7J>tn5E00@Po zDpS%J8EH#f$DCQkvu>O`vItYzo13;(pQ>g6oL;L*h>fvX694vLWzqOtt7WA50sxAl zd|BPFeBIV_ZC&y4*4KVta!r0_OGlSyz<>R-xf5igQzwY;iGWLa5s_(Cz4}X>9qj=ERZH4voO)q$e7ACh)YgudlKG^u<2U*zrX^ z@4zch&7Lu35=2q#L4daQt|yng*zT%FAwVgjium(+Wx2`5z12;&jENy6s;VlAB6+$P zfs{C_6!5t{9+#}qnY0{F1UYiF2eN{Q5LN=-<}PU zd;VDVQd3_QCn%yx!wW)# diff --git a/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/switch_server.png b/repo/js/SwitchAccountMultipleMode/Assets/RecognitionObject/switch_server.png new file mode 100644 index 0000000000000000000000000000000000000000..3915a2a6b23e26c21787b8786b263475f7c5a337 GIT binary patch literal 2760 zcmZ8j2T;>V7ykzgaP;1rfFO`iLXm!ep;rMzsL}&S?@DMQO$7uFR7yZNdJnxTN{KX) zA|O>niqfPL$_4LczL{@l-oD>^`|9q_>?Rl+YEhB1lLG)irK1fuA@Can5+Wla%%sxH z_XrH+Z=$6RR1I^k6NGChH3KyOs7mbaX@jGJ*gG*g;?bL_oR(;`k3= zm2(qB{9AujkR*r*pd)Zg0=dOq`>ppN;H%Lv4g%JQ|HuD7D*zA{pOXUD2(}V1DG5;C zzj3c}g7f~3l|jH)gNP8B=(nYbyc_}j=Orm2akXj__Y-U5vMNhxK0pVqW`@*CHxKo& znqa%^3`K8Fb#@*e9PlS>_WGs@{;iYtSG^9er`v!d^d}8B2M0s4PV^&^w2!iGpZ@lw zzda^R#UvT4szK@I;lRl1$;K6vD*Lg|H8bu@{gA)(Fn&pkQ!#0~0~Im*gQL%_?{KUZ zz16ac4_^(<4(*K2I#d=DB|jU%i-dc~v zOYh0x>nnO^YZRzJbd)66wwBYBP|NK07?YQl+WRy{V%6GvqZ&itSv1u|Hk$nOF!x*MUy-P zEtD!xJ?R{bY8GLiujvJXc_uQEX!4IO1^!A|UmH~KURk8Ag)KIIffOufI=Y2V0=&Gw>uAP$&euMu9|j9w znuhpYC4ca|nlWLhc{z0#qZFbMuF@$j%XJVhdu`U3Z%Teo+sR8fM_4;FgI04$2mXXo zBbKjw6Dngg`+195j$AqihuOX?D-?5WVEr6^<8ytY^L#{({CQ>EVZ>1_k67_1#YQvb z`le}j+3O~7)p5ZOSbf4>h|FxVaG08C-^JmBEe9cmw0cD&F=$JT*1lSKRnY3a%(K zGV}BjoQs}3nfVccz{fWibU3eiwh6j8au+A6QHF4~4=K^V(nBF==|Bmr?m*<6Rr%3E z)78(*`_gO5AK6Tv77#dO8lN+e=Vhy}EtjS_SEgH=VVcJ9x z4m!!LlBSi56S!LfQ{mVP1*b)oq(p2UGzkh8(?o=vE#_W`4ER-*7!L;?oL#&rFSCVL zlvjoyz7j%4s~NE|WtF2HO-Gq@7}^`In=J)PMr^Mo4#I^C$!a7Q*|@W8bW!7Mx>ZRE zLG8;!P1L2)FT`lhwqnc!6wAuh|HR|QJiHQ4)_!t(l~J=M9B!N^VdkUAQhvTIJ%M|c zymyeTh3tmLn6kt^(ZD!U1!1!Y<)P2*gb=U&d$R zH{Yz4U|gc&OkA=Q*PmI{*l@Dn%9`puW!Jbe0ty~+rgq{MAo$e{5O}xljE>IQL9}zbk>~+6=15t-_7war1M32!Z_p7{1;86}3uN`$kU3WcXeu^RKo!Luxvh#d^-NO$5GKFLedI zK6O0s|ey zbVA+-4>*D6`cR&&HAOVmDAoTK_`Drj+R1iDbasM8#Mz>D3};35t{J@bY3Ff6f5<>% z(WK`smKktf@8C)eiJk_Dy?mB38oON}E(R4x34c1L*!K$ zDk(#LW>5FC!`m7{?FN6;*T!~_lSWE~@vG&o1yfM+0quLZ7#f9BlUIZ84b-hss@cv5 zA{G~A!ZFiGKR+>BQ(F%x3`=726&oBx!}3(=KJRIL1thl%4PEnp0OkOku+zaREk0{w z6sh6gD@F4XXe-1^^2b%8CF-7YUTp^)BgN2ttlT}la}y_@I2mk@Rto z+4ug^ofOkBY`$wx>sGB2Evja#6&(+#7PHWQE^=`0F^p=WedHw+?CaX?;Q-a>trB(Q z^M;BBmf?T)m(E9E){UHDc^M<8fp(Rq2~x=1qnG>xSyCK&Nh7_YXfcdb9SPqIv?F?% ze|hijjLL05E+8N8iV6`IRP!sMs+DOg#eHn*qfd_sp@A))zbz7FQ zaV`tz_4p2kx#lqpZ(AompI|gpZIB%ZJ!$rP?74|?glElse?9?2qbOdK zVIDv?7j<&8y*j?^&pZ68nw66Xa~&C3;|ymY+X!MXEELP<&lAo)*+t*Nx)qJszsh>D^jiWHF+qy$4xsG%gGgx+iDB1KAw1VRZ_ zT7b}nP!dQ2gsyZE8yZ?HH_pA^pYK^`ud~lS?bliBi8nIPJ}i7(7yy97x;hU`c)o#$ z3ql8ev(QVvJO@IVXlnvhG^uyI;GomJ$M*oBHs#QFJAMG*dvBy~s-{1(`!V5Xg`OY>_`0WkadzzO%xGXp>`;Ff zn?cnxc69d&>g#S>n4(RwhRm%!99{g{$&Ew(odiOOEgX&T4$jHVcSc}X^#1a)G9wEY z-+-vX!lG^pd7e#szs%lTVfXj6Pco>h3(Ul%^z59xwYTG4l$Iw?-B;hRW+z4-nZP2V zvCH#}_{20eb5I`)i%&?~Sen!`ag2^j86WLWN_qAO42w%heTgq_YN$&~&!P|YFlnz- z)1J39)@MG?t*oeczdV_klu=wvNKVZh9_X$jRpM~?+UhEO6WG!mgWA_&V(B_DHehVw zlAn+3>1=)Rq97_Zd3lbJmsbdP!;B91GDiB+GqPjjQ%g%q;u6wYnqF0umzS251_Z~f zyx43!+zFV5Gc0|zzdx%6L)B!oi9+_ee78T+3OdJ-b=%mVuy!^t-it>i~T7xG} zM&>R!T#+pd-PzteH#q{a_3}W5c%nk}!SKdcwbi7`l+?`rUJA_B-_*+O&GcwYd}>ro za#7JsZ=W!GC!e&8EH8BE`rC15M8Lbn2_H-(xw#=bJC8woO(-TfxcDM{!}0i+S=ldo zyV@*mJSnYBW5d0+5RFo+7F$E8a}gXU2!INf}eD!Qp`}VreO^um}us zbN3D&8}9QDj5aiL9_XbcrDV2~o3P2x(EgEV{|LC7|5JPKl?7&NOG6vEv9_kl)XF_1 zJfW?nv4l{9@{6!{_RY=BUtb)rsUq1q`9#Mi69|Na#55~A@0x0omA&__v+*n58T{d; zV~GL)v3~%=z;O^i0OBz{9!~s^|GvV%K?nZP`FLCj#0QA-JcI|A*n|J*?mYhcHLyUy zI`3Hj&;S3e0KiM83IYdtwO5o?u7Gg=o%?$yKkmP?p7Z$c$H$w@_fMsX+6^B2UzgIA zE5EbQ*v&d9eC-+l2p!aYaL?32dpsvFNPJwPpH6dkroJ3wyf$+Y6VowUw7*w>7O^sR zRHifihYU+dy6XZ-=S;eQywRUJ2fs|Eu0v`?Qk^9r<HMnEu zE>~@B9y2#bk8L~+o?f_%`j~@)Qv%n9b8gi?_?4{r95w|haEYFsOOBM6>pjwVvgyQt zAToJr6S;FZGW)Fm!<4>z-WsIT1mBimHuB5|DY&Cd^x{b2otMMa5xy6o4&0q%v%;9& zoXk8~!+hs5NzVz{Vri2h-IJ>w{F|40k?t9T`G}KmB%T1=%0WMrn$a{tA?B0zp4;-} zAwv?e7|&soTQtse%fS6mAYIbFI|M^iJWZ*x&7ly0MiEYwLN;={k3Aj~WKER(MyM%XcpA;o5-Z9c0yes-mrSk%|=f8Cc!d-P>U7#`W$e zx@AQJ(MvEZU*qf@ZF-KElIPuG2%R9Wd)gAX5L(oqq><*5U5}4U7NTN_TaA>!$4->17 zmzktzWIUXOK7!3kZ@+>KfqEfU4#4w;E3XT6UwLU+IXE~ht=*vHlQOT*i~m$lF)Irj z*U(g${u^+Mpk8jB)kYlRNX9Am*}C46Y;L&$^||IJBy*h8j3Q~bSGkFfvVw>9IZf#6 zpc5WYNge17@U<4Hh4b*$hvW$DChDt)o`Of6-X8({1dy2@7vHpUpt3c2yIQei@`3n* z&XbF-8ThKia=Yr|$_)*5Db>EBt%)B&SE|_q5_`n>b!!TR%4J`67yL{Jl7<|xbvUCd ztH9cK!I#}H;;M4Uhr-K8;K>XvVHH^~#|D4aF)&CS_uaI2g$pZE5-+AznxB90O+xJ> zS{ibsclqbl;xdWG@}om_=c}jpH=_87`R*moJ|LT=8hPcx^3TMkx-YmtFRlbu+y%?& zJg)a|PKw)a(FnVSk6i`%giFcC=GJoNoM*Os+=Fgktrws+BYwB1s0-tKZ>4zfIo3hq z@b2e*Z+I{00K`e3<*a+q&K?~LNg*RAraqv;rv_0_tyYiPf6<7jhC6)wp09z)^{rs> z2e}>Uzx{e--&-Rc5?5e5EG(%q7<@jh~AsO!%xX122YY!2ft3=Mnrvi4?SGa{nxz_+L6Wj4zngcXgBGctdg%4CqU`xU*z zU!7XLwHnAete(>t{)dl-0%r%dizLHG>|G(R&uUlF8k}z~8$H?zlk|Vqueb}&)ZgI# z8(@36i`3-$Zryhcl>L=}7Tef5{Wmpo3o=x<+}kMv`o8X>qV#o0X@)hrN1la#9G z%V$L`3c)s^+B;j+DP4u-jwZ~Z&E|{YYhT~}MHkq?i&B0RL``GRYKG{2*%OHue_=y| zH=EP&1ft^VH4cP-{~DQv^0)eQP2cL~;`=T~Ghv^zh9;WOED2>#XG6=zc#|@WYabV{ zrS{#~Lw5&_BnrB*-WswMIL(KF?N&eUi4Y(W%P%e$4Y_@)MI)}tI949IIP*#ON!+P} zWfk%G4B#sED)O0l!&lp1YAq~udeZg0=J)<+q$@|WqF>dvfn9b)La z9il`w*?VDYD*ubQ>-?RSL*g5A0iCSC7UmxuJL?om4`BjcN@cOOA4vs<*(gbE{9Rov zCX+8UPE7)CF@2y#AtRrTE%v_@7ZO$647Z67zWE1kW-=m&tgA?m3Q+GjgA|ed;511Q z^6PM7Iw`BpQMKt8@JUBh+c6PbJ8Ci(ds60KCOc7CtGYyU!KWRoe8z;J>}q5yM2^yx zc9>#AW6jaz81^{N%b}8(zjS^++|$!jTl^-b!n|2tR;m>?aP&mbDUJeaBTWET)VkL7 zQ2^)3@SMBcfmB=e15I)?7I&ss73wT9m(NypU&zrS_y;b3D9yX~V}8PNY4-*AyNFu~ z){OGGEBP;@2CmP!ub)kE+LevT6SvzMo=-HnxlZr6u8bh#MJr~Dt)V7pGMCgkn_0xz zzI&u{Kcmr*bnGvSlHsn$Su#hzK-V@4oZ2{4#<9?Omf2YZu21LRzi+@S zoSRARXuTDu`~zV(D*ZE8&kXhX#p9nXdi~r$qk!FBhtf%CACJ8UI$*df^$`c2!AshSl%Cfv%RpgDOqii2nc( C{3~Yw literal 0 HcmV?d00001 diff --git a/repo/js/SwitchAccountMultipleMode/README.md b/repo/js/SwitchAccountMultipleMode/README.md index f6791341a..9f3e77556 100644 --- a/repo/js/SwitchAccountMultipleMode/README.md +++ b/repo/js/SwitchAccountMultipleMode/README.md @@ -1,17 +1,17 @@ -# 下拉列表模式 +## 1.下拉列表模式 -## 使用前准备 +### 1.1.使用前准备 确保你想要切换的账号是已登录状态,且账号选择列表中存在。 -## 使用方式 +### 1.2.使用方式 1. 把此脚本添加到配置组 2. 右键点击选择"修改JS脚本自定义配置" 3. 填入你想登录的账户名称,该名称必须和账号列表中显示的一致 - 请确认你此次登录使用的是手机号还是邮箱 -# B服切换另一个账号 +## 2.B服切换另一个账号 确保你想要切换的账号(目前只支持两个账号互相切换)是已登录状态。 @@ -19,9 +19,15 @@ [在此感谢空的大力支持,点击可查看原po](https://pd.qq.com/g/620449244035027412/post/B_022e6a69a93f0a001441152193488791090X60?showGuild=1&errCode=0&asideType=Full) -# 账号+密码 / 账号+密码+OCR模式 +## 3.国际服 -**重要免责声明:** +目前已实现国际服账号+密码登陆,并能切换服务器(亚、欧、美、台港澳),部分未尽问题尚未处理,大家多测测,更诚邀大佬们来改良 + +## 4.账号+密码 + +开JS自定义填就是了,选对模式,其他不该选不该填的就别选别填 + +# **重要免责声明:** 1. **数据安全:** 1. 本脚本使用的用户名、密码等敏感信息仅存储在本地设备,开发者无法获取。 diff --git a/repo/js/SwitchAccountMultipleMode/main.js b/repo/js/SwitchAccountMultipleMode/main.js index 9df4407d0..4e7e72e44 100644 --- a/repo/js/SwitchAccountMultipleMode/main.js +++ b/repo/js/SwitchAccountMultipleMode/main.js @@ -1,7 +1,6 @@ // ====================================================== -// 切换账号(OCR)版本 +// 切换账号OCR模式 const author = "彩虹QQ人"; -const script_name = "切换账号(OCR)版本"; // 图像识别资源 const pm_out = { template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/pm_out.png")), @@ -19,10 +18,6 @@ const out_account = { template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/out_account.png")), name: "out_account.png" }; -const login_other_account = { - template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/login_other_account_1.png")), - name: "login_other_account.png" -}; const input_phone_or_email = { template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/input_phone_or_email.png")), name: "input_phone_or_email.png" @@ -35,15 +30,49 @@ const agree = { template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/agree.png")), name: "agree.png" }; +const confirm_switch_account = { + template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/confirm.png")), + name: "confirm.png" +}; +const input_email_username = { + template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/input_email_username.png")), + name: "input_email_username.png" +}; +const switch_server = { + template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/switch_server.png")), + name: "switch_server.png" +}; +const asia_server = { + template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/asia.png")), + name: "asia.png" +}; +const europe_server = { + template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/europe.png")), + name: "europe.png" +}; +const america_server = { + template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/america.png")), + name: "america.png" +}; +const twhkmo_server = { + template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/twhkmo.png")), + name: "twhkmo.png" +}; +const confirm_button = { + template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/confirm_button.png")), + name: "confirm_button.png" +}; + // 人机验证识别图片 const login_verification = { template: RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/verification.png")), name: "verification.png" }; + // 判断temporaryAccount是否为空,如果为空则赋值‘否’ const Account = settings.temporaryAccount || "否"; - eval(file.readTextSync('utils/uid.js')) + // 点击区域中心 async function clickCenter(x, y, width, height) { let centerX = Math.round(x + width / 2); @@ -52,8 +81,10 @@ async function clickCenter(x, y, width, height) { await sleep(500); // 确保点击后有足够的时间等待 return { success: true, x: centerX, y: centerY }; } + // 匹配图像并点击 async function matchImgAndClick(obj, desc, timeout = 8000) { + const script_mode = "matchImgAndClick"; const start = Date.now(); let retryCount = 0; // 识别次数计数 let status = false; // 用于记录是否匹配成功 @@ -74,13 +105,14 @@ async function matchImgAndClick(obj, desc, timeout = 8000) { log.info(`【IMG】第${retryCount++}次识别并点击 ${desc} 失败 | 耗时: ${Date.now() - start}ms`); } } catch (error) { - log.error(`【IMG】${script_name}等待超时,请人工介入。===待切换账号:${settings.username}===超时原因:未找到目标 [${desc}] | 文件:${obj.name}`); + log.error(`【IMG】${script_mode}等待超时,请人工介入。===待切换账号:${settings.username}===超时原因:未找到目标 [${desc}] | 文件:${obj.name}`); //如果有配置通知…… - notification.error(`【IMG】${script_name}等待超时,请人工介入。===待切换账号:${settings.username}===超时原因:未找到目标 [${desc}] | 文件:${obj.name}`); + notification.error(`【IMG】${script_mode}等待超时,请人工介入。===待切换账号:${settings.username}===超时原因:未找到目标 [${desc}] | 文件:${obj.name}`); throw new Error(`【IMG】识别图像时发生异常: ${error.message}`); } return { success: false }; } + // 文字识别并点击 async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { let start = Date.now(); @@ -112,14 +144,7 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { } return { success: false }; } -// 切换账号(OCR)版本 -// ====================================================== - -// ====================================================== -//切换账号DropDown - - -//切换账号DropDown +// 切换账号OCR模式 // ====================================================== (async function () { @@ -230,7 +255,7 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { const targetUser = settings.username; - const assetLogoutIcon = u.loadTemplate("Assets/RecognitionObject/logout.png", 1750, 900, 170, 180); + const assetLogoutIcon = u.loadTemplate("Assets/RecognitionObject/login_out_account.png", 1750, 900, 170, 180); const assetPaimonMenuIcon = u.loadTemplate("Assets/RecognitionObject/paimon_menu.png", 0, 0, 150, 150); // Check current state @@ -434,7 +459,7 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { } if (settings.Modes == "下拉列表") { await DropDownMode(); - } else if (settings.Modes == "账号+密码") { + } else if (settings.Modes == "账号+密码+键鼠") { await KeyboardMouseMode(); } else if (settings.Modes == "账号+密码+OCR") { await OcrMode(); @@ -442,6 +467,8 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { await BilibiliKeyboardMouseMode(); } else if (settings.Modes == "B服切换另一个账号匹配+键鼠") { await BilibiliMatchAndKeyboardMouseMode(); + } else if (settings.Modes == "国际服账号+密码+OCR") { + await GlobalOcrMode(); } else { log.info("尖尖哇嘎乃") } @@ -463,7 +490,7 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { } - // 纯键鼠模式 对应:账号+密码(根据分辨率确定鼠标位置) + // 纯键鼠模式 对应:账号+密码+键鼠(根据分辨率确定鼠标位置) async function KeyboardMouseMode() { setGameMetrics(1920, 1080, 2.0); //到达主页面 @@ -544,9 +571,9 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { // OCR模式 对应:账号+密码+OCR async function OcrMode() { + const script_mode = "OCR模式"; setGameMetrics(1920, 1080, 1); // 如果切换账号是第一个脚本,则有可能出现月卡选项 - //防止genshin.blessingOfTheWelkinMoon();方法失效,先使用物理点击。 try { keyDown("VK_MENU"); await sleep(500); @@ -557,10 +584,6 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { } finally { keyUp("VK_MENU"); } - //await genshin.blessingOfTheWelkinMoon(); - //await sleep(1000); - //await genshin.blessingOfTheWelkinMoon(); - //await sleep(1000); await genshin.returnMainUi(); await keyPress("VK_ESCAPE"); @@ -593,8 +616,8 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { await sleep(1000); if (verify.isExist()) { //这里可配置通知方法 - notification.error(`${script_name}触发人机验证,请手动登录。===待切换账号:${settings.username}`); - log.error(`${script_name}触发人机验证,请手动登录。===待切换账号:${settings.username}`); + notification.error(`${script_mode}触发人机验证,请手动登录。===待切换账号:${settings.username}`); + log.error(`${script_mode}触发人机验证,请手动登录。===待切换账号:${settings.username}`); } } /** @@ -606,11 +629,6 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { await sleep(15000); //可能登录账号的时候出现月卡提醒,则先点击一次月卡。 - //await genshin.blessingOfTheWelkinMoon(); - //await sleep(1000); - //await genshin.blessingOfTheWelkinMoon(); - //await sleep(1000); - //防止genshin.blessingOfTheWelkinMoon();方法失效,先使用物理点击。 await sleep(2000); keyDown("VK_MENU"); await sleep(500); @@ -624,10 +642,10 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { // 如果配置了通知 notification.send("账号【" + settings.username + "】切换成功"); } catch (error) { - log.error(`${script_name}脚本执行过程中发生错误:${error.message}`); + log.error(`${script_mode}脚本执行过程中发生错误:${error.message}`); //如果发生错误,则发送通知 - notification.error(`${script_name}脚本执行过程中发生错误:${error.message}`); - throw new Error(`${script_name}脚本执行过程中发生错误:${error.message}`); + notification.error(`${script_mode}脚本执行过程中发生错误:${error.message}`); + throw new Error(`${script_mode}脚本执行过程中发生错误:${error.message}`); } finally { keyUp("VK_MENU"); } @@ -692,9 +710,9 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { // B服切换匹配+键鼠模式 对应:B服切换另一个账号匹配+键鼠 async function BilibiliMatchAndKeyboardMouseMode() { + const script_mode = "B服切换匹配+键鼠模式"; setGameMetrics(1920, 1080, 1); // 如果切换账号是第一个脚本,则有可能出现月卡选项 - //防止genshin.blessingOfTheWelkinMoon();方法失效,先使用物理点击。 try { keyDown("VK_MENU"); await sleep(500); @@ -705,10 +723,6 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { } finally { keyUp("VK_MENU"); } - //await genshin.blessingOfTheWelkinMoon(); - //await sleep(1000); - //await genshin.blessingOfTheWelkinMoon(); - //await sleep(1000); await genshin.returnMainUi(); await keyPress("VK_ESCAPE"); @@ -752,8 +766,8 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { await sleep(1000); if (verify.isExist()) { //这里可配置通知方法 - notification.error(`${script_name}触发人机验证,请手动登录。===待切换账号:${settings.username}`); - log.error(`${script_name}触发人机验证,请手动登录。===待切换账号:${settings.username}`); + notification.error(`${script_mode}触发人机验证,请手动登录。===待切换账号:${settings.username}`); + log.error(`${script_mode}触发人机验证,请手动登录。===待切换账号:${settings.username}`); } } /** @@ -765,11 +779,6 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { await sleep(12000); //可能登录账号的时候出现月卡提醒,则先点击一次月卡。 - //await genshin.blessingOfTheWelkinMoon(); - //await sleep(1000); - //await genshin.blessingOfTheWelkinMoon(); - //await sleep(1000); - //防止genshin.blessingOfTheWelkinMoon();方法失效,先使用物理点击。 await sleep(2000); keyDown("VK_MENU"); await sleep(500); @@ -783,10 +792,93 @@ async function recognizeTextAndClick(targetText, ocrRegion, timeout = 8000) { // 如果配置了通知 notification.send("账号【" + settings.username + "】切换成功"); } catch (error) { - log.error(`${script_name}脚本执行过程中发生错误:${error.message}`); + log.error(`${script_mode}脚本执行过程中发生错误:${error.message}`); //如果发生错误,则发送通知 - notification.error(`${script_name}脚本执行过程中发生错误:${error.message}`); - throw new Error(`${script_name}脚本执行过程中发生错误:${error.message}`); + notification.error(`${script_mode}脚本执行过程中发生错误:${error.message}`); + throw new Error(`${script_mode}脚本执行过程中发生错误:${error.message}`); + } finally { + keyUp("VK_MENU"); + } + } + + // 国际服OCR模式 对应:国际服账号+密码+OCR + async function GlobalOcrMode() { + const script_mode = "国际服OCR模式"; + const page = new BvPage(); + setGameMetrics(1920, 1080, 1); + await genshin.blessingOfTheWelkinMoon(); + await genshin.returnMainUi(); + + await keyPress("VK_ESCAPE"); + await sleep(500); + try { + await matchImgAndClick(pm_out, "左下角退出门"); + await matchImgAndClick(out_to_login, "退出至登陆页面"); + await page.WaitForOcrMatch("开始游戏"); + await matchImgAndClick(login_out_account, "登录页的右下角退出按钮"); + await page.WaitForOcrMatch("切换账号"); + await matchImgAndClick(confirm_switch_account, "确认切换账号"); + await recognizeTextAndClick("登录其他账号", RecognitionObject.Ocr(300, 200, 1200, 800), 8000); + await sleep(1000); + await matchImgAndClick(input_email_username, "输入邮箱/用户名"); + await inputText(settings.username); + await sleep(1000); + await matchImgAndClick(input_password, "输入密码"); + await inputText(settings.password); + await sleep(1000); + // 按下回车登录账号,弹出用户协议对话框 + await keyPress("VK_RETURN"); + // await matchImgAndClick(agree, "同意用户协议"); + // 当天上下线次数过于频繁弹验证码 + for (let i = 1; i <= 5; i++) { + const ro = captureGameRegion(); + let verify = ro.Find(login_verification.template); + ro.dispose(); + await sleep(1000); + if (verify.isExist()) { + notification.error(`${script_mode}触发人机验证,请手动登录。===待切换账号:${settings.username}`); + log.error(`${script_mode}触发人机验证,请手动登录。===待切换账号:${settings.username}`); + } + } + // 换服务器操作 + if (settings.Servers) { + await page.WaitForOcrMatch("开始游戏"); + log.info("正在更换服务器") + await matchImgAndClick(switch_server, "更换服务器"); + let serversMatched = true; + if (settings.Servers == "Asia") { + await matchImgAndClick(asia_server, "亚服"); + } else if (settings.Servers == "Europe") { + await matchImgAndClick(europe_server, "欧服"); + } else if (settings.Servers == "America") { + await matchImgAndClick(america_server, "美服"); + } else if (settings.Servers == "TW,HK,MO") { + await matchImgAndClick(twhkmo_server, "台港澳"); + } else { + log.info("尖尖哇嘎乃") + serversMatched = false; + } + if (serversMatched) { + await matchImgAndClick(confirm_button, "确认换服"); + } + } + await keyPress("VK_ESCAPE"); + await page.WaitForOcrMatch("开始游戏"); + await click(960, 640); + await page.Wait(5000); + log.info('等待提瓦特大门加载'); + await page.WaitForOcrMatch("点击进入"); + await click(960, 640); + // 可能登录账号的时候出现月卡提醒,则先点击一次月卡。 + await genshin.blessingOfTheWelkinMoon(); + await genshin.returnMainUi(); + // 如果配置了通知 + notification.send("账号【" + settings.username + "】切换成功"); + } catch (error) { + log.error(`${script_mode}脚本执行过程中发生错误:${error.message}`); + //如果发生错误,则发送通知 + notification.error(`${script_mode}脚本执行过程中发生错误:${error.message}`); + throw new Error(`${script_mode}脚本执行过程中发生错误:${error.message}`); } finally { keyUp("VK_MENU"); } diff --git a/repo/js/SwitchAccountMultipleMode/manifest.json b/repo/js/SwitchAccountMultipleMode/manifest.json index 6d7e1fdcb..52f510934 100644 --- a/repo/js/SwitchAccountMultipleMode/manifest.json +++ b/repo/js/SwitchAccountMultipleMode/manifest.json @@ -1,9 +1,9 @@ { "manifest_version": 1, "name": "切换账号多模式", - "version": "1.7", + "version": "1.8", "bgi_version": "0.57.0", - "description": "多种模式的切换账号,有下拉列表、填写账号密码OCR操作或键鼠操作,目前支持B服但不完整\n免责申明:所有的账号密码均保存在本地,请使用者妥善保管账号密码,请勿外泄账号密码。若因使用此脚本导致的账号泄露、封禁问题与脚本作者无关。", + "description": "多种模式的切换账号,有下拉列表、填写账号密码OCR操作或键鼠操作,目前支持B服/国际服但不完整\n免责申明:所有的账号密码均保存在本地,请使用者妥善保管账号密码,请勿外泄账号密码。若因使用此脚本导致的账号泄露、封禁问题与脚本作者无关。", "tags": [ "切换账号", "鼠标点击", diff --git a/repo/js/SwitchAccountMultipleMode/settings.json b/repo/js/SwitchAccountMultipleMode/settings.json index 70ba22a33..9b3b51592 100644 --- a/repo/js/SwitchAccountMultipleMode/settings.json +++ b/repo/js/SwitchAccountMultipleMode/settings.json @@ -5,10 +5,11 @@ "label": "切换模式", "options": [ "下拉列表", - "账号+密码", + "账号+密码+键鼠", "账号+密码+OCR", "B服切换另一个账号纯键鼠", - "B服切换另一个账号匹配+键鼠" + "B服切换另一个账号匹配+键鼠", + "国际服账号+密码+OCR" ], "default": "下拉列表" }, @@ -22,6 +23,18 @@ "type": "input-text", "label": "密码(只保存在本地,请妥善保管)\n切换模式为下拉列表时无需填写" }, + { + "name": "Servers", + "type": "select", + "label": "国际服服务器", + "options": [ + "Asia", + "Europe", + "America", + "TW,HK,MO", + "不切换服务器" + ] + }, { "name": "uid", "type": "input-text", @@ -37,4 +50,4 @@ "否" ] } -] +] \ No newline at end of file