From 8542f737ff77a39211c30810430b7796469738b3 Mon Sep 17 00:00:00 2001 From: this-Fish Date: Sun, 27 Jul 2025 09:22:42 +0800 Subject: [PATCH] =?UTF-8?q?JS=20:=20=E4=BD=BF=E7=94=A8=E5=8E=86=E7=BB=83?= =?UTF-8?q?=E7=82=B9=E5=AE=8C=E6=88=90=E6=AF=8F=E6=97=A5=E5=A7=94=E6=89=98?= =?UTF-8?q?=20(#1416)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RecognitionObject/Adventurer Handbook Button.png | Bin 0 -> 2120 bytes .../Assets/RecognitionObject/Co-Op Mode Button.png | Bin 0 -> 5688 bytes .../Assets/RecognitionObject/Co-Op Mode Page.png | Bin 0 -> 4630 bytes .../Assets/RecognitionObject/Configure Team Button.png | Bin 0 -> 1211 bytes .../Assets/RecognitionObject/Confirm Deploy Button.png | Bin 0 -> 2010 bytes .../RecognitionObject/Encounter Points Stage Rewards.png | Bin 0 -> 4171 bytes .../Assets/RecognitionObject/Friends Button.png | Bin 0 -> 3382 bytes .../Assets/RecognitionObject/Leave Button.png | Bin 0 -> 2090 bytes .../Assets/RecognitionObject/My Friends Page.png | Bin 0 -> 3454 bytes .../Assets/RecognitionObject/Quick Setup Button.png | Bin 0 -> 2499 bytes .../Assets/RecognitionObject/Slider Bottom.png | Bin 0 -> 307 bytes .../Assets/RecognitionObject/Slider Top.png | Bin 0 -> 517 bytes .../Assets/RecognitionObject/paimon_menu.png | Bin 0 -> 2372 bytes repo/js/使用历练点完成每日委托/README.md | 94 +++ repo/js/使用历练点完成每日委托/main.js | 610 ++++++++++++++++++ repo/js/使用历练点完成每日委托/manifest.json | 19 + repo/js/使用历练点完成每日委托/settings.json | 59 ++ 17 files changed, 782 insertions(+) create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Adventurer Handbook Button.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Co-Op Mode Button.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Co-Op Mode Page.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Configure Team Button.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Confirm Deploy Button.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Encounter Points Stage Rewards.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Friends Button.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Leave Button.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/My Friends Page.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Quick Setup Button.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Slider Bottom.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Slider Top.png create mode 100644 repo/js/使用历练点完成每日委托/Assets/RecognitionObject/paimon_menu.png create mode 100644 repo/js/使用历练点完成每日委托/README.md create mode 100644 repo/js/使用历练点完成每日委托/main.js create mode 100644 repo/js/使用历练点完成每日委托/manifest.json create mode 100644 repo/js/使用历练点完成每日委托/settings.json diff --git a/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Adventurer Handbook Button.png b/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Adventurer Handbook Button.png new file mode 100644 index 0000000000000000000000000000000000000000..0269c714db3fe019af5a80d8d928ae8828fd1c35 GIT binary patch literal 2120 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 eo^k)rh1A000000009a7bBm000XU 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 M07*qoM6N<$g6&4#5C8xG literal 0 HcmV?d00001 diff --git a/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Configure Team Button.png b/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Configure Team Button.png new file mode 100644 index 0000000000000000000000000000000000000000..e6bdd02afbf3fa48bafe5e4a6d6440dc4222d41f GIT binary patch literal 1211 zcmV;s1VsCZP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(L1W-vtK~z{ry_jum z6h#=v|Fd^3&^KCo1uaOl7DFHv@Pm;S5+ufe8d@P>RBF{i(E@^RsEHCxRf-9k7B%rD zLSl?j5=;|6nLvCY5U|01K%qb@lC-szCe*g1z1tU`XKuE)dpA(p-toI^_IYM^X8!Zc zv%51Vy4y}VnR$h<%^_G;1dapPjzCKBG%pZ@Ap&q#5W!}+Jb{kKS@6o zq^GB0*Q-^SmY1zcq8LUHqPO!bOY}`u#Zx;|9;NChS7OzQQsqSvLcrjDRx{uq5P?;1Q;3)*RItL zI$_F^MI>Ts#V|)toJRZKUCQ&L%^^4J6JcO*NLh(+`)z-9D$kELhxUE`Jr4i+yDAwQ zO<&c?^Oe2AUdLwWYcoIoTPi#81*+jE_9H7|%Yjf;x_l^}qhBIQ+{g zv|s8%L4GclFIk9Lg$44Oj-&~?>&{uIseBkk^hsb`K|Fn7dg9KvcVOnNA>`&{UiTfR zP3lHU>LWLpN8I?fO{=l2bb++FJ`*u5{P5#(oM=9S3l}?KlF!#?&zz2uc}1vrs0<;M zV_tz;LCp0=;U)fl%d)ZelY?k(X~l3jBFl7e1n16~joN2c`KC}iWfS4C4Run8D|9qi z*r5Y&D=!64S;Kpqm33om-T0`oqD*+oT)g%A2d-lM^Sh<5!)?2sRt0m5Z&y zzVc!S+QDig`3MI6D?@I3J*^tG(2R@Tj#fGGa&yLK8XYI&cTGP_ zf2^>8kLtIM4C>^mvv~Kzucgf_U%Cj}YE~=H19flEc3SlPd(p9J@y&lU$a0mK&`50Bu0*#f$%doEYwR=<6F*oX9Qk()=;-fh Z$N#3c*}3v~00009a7bBm000&x z000&x0ZCFM@Bjb+5p+dZbW?9;ba!ELWdKudX>eh4bY)!^&fNe22X9G4K~z|Uy_ow` z8`l-bzjs$pB!L7%LOhJIK)h^h2MWeE7#y3iYcd%-V~=Orv`N!W|D^uVNyqgx6Wh}y zO@`F2362Xf2FDM~8*IRU5C{pO7f4!Z_x1-V!UA-metm!1IeX68&)z-v-m{kkR_9{j zh$x9*ic%WCh(rX(l5=*}zT#PRuXsYCa4Z(%d0wSb84Ov*979n-enEboR;!8o6GGUT zlaj@Rh(vebh-=>N`1#S(fx!{4&+qg3L*Z~J6cNRkC`ug1$#`C=RH!r5nL4dLE3>Mi ztiJAWS!u~GIRFs1V*HQN)3DIgb*#>=i*}gMv zt^2FWlXf=BIMQeK2ZFb|{@dBrv$*ICMOaruZ}WrcYJx{ z+xz_w*VaS-FT}bTi8FgWtYIpUg~vv>UahiA`cwtn{%lu#(# zbML{A-S^%SM_fZAr1#?1@^TluD8`H8b0B^9MnQvU3qalyaE#FzBFGQl3Lh zL?jB|8gY5C9)TpWDm@m9-GA_?yv%yC^_W5~PtNd-vJHj8ckce=Sah;Ecn+lnsIj8X zhO#2$W)YQz3-?ovQOe#rO^k94r4mUy(s*n?t0p&#~Fyf#UB^F}R>= z8w{>J8W^fMP?={orJ$^@hwk>=XN(6=@Zs?|2f|TwK19zDrWW8_r4a#g88v2+5(|!0 z;&d&H2An@ZM2f%siwd!{IR~DOEVa4JrrdbBBv9t<4yV(_Ksji|#TJsS1Awcy(b0biqv~=3sZ>({nIp;d~Prn!=qYX+M%@)jMxrtSm28DwRl1=E31H28T+4 z3(cg!2tx2xH@$Wz!Ld~?A3FMQy^97z$kgBu=SYTvrD@J0p^z>NdREdvD`x8NOEi3rb&2N@oEq$ zXxas0+b~Hb2idaivz74HXfzBbw;%E4p*U~1d2XAZrNJ6jKh95E5y zgDg)|ZjM4OPeHLUe^|y|U~~r2C@cp2=^XSr)>5I%z(>s}v4A6(oJarI_KQ$lMTPk) zl`;jTW`89EB`o0EUM#JGQhd~m%O_D_+}<-+j}MNLOD)i<5e(tV?H#%W>%P6340Zfk zmZUSAa~a#v<4JtegHO*OQ-j~N!IF)hK};>c=|x0lO#una}B7oVQdzQ9)tua<;c|& zTOkT_sayvCI&Svi@3*KZu}}`yROOj-H+OL|8Grm}eP>rUqh$$%@I@DvylAV%dp1~d zV95ber<4%I;1s$ZW5?D>tJTyUt}z%kWZNt zJ=6*aF|7D8?MOD1lwBeK_E(kL%JwCv4_;nv)oRtrmgA2HhS}|{C}Gl$Stt5OVaSA9 zL1jEd31I==V6x5Lfg?Lxf3%^_VllsL+!z&}=dC5h?PpJ2`Ns`*(@!Z43z%ER-16o- zJ0Qd#DU&tU*Vfh6B)i(UQnm@TTGe!{zP0(-ZZf{I4pdj1Io)E+$=+m7K_P^gO}Xu7 z-#=7S{gyb2_Y}7O`czqI$=2m@^X5qiv6b!n&E@kIHtQSb$TOQRU1&dcq;6Ng?*KTC zJ5*Es=RbaYV1MQAPtw>TgcRiGefG)awo@mzsq(#BIJ^*8)yw0&; zjzMp;SIUPx1A|z zQGBjhQH)BlU;Zc41iphKWa3?ZL8-Lkz`Rb`?$VPRnF)vz;dmLx%LtdYM<=hU-9vM| sgU;b;zbFx2Cg*q=Aq0d~G;dG;1IL+=p{x6i*Z=?k07*qoM6N<$g64q1L;wH) literal 0 HcmV?d00001 diff --git a/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Encounter Points Stage Rewards.png b/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Encounter Points Stage Rewards.png new file mode 100644 index 0000000000000000000000000000000000000000..6d32075d55b481aada13b3804b28287300b5d221 GIT binary patch literal 4171 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

=WS zia2sTx-TGvG7E{VEs4*Xs!CHYevjDqjXd2A;?9E!6M|Cz zWoh_2Vhk}RGZ}EQB>dn+3&(K?A)KCWXsEBvF`E*Zik)9Eznl3S(!IaP6P+N53G4*% z{y)T?uOZ@R?m21jN+O5FMFq`G^-2o?xnE4VJ>G9FU%PR;<1N2wQW3`Z%Rl_)Tzf0e z^Pn6xO<9>O&5fnSg?rsfK?qg9U(wQhP+>#tpj}yEJ$>r9A;l8(rZQ(|{p!5!6*JrjVtNqLejSY2s5rJNxcB=K*u_K3c zI_=i+ZQGr-tmML{=Kx?}a5NMSzbkfny5Z!p!ylhJW6sXnaf$r-Pk)3h=c=r%42va) zG1=jCzt&M8t}w=VxjF4;PM<%eUmlC^3Wh-3^!9)BT|DZb$dr^MyCgMxN&@%dMx| zjyD~wGaB{ryBp4h$9PMHiortR@Z{8NPwznAz{rZz{aRo`NKv8X@S%q0#sg)gMI6UL zqTbH@^oUl=;{-L*?eRXhzZe`I8yOpaHfP@v;x&c@5j-yE;0D!f%b*IbyV#zUYU!0q_udKM-9&a!d5=DvQR9dYj*PLz6Hd(EuMFkd1 zUT(H2Gc8S*92~{ZP7KMi%yCqs;gt?pTrtKZNeYF+!BAKb1VPx8BuQqBU`z<+IF92~ zTCG;2<}t>pS5LIO_$;u#8tbd7DEWW(bkXLfu)gNHq)$ literal 0 HcmV?d00001 diff --git a/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/My Friends Page.png b/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/My Friends Page.png new file mode 100644 index 0000000000000000000000000000000000000000..ed39e77706e069f5ba8b6e8c2ac5c3259f991c75 GIT binary patch literal 3454 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 N002ovPDHLkV1idH(&YdE literal 0 HcmV?d00001 diff --git a/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Slider Bottom.png b/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Slider Bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..4af2e3cb2cbfae1e2b64dab230b8f1753fab2fbd GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^>_9BS!3HE91=ODbDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9E$svykh8Km+7D0srt#W6%9c zvKIZZNAqcu;7g^`mj4Vw7JX~8?b3Hkc5&@bE#7s}sJG)xz|Grt{^-RRa&25V;gP=9Lq-J>PB=pSVaTU~+}n;T;R@gFbLD zu^gPtuOD%;``MHqz7E%YzqDzwJ(ko97giLEGdUCS=E|v1J)oZ$JYD@<);T3K0RVgU Bbaem# literal 0 HcmV?d00001 diff --git a/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Slider Top.png b/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/Slider Top.png new file mode 100644 index 0000000000000000000000000000000000000000..7334e462d3aaf4a0dcf36f6b50a4da22abfb8fc4 GIT binary patch literal 517 zcmV+g0{Z=lP)#2meK|Hies_SI zLX+l+xgzHDUlXw%yshMd@ZuNJ^SYw00000NkvXX Hu0mjf5ToL$ literal 0 HcmV?d00001 diff --git a/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/paimon_menu.png b/repo/js/使用历练点完成每日委托/Assets/RecognitionObject/paimon_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..c424325b17a4956f7802352e7609bfcff2721afa GIT binary patch literal 2372 zcmV-K3A^@*P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2-!(QK~z{rt(SRF zR96@7{OrIrs3OB6ST- zP@DTTKA&cd-_x`4ifbQ;v^!UEWYd=r=ft5o>jaWdZ$#*F1Dp=`Lw#i>UdiRG$$NWQ zlS!qJbxWbLunJ)v#?D#+4Ko*L&U1#Kww~+hpIblw8}X6L@I3V>qTOd=&jwpmmE@tP zN6PlU71k%NS0-b{sVwYPN+w3?*E%@$g9jWc1ShNWOUqVas)}Z=D&g zor^(ddmGo&$7^Bli&I(H`jA5yHPeBFc|eOy)65lLn65z7v3Rt#cd}#T%%3oS_UaWY zP8XsoYg`}%_!_r5rlgw?!gfco5(B+3n1mL!af6==BzpXu8{&uT3qW6mS~El zkk8E=nsSFID@2ckOt;?zeTP8kFWU_L<(r{v?++`_P}J1FJ zrGzD=Wn-M71IC)Hz~luUn6cEC1O>prF&HzQw!v`aH!xiFElga#ftK|K6j!LeQ~fcd zu+pkpT)duyod@HvcufdKo4P~8+8;*FJ6JPb9Y(ejI`+W`*mDLlI_jSS1!4JxCG0UD zjGX)uI0x;=R2zR7yM)5TEgZ8vA~DL$8>v}OxltdFg0S1arJ|~;ihCNEj?QkRP&zVj z41%F+IE+Xf^I2P(TeuM)kAkquN&(Ks|A_jR&0Ndi6qZ$E%2INE=P)evj^tWD4GO}l zs|660<>Kz0L`bDQTlvJ_ zd*fhAC$o!g1)mB9VKP}S5-webP*{r6(tI2{eg@gOg$bAczCL=vv$<53XC zkeQu}q9VFy$(tdpeg^M=ojCvFHMF#d*ud8xObT(KlbXT*a1qj;9&~keb5F|ifiUJp zNhv9icK(5G$#b-d>yYrnMFa##prLW#L-Bw@#s88sxTm*NR@Wfn@W}xeH4txvNhA_- zcq#jW+`Iw^Y1d>OFVNK}fV`&#XU@hWEkpUF{2C@MnmesS7C)bBQI0pl_)qhZ`REaH zbDpBOT!@R8ZXho^3q6ur^t9F?BQ1rEbE?8D^!SPMuy^t0T9ku#bS|6c^{Bu}MgWpb_a$GGT7-OE0cORWTp;=~E8}W|#CW zR${z~Eqp`wL7jee<~rcixt~x{E}+8X!^F>HL`^VR!V1gg=di+jLJq*rB>)Q@{g7Lj zN99xl$_gIiNnRc|O*L9+cNVVl#e~`R*dBe9y@5R87vNS>8Xjb1<5}5<`I$FqjvfA{ zJ{#fD2dJ13WAB0QFoW(@F(=Q`N}ACvu7 z94CBkV1wTuWpOIxN6it998EI_F8V*b>3*K`Kbcg3(3`{ZXAAT4bR7q)3 zi8tS63pzXdYS4k;sTtc~=+|VZ=M}SYR<;_3-Qba3-?kI z@t^~J`z(Eg++aT0lFm2#AOF&x$eXiTPDp7 z;rzyS?wDrzH8d>N!Q5>Jw(UO$fv{#+$=c8<2qR6M$*06z3(!p0ZLKAKm_<8f>KcaW zD?;EHxOd1!^DJDqu(_;R)XLV2!$I8I4&R6q7;oW)^}CL8txPKF!PbNS!W0rV$88s8 zyGKB6kw0#xq;n$%hBwJN2#F7dP7#9<6del#`#`8ISPy>D+c2;{HUVl@8(`$M2PW>3 z7-Q~*9Wn7r`7O`VI~H~U2hk!@J|r+OaV_~#E-csV!lVV>RK9J;^`s2e1q2j4nK*SX zGZ)dZKfxvV0K9gdz}34C(5Yl$!kg!F3Wgp>VC)%%!qQ5vd2ljv^5GwL7@MQMN9={` zxc~SmS}1mjByBi&DgoNon-Ca%l1BE@0_1GH$rL%t!bs输入"0"为每天执行 | "0" | "1,3,5"(周一、三、五执行) | +|直接使用历练点完成每日委托
(全角色满好感时推荐启用) | 已勾选 | 勾选后不获取双倍好感 | + +### 尘歌壶双倍好感设置 +|说明 | 示例 | +|------|------| +| (选填)指定好友名称 | "旅行者123" | +| (选填)申请好友数(≤7) | "5" | +|让1号位角色离队 | 勾选 | +| 让2号位角色离队 | 勾选 | +| 让3号位角色离队 | 勾选 | +| 让4号位角色离队 | 勾选 | + + +## 使用建议 + +### 双倍好感度获取流程 +0. 先自行消耗120体力 +1. 自动进入好友尘歌壶 +2. 让指定位置角色离队(确保队伍≤2人) +3. 打开冒险之证领取历练点奖励 +4. 返回大世界 + +### 角色离队策略 +- 当需要获取双倍好感时,建议保留2个需要提升好感的角色 +- 勾选需要离队的角色位置(1号位为最左侧角色) +- **注意**:不能同时让所有角色离队(至少保留1个角色) + +### 时间设置技巧 +- 使用"0"设置为每天执行 +- 使用"1,3,5"设置为周一、三、五执行 +- 脚本会自动处理凌晨时段(00:00-04:00视为前一天) + +## 常见问题 + +**Q:为什么没有进入好友尘歌壶?** +A:请检查: +1. 是否已禁用双倍好感 (**直接使用历练点完成每日委托** 被勾选) +2. 好友名称是否正确(区分大小写和空格) +3. 好友尘歌壶权限是否设置为"允许直接加入" + +**Q:角色没有离队怎么办?** +A:请检查: +1. 是否正确勾选了角色位置 +2. 游戏是否处于可切换队伍状态 + + +**Q:如何知道今天是否会执行脚本?** +A:脚本日志会显示: +- "今天是星期X,开始使用历练点完成每日委托" +- 或"今天是星期X,不使用历练点" + +**Q:为什么切换队伍失败?** +A:可能因为: +1. 处于联机模式 +2. 队伍名称设置错误 + +## 注意事项 + +1. 游戏需运行在**1920×1080分辨率**下 +2. 进入好友尘歌壶需要**网络连接良好** +3. 双倍好感度需要队伍中**不超过2个角色** +4. 若使用指定好友功能,请确保**好友名称完全匹配** diff --git a/repo/js/使用历练点完成每日委托/main.js b/repo/js/使用历练点完成每日委托/main.js new file mode 100644 index 00000000..7108462f --- /dev/null +++ b/repo/js/使用历练点完成每日委托/main.js @@ -0,0 +1,610 @@ +// Encounter Points +const AdventurerHandbookButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Adventurer Handbook Button.png"), 100, 300, 700, 700); +const EncounterPointsStageRewardsRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Encounter Points Stage Rewards.png"), 1500, 700, 100, 100); +// MainUi +const paimonMenuRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/paimon_menu.png"), 0, 0, 100, 100); +// Paimon Menu +const FriendsButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Friends Button.png"), 0, 300, 700, 780); +const CoOpModeButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Co-Op Mode Button.png"), 100, 300, 700, 780); +// Co-Op Mode Page +const CoOpModeRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Co-Op Mode Page.png"), 0, 0, 200, 100); +const MyFriendsRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/My Friends Page.png"), 0, 0, 200, 100); +const LeaveButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Leave Button.png"), 1400, 900, 300, 180); +// Party Setup +const QuickSetupButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Quick Setup Button.png"), 1100, 900, 400, 180); +const ConfigureTeamButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Configure Team Button.png"), 0, 900, 200, 180); +const ConfirmDeployButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Confirm Deploy Button.png"), 0, 900, 1920, 180); +// Slider +const LeftSliderTopRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Slider Top.png"), 650, 50, 100, 100); +const LeftSliderBottomRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Slider Bottom.png"), 650, 100, 100, 900); +const MiddleSliderTopRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Slider Top.png"), 1250, 50, 100, 200); +const MiddleSliderBottomRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Slider Bottom.png"), 1250, 100, 100, 900); +const RightSliderTopRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Slider Top.png"), 1750, 100, 100, 100); +const RightSliderBottomRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/Slider Bottom.png"), 1750, 100, 100, 900); + +// 取得需要离队角色資訊 +const removedCharacters1 = settings.removedCharacters1 || false; +const removedCharacters2 = settings.removedCharacters2 || false; +const removedCharacters3 = settings.removedCharacters3 || false; +const removedCharacters4 = settings.removedCharacters4 || false; +// 读取配置文件 +const settingsWeek = settings.week; +const settingsNotDoublePoints = settings.notDoublePoints || false; +const settingsAppointFriendName = settings.appointFriendName ? settings.appointFriendName.trim() : ""; + +/** + * @returns {Promise} + */ +(async function () { + let shouldRun = false; // 标志变量 + let dayOfWeek = -1; // 星期变量 + + // 判断设置合法性 + var items = []; + + // 判定 每天执行 / 星期几、是否使用历练点领奖 + if (settingsWeek === "0") { + shouldRun = true; + log.info("设置每天执行,开始使用历练点完成每日委托"); + } else if (settingsWeek) { + items = validateAndStoreNumbers(settingsWeek); + if (!items) { + log.error("星期设置格式错误,请使用类似'1,3,5,7'的格式"); + return; + } + + // 获取调整后的星期几(考虑00:00~04:00视为前一天) + dayOfWeek = getAdjustedDayOfWeek(); + + // 检查当前星期是否在用户设置的范围内 + if (items.includes(dayOfWeek)) { + shouldRun = true; + log.info(`今天是星期 ${dayOfWeek},开始使用历练点完成每日委托`); + } else { + log.info(`今天是星期 ${dayOfWeek},不使用历练点`); + return; + } + } else { + log.error("还没有设置需要在星期几使用历练点完成每日委托呢"); + log.error("请在调试器里添加本脚本->右键JS脚本->修改JS脚本自定义配置."); + return; + } + + if (shouldRun) { + try { + // 切换队伍 + if (!!settings.partyName) { + try { + log.info("正在尝试切换至" + settings.partyName); + if (!settings.disableGoStatue) { + log.info("正在传送回七天神像切换队伍"); + await genshin.TpToStatueOfTheSeven(); + await SwitchParty(settings.partyName); + } else { + await genshin.returnMainUi(); + await SwitchParty(settings.partyName); + } + } catch { + log.warn("\n\n队伍切换失败,可能是:\n1.处于联机模式 \n2.无法正确识别\n3.JS自定义配置中的队伍名称设置错误,请检查!\n"); + await genshin.returnMainUi(); + } + } else { + log.warn("没有设置切换队伍,使用当前队伍使用历练點"); + await genshin.returnMainUi(); + } + + // 区分双倍好感 + if (settingsNotDoublePoints == true) { + log.info(`不使用好友尘歌壶历练点领取双倍好感,直接使用历练点`); + await claimEncounterPointsRewards(); + } else if (settingsNotDoublePoints == false) { + // 进尘歌壶领历练点奖励后返回大世界 + let request_times = settings.request_times * 2; + let total_clicks = request_times ? request_times : 14; + // 指定好友名称 + if (settingsAppointFriendName !== "") { + let enterStatus = await AppointFriendRequestToVisitSereniteaPot(); + if (enterStatus) { + await sleep(2000); + log.info("正在让指定位置角色离队"); + await removeSpecifiedRole(); + await claimEncounterPointsRewards(); + await ReturnToBigWorld(); + } else { + log.warn("好友列表未能识别出设置的好友名称"); + log.info("尝试依次进入"); + await pageTop(RightSliderTopRo); + let enterStatus = await RequestToVisitSereniteaPot(total_clicks); + if (enterStatus) { + await sleep(2000); + log.info("正在让指定位置角色离队"); + await removeSpecifiedRole(); + await claimEncounterPointsRewards(); + await ReturnToBigWorld(); + } + } + } else if (settingsAppointFriendName == "") { + log.warn("未设置指定好友,执行依次进入"); + let enterStatus = await RequestToVisitSereniteaPot(total_clicks); + if (enterStatus) { + await sleep(2000); + log.info("正在让指定位置角色离队"); + await removeSpecifiedRole(); + await claimEncounterPointsRewards(); + await ReturnToBigWorld(); + } + } else { + log.warn("出现异常,请检查自定义参数和日志,也可能是没有好友开放尘歌壶"); + } + } + + } catch (e) { + log.error("失败,请检查设置"); + return; + } + } + + + // 以下为可供调用的函数部分 + + // 切换队伍 + async function SwitchParty(partyName) { + let ConfigureStatue = false; + keyPress("VK_L"); + + for (let i = 0; i < 10; i++) { + let QuickSetupButton = captureGameRegion().find(QuickSetupButtonRo); + if (QuickSetupButton.isExist()) { + log.info("已进入队伍配置页面"); + break; + } else { + await sleep(1000); + } + } + // 识别当前队伍 + let captureRegion = captureGameRegion(); + let resList = captureRegion.findMulti(RecognitionObject.ocr(100, 900, 300, 180)); + for (let i = 0; i < resList.count; i++) { + let res = resList[i]; + if (settings.enableDebug) { + log.info("当前队伍名称位置:({x},{y},{w},{h}), 识别结果:{text}", res.x, res.y, res.Width, res.Height, res.text); + } + if (res.text.includes(partyName)) { + log.info("当前队伍即为目标队伍,无需切换"); + keyPress("VK_ESCAPE"); + await sleep(500); + } else { + await sleep(1000); + let ConfigureTeamButton = captureGameRegion().find(ConfigureTeamButtonRo); + if (ConfigureTeamButton.isExist()) { + log.info("识别到配置队伍按钮"); + ConfigureTeamButton.click(); + await sleep(500); + await pageTop(LeftSliderTopRo); + + for (let p = 0; p < 4; p++) { + // 识别当前页 + let captureRegion = captureGameRegion(); + let resList = captureRegion.findMulti(RecognitionObject.ocr(0, 100, 400, 900)); + for (let i = 0; i < resList.count; i++) { + let res = resList[i]; + if (settings.enableDebug) { + log.info("文本位置:({x},{y},{w},{h}), 识别内容:{text}", res.x, res.y, res.Width, res.Height, res.text); + } + if (res.text.includes(partyName)) { + if (settings.enableDebug) { + log.info("目标队伍位置:({x},{y},{w},{h}), 识别结果:{text}", res.x, res.y, res.Width, res.Height, res.text); + } + click(res.x, Math.ceil(res.y + res.Height * 1.35)); + + // 找到目标队伍,点击确定、部署 + await sleep(1500); + let ConfirmButton = captureGameRegion().find(ConfirmDeployButtonRo); + if (ConfirmButton.isExist()) { + if (settings.enableDebug) { + log.info("识别到确定按钮:({x},{y},{w},{h})", ConfirmButton.x, ConfirmButton.y, ConfirmButton.Width, ConfirmButton.Height); + } + ConfirmButton.click(); + } + await sleep(1500); + let DeployButton = captureGameRegion().find(ConfirmDeployButtonRo); + if (DeployButton.isExist()) { + if (settings.enableDebug) { + log.info("识别到部署按钮:({x},{y},{w},{h})", DeployButton.x, DeployButton.y, DeployButton.Width, DeployButton.Height); + } + DeployButton.click(); + ConfigureStatue = true; + break; + } + } + } + if (ConfigureStatue) { + await genshin.returnMainUi(); + break; + } else { + await pageDown(LeftSliderBottomRo); + } + } + if (!ConfigureStatue) { + log.warn("\n\n队伍切换失败,可能是:\n1.处于联机模式 \n2.无法正确识别\n3.JS自定义配置中的队伍名称设置错误,请检查!\n"); + await genshin.returnMainUi(); + break; + } + } + } + } + } + + // 模板匹配&OCR进指定好友尘歌壶 + async function AppointFriendRequestToVisitSereniteaPot() { + let enterStatus = false; + await sleep(2000); + keyPress("VK_ESCAPE"); + await sleep(2000); + + let FriendsBotton = captureGameRegion().find(FriendsButtonRo); + if (FriendsBotton.isExist()) { + log.info("识别到好友按钮"); + FriendsBotton.click(); + await sleep(2000); + } else { + log.warn("未识别到按钮,使用坐标点击"); + click(680, 550); + await sleep(2000); + } + + for (let p = 0; p < 5; p++) { + // 点击好友头像 + let captureRegion = captureGameRegion(); + let resList = captureRegion.findMulti(RecognitionObject.ocr(250, 120, 500, 840)); + for (let i = 0; i < resList.count; i++) { + let res = resList[i]; + if (res.text.includes(settingsAppointFriendName)) { + if (settings.enableDebug) { + log.info("指定好友名字位置:({x},{y},{w},{h}), 识别内容:{text}", res.x, res.y, res.Width, res.Height, res.text); + } + click(res.x - 100, res.y + 50); + await sleep(1000); + + // 申请造访尘歌壶 + let captureRegion = captureGameRegion(); + let resList = captureRegion.findMulti(RecognitionObject.ocr(250, 220, 425, 380)); + for (let i = 0; i < resList.count; i++) { + let res = resList[i]; + if (res.text.includes("申请造访") || res.text.includes("visit Serenitea Pot") || res.text.includes("申請造訪")) { + if (settings.enableDebug) { + log.info("申请造访尘歌壶位置:({x},{y},{w},{h}), 识别内容:{text}", res.x, res.y, res.Width, res.Height, res.text); + } + res.click(); + } + } + } + } + await sleep(1000); + // 翻页继续尝试&模板匹配的方式等待加载 + let SliderBottom = captureGameRegion().find(RightSliderBottomRo); + if (SliderBottom.isExist()) { + await pageDown(RightSliderBottomRo); + } else { + for (let i = 0; i < 10; i++) { + let captureRegion = captureGameRegion(); + let paimonMenu = captureRegion.Find(paimonMenuRo); + let CoOpMode = captureRegion.Find(CoOpModeRo); + let MyFriends = captureRegion.Find(MyFriendsRo); + if (CoOpMode.isExist() || MyFriends.isExist()) { + log.info("继续申请"); + break; + } else if (paimonMenu.isEmpty() && (CoOpMode.isEmpty() || MyFriends.isEmpty())) { + log.info("正在等待加载"); + await click(960, 540); + for (let i = 0; i < 30; i++) { + let captureRegion = captureGameRegion(); + let paimonMenu = captureRegion.Find(paimonMenuRo); + if (paimonMenu.isExist()) { + break; + } + await sleep(1000); + } + } else if (paimonMenu.isExist()) { + log.info("已进入联机模式"); + enterStatus = true; + break; + } else { + log.warn("出现异常情况,请检查"); + enterStatus = false; + } + } + break; + } + } + return enterStatus; + } + + // 好友列表递增坐标进尘歌壶(仅第一页) + async function RequestToVisitSereniteaPot(total_clicks) { + let enterStatus = false; + keyPress("VK_ESCAPE"); + await sleep(2000); + let FriendsBotton = captureGameRegion().find(FriendsButtonRo); + if (FriendsBotton.isExist()) { + log.info("识别到好友按钮"); + FriendsBotton.click(); + await sleep(2000); + } else { + log.warn("未识别到按钮,使用坐标点击"); + // click(1020,840); + click(680, 550); + await sleep(2000); + } + + let y_avatar = 178; //好友头像按钮起始Y坐标 + let y_request = 245; //申请造访按钮起始Y坐标 + const x_avatar = 208; + const x_request = 460; + const avatar_increment = 125; //两按钮相隔坐标 + const request_increment = 124; //两按钮相隔坐标 + const request_fixed_value = 560; //第四~七位好友申请造访按钮Y坐标 + let request_count = 0; + + // 先申请造访首位好友的尘歌壶 + log.info("正在申请造访第 1 位好友尘歌壶"); + click(x_avatar, y_avatar); + await sleep(750); + click(x_request, y_request); + await sleep(750); + + // 依次申请造访第 2 ~ 7 位好友的尘歌壶 + for (let i = 2; i < total_clicks; i++) { + if (i % 2 === 0) { + // 偶数索引,递增 y_avatar + y_avatar += avatar_increment; + log.info(`正在申请造访第 ${i / 2 + 1} 位好友尘歌壶`); + click(x_avatar, y_avatar); + await sleep(250); + click(x_avatar, y_avatar); + await sleep(750); + } else { + // 奇数索引,递增 y_request + if (request_count < 2) { + // 前 3 位好友递增 249 + y_request += request_increment; + } else { + // 第 4 位及以后设为 1118 + y_request = request_fixed_value; + } + request_count++; + click(x_request, y_request); + await sleep(750); + } + } + // 模板匹配的方式等待加载 + log.info("等待界面响应"); + for (let i = 0; i < 30; i++) { + let captureRegion = captureGameRegion(); + let res = captureRegion.Find(paimonMenuRo); + if (res.isEmpty()) { + await click(960, 540); + } else if (res.isExist()) { + log.info("已进入好友尘歌壶"); + enterStatus = true; + break; + } else { + log.warn("出现异常情况,请检查"); + enterStatus = false; + } + await sleep(500); + } + return enterStatus; + } + + // 模板匹配领取历练点奖励 + async function claimEncounterPointsRewards() { + + await sleep(2000); + log.info("正在打开冒险之证领取历练点奖励"); + await sleep(2000); + keyPress("VK_ESCAPE"); + + await sleep(2000); + let AdventurerHandbookButton = captureGameRegion().find(AdventurerHandbookButtonRo); + if (AdventurerHandbookButton.isExist()) { + log.info("识别到冒险之证按钮"); + AdventurerHandbookButton.click(); + + await sleep(2000) + let captureRegion = captureGameRegion(); + let resList = captureRegion.findMulti(RecognitionObject.ocr(200, 300, 200, 100)); + for (let i = 0; i < resList.count; i++) { + let res = resList[i]; + if (res.text.includes("委托") || res.text.includes("委託") || res.text.includes("Commissions") || res.text.includes("委")) { + if (settings.enableDebug) { + log.info("识别到委托选项卡位置:({x},{y},{w},{h}), 识别内容:{text}", res.x, res.y, res.Width, res.Height, res.text); + } + res.click(); + } else { + log.info("未识别到识别到委托选项卡"); + } + } + + await sleep(2000) + let EncounterPointsStageRewardsButton = captureGameRegion().find(EncounterPointsStageRewardsRo); + if (EncounterPointsStageRewardsButton.isExist()) { + log.info("识别到历练点领取按钮"); + EncounterPointsStageRewardsButton.click(); + await sleep(2000); + log.info("已领取历练点奖励"); + keyPress("VK_ESCAPE"); + } else if (EncounterPointsStageRewardsButton.isEmpty()) { + log.warn("未识别到历练点领取奖励按钮,可能是已领取或未完成"); + } + await genshin.returnMainUi(); + await sleep(2000); + } + } + + // 模板匹配退出尘歌壶回到大世界 + async function ReturnToBigWorld() { + log.info("正在返回大世界"); + keyPress("VK_F2"); + await sleep(2000); + let CoOpModeButton = captureGameRegion().find(CoOpModeRo); + if (CoOpModeButton.isExist()) { + log.info("识别到多人游戏页面"); + // + let LeaveButton = captureGameRegion().find(LeaveButtonRo); + if (LeaveButton.isExist()) { + log.info("识别到离开尘歌壶按钮"); + LeaveButton.click(); + await sleep(2000); + } + // 模板匹配的方式等待加载 + log.info("等待界面响应"); + for (let i = 0; i < 10; i++) { + let captureRegion = captureGameRegion(); + let res = captureRegion.Find(paimonMenuRo); + if (res.isEmpty()) { + await click(960, 540); + } else if (res.isExist()) { + log.info("已离开尘歌壶"); + break; + } else { + log.warn("出现异常情况或超时,请检查"); + } + await sleep(2000); + } + } + } + + // 让指定位置角色离队 + async function removeSpecifiedRole() { + try { + if (removedCharacters1 || removedCharacters2 || removedCharacters3 || removedCharacters4) { + // 打開配隊介面 + keyPress("l"); + await sleep(3500); + + // 让4号位角色离队 + if (removedCharacters4) { + // 第4名角色位置 + click(1460, 600); + await sleep(750); + click(430, 1020); + await sleep(750); + log.info("4号位角色已离队"); + + } + + // 让3号位角色离队 + if (removedCharacters3) { + // 第3名角色位置 + click(1130, 600); + await sleep(750); + click(430, 1020); + await sleep(750); + log.info("3号位角色已离队"); + } + + // 让2号位角色离队 + if (removedCharacters2) { + // 第2名角色位置 + click(790, 600); + await sleep(750); + click(430, 1020); + await sleep(750); + log.info("2号位角色已离队"); + } + + // 让1号位角色离队 + if (removedCharacters1) { + if (removedCharacters4 && removedCharacters3 && removedCharacters2) { + log.warn("2,3,4号位已离队,1号位角色不能离队"); + } else { + // 第1名角色位置 + click(480, 600); + await sleep(750); + click(430, 1020); + await sleep(750); + log.info("1号位角色已离队"); + } + } + + // 返回主界面 + await genshin.returnMainUi(); + } else { + log.info("无需让角色离队"); + } + } catch (error) { + log.error("出错: {0}", error); + } + } + + // 向下一页 + async function pageDown(SliderBottomRo) { + let SliderBottom = captureGameRegion().find(SliderBottomRo); + if (SliderBottom.isExist()) { + log.info("当前页面已点击完毕,向下滑动"); + if (settings.enableDebug) { + log.info("滑块当前位置:({x},{y},{h},{w})", SliderBottom.x, SliderBottom.y, SliderBottom.Width, SliderBottom.Height); + } + click(Math.ceil(SliderBottom.x + SliderBottom.Width / 2), Math.ceil(SliderBottom.y + SliderBottom.Height * 3.5)); + await moveMouseTo(0, 0); + await sleep(100); + } + } + + // 回到页面顶部 + async function pageTop(SliderTopRo) { + let SliderTop = captureGameRegion().find(SliderTopRo); + if (SliderTop.isExist()) { + if (settings.enableDebug) { + log.info("滑条顶端位置:({x},{y},{h},{w})", SliderTop.x, SliderTop.y, SliderTop.Width, SliderTop.Height); + } + await moveMouseTo(Math.ceil(SliderTop.x + SliderTop.Width / 2), Math.ceil(SliderTop.y + SliderTop.Height * 1.5)); + leftButtonDown(); + await sleep(500); + leftButtonUp(); + await moveMouseTo(0, 0); + await sleep(1000); + } + } + + // 获取用戶定義的星期几才執行 + function validateAndStoreNumbers(input) { + // 定义存储结果的数组 + let storedNumbers = []; + + // 使用正则表达式检测是否符合期望格式 + const regex = /^(\b([1-7])\b)(,(\b([1-7])\b))*$/; + + // 检测输入字符串是否符合正则表达式 + if (regex.test(input)) { + // 将输入字符串按逗号分割成数组 + const numbers = input.split(','); + + // 将分割后的数字字符串转换为整数并存储到数组中 + storedNumbers = numbers.map(Number); + + return storedNumbers; + } else { + return false + } + } + + // 获取调整后的星期几(考虑00:00~04:00视为前一天) + function getAdjustedDayOfWeek() { + const now = new Date(); + let dayOfWeek = now.getDay(); // 0-6 (0是周日) + const hours = now.getHours(); + + // 如果时间在00:00~04:00之间,视为前一天 + if (hours < 4) { + dayOfWeek = dayOfWeek === 0 ? 6 : dayOfWeek - 1; // 前一天 + log.info(`当前时间 ${now.getHours()}:${now.getMinutes()},视为前一天(星期 ${dayOfWeek === 0 ? 7 : dayOfWeek})`); + } else { + log.info(`当前时间 ${now.getHours()}:${now.getMinutes()},使用当天(星期 ${dayOfWeek === 0 ? 7 : dayOfWeek})`); + } + + // 转换为1-7格式(7代表周日) + return dayOfWeek === 0 ? 7 : dayOfWeek; + } +})(); \ No newline at end of file diff --git a/repo/js/使用历练点完成每日委托/manifest.json b/repo/js/使用历练点完成每日委托/manifest.json new file mode 100644 index 00000000..3b7f4762 --- /dev/null +++ b/repo/js/使用历练点完成每日委托/manifest.json @@ -0,0 +1,19 @@ +{ + "manifest_version": 1, + "name": "使用历练点完成每日委托", + "version": "1", + "bgi_version": "0.44.1", + "description": "使用历练点完成每日委托:\n支持进入好友尘歌壶,使用历练点领取双倍好感(队伍中小于等于两人时,能使队伍中两人获得双倍好感)\n支持进入好友尘歌壶后,让指定位置角色离队\n能指定星期几执行,星期几不执行", + "authors": [ + { + "name": "起个名字好难的喵", + "links": "https://github.com/MisakaAldrich" + }, + { + "name": "蜜柑魚", + "links": "https://github.com/this-Fish" + } + ], + "settings_ui": "settings.json", + "main": "main.js" +} \ No newline at end of file diff --git a/repo/js/使用历练点完成每日委托/settings.json b/repo/js/使用历练点完成每日委托/settings.json new file mode 100644 index 00000000..23f14f3e --- /dev/null +++ b/repo/js/使用历练点完成每日委托/settings.json @@ -0,0 +1,59 @@ +[ + { + "name": "partyName", + "type": "input-text", + "label": "需要领取好感的队伍名称(不填写则不切换队伍)" + }, + { + "name": "disableGoStatue", + "type": "checkbox", + "label": "关闭前往七天神像" + }, + { + "name": "week", + "type": "input-text", + "label": "指定星期几执行\n(使用\",\"分割多个星期几)\n例:输入\"2,3,4,5,6,7\"\n⠀⠀⠀会在星期2,3,4,5,6,日才执行使用历练点完成每日委托\n输入\"0\"则为每天执行", + "default": "0" + }, + { + "name": "notDoublePoints", + "type": "checkbox", + "label": "直接使用历练点完成每日委托 (推荐全角色满好感时启用)\n启用后无视下方 好友尘歌壶双倍好感设置", + "default": true + }, + { + "name": "appointFriendName", + "type": "input-text", + "label": "---好友尘歌壶双倍好感设置---\n\n(选填)指定好友名称" + }, + { + "name": "request_times", + "type": "input-text", + "label": "(选填)申请好友数,需小于等于7,不支持翻页" + }, + { + "name": "removedCharacters1", + "type": "checkbox", + "label": "让1号位角色离队" + }, + { + "name": "removedCharacters2", + "type": "checkbox", + "label": "让2号位角色离队" + }, + { + "name": "removedCharacters3", + "type": "checkbox", + "label": "让3号位角色离队" + }, + { + "name": "removedCharacters4", + "type": "checkbox", + "label": "让4号位角色离队" + }, + { + "name": "enableDebug", + "type": "checkbox", + "label": "开启Debug模式(队伍识别输出所有内容)" + } +] \ No newline at end of file