From ba1095f4ba1d2dcc12ad8dab431e59cd379c1660 Mon Sep 17 00:00:00 2001 From: skyflag2022 <107539971+skyflag2022@users.noreply.github.com> Date: Sat, 14 Feb 2026 10:08:06 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=9C=A3=E9=81=97=E7=89=A9?= =?UTF-8?q?=E7=BB=8F=E9=AA=8C=20(#2872)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 增加延迟 * 圣遗物经验统计 --- repo/js/ArtifactExpCount/README.md | 2 + .../RecognitionObject/ConfirmButton.png | Bin 0 -> 2048 bytes .../assets/RecognitionObject/三星.png | Bin 0 -> 3115 bytes .../assets/RecognitionObject/分解.png | Bin 0 -> 5315 bytes .../assets/RecognitionObject/分解未锁定.png | Bin 0 -> 4162 bytes .../assets/RecognitionObject/四星.png | Bin 0 -> 3110 bytes .../assets/RecognitionObject/快速选择.png | Bin 0 -> 6428 bytes .../assets/RecognitionObject/执行分解.png | Bin 0 -> 5365 bytes .../assets/RecognitionObject/时间顺序.png | Bin 0 -> 2894 bytes .../assets/RecognitionObject/未满级.png | Bin 0 -> 5083 bytes .../assets/RecognitionObject/未装备.png | Bin 0 -> 4937 bytes .../assets/RecognitionObject/未锁定.png | Bin 0 -> 3925 bytes .../assets/RecognitionObject/确认.png | Bin 0 -> 4310 bytes .../assets/RecognitionObject/祝圣之霜定义.png | Bin 0 -> 8026 bytes .../assets/RecognitionObject/筛选.png | Bin 0 -> 882 bytes .../assets/RecognitionObject/重置.png | Bin 0 -> 3772 bytes .../assets/已储存经验数字/0.png | Bin 0 -> 703 bytes .../assets/已储存经验数字/1.png | Bin 0 -> 423 bytes .../assets/已储存经验数字/2.png | Bin 0 -> 609 bytes .../assets/已储存经验数字/3.png | Bin 0 -> 683 bytes .../assets/已储存经验数字/4.png | Bin 0 -> 557 bytes .../assets/已储存经验数字/5.png | Bin 0 -> 569 bytes .../assets/已储存经验数字/6.png | Bin 0 -> 652 bytes .../assets/已储存经验数字/7.png | Bin 0 -> 439 bytes .../assets/已储存经验数字/8.png | Bin 0 -> 693 bytes .../assets/已储存经验数字/9.png | Bin 0 -> 654 bytes .../js/ArtifactExpCount/assets/背包数字/0.png | Bin 0 -> 564 bytes .../js/ArtifactExpCount/assets/背包数字/1.png | Bin 0 -> 234 bytes .../js/ArtifactExpCount/assets/背包数字/2.png | Bin 0 -> 539 bytes .../js/ArtifactExpCount/assets/背包数字/3.png | Bin 0 -> 555 bytes .../js/ArtifactExpCount/assets/背包数字/4.png | Bin 0 -> 454 bytes .../js/ArtifactExpCount/assets/背包数字/5.png | Bin 0 -> 490 bytes .../js/ArtifactExpCount/assets/背包数字/6.png | Bin 0 -> 608 bytes .../js/ArtifactExpCount/assets/背包数字/7.png | Bin 0 -> 399 bytes .../js/ArtifactExpCount/assets/背包数字/8.png | Bin 0 -> 567 bytes .../js/ArtifactExpCount/assets/背包数字/9.png | Bin 0 -> 512 bytes .../assets/选中狗粮数字/0.png | Bin 0 -> 648 bytes .../assets/选中狗粮数字/1.png | Bin 0 -> 316 bytes .../assets/选中狗粮数字/2.png | Bin 0 -> 668 bytes .../assets/选中狗粮数字/3.png | Bin 0 -> 713 bytes .../assets/选中狗粮数字/4.png | Bin 0 -> 572 bytes .../assets/选中狗粮数字/5.png | Bin 0 -> 637 bytes .../assets/选中狗粮数字/6.png | Bin 0 -> 673 bytes .../assets/选中狗粮数字/7.png | Bin 0 -> 551 bytes .../assets/选中狗粮数字/8.png | Bin 0 -> 719 bytes .../assets/选中狗粮数字/9.png | Bin 0 -> 632 bytes repo/js/ArtifactExpCount/main.js | 610 ++++++++++++++++++ repo/js/ArtifactExpCount/manifest.json | 18 + repo/js/ArtifactExpCount/settings.json | 14 + 49 files changed, 644 insertions(+) create mode 100644 repo/js/ArtifactExpCount/README.md create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/ConfirmButton.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/三星.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/分解.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/分解未锁定.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/四星.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/快速选择.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/执行分解.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/时间顺序.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/未满级.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/未装备.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/未锁定.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/确认.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/祝圣之霜定义.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/筛选.png create mode 100644 repo/js/ArtifactExpCount/assets/RecognitionObject/重置.png create mode 100644 repo/js/ArtifactExpCount/assets/已储存经验数字/0.png create mode 100644 repo/js/ArtifactExpCount/assets/已储存经验数字/1.png create mode 100644 repo/js/ArtifactExpCount/assets/已储存经验数字/2.png create mode 100644 repo/js/ArtifactExpCount/assets/已储存经验数字/3.png create mode 100644 repo/js/ArtifactExpCount/assets/已储存经验数字/4.png create mode 100644 repo/js/ArtifactExpCount/assets/已储存经验数字/5.png create mode 100644 repo/js/ArtifactExpCount/assets/已储存经验数字/6.png create mode 100644 repo/js/ArtifactExpCount/assets/已储存经验数字/7.png create mode 100644 repo/js/ArtifactExpCount/assets/已储存经验数字/8.png create mode 100644 repo/js/ArtifactExpCount/assets/已储存经验数字/9.png create mode 100644 repo/js/ArtifactExpCount/assets/背包数字/0.png create mode 100644 repo/js/ArtifactExpCount/assets/背包数字/1.png create mode 100644 repo/js/ArtifactExpCount/assets/背包数字/2.png create mode 100644 repo/js/ArtifactExpCount/assets/背包数字/3.png create mode 100644 repo/js/ArtifactExpCount/assets/背包数字/4.png create mode 100644 repo/js/ArtifactExpCount/assets/背包数字/5.png create mode 100644 repo/js/ArtifactExpCount/assets/背包数字/6.png create mode 100644 repo/js/ArtifactExpCount/assets/背包数字/7.png create mode 100644 repo/js/ArtifactExpCount/assets/背包数字/8.png create mode 100644 repo/js/ArtifactExpCount/assets/背包数字/9.png create mode 100644 repo/js/ArtifactExpCount/assets/选中狗粮数字/0.png create mode 100644 repo/js/ArtifactExpCount/assets/选中狗粮数字/1.png create mode 100644 repo/js/ArtifactExpCount/assets/选中狗粮数字/2.png create mode 100644 repo/js/ArtifactExpCount/assets/选中狗粮数字/3.png create mode 100644 repo/js/ArtifactExpCount/assets/选中狗粮数字/4.png create mode 100644 repo/js/ArtifactExpCount/assets/选中狗粮数字/5.png create mode 100644 repo/js/ArtifactExpCount/assets/选中狗粮数字/6.png create mode 100644 repo/js/ArtifactExpCount/assets/选中狗粮数字/7.png create mode 100644 repo/js/ArtifactExpCount/assets/选中狗粮数字/8.png create mode 100644 repo/js/ArtifactExpCount/assets/选中狗粮数字/9.png create mode 100644 repo/js/ArtifactExpCount/main.js create mode 100644 repo/js/ArtifactExpCount/manifest.json create mode 100644 repo/js/ArtifactExpCount/settings.json diff --git a/repo/js/ArtifactExpCount/README.md b/repo/js/ArtifactExpCount/README.md new file mode 100644 index 000000000..fe93489fa --- /dev/null +++ b/repo/js/ArtifactExpCount/README.md @@ -0,0 +1,2 @@ +统计背包中的圣遗物经验和狗粮数量,建议搭配JS通知使用。 + diff --git a/repo/js/ArtifactExpCount/assets/RecognitionObject/ConfirmButton.png b/repo/js/ArtifactExpCount/assets/RecognitionObject/ConfirmButton.png new file mode 100644 index 0000000000000000000000000000000000000000..78d72f2993c10c250154aeb18fe31314adbe5dd6 GIT binary patch literal 2048 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 FV1gZ)0{{R3 literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/RecognitionObject/分解.png b/repo/js/ArtifactExpCount/assets/RecognitionObject/分解.png new file mode 100644 index 0000000000000000000000000000000000000000..7097dbefce40e4b076a365f448df4aac17b688f8 GIT binary patch literal 5315 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 M07*qoM6N<$f>pC1ApigX literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/RecognitionObject/四星.png b/repo/js/ArtifactExpCount/assets/RecognitionObject/四星.png new file mode 100644 index 0000000000000000000000000000000000000000..417ad4486f3af08d205cbbee7d592aa017f0f5ff GIT binary patch literal 3110 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 A!Tv00001b5ch_0Itp) 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 literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/RecognitionObject/时间顺序.png b/repo/js/ArtifactExpCount/assets/RecognitionObject/时间顺序.png new file mode 100644 index 0000000000000000000000000000000000000000..93d1db10cc5f6d55389cd1d9febb5e1af0d7c273 GIT binary patch literal 2894 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 literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/RecognitionObject/未满级.png b/repo/js/ArtifactExpCount/assets/RecognitionObject/未满级.png new file mode 100644 index 0000000000000000000000000000000000000000..457c2cbb27b12afa6bbdc3bcf19b76b3fd3a99e9 GIT binary patch literal 5083 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 YDs^ST#1#A%_#sE2p{fn5RJIKJA7YN$_y7O^ literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/RecognitionObject/未装备.png b/repo/js/ArtifactExpCount/assets/RecognitionObject/未装备.png new file mode 100644 index 0000000000000000000000000000000000000000..44f4bc0bc74954990d758afdf5db751b79a839c2 GIT binary patch literal 4937 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 literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/RecognitionObject/确认.png b/repo/js/ArtifactExpCount/assets/RecognitionObject/确认.png new file mode 100644 index 0000000000000000000000000000000000000000..5a8dea20942f2fb0c19d730224af521a653dfe67 GIT binary patch literal 4310 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 Eg1RzFzyJUM literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/RecognitionObject/祝圣之霜定义.png b/repo/js/ArtifactExpCount/assets/RecognitionObject/祝圣之霜定义.png new file mode 100644 index 0000000000000000000000000000000000000000..1e1827bd887ede45cb25bc57392536d236158e4b GIT binary patch literal 8026 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 literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/RecognitionObject/筛选.png b/repo/js/ArtifactExpCount/assets/RecognitionObject/筛选.png new file mode 100644 index 0000000000000000000000000000000000000000..94ed28b16c57c8a0287ce966407f67bb8936ad7e GIT binary patch literal 882 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 literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/已储存经验数字/1.png b/repo/js/ArtifactExpCount/assets/已储存经验数字/1.png new file mode 100644 index 0000000000000000000000000000000000000000..350d00f05673045611ae9f5cfbff4c3918464106 GIT binary patch literal 423 zcmV;Y0a*TtP)4Fu z+e^Yw9Kdn^x~9&}U39}V+uiFjdN7ipUVJDjLv50fVV9@E3MwyX8bL1!rGWxbQpIca)!5m4ABXknz6^G(I#Yo&7i z@~UxgSpH#*^a=jRa&o;~IlH}klx4Zo`8Y1t6n2b;mg1R8_5A+fNtWd=btzm>*-4E{ z>8+E~i$?Rh4YC!c6S$<^M3w!)l~UOr^K=4B@;M;Sv+6 z>;MkNB^^_Sp6Q@|8v4azGPTh?{HRa^6vj9$!Wrzt7L3!f_hk?r$R;cE&vaF}8-OS? z!hk5(d-&_y`%W%Dq_MWcHXP_atkr5q=Ou+rRvLgP0H$zoyBTOTNCo;28D%V$5H)$aZz?AaWK$Hbh){L+gj3ZnkErcPQGb4-|`wc6QcQ`3- RNyq>I002ovPDHLkV1gLL!(#vd literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/已储存经验数字/2.png b/repo/js/ArtifactExpCount/assets/已储存经验数字/2.png new file mode 100644 index 0000000000000000000000000000000000000000..6c6ee94409c36e535e3dd08cc973e5292f47c3be GIT binary patch literal 609 zcmV-n0-pVeP)4E? z{ZCR+7{~Abb{Dq0$Z(RDT?uG_2s(qAEo-JtDU&vqB@{Gz8__o zsCa@1El0PK>3W@p5LRo{!s4>B$AshyB?uu!)t3Shy?L~|chGDZ4~EwO01(1*`Ip_{ zM&L>1_VOCTh`51Ft{NJ?SEK3>LYC#Wk~;##H=F6qw=?HdB7|bNT7M(AUl9Lif9wem z%d)WqArUBsYYijC5-CF8vp)^|!>~Nh z7mA0keM?s~7Qsvu!)0<6uC=~+`7XPg0|3x;BeA{n!0zh2+%L{S+Rm#D1Ghh{M5|S* z*#zWK#pe&2u8+y&Ek_W&X*9aI&9WQ-pj`Rw^7teHX34N z?N3rs90&0GznN)-+A>>Ckq4);z>Tr4GSsP!lFWx%ZXz0*WJV+*^I;m`Qz~i0M|9ej z79dY@c`)U2?>*oM0lFV36u+3$SM_Yk?lisDj5ePerf&)~qI#Weh}w|}Iq!=O~R z2#c$71fm>)h^SFET5VIl{qJ!q$uJDZf%Ef=;7R1``c}WmBC34EBd2>gn`Iz`sr1>7 z@4&n1`}r#f0DurCl4+}Ly0}z9&~z3;7>&hWzp;{9y^7T7JNs5VUUa!4(bKjL1A!3A zWN6piO2OX*`9)G~bH~})IYNl0v#z-n9#K@X$6&@8@h+2Vf+t~w5X*7jygS5*#bGqP zuU0f%qg?(7@1#x1)CV!fGOsf)K{3r1jHuNm=a`lF2pxK!{;jJb+KbatDV$8d^H}p75lS z@>=t#-7)E!buMjf?_Xpx901W+e0p|4Me43lu26jEzWiR9vRtMnwfgZ1C&RKh`23=W zs8VRfRphNA*}t!=sck$u_TxUokr=VGygokRtdwi6QI0@VDpt)cdN4{PQ+%1>$Z50g z<$q}5%Nj;h;u59Pzu#FLHwz@# RDYyUt002ovPDHLkV1ln9P0IiP literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/已储存经验数字/4.png b/repo/js/ArtifactExpCount/assets/已储存经验数字/4.png new file mode 100644 index 0000000000000000000000000000000000000000..86480edaee54880d602f3adbd2799a69bba449d4 GIT binary patch literal 557 zcmV+|0@D47P)Nklj={rms_|Ns8|d+EvzWLXAej#of(UDJdYFW>x!ft$DQBP&3tcJ+x% zOfNrq`oh0||6q#$<5V3Oo;iQ<+K-<;-@E@9uHn}0`!3#baO0t7dj=#`)%QGp^8D_- zN7H97`}5~7#CR;KUA*JsQc8~;JM-b=r}>N5<`g#k`SS;^+SMl>#q5Bvj9K$meERg| ze3K{=1V<*lXJbZG-oMj-@#DJeae;zn=lHtj% zx9^v(+`M%8#+h@M=Pg>pP*T~BhWaMWgS-35(--A6oh6m+g=MV?X=R911rMh5oSGj$ ze}Yo%zkgS+-9nE`xH@PE!c>3z_I=yV1IV&C&HnM@=czLnODfw5sE$r7+`jAJqNVGL vE8CHy#@Q=G`P)3py z?N3r+7{;If4Obh4&9E3HFR6gk5LZxc*@t2@bBi{dY?Ogc=A;*T(Zwi&2t^Ded$nK& zP7<`x!{Hppc^*!8gX0<>xOaX0?Yi&#y3onf`YD&U%CH?(sZDL$(E05`D6%qs$0hC6q4f`6 z2q8O#Vmy%!hGKzN(Ny{~U1b2E(P-qi3wDPa-JSHz`(D^?JBN(d&-GtYs7Fi|>%!wD zmaVloe)Go`I^L~0A=9>>+$B+|wU*@iCm~>pqLH*$Cpk6P4vECd9=T!G>ldJUokNfO zf%_hxTshp%b+-x?AdCqDfZgJr<=S{V)FU^{w4wokrV{{A6g@rj@ITZgQK<&aYsrsC zH&tkaF(!n3+suyLuq)IfGQ|bGacpk>DZ{YBci%HV(Q-V+^E}7lOg0w?MxQOdUXG^@ z4k#g~Tz;pSlgVrihGK33j z{ZCR+7{~Ab207zuW^>ghFCkzntOUj8%MY@#rHfGWjfpcAL|H79w2|P=3Us2CQp#Xq zL1OoMc@cTBE9c%*bm?ZDogbdNXk#}hg*y?&Zogovc=P$74HXT|k|A)I&*Z8o{v={tLQD?+a!fbU28(J<@NjOW% zck!}J-#;Gt5(5C7WOJ6eh3n#beDrS~ouU1yq zeq{gvKnT<6jMe5uV&4u~jwF+o+4&|__chU7i9*viIPo=lz%UGi@Q6$z#8Eli=DUDG z*}>gFP%CpTdh+=KYeC3Fimlw3Pb}AP98Vy6JTiq7WSQf9%PU^7y!AZSqcuE*x4ZFjY&F0I#8JqL?_yj^&EP`hX zFC_|1MU|woM%vcd8w^EgnuZYKL;{iDZg*qeT&}b)nM}Je-^A2Yvvqza5G#Qq^sYUr0MIm@N@w10?~YB()k{_7e|lATr?dN!aeUThUs_o7 mIGoEfbIyU`$!3j??e9;mD&iyeogrcX00004d# z>r28=7zXhDZwkevG_dx;wy)Pl+X<#FvuvXFF}b>lv$d#?gk+dQD~YK zqFdoMHs8pBS&ce8AAh{>InO}`My45tW#8Wa2*a?*(#ksgcT#Bv*>HROfm4^;v+mj{ zjBC?FpM*qF;&~xRpCetiQFCKAhBuWP8uF>AY^-nT+1(3>qWF|}=^Y$LR4D#CI*gi~ zTV~idj^n*Px>R4Q;7}cD?X^F~5&)2Re(f8YP@(uwr`8Zejpgv@3;+Z{2+|j27^UD! z^tEFXj!cFFfMhZ?HRF_T^=+OS#j8whmseo`$Y!(m4^fipP;h7&**`qVaXbLP2eT zk55uj6vyxXrm10Kwz0W6P(wq9%rvJqWSPwJ$DEmpg|kd0nW-d%8ihKfsW^X(LE^KZ z1_FX0@A2dD-s8U8>>BIt?w<4A`JA(}?=HA~SE}qDGOb!Ygg1UgG7JkLWEeJj8F#sf z<(1E^9lfRZ>VT?e*y-{x42ux*2ZCR$_C>?m#@0?W8iPE~a@_ubv$;(Twrsl?ip3MJ zr{=}dM?#UT=0Usu!>3sM3L%us!TALfAkKW~?>Rhn%bL0h1Y&&U51)8Wf8x@?kqdZz zek_iiCk+Z!o@-F3zI%S;OW@>R(^Z1hzR`=SnhHxLMP=2a6Eoq9DCW#-o51pQo2Ii^ z`vbv6!`jnlF9%;ty4(cIatNVNIHK+w107xc2S=_f!(cR8#_Joak(5u^Docy$Ig>Z)qtQv3hL#`x3i1Ceh0W*4ni1>#waQUA;fe# zL+|Vzb*ct{X?267k_aK1&f4sbk@0DbcFtn8Uqmi34I#g?cL=bV2qBx@A#dp}7S`Un zQ!S}$(`a>p^Dxizcm%*rsZ>VYH(pYHKkuJVBr_N-R5FDZ062s%E?YZ#^AJv+555YV zhi*6suP0MfQq?nDR95ppIy5pB3`K6Z1W6%;Amq*Kn=(aLNqKF7KwMN-Q!iI;+IBM; z8X-iINno=(ut<=U&F*-oTb`JFKRvs&{cWEluYE|TGe)x&w6ymweOx~!yvbDh`opnY zIzw|D2O&(5l*>)%^efWF$DlwUu9P$@yN5K|x%mZ?!Dum>tp=k-r(YSJm}yt`S5!6@ bmP-BrQR68m0ZV9f00000NkvXXu0mjf-GV?C literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/已储存经验数字/9.png b/repo/js/ArtifactExpCount/assets/已储存经验数字/9.png new file mode 100644 index 0000000000000000000000000000000000000000..71948a71d873ceaafdbde0f35eb282f81c05183a GIT binary patch literal 654 zcmV;90&)F`P)5vR3t9hg*gkH)-BpRzbu%nj=A~8g9Hfx$<*Pr(r z3n2sm36e67*+h~?9$#9gP#ec=nG6E}G@TkZe=OqF5EMlNKsKB8ZUrht_i(QZm#S)I zs!gvS01!ffV7N}9Cg9Ivn4>w@66WyEudKJ&rg1eIjca-aa_C_?7A+RY-x($` zN>Q|Nbn3sVB?9^TK@&#lWNO0liNM~m*Xz~Fyzp5A6qOtvvk}WHYxpTi(jyagu}oE3 zp%6(LJ74Iw13z#n7Eko{8Hl#0uXnlT-L82Wtby`P&5|T z>IMtBqH|DAiTL5;m*L$A08n(&WObBP*5ihMsd7rhO^-Bg&jvy$k)X^|pGA_!ys;cw z$Q22Mce-Bb-JVT`Ir8~Kdc)+6+J-!L8tY2gO-;{0FtqF24q5FpEp6Sra@kq#6y;u( ow6u1AFq)fNy98Bt|AFxJH*cl$?Sxf4s{jB107*qoM6N<$g5B*mrT_o{ literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/背包数字/0.png b/repo/js/ArtifactExpCount/assets/背包数字/0.png new file mode 100644 index 0000000000000000000000000000000000000000..da4d074628bfb4356fb0864da7c10ed2169106ff GIT binary patch literal 564 zcmV-40?Yl0P)JP00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0m(^3K~yMHby90f zVo?-bp8L>SW@ef8(DXwyQq2?$4KqC;3c`>5+&;uWR8$l}Gi4|hcFXiinvX>9F}>}3 z%LoQ#$YpVsHcL3qZ0Gz5~7lzm4Ml>80dBfyL zB-3DeCQnII2m=104{;Y`qdutboULWgrK)({hPz)Awm!q{?r}xZGLtu9wJkv?iVWr; z!=IqYJoWYKwTpHwYF92cWrBK^RZZsMk%hCQ^aNTmdHMB92Z4!NN3I`>6EcQuzhRn|m}G zrVwO}0@8X`SoI9_W9G{gWS3LL>aTC2Wq0=m_KyCcO(nb}xJ=z4OG8y@pOzM95D5h! zme2NRkN)&L3H>22x+O^xwUJ|xrX8COiIwpWd+`PaOv8>}Uv20B0000O>_4AgKKgc*)gmcHf$9 zup#G8Vb8;N&FMVx`|6T^{GZRr@z2Uu7#J8EJMI){IMvLwi^Is!a3NPw(I(>$Ma51mGbJP?fBf7b+4D6-Qsjw> a1Viy8#eRXiPOE@UVeoYIb6Mw<&;$T|_)(|; literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/背包数字/2.png b/repo/js/ArtifactExpCount/assets/背包数字/2.png new file mode 100644 index 0000000000000000000000000000000000000000..1b4ebe3639035583e45b56a02919df4e768ad5fc GIT binary patch literal 539 zcmV+$0_6RPP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0kBC#K~yMHb&$q2%U#tkmK0ThrJ5V30Vc-I zac6RZuH=Q(v-w<+NI1leYZpnUM$jW+wzl_JTd!g_90IHI;kqu9=}Syy(j1Q-V{hEV zt~=zGO01MN(02crghD|E2l^D?t0x{M9@Eh@4a;tz_4mdYKAq?QzUuOX<21p8E(r!6 zJ;)G}W`_n(D4^A9Q~puI*xaGjZjyn@BIrJVQj z?IH_{-*Kgf^pz3r%PP)FPza%HXm92Ve99L&IJ6lXO)_=wI>|Ew9l*Du6^a!Ot-AU= zmFQLJei^^j{FGDKs3E3jo_Ma?lEn%7dSd8$SZ(m-wLMIEK|Fl?v{S*q002ovPDHLkV1jL>_7eaA literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/背包数字/3.png b/repo/js/ArtifactExpCount/assets/背包数字/3.png new file mode 100644 index 0000000000000000000000000000000000000000..b37488276c653aa0e9ff5758026bc16b59a9b6b1 GIT binary patch literal 555 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

UX>PAu$Ash&`yQ3Nx) zTsr%X{Iq9JA41bqj1C7l*ayAXIBlWPJY!$iG>FQk}@P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0ntfBK~y+Tjgres z0#O*p|8qvu%BJi>2~wm%(G^_Oq9`Z`+6Aq8fqH;mpk<37Xxj_4ZB-O>gIaW#>_Sq| z4a?M~>}Kjr=NxC$DTRKA!(6`e|E@;}-Jh%YMff?2`GrmFdi_Wy6$k?0s&!y;VpKZ; z5bc@f<1>as-xZEduDFPyQrC)-de<=s6-7lL7{T(!0b<{A?QaI=K*u1IU*E8@>BZao z7g`(ZKnTrIL!~R5wD2qTjpMUxcxj4`>T>jVw?m-INJh+sEX9YQjHUGhSS)4?^mL%Y zF5!&VS2LV76`F~XzeJGrZ66+=WVq^T(B0V#kvh;3*yQsdN>%PjA_{0~aPotJ z#|YoocR~2hZ=h&}6_`yZx0lc+KJ!4r(8!o75&~PX6=rJGNhFfIX?jCUqKHzdh&wl% z#FQ{)`adkXFf~1!Q^;=5q3@EE1xs7l}W|MOP-HHs|D_Q2aTlt0Pq728>nLTr(sF}0000< KMNUMnLSTZkXZ>LS literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/选中狗粮数字/5.png b/repo/js/ArtifactExpCount/assets/选中狗粮数字/5.png new file mode 100644 index 0000000000000000000000000000000000000000..f8130b0ccd070cd7ebbf4d16913c90cf25b0ea3b GIT binary patch literal 637 zcmV-@0)qXCP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0uo6?K~y+Tg;Gsx z6HydB@6AjynVEFbNye$B8m5>~#Zn83Ad0xKAQW6k|AP24{2QX+!Y=BWMOg_Ba{B8(kX4%fW|R{rmAv` zgFvoczrlohpwtH^XQAF`A&O&UtqiF#XqqC`Q5b{qqbQ1;)y^6? z#RbMjwS*$fS(BAA|y|pPLBrm3?Si$LmVWj!&!ku8N z6X5IIBJMw&L36#$7X>4up7Ud7|-cbJ=BLd=CK&)hG0AYc{F00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0yarRK~y+TZBpA# z6Hydhb7rKi<F0PTK;*vOo)csNwpT1u8JX-34AY>RZ_LdS zSvtuju$9Cb5{NBsXK3n)v=-_cYxIymed81TCB`1uEHgSJs}mQZV^CUT0deW~^a-6)uzag9wVxQM#{oy?8OAyxn3yG^_ zKKT}oBURH-Jg8WwHpGrqc+)K~MV2Y3*Ht9f^W09A&H^T1-%_Q9bmnMf1lY{EQ3`ZJ zM`p8tCoevceWJm9p@^rk&mIq&cev7}<800000NkvXX Hu0mjfRm(GG literal 0 HcmV?d00001 diff --git a/repo/js/ArtifactExpCount/assets/选中狗粮数字/7.png b/repo/js/ArtifactExpCount/assets/选中狗粮数字/7.png new file mode 100644 index 0000000000000000000000000000000000000000..4d57b82fc457da5765954492becfec135f08f4a9 GIT binary patch literal 551 zcmV+?0@(eDP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0lY~>K~y+TjgrYu z!eA7IPic!4L`XywwGMF#B)Tw~m}p{Rj4NIH48DUKw?2XFx4M8L;;RUMMFjV-{o<)LfGEf zH3EJgMA2cMQ%BQu+$UeKcNm2viI|-lhqSyf1z8p$uwNs(VIY~xV*e-xjqMold9gS@ z2}he-L5ov{(<#}me4&Vg;~4Ie&rn)qgvV5*ti(P_t^m^Qwn+`(~ z#b$%SqP%23uy+*YMw&i46vUt!;P;yhx$go_qZde}-?*m86QM!AG+{Ha!}0!+!%5_v zFDkGe+E|t0QPq6nmw^^dTqTjoesWE5C`!A>#Wi6weCLaZCvN%agsW9SXhda`>Xlmt ziu0Arc{F00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0%S=W`ynYeUeV&dMI^zXPbAtn+RCO9M&LLy42 zD26Hx3Tj(R=YE6tK1$%MzT9`uyXT(sK56CsYxCJc7WwU6)Eh0dI~okb1VfQ!Sgk60 zoOZ+qg1B{K8j3G8l3CmMfoiP@yVZi(=?UCU&)`xr0f*g+d|{8y8u(MJ;BRRkia$J> z>Cmk|N02n#K&#z>%n}$jn*{@rK6pJYsHy^sMTNiD zgG4MO&KXT2%iVAAlp>8h4qew#BdLdwCFzL3?2oxT-Y%^}Hw>7jiDJ2m<<+m<4v3wk z`wt(R+dIESfnDkK_F#w{iG~B%_*Ot}vj9!g;dIz=_3}8Rg%{7wr}J;{Yp*0oG!+(A z6(%%VZPCnorLSEO1bHkGK{_>s9+zDZNQuZ|pRD9&Mw5u&$tjktOeAMAuikw^rCR59 zxG1DZ&@YquQWhsp6lSjk$Js%Zu~G_72z zK{=gBX84wX&x5;nQWzhJ;)L5NGT>Z1ZWnT2wuNiDp&!`FLG_3H7#-?|swiB7qR2#Y zQ~EKC4M#+c_Y(vTgvWEb$01SOMRtbzeBDZypi!c{RIPrL>LFM=KfFT-0zc=UdqvE@ zTq5GZ^EgO)AB)*Fe5UXitU`M5=!v;S{{oNaG+DRXPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0u4z-K~yMHWs=!z z6Hye#zdK9zjv-4;noKLLZLugA3o42VA{9mOLHtX6@v-2)W8Zubso+vlB((`@o0Ouc ztu)QzWNgyROlI-k+sQ-d83yk1<2&bk_mGv9m)`2f3N*b3!>};0ZFrssfe4Ug5#dk} z6PW~-ZWkcRW9o9f*?~0}AeB(?clb`FvpeDY#QmLf~}q3Fs%W)#|8ujih@8d&Y*B{29acf z4w`KpzxEsaa2U+Szk1i-(Q;=O7P%X&<3>w|5{rNkg8hRwiW@bof3Cr@Yz~uW&tG`k zyL%J>WJy9?i9!xYJbjPa#eUWths&ikud?+6U$%du-qh&h*u1H!{5W^$?OKJy%udqS zt9pII= 0) { + initialValue = digits; + log.info(`已储存经验识别成功: ${initialValue}`); + } else { + log.warn(`已储存经验值识别失败,使用默认值0`); + } + await clickPNG("快速选择"); + await sleep(500); + // 识别不同星级狗粮数量 + const starPositions = [ + { star: 1, y: 130 }, + { star: 2, y: 200 }, + { star: 3, y: 270 }, + { star: 4, y: 340 } + ]; + const starCounts = {}; + for (const { star, y } of starPositions) { + const count = await numberTemplateMatch("assets/选中狗粮数字", 570, y, 60, 50); + if (count < 0) { + log.warn(`在${star}星狗粮位置未识别到有效数字`); + starCounts[`star${star}`] = 0; // 设置默认值为0 + }else{ + starCounts[`star${star}`] = count; + log.info(`${star}星狗粮识别到${count}个`); + } + } + // 计算狗粮经验值 + const expStar1 = starCounts.star1 * 420; + const expStar2 = starCounts.star2 * 840; + const expStar3 = starCounts.star3 * 1260; + const expStar4 = starCounts.star4 * 2520; + const expStars = expStar1 + expStar2 + expStar3 + expStar4; + // 库存经验值 + const expSmall = parseInt(smallBottle || 0) * 2500; + const expBig = parseInt(bigBottle || 0) * 10000; + const expStock = expSmall + expBig + initialValue; + // 合计 + const totalExp = expStars + expStock; + const totalCount = starCounts.star1 + starCounts.star2 + starCounts.star3 + starCounts.star4; + + // 预计算所有需要格式化的值 + const formattedExpStar1 = await formatExp(expStar1); + const formattedExpStar2 = await formatExp(expStar2); + const formattedExpStar3 = await formatExp(expStar3); + const formattedExpStar4 = await formatExp(expStar4); + const formattedExpStars = await formatExp(expStars); + const formattedExpSmall = await formatExp(expSmall); + const formattedExpBig = await formatExp(expBig); + const formattedExpStock = await formatExp(expStock); + const formattedTotalExp = await formatExp(totalExp); + + // 构建通知消息 + let message = `📦 圣遗物经验统计\n`; + message += `\n`; + message += `💾 已储存经验:${initialValue} 点\n`; + message += `\n`; + message += `📊 [狗粮数量统计]\n`; + message += `📦 总数量:${totalCount} 个\n`; + message += `⭐ 1星:${starCounts.star1} 个${expStar1 > 0 ? `(${formattedExpStar1})` : ''}\n`; + message += `⭐ 2星:${starCounts.star2} 个${expStar2 > 0 ? `(${formattedExpStar2})` : ''}\n`; + message += `⭐ 3星:${starCounts.star3} 个${expStar3 > 0 ? `(${formattedExpStar3})` : ''}\n`; + message += `⭐ 4星:${starCounts.star4} 个${expStar4 > 0 ? `(${formattedExpStar4})` : ''}\n`; + message += `💰 狗粮经验合计:${formattedExpStars}\n`; + message += `\n`; + message += `🧪 [经验瓶数量]\n`; + message += `🧪 小经验瓶:${smallBottle || 0} 个${expSmall > 0 ? `(${formattedExpSmall})` : ''}\n`; + message += `🧪 大经验瓶:${bigBottle || 0} 个${expBig > 0 ? `(${formattedExpBig})` : ''}\n`; + message += `💰 库存经验合计:${formattedExpStock}(含储存${initialValue}点)\n`; + message += `\n`; + message += `✨ 总经验:${formattedTotalExp}\n`; + // 记录保存功能 + const userName = await getUserName(); + const recordPath = `assets/${userName}.txt`; + + // 获取本地保存的数据 + const localData = await getLocalData(recordPath); + + // 更新记录 + await updateRecord(recordPath, initialValue, parseInt(smallBottle || 0), parseInt(bigBottle || 0), starCounts, totalExp); + + // 构建基础日志信息 + const formattedExpStarsLog = await formatExp(expStars); + const formattedExpSmallLog = await formatExp(expSmall); + const formattedExpBigLog = await formatExp(expBig); + const formattedExpStockLog = await formatExp(expStock); + const formattedTotalExpLog = await formatExp(totalExp); + const baseLog = `狗粮:${totalCount}个(1★${starCounts.star1} 2★${starCounts.star2} 3★${starCounts.star3} 4★${starCounts.star4}) | 狗粮经验:${formattedExpStarsLog} | 小瓶:${formattedExpSmallLog} 大瓶:${formattedExpBigLog} 储存:${initialValue} | 库存经验:${formattedExpStockLog} | 总计:${formattedTotalExpLog}`; + + // 计算变化量并添加到通知消息 + let logMessage = baseLog; + if (localData.initialized.initialValue && localData.initialized.smallBottle && localData.initialized.bigBottle && + localData.initialized.star1 && localData.initialized.star2 && localData.initialized.star3 && localData.initialized.star4 && + localData.initialized.totalExp) { + // 计算本地记录中的狗粮经验合计 + const localExpStar1 = localData.starCounts.star1 * 420; + const localExpStar2 = localData.starCounts.star2 * 840; + const localExpStar3 = localData.starCounts.star3 * 1260; + const localExpStar4 = localData.starCounts.star4 * 2520; + const localExpStars = localExpStar1 + localExpStar2 + localExpStar3 + localExpStar4; + + // 计算总经验和狗粮经验合计的变化 + const diffTotalExp = totalExp - localData.totalExp; + const diffExpStars = expStars - localExpStars; + + // 添加变化量到通知消息 + message += `\n`; + if (diffTotalExp !== 0 || diffExpStars !== 0) { + if (diffTotalExp !== 0) { + const totalChangeDesc = diffTotalExp > 0 ? '增加' : '减少'; + const formattedDiffTotalExp = await formatExp(Math.abs(diffTotalExp)); + message += `📈 总经验${totalChangeDesc}:${formattedDiffTotalExp}\n`; + } + if (diffExpStars !== 0) { + const expStarsChangeDesc = diffExpStars > 0 ? '增加' : '减少'; + const formattedDiffExpStars = await formatExp(Math.abs(diffExpStars)); + message += `🐶 未分解的狗粮经验${expStarsChangeDesc}:${formattedDiffExpStars}`; + } + } else { + // 如果没有变化,输出不变 + message += `📊 经验数据无变化`; + } + + // 构建完整日志(包含变化信息) + if (diffTotalExp !== 0 || diffExpStars !== 0) { + const totalChangeDesc = diffTotalExp > 0 ? '增加' : '减少'; + const expStarsChangeDesc = diffExpStars > 0 ? '增加' : '减少'; + const formattedDiffTotalExpLog = await formatExp(Math.abs(diffTotalExp)); + const formattedDiffExpStarsLog = await formatExp(Math.abs(diffExpStars)); + logMessage = `总经验${totalChangeDesc}:${formattedDiffTotalExpLog} | 狗粮经验${expStarsChangeDesc}:${formattedDiffExpStarsLog} | ${baseLog}`; + } else { + // 如果没有变化,日志也显示不变 + logMessage = `经验数据无变化 | ${baseLog}`; + } + } + if (settings.notify) { + notification.send(message); + } + log.info(logMessage); + await genshin.returnMainUi(); + + // 格式化经验值显示 + async function formatExp(num) { + if (num >= 10000) { + // 直接除法并转换为字符串,保留所有有效小数 + return `${(num / 10000).toString()}万`; + } else { + return `${num}`; + } + } + /** + * 在指定区域内,用 0-9 的 PNG 模板做「多阈值 + 非极大抑制」数字识别, + * 最终把检测到的数字按左右顺序拼成一个整数返回。 + * + * @param {string} numberPngFilePath - 存放 0.png ~ 9.png 的文件夹路径(不含文件名) + * @param {number} x - 待识别区域的左上角 x 坐标,默认 0 + * @param {number} y - 待识别区域的左上角 y 坐标,默认 0 + * @param {number} w - 待识别区域的宽度,默认 1920 + * @param {number} h - 待识别区域的高度,默认 1080 + * @param {number} maxThreshold - 模板匹配起始阈值,默认 0.95(最高可信度) + * @param {number} minThreshold - 模板匹配最低阈值,默认 0.8(最低可信度) + * @param {number} splitCount - 在 maxThreshold 与 minThreshold 之间做几次等间隔阈值递减,默认 3 + * @param {number} maxOverlap - 非极大抑制时允许的最大重叠像素,默认 2;只要 x 或 y 方向重叠大于该值即视为重复框 + * + * @returns {number} 识别出的整数;若没有任何有效数字框则返回 -1 + * + * @example + * const mora = await numberTemplateMatch('摩拉数字', 860, 70, 200, 40); + * if (mora >= 0) console.log(`当前摩拉:${mora}`); + */ + async function numberTemplateMatch( + numberPngFilePath, + x = 0, y = 0, w = 1920, h = 1080, + maxThreshold = 0.95, + minThreshold = 0.8, + splitCount = 3, + maxOverlap = 2 + ) { + let ros = []; + for (let i = 0; i <= 9; i++) { + ros[i] = RecognitionObject.TemplateMatch( + file.ReadImageMatSync(`${numberPngFilePath}/${i}.png`), x, y, w, h); + } + + function setThreshold(roArr, newThreshold) { + for (let i = 0; i < roArr.length; i++) { + roArr[i].Threshold = newThreshold; + roArr[i].InitTemplate(); + } + } + + const gameRegion = captureGameRegion(); + const allCandidates = []; + + /* 1. splitCount 次等间隔阈值递减 */ + for (let k = 0; k < splitCount; k++) { + const curThr = maxThreshold - (maxThreshold - minThreshold) * k / Math.max(splitCount - 1, 1); + setThreshold(ros, curThr); + + /* 2. 0-9 每个模板跑一遍,所有框都收 */ + for (let digit = 0; digit <= 9; digit++) { + const res = gameRegion.findMulti(ros[digit]); + if (res.count === 0) continue; + + for (let i = 0; i < res.count; i++) { + const box = res[i]; + allCandidates.push({ + digit: digit, + x: box.x, + y: box.y, + w: box.width, + h: box.height, + thr: curThr + }); + } + } + + } + gameRegion.dispose(); + + /* 3. 无结果提前返回 -1 */ + if (allCandidates.length === 0) { + return -1; + } + + /* 4. 非极大抑制(必须 x、y 两个方向重叠都 > maxOverlap 才视为重复) */ + const adopted = []; + for (const c of allCandidates) { + let overlap = false; + for (const a of adopted) { + const xOverlap = Math.max(0, Math.min(c.x + c.w, a.x + a.w) - Math.max(c.x, a.x)); + const yOverlap = Math.max(0, Math.min(c.y + c.h, a.y + a.h) - Math.max(c.y, a.y)); + if (xOverlap > maxOverlap && yOverlap > maxOverlap) { + overlap = true; + break; + } + } + if (!overlap) { + adopted.push(c); + //log.info(`在 [${c.x},${c.y},${c.w},${c.h}] 找到数字 ${c.digit},匹配阈值=${c.thr}`); + } + } + + /* 5. 按 x 排序,拼整数;仍无有效框时返回 -1 */ + if (adopted.length === 0) return -1; + adopted.sort((a, b) => a.x - b.x); + + return adopted.reduce((num, item) => num * 10 + item.digit, 0); + } + + async function clickPNG(png, doClick = true, maxAttempts = 40, Threshold = 0.9) { + const pngRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync(`assets/RecognitionObject/${png}.png`)); + pngRo.Threshold = Threshold; + pngRo.InitTemplate(); + return await findAndClick(pngRo, maxAttempts, doClick); + } + + async function findAndClick(target, maxAttempts = 20, doClick) { + //log.info("调试-开始检查"); + for (let i = 0; i < maxAttempts; i++) { + //log.info("调试-检查一次"); + const rg = captureGameRegion(); + try { + const res = rg.find(target); + if (res.isExist()) { if (doClick) await sleep(16), res.click(), await sleep(50); return true; } + } finally { rg.dispose(); } + if (i < maxAttempts - 1) await sleep(50); + } + return false; + } + + // 检验账户名 + async function getUserName() { + userName = userName.trim(); + // 账户名规则:数字、中英文,长度1-20字符 + if (!userName || !/^[\u4e00-\u9fa5A-Za-z0-9]{1,20}$/.test(userName)) { + log.error(`账户名${userName}违规,暂时使用默认账户名,请查看readme后修改`) + userName = "默认账户"; + } + return userName; + } + + async function close_expired_stuff_popup_window() { + const game_region = captureGameRegion(); + const text_x = 850; + const text_y = 273; + const text_w = 225; + const text_h = 51; + const ocr_res = game_region.find(RecognitionObject.ocr(text_x, text_y, text_w, text_h)); + if (ocr_res) { + if (ocr_res.text.includes("物品过期")) { + log.info("检测到物品过期"); + click(1000, 750); + await sleep(1000); + } + } + game_region.dispose(); + } + /** + * 识别背包中指定物品的数量 + * @param {string} itemName - 物品名称(仅用于日志) + * @param {string} templatePath - 模板图片路径 + * @returns {Promise} 识别到的数字字符串(可能为空) + */ + async function getBottleCount(itemName, templatePath) { + const ro = RecognitionObject.TemplateMatch(file.ReadImageMatSync(templatePath)); + ro.InitTemplate(); + for (let i = 0; i < 5; i++) { + const rg = captureGameRegion(); + try { + const res = rg.find(ro); + if (res.isExist()) { + const regionToCheck = { x: res.x, y: res.y + 20, width: 70, height: 20 }; + // 使用numberTemplateMatch函数识别数字 + const count = await numberTemplateMatch( + 'assets/背包数字', // 数字模板文件夹路径 + regionToCheck.x, regionToCheck.y, regionToCheck.width, regionToCheck.height + ); + const digits = count === -1 ? '' : count.toString(); + log.info(`识别到${itemName}数量为${digits}`); + //log.info(`识别到${itemName}识别区域为${regionToCheck.x}, ${regionToCheck.y}, ${regionToCheck.width}, ${regionToCheck.height}`) + return digits; // 成功识别即返回 + } + } finally { + rg.dispose(); + } + if (i < 5 - 1) await sleep(50); + } + return ''; // 未找到时返回空字符串 + } + + // 检验账户名 + async function getUserName() { + account = account.trim(); + // 账户名规则:数字、中英文,长度1-20字符 + if (!account || !/^[\u4e00-\u9fa5A-Za-z0-9]{1,20}$/.test(account)) { + log.error(`账户名${account}违规,暂时使用默认账户名,请查看readme后修改`) + account = "默认账户"; + } + return account; + } + + /** + * 获取本地记录中最新的一组数据 + * @param {string} filePath - 记录文件路径 + * @returns {Promise} 包含经验数据的对象 + */ + async function getLocalData(filePath) { + // 初始化返回结果 + const result = { + initialValue: null, + smallBottle: null, + bigBottle: null, + starCounts: { + star1: null, + star2: null, + star3: null, + star4: null + }, + totalExp: null, + initialized: { + initialValue: false, + smallBottle: false, + bigBottle: false, + star1: false, + star2: false, + star3: false, + star4: false, + totalExp: false + } + }; + + try { + // 尝试读取文件,不存在则直接返回空结果 + const content = await file.readText(filePath); + const lines = content.split('\n').filter(line => line.trim()); + + if (lines.length === 0) return result; + + // 数据匹配正则 + const initialValueRegex = /已储存经验-(\d+)/; + const smallBottleRegex = /小经验瓶-(\d+)/; + const bigBottleRegex = /大经验瓶-(\d+)/; + const star1Regex = /1星狗粮-(\d+)/; + const star2Regex = /2星狗粮-(\d+)/; + const star3Regex = /3星狗粮-(\d+)/; + const star4Regex = /4星狗粮-(\d+)/; + const totalExpRegex = /总经验-(\d+)/; + + // 遍历前几条记录,寻找最新的一组完整数据 + for (const line of lines) { + // 匹配已储存经验 + if (!result.initialized.initialValue) { + const match = line.match(initialValueRegex); + if (match) { + result.initialValue = parseInt(match[1]); + result.initialized.initialValue = true; + } + } + + // 匹配小经验瓶 + if (!result.initialized.smallBottle) { + const match = line.match(smallBottleRegex); + if (match) { + result.smallBottle = parseInt(match[1]); + result.initialized.smallBottle = true; + } + } + + // 匹配大经验瓶 + if (!result.initialized.bigBottle) { + const match = line.match(bigBottleRegex); + if (match) { + result.bigBottle = parseInt(match[1]); + result.initialized.bigBottle = true; + } + } + + // 匹配1星狗粮 + if (!result.initialized.star1) { + const match = line.match(star1Regex); + if (match) { + result.starCounts.star1 = parseInt(match[1]); + result.initialized.star1 = true; + } + } + + // 匹配2星狗粮 + if (!result.initialized.star2) { + const match = line.match(star2Regex); + if (match) { + result.starCounts.star2 = parseInt(match[1]); + result.initialized.star2 = true; + } + } + + // 匹配3星狗粮 + if (!result.initialized.star3) { + const match = line.match(star3Regex); + if (match) { + result.starCounts.star3 = parseInt(match[1]); + result.initialized.star3 = true; + } + } + + // 匹配4星狗粮 + if (!result.initialized.star4) { + const match = line.match(star4Regex); + if (match) { + result.starCounts.star4 = parseInt(match[1]); + result.initialized.star4 = true; + } + } + + // 匹配总经验 + if (!result.initialized.totalExp) { + const match = line.match(totalExpRegex); + if (match) { + result.totalExp = parseInt(match[1]); + result.initialized.totalExp = true; + } + } + + // 所有数据都找到,提前终止遍历 + if (result.initialized.initialValue && + result.initialized.smallBottle && + result.initialized.bigBottle && + result.initialized.star1 && + result.initialized.star2 && + result.initialized.star3 && + result.initialized.star4 && + result.initialized.totalExp) { + break; + } + } + return result; + } catch (error) { + // 文件不存在或读取错误时返回空结果 + return result; + } + } + + /** + * 更新记录文件 + * @param {string} filePath - 记录文件路径 + * @param {number} initialValue - 已储存经验 + * @param {number} smallBottle - 小经验瓶数量 + * @param {number} bigBottle - 大经验瓶数量 + * @param {object} starCounts - 狗粮数量 + * @param {number} totalExp - 总经验值 + */ + async function updateRecord(filePath, initialValue, smallBottle, bigBottle, starCounts, totalExp) { + // 生成当前时间字符串 + const now = new Date(); + const timeStr = `${now.getFullYear()}/${ + String(now.getMonth() + 1).padStart(2, '0') + }/${ + String(now.getDate()).padStart(2, '0') + } ${ + String(now.getHours()).padStart(2, '0') + }:${ + String(now.getMinutes()).padStart(2, '0') + }:${ + String(now.getSeconds()).padStart(2, '0') + }`; + + // 生成记录 + const records = [ + `时间:${timeStr}-已储存经验-${initialValue}`, + `时间:${timeStr}-小经验瓶-${smallBottle}`, + `时间:${timeStr}-大经验瓶-${bigBottle}`, + `时间:${timeStr}-1星狗粮-${starCounts.star1}`, + `时间:${timeStr}-2星狗粮-${starCounts.star2}`, + `时间:${timeStr}-3星狗粮-${starCounts.star3}`, + `时间:${timeStr}-4星狗粮-${starCounts.star4}`, + `时间:${timeStr}-总经验-${totalExp}` + ]; + + try { + let content = await file.readText(filePath); + let lines = content.split('\n').filter(line => line.trim()); + + if (lines.length === 0) { + // 文件为空,直接写入新记录 + await file.writeText(filePath, records.join('\n')); + return true; + } + + + + // 添加新记录到最前面 + lines.unshift(...records); + + // 只保留1年内的记录 + const oneYearAgo = new Date(); + oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1); + + const recentLines = lines.filter(line => { + const timeMatch = line.match(/时间:(\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2})/); + if (!timeMatch) return false; + const lineTime = new Date(timeMatch[1]); + return lineTime >= oneYearAgo; + }); + + // 写入文件 + await file.writeText(filePath, recentLines.join('\n')); + return true; + } catch (error) { + // 文件不存在时创建新文件 + await file.writeText(filePath, records.join('\n')); + return true; + } + } +})(); \ No newline at end of file diff --git a/repo/js/ArtifactExpCount/manifest.json b/repo/js/ArtifactExpCount/manifest.json new file mode 100644 index 000000000..99ed86c62 --- /dev/null +++ b/repo/js/ArtifactExpCount/manifest.json @@ -0,0 +1,18 @@ +{ + "manifest_version": 1, + "name": "圣遗物经验统计", + "version": "1.0", + "bgi_version": "0.55", + "description": "识别可分解的1-4星圣遗物和经验瓶数量", + "authors": [ + { + "name": "勺子", + "links": "https://github.com/skyflag2022" + } + ], + "settings_ui": "settings.json", + "main": "main.js", + "saved_files": [ + "assets/*.txt" + ] +} \ No newline at end of file diff --git a/repo/js/ArtifactExpCount/settings.json b/repo/js/ArtifactExpCount/settings.json new file mode 100644 index 000000000..590b44caf --- /dev/null +++ b/repo/js/ArtifactExpCount/settings.json @@ -0,0 +1,14 @@ +[ + { + "name": "userName", + "type": "input-text", + "label": "账户名称\n用于多账户运行时区分不同账户", + "default": "默认账户" + }, + { + "name": "notify", + "type": "checkbox", + "label": "是否通知信息", + "default": true + } +] \ No newline at end of file