From e3d43f89466430716dfe7bc6084ccdcfe91f3e52 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: Thu, 12 Feb 2026 18:26:00 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"js=EF=BC=9A=E9=87=87=E9=9B=86cd?= =?UTF-8?q?=E7=AE=A1=E7=90=862.10.0=20(#2865)"=20(#2867)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 280cfb1f8c29c2162d034c82e79e4e004d2fc072. --- ...Ÿ¹æŠ€èƒ½1.json => A00-塞洛海原(学习螃蟹技能).json} | 0 .../assets/RecognitionObject/蟹黄2.png | Bin 3223 -> 3851 bytes repo/js/采集cd管ç†/assets/学习螃蟹技能2.json | 76 ------- repo/js/采集cd管ç†/assets/螃蟹技能图标.png | Bin 3967 -> 0 bytes repo/js/采集cd管ç†/main.js | 212 +++++------------- repo/js/采集cd管ç†/manifest.json | 2 +- .../采集物cd类型(感谢群uæ•´ç†ï¼‰.xlsx | Bin 14557 -> 14060 bytes 7 files changed, 63 insertions(+), 227 deletions(-) rename repo/js/采集cd管ç†/assets/{学习螃蟹技能1.json => A00-塞洛海原(学习螃蟹技能).json} (100%) delete mode 100644 repo/js/采集cd管ç†/assets/学习螃蟹技能2.json delete mode 100644 repo/js/采集cd管ç†/assets/螃蟹技能图标.png diff --git a/repo/js/采集cd管ç†/assets/学习螃蟹技能1.json b/repo/js/采集cd管ç†/assets/A00-塞洛海原(学习螃蟹技能).json similarity index 100% rename from repo/js/采集cd管ç†/assets/学习螃蟹技能1.json rename to repo/js/采集cd管ç†/assets/A00-塞洛海原(学习螃蟹技能).json diff --git a/repo/js/采集cd管ç†/assets/RecognitionObject/蟹黄2.png b/repo/js/采集cd管ç†/assets/RecognitionObject/蟹黄2.png index bd34327fa5f8bc34ad2fd6ccc26780a6bd509535..a36e6b5570f86bfddda3f709ab1fa00b565a86d2 100644 GIT binary patch literal 3851 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 N002ovPDHLkV1msbj(h+B literal 3223 zcmV;I3~2L-P)f~-rmt+)?rKz*$(8@R2rsKv?rKm2*;!v?t#XOMj(XJ=ck&sKrE$-{Ah{~RR zz8LL#?AiL%Tik)vtg=~qbIK2-W8A&xsz$0UlPiz5>!HE*?_K59TYBT40lA}I)iLg- zSw5G`F)XjNrH{1f54P%n9B9$*&ii)nHOelu{Tp>Wm&*x4j$(KeXHkMBY0<0TgOS{$negsL^}wVrk)hKV zBM3q+m*WM2ptwYa1`qlCL!9E)fIQf$d%h5zHKl;enNkK1x;%G|pg65F1GTfJ)Vw)m z^=F|0Msf=l1R8uaBu8EaATa5mILK1DqOw_g=WUSV#ciiC=A$7wHoY`48?gs5unfxy zo-p1q?%r0TJl$*TdhB`dKE&h$8>hGr`ef%LcjqI|*z^+3i0>tXvv=MGrE8z;HinZF z-1N^JFf6}dL8SA;aS@QEa>d?jnt@3lL2+U#a)QB)Ub<;H+h=Nf=#Hmp(YLuAl4Tye z51r~UR<>wMWQv^)>TjNUf!iY~s(svjxJ`GoUEeY87M+{RB~hmPu?H?(B2ye~*DGv@ zCyYZ0B}oXCVfkR3gep%M_eO{)vhq@BhWADYXy6E9Pv;`i`Qf+-$es1-uE(A%!GiU8 zLBL5ajWHQ~B~}F?M>BjHV?s&l!TZqmI+bkL=FVp?L2+tFdSWgzZ%!>*5wI;m5WErM ze7_kkTq0AH$(1`B)VmrBvb#|&AF)A@O9}GJ0W;L@YE&jdnvTmv#W z{?@vbAlC@U1ptHPgeXF-F-W2e1j(>`D7kh9r7e9RpFR-bX595mpQ(_OEbk8E^X3%G ziLPTg!51aw%qfW39jswM6o)^-Xn72pU^+((Fhug%^0&8!p zQPz&y8J6E%SWW=p1Ay_ou(>_M@~#kmcwILx;z_WNvwbF#77Gv9I*i^zJ0aLYV<5Sw zbCF{mdW9_wnnxOAYyk`eGs_8~B&l;{bS|+OG~aWA$;+#i=ljhI7G!hLI5Vkb*MX@v zw_mUz&*r21n$~v9%|HU8Lo>Y5gHA0*L3^NC-r~r@v9E%}b>UjO~=3%`_asqE?XHsDFi1J|h@ zBSf`kP#k1gwOAOyD-;AV4?#l0++aDtZE^tQ2YqthoT?qQ1BO*SVgs)rgR}SFg&^&! zY|&QKuB!3}TC}fKBB}bBpESk{Z$Ni8EId2v)sQ8UG-vRj1~&@RES#kDZnQvdNbZFq zc6rD;V@%E%3ZizTnS7OESl$!H;q%G)=;_{7?^_BIG^bF4gc3z4$RdksLA>O0A}8An z9kBt89(g*3n zW!1`ygO)^w7KB_ZP2ZgIm&ghvT9iBsbH0{sSje|5{EU0!It_Ul_#Na#NU@-OFJ{Qcjv5M-%L zaiB%}Y(C2KLLx&y$rrQ|nc_sJ!RSTpLF|(;H8C5Bq$reNSxzKF&*mdnhO9^0R?dp2 zdW%@dN(hii#!QMz_n{tOw2 zlb#4M`a^JElXgFlW-T}&YNJtvPt`|Z%prXi3JPt zPMc_Z=-zuxv!>p_6{R3So8>rRMe=7LSd(}`qT&Q_LIT>)coMD$2Yaq+TJF293|V(I zsGIINC*~qW1mCnqNMwXp)%fs=!Q6eLD+ zPd-H|YLrlpcN!KYWMGZI~nP-aaj$fs$Rw+At(daH@g znNu)fwg{4>`8ji{@vZ|(&l3+kqp#QYPI#S5g{v7P%YXv8<|TqZi<1GMlY+!4?u|Nr zy4MJ$dc>x87wS8Tv*R;is5;$itpCp8j}hQC#}K;luA}JkQcnWopYYA|;$gMswyo$A z8w17LW&?7n~vd%XNefEU~{yJN_{oO;Ia?h(}O@ z=4gf&Z^l-uk|@LR;(<1X(2*1sPEo-)Y4K-=Uj=>&cP)`A_BCnly<3W;sG<^2(~xlR zd1@{-iy~AS6Z0~Oid(tY?G1Mv zW7A7ng4Mb*-@OTTJ@(X&+RyZvHoByPj@>L=D{7QgT?YAxt*Ep=bVI_CCD<1Vkp=;& zxoz(lcfZ#qNSbplVPD;}z&ioBuyjx=7cUBqb?6)JIHt7;z5VFcKz-~b*X&A%Ccd&f}aKe?Ksx1Kh~i?4y4m?A}{~!GF%z5>Rbih zBj)5sF(=RTn$Gr_E)81lzFh+3mg5Cm0J}73DH=}OYLxq$G^cuuosZlqM;iPKIGQI> z=7T=Dv%YZ7E|DpYcN%oAOd_)qL4Z-+df`9UZ$8+n`(o>NJS8&4{$}mHcS{Q~gNPIMZoM{JK~!k!2Yxh}=gnj*@zc} zRF-+GNwnN|9c$OG_iFKQJ#<|+V@$G~c-=sW+vRYI%aSaLvl)yddhqmO37_uehtejT_u;n?(ZU8{{w>2J|!t000k0Nklp(a6t5sf!RV@+)x{#eDdbs$mW#5fY;NFcMQAyG$?jt8{#$tpIh+Au2?Qf#EytZX3|Cc+7X4Hg@$WHgCdI2sQNT3FP=f=(8C zSOmyWI2tFcF<|v^o7*~Afgln}uFk3ftB;Ftf|HDmyFbd8YqNuv;05xP>3@!|WmT7g z5@-iz*#=hZu~On@$!HP)sg5h^03FprL{}oJ&+37KoH0;ThyyDfqQ*%&2eTHD;t#3D z`nUHCPn5Eyso8ZcO=U_`+0xY6z5%>$OGGg_*+Qy~sKCH#6J1S8%;E%+6AY-UhlMyu z3xlwNu7Vb(lw@Xv7=pbfaM2iw#(YqXSOVs`V!SQc{n2Nq^W~{*shTaqxLa4EsP`cu z&R3@YGL-$*8+#smHicxHRUB4vkm4ZOf)}6y%O;@9CWDC?h!f@rI^c>rWsNsSJDNp} zm53uf))*23P>_}rwTKx1>5Am(OMe}iEa%Hp0c!?u@8eejnki1@%G3Gsbf!3Ud#t$a zg98hfIGpMr)gjVSbwN~cww!>Wm<&!dW5d%GSflZ9G)5>jR@5PSd{$r4I2Vm`LTmxn z{&?n_Orb)BY@9R2`*@%T9)K}(ku6Q73zd$IJ9*jSlm;irCQ^J>A}}kP%{W1W3|N~5 zDrY08Z_sEQ5zscb`^v51OrZj-1#jOQafz;XJ0Tl@7QwY1H(8`7D}&>ueSbRhfMOD9 zX-*(%0i>-DMz*N5p{6Koy{{<24I)X`DShsTRRMk!}!t%4IEl4`*SM6E;5 zB+iy<7yE}6t?c4ti&rQvIKi_4EC9M0C*}xxs9Dr!fI?Jh-iXHMM&ldaelJ(7=12em zYcS|1{+xmEs@}d+xIQv^J)IxOPmC0Z%t4SfI>9HVZ`Ge0|GB=FgH5+sZ|ehGY6+`J zG(x_pUQ|IoB63173Gt1+AC63tO$S7}sKBCF&6jJCRtuH%Wcg-xZ1ZnFetfw*4{I%C zw95L!?dI|g+Yg_;NM9pgna)?HbLCp26Fe&ytNpq0$CoEL48?_$4Nf-vAoExmoCvWJ z=o(1N3mPwIk!UO;#N4fK42>0uK?6!cOthq|YhLU9;ZiFiY4icGW!Pjf-8(QJhZFNu z^WV(pkDb3V3#*qsU{5X%3_Y~ijNk+hxD5%x_il)l45&jS{2x;EUutWf-?jVr`OE2v za(bd%52l8#&lDS*`_mKnxt>KUlDrJ{oLZKV%@C9dNt-Y0ukZUbU#{g!Q#nXL4ZaL0 z>7rP@d~5h$wdXjIRt=pKY1P#c23DHPecM?qSkPh>i&Y&~b$G?x`0n1}$?^T+MJnqU$=`!*7QVq zXuSBuiX;+(+D1Z(C`xf7qShj5u@|?~9lUUJ5OR=gAq5Noe)XLIKYC`cUfcV7h%=H6 z0>1|3kce98>HUyISR%wg9xzsHc$Mnv5&K%w%%7epuX(MPgBn3uy}3bDy+zP^4;;-D zDwH)>n))_#M_u6hQ+ zN;O*6y*KlTuYNbuDr#I*Ls6fVKy#wbiyANLkG7j9FIR@S{trS<>NGi#<$%@nHU%ex@`gP@5JgH1+)1pc%5>U?>2R%7E%02Op^ zhz1f3j?BEM|4V#L-*C=*J-_5OLcg{D$OEd$Di%X*06|8@hUV4gv3czL72m7?>gigj z9y@m_0{NSiD#-{j*kUl`Z5|t2-~XikNMF>8HwRnVVq8?`1cMU{BmgA^sp*~beS7uCT41eAx6GFn7!=kE@sXQvF3PQ9-k$dCWK(~Y2+ zf-(lsBvG)ky`bIlqXk}%u0Q$H8D5MB#UF`!h@r+OtpBh$F*GxIWeOGC*~1Asu!09b zT29a(Q4{-5o`qaZ3rAhcfHGKk=Y@P_dU&E_ZF`f0GcBnOJ}ZaKy~n@EK&$B&+hX;^ z*H^i^s9=K-v5p0G92-yC-SnLTo2Mtr3snONIwufaqoC-Im${b*hU@Zw4^YzA0(7oa zd*{%xR@H(sCKCr^8)0+Ri#y0+*fT4rTd1~TIERv61!6kT69=MWA#L( zy*4>`t$*hOFV19(vMzcybua6(=eNLqdZ$1=#L51I(CYOYZQax zdVWPXvFty$`mFUMUhkpfoMa)cWE`m>dIsKwgCnnNf8_Gpw zlU04clJ>ljm40)kP#wsP&yyNh=|v5P6GzTnf)gAm&B46q@JS?DtmLqO3+i&B`NJjl z&^UCD{+JDpf|C0fuYn>0rwi3Te0c$>L|2F{lL6Mm50=(-^;zM}yz+%t;8;Z>EJQ9p ztVJujMhb8WC6sktkDR;AOBRbARZDIpw7;NzWWGzj-{@;gr#YQTC`m7c!C$x<_X|x3WfbWEA?}4M92as&P zwEJUv(-a^!EUL@8Uu8g7e@G6J99}eE`t{y?d79L%??p_{-2W6?gH)FeMy9&j95#-e zy*R6`KwPLitU%QaJ=ks!Pn7S=TB!c|&~bzvR!%ZF=gp|S7b1afh7Z7};lyG`x}eO3q+81~jTX$_)qcg?xd)QxmL zBE&@C0j1bkNbd+O#&wf@}1 zW6L{v)#cig9Pt44D;yTEb?Q>zj2^$94dLjYDO6VPcn5Sv*qNtT=WpC@puC&)+w52? z+&mIcZ~`m5Szy4*U8OSy=!UI zHB+d*clbmL9Gmq}GqeuQ!X?Q=Uwlm-c{eCr_?M^OI&hT7Hi9h!P*zR>E*bL`=i|@M zj1;Pnq3fBUmMhirmFe_kb;X9)cs0qjcX91qs6B-gkCnmJJSEYW&Qqt-<3IqKC)XJ- z_I?l%;=HIex5YzELV}bor&V!!diM^Emwkcj9-xNCYc{ho+?q2%oWWC*NOoIgd;jV4 zf5XZYYgvEL)0?*GbzVtv?VSifyO7$&s&r>89w&bH+3ECT<*ulr-t8OCEnc^YgYz6* z2R1zw3xx%RkF}FkQ}Bk^);I6+AK_&HTB`={6h8mv>Vp_={b|?I{B*4O zX~G&7&1NrdQXF>Y%I?qg=Z~Gg>VJ_ZaJE#tbSwSnvQ)qd#IlQ&BvL_LUU8Pcu$_Yb z&$a%?mOsa-DXu-ms-3I~x_S#Wg|NM{XUE`Ji9Dk2)J&mr@YLDIms<2lNDg*76O9L~ z)*QiV5-kQpR-zU}a*C6aKUuYQ-L5_7u75|Nv!zf4K!JCqWUTM}ro z1+D4n7>u@9C@flY1T!pHVZm+^?I!H9N+$^&n30_1u=Aw-!lrlk{rSobS~c>O>DWvE z#Y2;B`}y2~{)Q5h&_PO)RmfheodB&S;on1wGr!$^>%h_UWF=pozI~@~>hkrT-VdKx z)kPW<|7r{nb*3%uQ9d1OZi5k;BiVBR*Yak;ZjxL^PBEZCCzY9#p>g4{)goI(5W5Co4z4y8O)g?JbhQVUw2(a(|=2 z1s)k}RBL*wqZ#Dvpo%uN5nbnCCk(iBSYgQyi*{Hd>MEUN*HR>OV2c@25m@X*Wc%SI z?juW6B#RMseQ1w0h(E<;{C~UsXhr8E&m>zE8>%#hZGpy3^4fk6l*kF7Pf^wm3i`L4 Z^?y;4WPT$oe|`V}002ovPDHLkV1f`>ic word.trim()) + .filter(word => word.length > 0); + } if (typeof foodCounts === 'string' && foodCounts.trim()) { foodCount = foodCounts @@ -676,8 +667,8 @@ let checkInterval = +settings.checkInterval || 50; const pickedCounter = {}; priorityItemSet.forEach(n => pickedCounter[n] = 0); - /* ===== å‰©ä½™ç‰©å“ ===== */ - let remaining = priorityList.map(t => `${t.itemName}*${t.count}`).join(', '); + /* ===== æ¯è½®å¼€å§‹è¾“å‡ºå‰©ä½™ç‰©å“ ===== */ + log.info(`å‰©ä½™ç›®æ ‡ææ–™ ${priorityList.map(t => `${t.itemName}*${t.count}`).join(', ')} `); /* 4-1 扫æ + 读 record + å‰ç½®è¿‡æ»¤ï¼ˆç¦ç”¨/æ—¶é—´/ææ–™ç›¸å…³ï¼‰+ 计算效率 + CDåŽç½®æŽ’除 */ const allFiles = await readFolder('pathing', true); const rawRecord = await file.readText(`${recordFolder}/${subFolderName}/record.json`); @@ -792,14 +783,12 @@ let checkInterval = +settings.checkInterval || 50; } } - log.info(`当å‰è¿›åº¦ï¼šæ‰§è¡Œè·¯çº¿ ${fileName}ï¼Œå‰©ä½™ä¼˜å…ˆææ–™ï¼š${remaining}`); - let timeNow = new Date(); if (Foods.length != 0 && (((timeNow - lastCookTime) > cookInterval) || firstCook)) { firstCook = false; await ingredientProcessing(); lastCookTime = new Date(); - lastMapName = "Teyvat"; + underWater = false; } if (settings.setTimeMode && settings.setTimeMode != "ä¸è°ƒèŠ‚æ—¶é—´" && (((timeNow - lastsettimeTime) > settimeInterval) || firstsettime)) { @@ -815,28 +804,16 @@ let checkInterval = +settings.checkInterval || 50; runOnce.push(fileName); /* ================================= */ + log.info(`当å‰è¿›åº¦ï¼šæ‰§è¡Œè·¯çº¿ ${fileName}`); state.running = true; - - const raw = file.readTextSync(filePath); - const json = JSON.parse(raw); - const mapName = (json.info?.map_name && json.info.map_name.trim()) ? json.info.map_name : 'Teyvat'; - if (filePath.includes('枫丹水下')) { - log.info("当å‰è·¯çº¿ä¸ºæ°´ä¸‹è·¯çº¿ï¼Œæ£€æŸ¥èžƒèŸ¹æŠ€èƒ½"); - let skillRes = await findAndClick("assets/螃蟹技能图标.png", false, 1000); - if (!skillRes || lastMapName != mapName) { - log.info("识别到没有螃蟹技能或上一æ¡è·¯çº¿å¤„于其他地图,å‰å¾€èŽ·å–螃蟹技能"); - - if (mapName === "SeaOfBygoneEras") { - await pathingScript.runFile("assets/学习螃蟹技能2.json"); - } - else { - "assets/学习螃蟹技能1.json"; - } - } - } - lastMapName = mapName; const pickupTask = recognizeAndInteract(); - + if (!underWater && filePath.includes('枫丹水下')) { + await pathingScript.runFile("assets/A00-塞洛海原(学习螃蟹技能).json"); + underWater = true; + } + if (underWater && !filePath.includes('枫丹水下')) { + underWater = false; + } try { await pathingScript.runFile(filePath); } catch (e) { @@ -1139,7 +1116,7 @@ let checkInterval = +settings.checkInterval || 50; firstCook = false; await ingredientProcessing(); lastCookTime = new Date(); - lastMapName = "Teyvat"; + underWater = false; } if (settings.setTimeMode && settings.setTimeMode != "ä¸è°ƒèŠ‚æ—¶é—´" && (((timeNow - lastsettimeTime) > settimeInterval) || firstsettime)) { @@ -1178,29 +1155,17 @@ let checkInterval = +settings.checkInterval || 50; /* ======================================= */ state.running = true; - const raw = file.readTextSync(filePath); - const json = JSON.parse(raw); - const mapName = (json.info?.map_name && json.info.map_name.trim()) ? json.info.map_name : 'Teyvat'; - if (filePath.includes('枫丹水下')) { - log.info("当å‰è·¯çº¿ä¸ºæ°´ä¸‹è·¯çº¿ï¼Œæ£€æŸ¥èžƒèŸ¹æŠ€èƒ½"); - let skillRes = await findAndClick("assets/螃蟹技能图标.png", false); - if (!skillRes || lastMapName != mapName) { - log.info("识别到没有螃蟹技能或上一æ¡è·¯çº¿å¤„于其他地图,å‰å¾€èŽ·å–螃蟹技能"); - - if (mapName === "SeaOfBygoneEras") { - await pathingScript.runFile("assets/学习螃蟹技能2.json"); - } - else { - "assets/学习螃蟹技能1.json"; - } - } - } - lastMapName = mapName; const pickupTask = recognizeAndInteract(); - log.info(`当å‰è¿›åº¦ï¼šæ‰§è¡Œè·¯çº¿ ${fileName},路径组${i} ${folder} 第 ${groupFiles.indexOf(filePath) + 1}/${groupFiles.length} 个`); + log.info(`当å‰è¿›åº¦ï¼šè·¯å¾„组${i} ${folder} ${fileName} 为第 ${groupFiles.indexOf(filePath) + 1}/${groupFiles.length} 个`); log.info(`当å‰è·¯çº¿åˆ†å‡æ•ˆçŽ‡ä¸º ${(filePath._efficiency ?? 0).toFixed(2)}`); - + if (!underWater && filePath.fullPath.includes('枫丹水下')) { + await pathingScript.runFile("assets/A00-塞洛海原(学习螃蟹技能).json"); + underWater = true; + } + if (underWater && !filePath.fullPath.includes('枫丹水下')) { + underWater = false; + } try { state.runPickupLog = []; // æ–°è·¯çº¿å¼€å§‹å‰æ¸…空 await pathingScript.runFile(filePath.fullPath); @@ -1832,7 +1797,7 @@ async function isTimeRestricted(timeRule, threshold = 5) { /** * 食æåŠ å·¥ä¸»å‡½æ•°ï¼Œç”¨äºŽè‡ªåŠ¨å‰å¾€æŒ‡å®šåœ°ç‚¹è¿›è¡Œé£Ÿæçš„加工 * -* è¯¥å‡½æ•°ä¼šæ ¹æ® Foods 数组中的食æåç§°ï¼Œä¾æ¬¡æŸ¥æ‰¾å¹¶åˆ¶ä½œå¯¹åº”的料食æ +* è¯¥å‡½æ•°ä¼šæ ¹æ® Foods å’Œ foodCount 数组中的食æå称和数é‡ï¼Œä¾æ¬¡æŸ¥æ‰¾å¹¶åˆ¶ä½œå¯¹åº”的料食æ * 支æŒè°ƒå‘³å“类食æï¼ˆç›´æŽ¥åœ¨â€œé£ŸæåŠ å·¥â€ç•Œé¢æŸ¥æ‰¾ï¼‰ * * @returns {Promise} 无返回值,执行完所有加工æµç¨‹åŽé€€å‡º @@ -1844,9 +1809,11 @@ async function ingredientProcessing() { "奶酪", "培根", "香肠" ]; if (Foods.length == 0) { log.error("未选择è¦åŠ å·¥çš„é£Ÿæ"); return; } - const taskList = Foods.map((name) => `${name}`).join(","); - const tasks = Foods.map((name) => ({ + if (Foods.length != foodCount.length) { log.error("请检查食æä¸Žå¯¹åº”çš„æ•°é‡æ˜¯å¦ä¸€è‡´ï¼"); return; } + const taskList = Foods.map((name, i) => `${name}*${foodCount[i]}`).join(","); + const tasks = Foods.map((name, idx) => ({ name, + count: Number(foodCount[idx]) || 0, done: false })); log.info(`本次加工食æï¼š${taskList}`); @@ -1922,6 +1889,7 @@ async function ingredientProcessing() { await sleep(100); } Foods.splice(i, 1); + foodCount.splice(i, 1); return false; } @@ -1930,9 +1898,9 @@ async function ingredientProcessing() { await findPNG("选择加工数é‡"); click(960, 460); await sleep(800); - inputText(String(99)); + inputText(String(tasks[i].count)); - log.info(`å°è¯•制作${tasks[i].name} 99个`); + log.info(`å°è¯•制作${tasks[i].name} ${tasks[i].count}个`); await clickPNG("确认加工"); await sleep(500); @@ -1949,6 +1917,7 @@ async function ingredientProcessing() { await sleep(100); } Foods.splice(i, 1); + foodCount.splice(i, 1); return false; } @@ -1985,7 +1954,7 @@ async function ingredientProcessing() { } } - const remain1 = tasks.filter(t => !t.done).map(t => `${t.name}`).join(",") || "æ— "; + const remain1 = tasks.filter(t => !t.done).map(t => `${t.name}*${t.count}`).join(",") || "æ— "; log.info(`剩余待加工食æï¼š${remain1}`); if (remain1 === "æ— ") { @@ -2011,7 +1980,7 @@ async function ingredientProcessing() { for (const item of foodItems) { click(item.x, item.y); await sleep(1 * checkInterval); - click(item.x, item.y); await sleep(3 * checkInterval); + click(item.x, item.y); await sleep(6 * checkInterval); for (let round = 0; round < 5; round++) { const rg = captureGameRegion(); @@ -2053,7 +2022,7 @@ async function ingredientProcessing() { } } - const remain = tasks.filter(t => !t.done).map(t => `${t.name}`).join(",") || "æ— "; + const remain = tasks.filter(t => !t.done).map(t => `${t.name}*${t.count}`).join(",") || "æ— "; log.info(`剩余待加工食æï¼š${remain}`); @@ -2106,7 +2075,7 @@ async function clickPNG(png, maxAttempts = 20) { const pngRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync(`assets/RecognitionObject/${png}.png`)); pngRo.Threshold = 0.95; pngRo.InitTemplate(); - return await findAndClick(pngRo, true, maxAttempts * checkInterval, checkInterval); + return await findAndClick(pngRo, true, maxAttempts); } async function findPNG(png, maxAttempts = 20) { @@ -2114,75 +2083,19 @@ async function findPNG(png, maxAttempts = 20) { const pngRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync(`assets/RecognitionObject/${png}.png`)); pngRo.Threshold = 0.95; pngRo.InitTemplate(); - return await findAndClick(pngRo, false, maxAttempts * checkInterval, checkInterval); + return await findAndClick(pngRo, false, maxAttempts); } -/** - * 通用找图/找ROå¹¶å¯é€‰ç‚¹å‡»ï¼ˆæ”¯æŒå•图片文件路径ã€å•ROã€å›¾ç‰‡æ–‡ä»¶è·¯å¾„数组ã€RO数组) - * @param {string|string[]|RecognitionObject|RecognitionObject[]} target - * @param {boolean} [doClick=true] 是å¦ç‚¹å‡» - * @param {number} [timeout=3000] 识别时间上é™ï¼ˆms) - * @param {number} [interval=50] 识别间隔(ms) - * @param {number} [retType=0] 0-返回布尔;1-返回 Region 结果 - * @param {number} [preClickDelay=50] 点击å‰ç­‰å¾… - * @param {number} [postClickDelay=50] 点击åŽç­‰å¾… - * @returns {boolean|Region} æ ¹æ® retType è¿”å›žæ˜¯å¦æˆåŠŸæˆ–æœ€ç»ˆ Region - */ -async function findAndClick(target, - doClick = true, - timeout = 3000, - interval = 50, - retType = 0, - preClickDelay = 50, - postClickDelay = 50) { - try { - // 1. ç»Ÿä¸€è½¬æˆ RecognitionObject 数组 - let ros = []; - if (Array.isArray(target)) { - ros = target.map(t => - (typeof t === 'string') - ? RecognitionObject.TemplateMatch(file.ReadImageMatSync(t)) - : t - ); - } else { - ros = [(typeof target === 'string') - ? RecognitionObject.TemplateMatch(file.ReadImageMatSync(target)) - : target]; - } - - const start = Date.now(); - let found = null; - - while (Date.now() - start <= timeout) { - const gameRegion = captureGameRegion(); - try { - // 便¬¡å°è¯•æ¯ä¸€ä¸ª ro - for (const ro of ros) { - const res = gameRegion.find(ro); - if (!res.isEmpty()) { // 找到 - found = res; - if (doClick) { - await sleep(preClickDelay); - res.click(); - await sleep(postClickDelay); - } - break; // æˆåŠŸå³è·³å‡º for - } - } - if (found) break; // æˆåŠŸå³è·³å‡º while - } finally { - gameRegion.dispose(); - } - await sleep(interval); // 没找到时等待 - } - - // 3. 按需返回 - return retType === 0 ? !!found : (found || null); - - } catch (error) { - log.error(`执行通用识图时出现错误:${error.message}`); - return retType === 0 ? false : null; +async function findAndClick(target, doClick = true, maxAttempts = 60) { + for (let i = 0; i < maxAttempts; i++) { + const rg = captureGameRegion(); + try { + const res = rg.find(target); + if (res.isExist()) { await sleep(checkInterval * 2 + 50); if (doClick) { res.click(); } await sleep(50); return true; } + } finally { rg.dispose(); } + if (i < maxAttempts - 1) await sleep(checkInterval); } + return false; } /** @@ -2215,7 +2128,6 @@ function isArrivedAtEndPoint(fullPath) { if (endX === 0 && endY === 0) return false; // 没找到有效点 /* 2. å–当å‰äººç‰©åæ ‡ */ - const mapName = (json.info?.map_name && json.info.map_name.trim()) ? json.info.map_name : 'Teyvat'; const pos = genshin.getPositionFromMap(mapName, 3000); const curX = pos.X; diff --git a/repo/js/采集cd管ç†/manifest.json b/repo/js/采集cd管ç†/manifest.json index 3fd1d593b..9c46f7eb0 100644 --- a/repo/js/采集cd管ç†/manifest.json +++ b/repo/js/采集cd管ç†/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 1, "name": "采集cd管ç†", - "version": "2.10.0", + "version": "2.9.5", "bgi_version": "0.44.8", "description": "ä»…é¢å¯¹ä¼šæ“作文件和读readme的用户,基于文件夹æ“作自动管ç†é‡‡é›†è·¯çº¿çš„cd,会按照路径组的顺åºä¾æ¬¡è¿è¡Œï¼Œç›´åˆ°æŒ‡å®šçš„æ—¶é—´ï¼Œå¹¶ä¼šæŒ‰ç…§ç»™å®šçš„cd类型,自动跳过未刷新的路线", "saved_files": [ diff --git a/repo/js/采集cd管ç†/采集物cd类型(感谢群uæ•´ç†ï¼‰.xlsx b/repo/js/采集cd管ç†/采集物cd类型(感谢群uæ•´ç†ï¼‰.xlsx index 46ba424a0771cc882fdb546ae9c3d5243bb87948..cdea284d8e0bc9e86b7e4fa2ff3741a7c0d61211 100644 GIT binary patch literal 14060 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 literal 14557 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