From d909d2450a210585cb73d9c045b77bda2dd79aa6 Mon Sep 17 00:00:00 2001 From: LX666-666 Date: Mon, 18 Aug 2025 22:29:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=89=A7=E6=83=85=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E5=99=A8=20(#1637)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 从自动委托中分分离出来的 --- .../Data/RecognitionObject/Completed.png | Bin 0 -> 1612 bytes .../IconBigmapCommission.jpg | Bin 0 -> 610 bytes .../IconQuestionCommission.png | Bin 0 -> 1935 bytes .../RecognitionObject/IconTaskCommission.png | Bin 0 -> 1929 bytes .../Data/RecognitionObject/UnCompleted.png | Bin 0 -> 1513 bytes .../Data/RecognitionObject/paimon_menu.png | Bin 0 -> 2372 bytes .../Data/RecognitionObject/加入.png | Bin 0 -> 444 bytes .../Data/RecognitionObject/更换.png | Bin 0 -> 1160 bytes .../Data/RecognitionObject/队伍配置.png | Bin 0 -> 2645 bytes .../Data/avatar/combat_avatar.json | 1902 +++++++++++++++++ .../Data/characterimage/纳西妲01.png | Bin 0 -> 7586 bytes .../Data/commissions_data.json | 38 + .../Data/commissions_report.txt | 9 + repo/js/AAA-Auto-Story-Loader/README.md | 279 +++ repo/js/AAA-Auto-Story-Loader/main.js | 1857 ++++++++++++++++ repo/js/AAA-Auto-Story-Loader/manifest.json | 15 + .../圆滚滚的大团骚乱/晨曦酒庄/process.json | 3 + .../晨曦酒庄/圆滚滚的大团骚乱-1.json | 130 ++ .../晨曦酒庄/圆滚滚的大团骚乱-2.json | 105 + .../委托/愿风带走思念/蒙德城/process.json | 79 + .../愿风带走思念/蒙德城/到风神神像手上.json | 177 ++ .../愿风带走思念/蒙德城/愿风带走思念-1.json | 60 + .../委托/此路不通/坠星山谷/process.json | 2 + .../委托/此路不通/坠星山谷/此路不通-1.json | 104 + .../process/委托/此路不通/清泉镇/process.json | 2 + .../委托/此路不通/清泉镇/此路不通-1.json | 94 + .../委托/此路不通/苍风高地/process.json | 20 + .../此路不通/苍风高地/执行分支一米拉娜.json | 24 + .../此路不通/苍风高地/执行分支二杰克.json | 24 + .../委托/此路不通/苍风高地/此路不通-1.json | 104 + .../委托/此路不通/苍风高地/此路不通-2.json | 112 + .../委托/艾琳未来的骑士/蒙德城/process.json | 7 + .../蒙德城/艾琳,未来的骑士-1.json | 59 + .../蒙德城/艾琳,未来的骑士-2.json | 49 + .../蒙德城/艾琳,未来的骑士-3.json | 49 + .../蒙德城/艾琳,未来的骑士-4.json | 49 + .../蒙德城/艾琳,未来的骑士-5.json | 76 + .../process/委托/触不可及的恋人/风起地/1.json | 40 + .../process/委托/触不可及的恋人/风起地/2.json | 51 + .../委托/触不可及的恋人/风起地/process.json | 64 + .../触不可及的恋人/风起地/对话并关闭阅读.json | 1 + .../委托/诗歌交流/坠星山谷/process.json | 40 + .../诗歌交流/坠星山谷/诗歌交流-坠星山谷-1.json | 67 + .../诗歌交流/坠星山谷/诗歌交流-坠星山谷-2.json | 40 + .../诗歌交流/坠星山谷/诗歌交流-坠星山谷-3.json | 31 + .../委托/语言交流/坠星山谷/process.json | 7 + .../委托/语言交流/坠星山谷/语言交流-1.json | 30 + .../委托/语言交流/坠星山谷/语言交流-2.json | 30 + .../委托/语言交流/坠星山谷/语言交流-3.json | 39 + .../委托/语言交流/坠星山谷/语言交流-4.json | 21 + .../委托/语言交流/苍风高地/process.json | 9 + .../委托/语言交流/苍风高地/语言交流-1.json | 94 + .../委托/语言交流/苍风高地/语言交流-2.json | 40 + .../委托/语言交流/苍风高地/语言交流-3.json | 31 + .../委托/语言交流/苍风高地/语言交流-4.json | 22 + .../委托/语言交流/苍风高地/语言交流-5.json | 22 + .../委托/语言交流/风龙废墟/process.json | 42 + .../委托/语言交流/风龙废墟/执行战斗策略.json | 22 + .../语言交流/风龙废墟/语言交流-风龙废墟-1.json | 40 + .../语言交流/风龙废墟/语言交流-风龙废墟-2.json | 31 + .../语言交流/风龙废墟/语言交流-风龙废墟-3.json | 31 + .../语言交流/风龙废墟/语言交流-风龙废墟-4.json | 22 + .../委托/说到做到/苍风高地/process.json | 5 + .../委托/说到做到/苍风高地/说到做到-1.json | 76 + .../委托/说到做到/苍风高地/说到做到-2.json | 53 + .../委托/钥匙是易丢品/晨曦酒庄/process.json | 36 + .../晨曦酒庄/钥匙是易丢物品-晨曦酒庄-1.json | 68 + .../晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2 .json | 193 ++ .../晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2.json | 229 ++ .../委托/钥匙是易丢品/达达乌帕谷/process.json | 48 + .../达达乌帕谷/钥匙是易丢品-达达乌帕谷-1.json | 58 + .../达达乌帕谷/钥匙是易丢品-达达乌帕谷-2.json | 178 ++ .../达达乌帕谷/钥匙是易丢品-达达乌帕谷-3.json | 167 ++ .../process/委托/餐品订单/蒙德城/process.json | 59 + .../process/委托/餐品订单/蒙德城/取餐.json | 35 + .../委托/餐品订单/蒙德城/找到活跃的欧琳.json | 16 + .../委托/餐品订单/蒙德城/询问帕拉德.json | 29 + .../委托/餐品订单/蒙德城/餐品订单-1.json | 49 + .../委托/餐品订单/蒙德城/餐品订单-2.json | 96 + .../委托/餐品订单/蒙德城/餐品订单-3.json | 49 + .../委托/餐品订单/蒙德城/餐品订单-4.json | 58 + .../委托/餐品订单/蒙德城/餐品订单-5.json | 51 + .../委托/餐品订单/蒙德城/餐品订单-6.json | 40 + .../餐品订单/蒙德城/餐品订单-晨曦酒庄-1.json | 105 + .../委托/鸽子习惯一去不回/清泉镇/process.json | 40 + .../清泉镇/鸽子习惯一去不回-1.json | 71 + .../清泉镇/鸽子习惯一去不回-2.json | 81 + .../清泉镇/鸽子习惯一去不回-3.json | 96 + .../委托/鸽子鸭子小孩子/坠星山谷/process.json | 34 + .../坠星山谷/鸽子、鸭子、小孩子-坠星山谷-1.json | 40 + .../坠星山谷/鸽子、鸭子、小孩子-坠星山谷-2.json | 49 + repo/js/AAA-Auto-Story-Loader/settings.json | 21 + 92 files changed, 8426 insertions(+) create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/Completed.png create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconBigmapCommission.jpg create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconQuestionCommission.png create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconTaskCommission.png create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/UnCompleted.png create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/paimon_menu.png create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/加入.png create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/更换.png create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/队伍配置.png create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/avatar/combat_avatar.json create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/characterimage/纳西妲01.png create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/commissions_data.json create mode 100644 repo/js/AAA-Auto-Story-Loader/Data/commissions_report.txt create mode 100644 repo/js/AAA-Auto-Story-Loader/README.md create mode 100644 repo/js/AAA-Auto-Story-Loader/main.js create mode 100644 repo/js/AAA-Auto-Story-Loader/manifest.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/到风神神像手上.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/愿风带走思念-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/此路不通-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/此路不通-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支一米拉娜.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支二杰克.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-3.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-4.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-5.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/对话并关闭阅读.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-3.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-3.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-4.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-3.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-4.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-5.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/执行战斗策略.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-3.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-4.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2 .json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-3.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/取餐.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/找到活跃的欧琳.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/询问帕拉德.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-3.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-4.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-5.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-6.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-晨曦酒庄-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-3.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/process.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-1.json create mode 100644 repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-2.json create mode 100644 repo/js/AAA-Auto-Story-Loader/settings.json diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/Completed.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/Completed.png new file mode 100644 index 0000000000000000000000000000000000000000..f5786f87e69e3ba825b982185600a6921c0110ad GIT binary patch literal 1612 zcmV-S2DABzP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1>s3VK~z{r%~)Gc zTvZhQ&fJH&albW%TA>t#q-srTq^XzCSdGybAAK+}@fY|{eDgu0QKME9)1)?v;zz<=zNo%nX}KHnf2}Ut;;^j^2~&a5=Kf*B9K_Y zTzHf|C(z>RhSlKE?EyE_bD_vo+sm-bVtz#N|k^rFW&iaGJY{~ z2aWblI89ah{R~Rh0~_&0TwnbX4}$|ZM8+SochR0}yPk~_BcLLw#<3n>!jSI=%tyvi zZ)-=Z>ntpWGJQ=hN``=n6k@3e79zK4=fA+cKpz~&Dzv#@fyZ1=D>AyzMu`wmkw`@` z9lC)V-tRCU9*527#&P#+x^%WSvm^*4Dcd{<_G5VMCoD(rNdUJvyK#)9V^Xa8s{AMk z0uO@MG3fiAQsuPd{aWkO==8jimG8I4|42YZBJkB$TgUZG~+KaBg0U&Ek&#H!MZ($e$1T zF5s^JD&pkw-NH`>_j|v=g#U_ofdiKR#cZ%q);WU)TL%n^QCnOfwk5zpHR=CdIzg_G zj3E7SzxQh*)k}pZEOR@7H-gh+@1swMd@lv>22G~Dr%={u742ILc3Hn0Y)OC(o(lD2 zk}6_2xh}hvN@>F%U&h$_&s1>6bYj_Z$_#$Rsk+XFZsM=iujqYPB$Hy<5GjV+T!&{X z-bJ~&fvyVEeKztEU}G1lq>qx3{=_4FmY`&Q+($Y4Hf52;$OMsKDLjcJ#mZdxCiOKJ zFcTgYvaEM)_aUuum*-6!E;~V2yE8nEyaYHWbC%%r#yz=)+|WuPDTQZj{W8g8Qg$^P z2{LvzG$LtoK5|R8Iz(Err>1bN7pXl+UjQ#BkYOC)1uYrM4RhXYL(k4 z>*N(d!N@rivs~C1?oEOTFE$d3lscEh6MRp0k+EqHnMMZiNvYP_f(pxFij6tyDhH+b zrFWb^q`zxcY-snK!*iAIQM*tra~g6<7K*%wdiF#t6%wPl22A?<;ET^nM#)&Ez+|w9 z1UML3dh8Ji)Qsgi^lMc?gS`XYH6NnRcAV*J^ZP(v{}~lC>_!h9rb^N2GoIH`X=$Rs z(^^~pV=g{6gIliIOM&=`u5}7#(K{QR9vbW>H#$5$lJ|>YJY&blD!iLqcxEXb-VgjC z6*Nj+WL%Bt^&ug(AuqCQG!glBR}WsS{(wBj$HV`KKpJc)8_Y*Oj*;omkVr4dzPWg%soEe zFOKnyUFR@1qSJj|(jXtYbBx*4z6RDgpQ?^JUqW-)NxIr!%FKsd{~{YvX>G!Z@^@&w zO$Dh*^8)R>_O34^aF1VaZ^tp`SvsV1k6(Q3X-k-di?rN9vN%=wKAIgbNLJ#(87wU= z?(y09YU>gDPVr=ujXnF6Nw7SQI8NbA%}0`M`7pu{pcL|k#psa7fz6JSLh7KfX98*P z0mMVCaHr=y6{j|;ALT^MC3S;4%|f0m><2}9yiVOc6)-*`&V>J#MzE18E|n$I0000< KMNUMnLSTYEnEQAD literal 0 HcmV?d00001 diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconBigmapCommission.jpg b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconBigmapCommission.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f71a0a4ecb6a9680de8f980eb58e0d99d3e22274 GIT binary patch literal 610 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<C&R03!=4P(l>s1r)%<`u`RK z4^TCe0J8uC17mN_6nUURNdceeR!i=m;=~*T`mtWf)kV^Z$AE-e@ z5Y1p{AAi4FbXhTrGgZ z)sBfD;I0-}rVKPiMgZgzu&Gd|GcqKCTw-_;?iK-Uu9eo&9XE63<&!rYPzc}0rI0ML K`gQ8$|2F{;jBU06 literal 0 HcmV?d00001 diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconQuestionCommission.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/IconQuestionCommission.png new file mode 100644 index 0000000000000000000000000000000000000000..ea789f4cff8a288d2bb118484842d19bf9f5c743 GIT binary patch literal 1935 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
aK{0X_rdGr9?mzcD zKiuvYerEYHn$eHpM)Oz~S8&VvD`v}+oDMqKA$6(&gzlmen}U(zu}+>frt48%hR$;+ za+90~oO51y1~Hk|MTm;3tyu>$>Y)+88`ekXxK>BEdd1RGB?!Z!usr+^2{akw8MA^W P00000NkvXXu0mjfh7ORM literal 0 HcmV?d00001 diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/UnCompleted.png b/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/UnCompleted.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd30f70838392f920c69c19fe252e6e1d775d56 GIT binary patch literal 1513 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1%63HK~z{r?U>n5 z8&?#@4_@(ZV=x%wg~e=1fF_}B+9FlTL*Lpy_o07frRJehL>^L_G$9ItG=w!_wZYgd zw(;8YU5~{ucF8jO(#J^_nxXu8mP(}}>GcLOTWr*BbCAVmr>;PldP0NbVzDN(MfxP|XcCvt zoeL{%tuE2d`Z6WKd4Ro6u$#l%*od44h~RXbX%2 zwESj{))rsWc_vNeQb~GO8xR(q{F1_>lVo$aq}2-e@-`L0bpxVYE>SYRN6Yhn($b4( zls!9bS{T^-xJrwB|Jvd!Di#Zx^SG|Kvs98c-n|i4yDrK2E`QEnw6*e%!=WIp)~Bvp z-@ks&C!VD^Cx8;8*-UP4H~IUAMQkC);PS)0E!zLIMyJVywDSUUyM_FbD1GNfrJmwo9o*OeBOHSPa5O?mwak2Y5%9pR9H#mktNl zI4^Z`@DEK))9Ax*$>H&m-e8dKevTeks6;(PS2FOCER4peoL6v68`Hl>WLP%K;6mHUfuApQO0FoKdN8QP&{aU^Mc1 zt{zB(#_p*!U5=@ZG)NZr-;CCg6Kxesq&(!%pU*cwOD zY6XbLKxyIbV0U>qmh{4f5QynTStE@mljt7PkAGsX1T~eHy5iubL~Msgra4-AIZFi; z&da-ns|;)fgl3VgCl7u(U4amdJ)EKF)YmnuKrK|=3h>2fSK+Y_i%F`x&IAkuZMK{=Bhp1-^)EVG%~>=JET=@)U_Od z^(mj;F9z z&@7I>O*HXg4rny=Mj#xpx0fenJSw(=W^r%`8a~QFX!tI9eE!NCH9(>D^@VAOpST=6 z#neh9Eoc*mSdlKo9K;1V^DrDJ!8GIQ@Uhh%T@>5u{Y|3Xtui{e??NErPdRkr86hw@ zN&|NvG*vcg(ULgO6^MwUig>DKp`ObO9$cc6Ux|*;inZjlEDi$!hJ*3x8Bxms;<111 z3sDzuf|kX>CRV$P2JcOC4Xkt!xDuV9(es5?8vd`O5t!ZZ(2b`lj93^X1;V4(bL+Lm zT|zcA)TGH6yczpn1B_T|+^o22JyW}CU{(A}OwNC9xq5sS*D9aIwFc3@%5D^CYNol4 P00000NkvXXu0mjfo|)AD literal 0 HcmV?d00001 diff --git a/repo/js/AAA-Auto-Story-Loader/Data/RecognitionObject/paimon_menu.png b/repo/js/AAA-Auto-Story-Loader/Data/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!bsPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0Z~arK~zXfW2h)C z{BLMzIAAy_A@={_y_^5PdVK9agSojGh5}-+v5Db-TW7=n?m>qC9Xt&Go0ws$AqJb8 zn*Oh;Ect)!!jb|^x5Y=-gw-d)E3`}P|D@7sfh_Zt77cmUxL z5T1M(suo>6RIF*0@qf=y{0_$In7nSI|5J}6$`E8rNybn!W}G(u-?+jU!>*y_m_Zdy z#9+E5U}Esd%-Y1@QODrIgU>O8rExW=nw>OhkPoV^%Ao4R9oe_#e`0(Lh9Y|40Ds^A m>sBrN|Kj1*|F551{|^8dseo>ZpPV!R0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1RY64K~z{r&6oRA zQ&$kj^CxBZyE+Z$i?Bnf~xeCOLcde(yPZcK5jc`t1eo-&w}~&NdKH z_AtTgBlvd^d;y2?ED1I2#?>#+;g4UQphU?i6-(v8s!!|=FSP=q6gyIT9RfrJj zXY|c8I{MjWn+vZ*+Kok##c{=FCgJz{Y(^$tKcT3MuxmFV)JcfO7{iwsb88BVPZcI_ zDeQ~d=jDRe>%}`meR%QX8eDa?H8um2l1f7O5TSR9F}|d*_(Y3HW%w(Fs*oFQx7(P* z%utHq3otxhyU%n~RFvWT**IL*fm9mW2*Y16;t$uwSOhIRQ5ZbU@E2|tR9M1j+|Ot^ z$SAFm|Lne<=zhH`vmkNQ7$J;YWh^|l3z}V1=pH3Qj44QY7{M08&>6O&#vLsr!~o=RFlGI4Hw zyBgYcOjvEQr7TE>AmPMiWgAZ=tsu!C@%7VGT5TWC3D$zd*Tl+y6_k+Dpq*N6vL+vb zl3SMepKMt&s1pj^BbK1fk-P+T^4KR7VmCI9eXiu~*c*v)kum>Bi!u|V)h-ixO^kw3 zI&SI8K7CK&r7o%Fb~`7e$mX?l2u5*@aq=N(-B8MHd`rHPHn(SlF}|!<#b`e+Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D3F=8iK~z{rtyhV2 z8|59DKx+|LxFNMq(F1vOWI3Xt+aGHASM?CN;r}_1jy-Jyw3Nnd_=^x8Tw{^vmTHAz4v>+m}5mc&}HqO}8m>gvVHEuFYC7ROco0BnK}R!N>B4@Te!MGOIioMx{Y z0_+TjKWuKLhtCBEzxV=w>+Z$su3osZdARgE*jxebY##M`4o~$DU~wo4yC}h~Xcv(a zF(zt1Atw$f8XR?Q^o)*{^UR3jutQy)l(9Xq2yBnvJi?Rcs`lJ4O$RR z)#!t%5~v!?vI?`T!7M4T)w@wYoG#~?5nr7;4Jn<$6YX2UOgJ!Mf5`zMU&PC49X}3+ z;UGztNcw%cO*lZ45dWx82PX!c; zSer`YMl}Sd5-im}S`t7q52&b+WK>8B%)CflSU;G=nRDmL`7Q#<-k&ex-f#p@cK6bT zo3PywkOP;?gD({ESfU?SYhgIm5Nz5s2d0x(_!O8$85Xxd=ei-Ss9o;*#ISW*pg@+2;J{je}R z7V#n;+|&vwTfp$%eaO9k0R8Xo2CrvvPb`kh8W>bF0v3m2cxEsO&$id$DU8q%i`yU+ zw_!sji)HOwu~63FAW_PkHlh|G0*vhEO}Ze{um}=tE)I^3wYYM94Q{D(;VzcPO|=bJ zwDA>G)z-twcwiR;m@mn=xv>SS68(5#IE|OmS*%H>@kmbsH^-WBg&cw-5QI%7{pPxL53txYIQ4bJ&^5s`39Qc6t!BQ=P8w4MIDu=M5tpiUa2Jld44}KnP z!nJ`Qz9*@e?^ocER5;`y>}r?_vMJ;)U^pyf1uRj6Sks$8&#qCNI(rshUxM^fAmYf# z4)5C!ZR8EqB-7ZCOrt^1gDDiTFsU3^8D6S4@aEdaVk_Nj!1kWln9LM3>^U^|>vuMgSGZjte~R^e19*JX7I3L7T*Dc#sVx1O&EzTh zn*Jf&7H)>g?&7h$sRgOMdoe!C?w<|hElS_JAJ297;=x!8HoP_jA(IC)tWyCb_-p}x z?&!f{IgD!F50lL+p^EchnHIv%j}Dff`K@s9=utcvYQ*wz6IO5O0z>Sc$UH^f5pt** z*0Ip-g@ct~;{z~}w^h4O#t(Us?)mS6Z3jNY-GLxhG_~Tz{vog>0hD|=11^)tGl@ai z>jhW^1s1Oc6WPyBHG*q6ADZ6WIqRG7|3d5b9r$f9hCjA;peAY5oh9~{g4YZ9U27-o z4IWeqGAca^Ok^LESip#=8A{>A_?hx^=LE75*Y)<}H^CTIwRfSOl1>wl(!pnoxHA}s zwZRLsprAq^0<;)N%;)`hti1zc$4``>JtrJLJ&s4>Em$6D!s@L(aHn&Wm`P^9l%{~x z|3l3b4t|XLgE1_RHsi0|ePB{qgPaCg zM5O)$xPtMb((S`MUPc9JLL$JSHNqJP;YN=i$$k6F&z=+7w(rEfN*MP=TkvAv5Y3nn zGeg7$qyE2d?Ld{wg9=unxH!M&|$3Jyao3Jqgd6} ziTaZ56TzkPSksrpb)@qfJSFmgQ36V?#;JhnKp5BX684Ram2=DpPxZWpE4ctHZXe9k>Tfup#3->t zE`_M!@_GTSJKiei`v%D66D_`un|TR$hnndEn%sUR0Zb;3Uq+f?sTW{oC74UrPdrV| z60toHg~K0#!xuue%Y%nEZN-sUmeP?ECvbl#j_Oxf+!buX+R5=VmXDwp@NDk@7V#3y zZV~2^^;1(o90(ZXG>8Cy7*0XPPrM2eqwkh;UWDGaM{)TE2G&|0KM+*ZrHr>7Du6hl z7w`+U5mvW%a`p*1&7SlE5n%U6K}0wL5!fe!lz|cPmyTEQpBX+ zQs>2^9la3rBA9dzo@@~hw{^l=FQAeLn5cVc{LGwO5b` zL|R~H#8U02x}Gi|608g}BbNkBkV|12R$mAg<0013nNkl&g#}0Vs%~uM$*k3>0!N1hw zGN{t&8`gf9i|X^wzS#QF$GNBs0owdOn~#2bWcrli#jlTq>e`zwt<&PBJMXVNW@N8P z#Y5j*`1+S$?%KRz{f5;u{<3lQf;lhd)vZyn{N>(m+b}ml)w_9>MGF?aG3Sld@2@UB zPN6m_yKp-sCq-ya>ke;J@A8^rAy|mTJi4E#jpNwWW(Xz@3+Xm7jl>rREX-^p&>}` zEno3X={HCROw=*vB0*Jp(gTqrp8a1RIR4%DXL^i4sLo1ME-GZE%p5y<)UYD6Udy0b zFmE0Pj_m(n=cjM4TKaPFn4XnxD1T*zOCdCdJ=1Oe8&d!qH@xq@FP46H@Pm#W8{OZb z%5y`zn3C!7aP_AK_8~kN_I{S&iQONjDI$22w2@ebxiTp|ri62@l?A3T@$x4|2_P4)CXDK>&qm4Iz%D7k7DDofC>g{08^k9Ljn;>!ddn1biNKP>Wv=*QR+e4HuvMCa*fM7 zjkvqjz}o@y0F|y@F>U&^;rDc^*r8hZtMf4>4QJ>(<9Tm~^l0v7d*>yRaNsb-1J)U{c!=A~Eo-uIBq^YY`uH(VBZQEx5X|^@eg~KhV z5cTP{zq*Kzz;OSU>_6Tpm{gQYOQ_VfPvbREc@6U8$a?m1ZD#Dm!Lw&B!Fa3yY{k)ywy`UjFiY*sK67iCbT1tTW98C-di{wGiTlUn7i zt+Ib%dn$T+&ZvSeO={*}2MhqjhA!}w!P-r4bnU*kb}$8F?C4R5RS!Y9sos?tNyR5w zQ8fB-yD-v1eqNP30I1&s%2cAg{Rgx6_i`w7#SaMQ%v#7ZGzJEbg;38#m3uQS7-T>G z#aF-le79Mp(2lmF@xXP_YxbHA{?MoAwIQ6mhM?_~CsOz>&kc8(sRV6Dh(0FR>U9@lsREk@m zHFwt+dqSv&2N=OgNZL;5PWovS9uudR{Au|+t3nHIdNs=~I;eNYmq$Gg6>O;U+OD9k z9Fte{36h&j7r#ZllIVr!i{)6t6_%cz(0%!qsYnd(nLg?LzWpAZH)n~mn?lMR))wHI z)8>{;o)xa}*v>;s!D@Qbh&xEgMU|32`%iP(L2}%QDSXAikpA73I4uQ82Fb}NQXDj} z6Md@eTBn%k;V$|2U^pY4W~>;pYtIg$N-~~0c$;;a?pLi`L!ap#9>+*gNxAuR7ejT* zn*$aQg;cI(hS-^&zIE++sEGWiZBT zRhP6GvONqa=-Q{SbEbGf-}g7q#}B(i&uHqgN5yZ`hRv~jnGr1Mj`K14z4|*8gUvhlAASUFg&K?RLS0-rNzSFA?mdm3)G1-AsM`nPREk6B9#*-1R{N#i;Bmhz`yjZb+uYh zf!Dv^AZkZl8J%-L-M0|ZHP|ziq!XO;%aE7y7%3h%K^iNexu|@qmUt{&cerwnd}GG5M5yI; z08=g0Sgr~X`(4^M&){dvrqyyI0v1FmVzlSxnMCm(5*&KQGARRIM2k)(9=au5AiGXwHikvsZ-SMPl>lP^5v30&v7AY#_$suz70*;X= z*ba`FjT>KkdqoLD>5dc;B`TuNt$P6}N{CWsF-Q=#bNdztnef$Is5p97RA8VnoQ|qs ztHDD=MBWP!u@MeyN#V(o2C!LD*KVsh)JY8+&{0d}kb*HS2)ysav>3}Rb#v4H%`129v0km$DlweN|D6P7@7wDnFXG=qUMMWm9>%s z>;8kHV<$xyYnFyB91|&7=eXh6E2;DuHY=P!c>8TPIGfn1@$C7T)2Ae;+CS2ci8xIJ z-6BnUQnL(8&|=2!bh0#my@x}eZTm=OZvJo+cy4BW-7eUk$;Fd{YK@RZeye_X-tpPT z=8{09jr~W0kprzVCH!&Zd%RB%s&kHX%5vOl_Q3715#d#rU3mTl|K_F>B!jy1q+_y6 z0KnrYO`?(&*eAIe3aBa}d6+(iMht6ks=0E|-j|A3yDk2CT+SLiE*soV#CBW&uQC>|jq?YZN_H={#rpvGR9gs_x z%#(+ze}(`e8Te{G)48QQk_Vn>GQ9OEZaMMoSD$0)B&y>F=#ab7l0hZ4&Wg%H&krBx z8APE)ILtKwb6~Z)r00@q<}s)+W@)=KO*u+B_Cr#>!euZ(Rr{`6jl8-wF1qM^hyOPh zzHSwaWvpZkBv5>uIHKSy1jX}wDpM)~6(#czw*OhT z_V9r{0V$%xf~4hxk0h-NI&`81%n(@z4K*DzwHjW3)zueQxurac3?QBJp>lW$hB8_k z-ZKG}WQZP&Lo`hW&lZhfQ8|frGY*I<-Y-8M30G3LfE0doDaS&qWU*d`t~f71g~^cL zuhUO4rteOw;)-{VANxjjC?tRh6Ddx7X-u3-nl`)B;VQl!G{7@(_}Z(Ztqx8m(gr8d z!r+ZJTo-H>)mauLiH`^`IWJ6~{nPOyio}oK?vd+9zWO8vL5jWdg)TATx`zW*N}9Kp zgxneNFIzW8r3q7}r*?3q*n;OIVYv_?o1&=_pi9Nmvje7S@_JkCibnhP^-3m;jK(D+ zea#0($3Xyk7D&)7oD8{URB2M#+=NqAu<-6p>sHU3<>a$t`NEy6-Znm(KWoG6$;)R> zB^zAPEkTMGB#KZRkeQSCNQ{d@V9YbPkHcQQL&Nl7;Y=rghs9t^G6TLP6 zPSa~w&O7?o5BNmfATcH5K!Xep8352b(K_m?e8W6`5j|@hdL8@Z9syY1=ZN;FYz6v==5U znESR=cP_N&(qVr0+ZuPN4i$J^`qdMN>^BGpGH5aAEl#*)`U&Rvr{>xyrHv%MyGpgd z6KjKKcX#odbN{u{?=Edy<<5!ypVX%UCV%WaIz2j!Lzm7PD&-Vl+C$Xr=btwPBp4V` zpf9}mya?G<=bdMX8?V2X5J1ujF~ufqg5qGW33Pn?E4vftV! zJVS9A1aQ9fV>RCchDL!PIIjP=Na%tC>=19hCUb^LN{uX5MAX_J6te>m^1 zON?9E-rn?y2fB}VeA~8d|6SA@!u#^;!N2a$i^)b_Nm^U#?wvaU^OhQoIFd2zF%Nfn ztdoh!+`Bl;E<#~dNJY*r#${Y~Ag-QpY=uIgeP4QF#n|uvam7Cpc`C%o!YP7xQ`g&D= zbHfElQ#Ozw0}VxtBv1`o^hAcdQZRfZ13y^3Tp+M?Va=;p>odMrm!X{=c(gfdP&rBs z8aPnKlBjyS>yx!Ci%xv!1DNBMf~m&^j1C=73Olv1yC&5l&cZ6;Sx-|-=Fb^W&{ZDi zSE^LAQYC_f3V`rq^o)VK4lcqN<+uYC`5`vhVNV9f zd1&xrWNTe^98%3y#n|^Gee(PAw?{Bj`LWssqq{BNGL@+#CzdVRI37Yv5T{ruKYi-f z;lRc<%haJ168GXqGdPQjM=JMF8A?kgI`lXo;0}7z(qSg$gr--Q6hq~D#hRt%npV5J zsM*N(N6gwZX4Aph)7HK)bxTR!m<|sO?8MPis1E&#E$#PyJc2sdqQg)Ur6p6v>&G#| z6oalC6}7ZP$-=2ezd1DF(Jm_|jX(CqCJNLlq^RtH$oJ|FtpTG3DvZiw2A=d-<+J#a zI~SFR64lQKw*S3!$C44x=pne$enhu|8J(wpI_AyYukgbwR~{Pw*sxhI{B+{PX?Su+ z4mR@B3LgLN`x#5;nrQmUebX46^Z9tMgJ$=Vu{x%0OWy_Q#IDVDHe8_v9?hQYAZ8^x zzA9E2-IuhQrsVf4+Vg>@qlrXUE~*%ENr%QRU|NB1OZUIAZ2ssKeV6PR{_*#7w|x8Z z%7deL^TfR8l&_zEIv&mLDZ0{e8nEm$hv?Jc#l+$@!w|*V2S-OUJ8@0VAWA=V?6ZxQ zKJ@X1q`-W&4N@Dfh+sL$FIpm9X#RnveSwmZ-D!%{O ziZ!2?eD%|s9Y0R~==&nBtla)i0x3zPLuW&E=nPcJ1Ew&AD5iG({SBtXX#L*h@^kNo z_x|_86(CucUU<)+I5+8@F%vxBb968|!J_p90431nrrqvUI7IHn&d>Yz|ZFKApxaijZTK(4LG! zRA5ljY=bFL?#O)oN&vRe%lu6IaHL2iTmH1UaXvF_Vkxi)k7xy5kz>|N;O*W@oHoaw zkM1$-*Xil_}~=Dv+67=j!*Zv=0;Fy|nLl#HXe5*cj7 zmtKIG37GaYetn5OA%a2QfW`7>Li!a|t`5&YbsDhKQRP~uc?}nJ@kc}RXvc#1o-mvV zRG5hKo3~EugZs4U`9QghMgd*%V_8;a>tZIT0jzsLq3h(UwQNaE!t>##WCsfvIjC~+ zoDS)qZd@nfl>v4%Nia(!U*a!YjiR!IJHU){a9uHS9dbnIh zAEkpdIsKUs1_AJN@YXRuuS?U~gP$sLKN|e_-U~L>=47s)70*9|bk?5Z6gFLzR@ezj zZYx@SdiHC0$2I+%Ue&EZIR`E7h1g;s1F*Q})tmDd^my>P!TDEa+;zH?LU@eik(xr{ zAxR09!>>pCJXEou`5nEwKH>nAe0#Ah`58q-^gi~k+&syJ6lE>xbWg!>$2fJT?CuPb zE`IE&7j>vC+lAURtPYa!Tb*MmEm18}NSyc4s6pL5IkaWDjCKh`eI)InD++__5G#0- z#!v3txXPgB9xMMDQ5A=DKORBXiV=pYL_w-Z?U*{mvh@9+2e!at{9t|WJ)uUNej&^O7 zoPf#@m78GrZ~`3Ayu#Ry*N*ReZ610*|1&eGz&Zr^-0$Jaf}Wxh?ntMTsCMqwLQEGr=Q|2&ZDz>yHm8zW3dGpQAYH)E-WVefI2l=+k)i%HB!w)xa+3Mbkj`3=2gpBbn?VBrx+<<{6(jopjGu57J`c(JEw7+Ij*K1$z z`THcV`gUj-4{-%ufc5CtK25M+f$dEGh-dupzQbGp{>g65=FM3G5|$v8$|^p$jFzoi zfY-2I{Q(7Cm(QHKch@J$FH`|fiOYUP1I)TVFHXJ-xx1DpQ%G6|km#+jQwx!0Ux~MI z5-er6>BmHN9l}`jt9k7sb7M_iplF z{hO+JK(UF|&b7V1O#*$-Vz2>JL5Cv}vO}uS#?4rcGMa zZvaD|x^)INZrHF=MNoqrta{Aw)?*qXMj}j6le)HT8qK(+C3)r6QyuE0ev3`X;vs-3i8QSRb^^}@7T>}}p|`xDgv8)kWZ*XD&43;~!Y2YzpYw_UyO=?}k4*yb9>}xFIn>_pw4pcVJv^i1+iwar_ zrCF)=Kr;Hbtd^jn%ZV?I;cjFR9gdn-Xh<;X8vAVDIA{e|u1gP;I<8naAhBS$uv2sN zt{PR(J^!4GE;|2~TPg$AsNOx4Mq_G;8Y6#NHfxYqx5njH{LW)u0fQ>+5RyTJD$_Tm z-$)yWx;PxA+Vd(A6h?06YA;ZMmz+f0RY33_J%8v`JsdHma9ByNg6@rzcBy+yC;a$Q zjdj9+&AGZ~>w8Scz8#%UxRM^1Tz27w7oT@Y_74WGy82?k;OW+`EqH1JNOfyh|INAo z3Qzn{fK@pO6(cF6Ck)A%hYSVO2jvL(0EfPW0kajo8#tff)hDt7K zz0!Cre{V5h7z4~ok`ig^O8mu-#+NEoUTMvt00tEdH{VzZ3D^M1MeVz8)i<_nbAQuj zce*g#2ZmN}s9X+sYQz;hB&|Q-6Fl}C*NPC9qA`fSlkt%{t{(vDOrl(nCC4)E23;Oi zvXh22`zH#ls2tBu=x%iAmIqk$N~k9Y9f_i(iN+fbWUcK|wSX#7U0zKLprU+*%V-j$ zd)i!(-}9sze{AWaI zM{MF5cYOx8N6|`bfCb$m^wv8I`%miCqxdnqGho8`aLtQ_){>BTc<58z=;66uUARkK zVlSO&3?8V!vlG;AT>inw|E*rZMMkG~4}fvw_1F5;W0*u;-Fs`8D+?m6y!0^6l!=@D2%1x`Dn?4w@E=3*K&8v2Cg-gy6 zurL}!oq&pqBo_m!;0+tK8eZSziAxNOd8_CpQ17}`Me!uwJnW9_iUJLi{hbh^dbtoa zML&fUbuT)J6q4(gp6Q`fsxBFC7>ewQjRG(^rt?oWv7NgkK_@Pp1X#i7Zh4KWBc#qB z&X0Pf5Wy)!`uFb0-P>=wfxyU*muR`J(iPMNn^_H7SCv}8OFZ)Pfa-@#&m&FYa`V=T z|K7g-AL8%R`6$_Ou)CF8}8l~ot=)0ZTug7na#X(qFRmYLJ1oa`!gCcFC^ z%jU=LOZVm1t62W>2GuU8e&eMPZ^7m+&kXK@L5Il?p% **重要声明**: +> 1. 本项目**不会将任何非委托任务流程脚本上传至脚本仓库** +> 2. **禁止任何人用于商业用途**,禁止在任何场合展示或宣传自动任务效果 +> 3. **不提倡**上传任何任务流程脚本到公开平台 +> 4. 工具仅提供技术框架,**不包含任何自动游戏剧情内容** +> 5. 请勿在任何官方平台(米游社、B站、微博等)讨论本工具 +> 6. 严禁在官方直播、动态或社区提及本工具相关内容 + +**免责声明:** + +1. **使用风险:** + 1. 本脚本为开源学习项目,仅为游戏委托开发提供技术支持,禁止用于商业用途或违反游戏条款的行为。 + +2. **责任限制:** + 1. 本脚本按“现状”提供,不承诺兼容性、安全性或功能完整性。 + 2. 用户应自行承担使用风险,并严格遵守《原神》用户协议。因使用本脚本导致的损失,开发者概不负责。 + +使用即表示您已阅读并同意上述条款。 + +--- + +## 使用方法及配置 +1. 将脚本添加至调度器。 +2. 右键点击脚本以修改 JS 自定义配置。 +3. 在设置中选择"刷新剧情列表" +4. 工具将扫描所有可用剧情脚本 +5. 从更新后的列表中选择要执行的剧情 + +## 安全规范 + +### 社区公约 +> "我们理解大家对工具的热情,但脚本属于敏感领域。请务必: +> - 不在任何官方平台讨论技术细节 +> - 不在直播、视频中展示工具效果 +> - 不与官方产生任何形式冲突 +> +> 保持低调才能让工具持续可用!" + +### 开发者社区 +```markdown +如急需自动剧情脚本,请加入开发者社群: +▨ QQ群:[开发者群号](加作者QQ获取) +▨ 作者QQ:3302871403 +▨ 小提示:群内还有提瓦特全战斗宝箱 + 5.8部分解谜宝箱 + 部分已下架的资源 +``` + +> **再次强调**: +> - **禁止任何人用于商业用途**,禁止在任何场合展示或宣传自动任务效果 +> - **不要将任何非委托任务流程脚本上传至脚本仓库** + +**让我们共同维护良好的社区环境!让大家都BetterGI用!** + +--- + +## 以下为开发指南 + +--- + +## 1 制作前检查 +- 打开 [AutoCommission 开发进度表格](https://docs.qq.com/sheet/DWGRCTGtDUGVPa1h0?tab=BB08J2) + +--- + +## 2 了解委托信息 +- 名称:在任务界面看到的完整委托标题 +- 地点:地图右上角名称 + +--- + +## 3 创建流程文件 +路径规则 \process\{委托名称}\{委托地点}\process.json +- 使用 UTF-8 无 BOM 编码保存。 +- 所有子流程(如 `取餐.json`)放在同一目录,方便相对路径引用。 + +--- + +## 4 流程文件格式总览 + +### 4.1 基本结构 +```json +[ + { + "type": "<步骤类型>", + "data": <任意类型>, + "note": "控制台日志,可选", + "run": "<子流程文件名,可选,仅分支步骤>" + } +] +``` + +### 4.2 支持的步骤类型 +| type | 作用 | data 示例 | 备注 | +|---|---|---|---| +| 委托描述检测 | 按 J 打开任务界面并匹配委托详情 | `"取得制作好的餐品"` | 支持 `run` 跳转子流程 | +| 地址检测 | 检测玩家坐标与给定坐标差距 ≤15 | `[-667, 2285]` | 支持 `run` 跳转子流程 | +| 地图追踪 | 执行地图寻路脚本 | `"tracking1.json"` | 相对路径 | +| 键鼠脚本 | 执行键鼠脚本 | `"script1.json"` | 相对路径 | +| 对话 | 自动对话并优先选择指定选项 | 见下方详解 | | +| 按键 | 按一次键盘按键 | `"F"` 或 `{"action":"press","key":"E"}` | 复杂按键操作对象,包含 action (动作,如"down"、"up"、"press")和 key (按键值)| +| tp | 强制传送到坐标 | `[100,200,true]` | 已不常用 | +| 等待 | 自定义等待 | `3000`(毫秒) | 默认 5000 ms | +| 自动任务 | 开启/关闭 AutoSkip、AutoPick | 见下方详解 | | +| 等待返回主界面 | 判断返回主界面 | — | 无 data | +| 追踪委托 | 追踪NPC头顶图标 | data可以直接写npc的名字(字符串类型),也可以写成一个列表,name是npc的名字,iconType追踪的标,Bigmap大地图的委托图标,Question问号图标,Task任务图标(默认) | 好用 | +--- + +## 5 对话步骤详解 +```json +{ + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": ["同意", "接受委托", "我来帮忙"], + "npcWhiteList": ["派蒙", "凯亚", "安柏"] + }, + "note": "优先选“同意”等选项,且只与白名单 NPC 交互" +} +"skipCount"跳过的前置无选项的对话次数,"priorityOptions"对话中可选的内容,npcWhiteList可以对话的npc +``` + +--- + +## 6 自动任务步骤详解 +#### 功能特点 +- 动态启用/禁用自动任务 +- 支持任务配置参数 +- 统一的任务管理接口 + +#### 使用方法 + +**1. 启用自动拾取(默认配置)** +```json +{ + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoPick" + }, + "note": "启用自动拾取" +} +``` + +**2. 启用自动拾取(自定义配置)** +```json +{ + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoPick", + "config": { + "forceInteraction": false + } + }, + "note": "启用自动拾取,禁用急速拾取模式" +} +``` + +**3. 启用自动剧情** +```json +{ + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" +} +``` + +**4. 取消所有自动任务** +```json +{ + "type": "自动任务", + "data": { + "action": "disable" + }, + "note": "取消所有自动任务" +} +``` + +#### 参数详细说明 + +**action** (必需) +- 类型: string +- 可选值: "enable" | "disable" +- "enable": 启用自动任务 +- "disable": 取消所有自动任务 + +**taskType** (启用时必需) +- 类型: string +- 可选值: "AutoSkip" | "AutoPick" +- "AutoSkip": 自动剧情 +- "AutoPick": 自动拾取 + +**config** (可选) +- 类型: object +- 用于配置任务的具体参数 +- 对于 AutoPick 任务: + - `forceInteraction`: boolean - 是否启用急速拾取模式 + +#### 支持的任务类型 + +| 任务类型 | 说明 | 支持的配置 | +|---------|------|----------| +| AutoSkip | 自动剧情 | 无特殊配置 | +| AutoPick | 自动拾取 | forceInteraction: 急速拾取模式开关 | + +--- + +## 7 分支(条件跳转)机制 +仅 `委托描述检测` 与 `地址检测` 支持 `run` 字段: +- 条件匹配 → 执行 `run` 指向的子流程,子流程使用process.json同样的写法 +- 条件不匹配 → 跳过本步骤继续往下执行 + +示例: +```json +[ + { + "type": "委托描述检测", + "data": "取得制作好的餐品", + "note": "分支名字正确的情况", + "run": "取餐.json" + }, + { + "type": "地址检测", + "data": [-667, 2285], + "note": "距离目标 ≤15", + "run": "让纳西妲进尘歌壶.json" + } +] +``` + +--- + +## 8 完整示例 +下面是一份可直接使用的 `process.json` 模板,含新功能: +```json +[ + { + "type": "自动任务", + "data": { "action": "enable", "taskType": "AutoPick", "config": { "forceInteraction": false } }, + "note": "启用自动拾取(非急速)" + }, + { + "type": "地图追踪", + "data": "tracking1.json", + "note": "前往目标 NPC" + }, + { + "type": "等待", + "data": 2000, + "note": "等待传送动画" + }, + { + "type": "对话", + "data": { + "skipCount": 3, + "priorityOptions": ["确定", "好的"], + "npcWhiteList": ["鲁道夫"] + }, + "note": "与鲁道夫对话" + }, + { + "type": "自动任务", + "data": { "action": "disable" }, + "note": "清理自动任务" + } +] +``` + +> 完成后把 `process.json` 及所有子流程文件打包发给审核即可。祝制作顺利! \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/main.js b/repo/js/AAA-Auto-Story-Loader/main.js new file mode 100644 index 000000000..459b4eded --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/main.js @@ -0,0 +1,1857 @@ +(async function () { + // 版本和编译信息 + const VERSION = "1.0"; + const BUILD_TIME = "2025.08.18"; + + async function errorlog() { + // 输出版本和编译时间信息 + log.info("=".repeat(20)); + log.info("版本: {version}", VERSION); + log.info("编译时间: {buildTime}", BUILD_TIME); + log.info("=".repeat(20)); + } + + // 统一常量定义 + const Datas = { + // 文件路径常量 + SUPPORT_LIST_PATH: "name.json", + OUTPUT_DIR: "Data", + TALK_PROCESS_BASE_PATH: "assets/process" + }; + + // 获取设置 + /*const getSetting = async () => { + try { + const skipRecognition = settings.skipRecognition || false; + const prepare = settings.prepare || false; + const team = settings.team || ""; + const skipCommissions = ""; + + const result = { + skipRecognition, + prepare, + team, + skipCommissions, + }; + + log.debug("setting:{index}", result); + + return result; + } catch { + log.error("getSetting函数出现错误,将使用默认配置"); + return { + skipRecognition: false, + prepare: true, + team: "", + skipCommissions: "", + }; + } + }; + + const { skipRecognition, prepare, team, skipCommissions } = + await getSetting();*/ + + const Utils = { + iframe: async ({ X, Y, WIDTH, HEIGHT }) => { + try { + log.info("i{index}", { X, Y, WIDTH, HEIGHT }); + + // 最简单的方式创建OCR识别对象 + const ro = RecognitionObject.Ocr(X, Y, WIDTH, HEIGHT); + ro.Name = "debug"; + ro.DrawOnWindow = true; + + // 捕获并识别 + const region = captureGameRegion(); + region.Find(ro); + + // 2000毫秒后移除绘制的边框 + setTimeout(() => { + // 使用相同的名称移除边框 + const drawContent = VisionContext.Instance().DrawContent; + drawContent.RemoveRect("debug"); + // 或者也可以使用 drawContent.Clear() 清除所有绘制的内容 + + log.info("已移除边框"); + }, 2000); + } catch (error) { + // 记录完整错误信息 + log.error("详细错误: " + JSON.stringify(error)); + } + }, + easyOCR: async ({ X, Y, WIDTH, HEIGHT }) => { + try { + // log.info("进行文字识别") + // 创建OCR识别对象 + const locationOcrRo = RecognitionObject.Ocr(X, Y, WIDTH, HEIGHT); + + // 截图识别 + let captureRegion = captureGameRegion(); + let OCRresults = await captureRegion.findMulti(locationOcrRo); + + return OCRresults; + } catch (error) { + log.error("easyOCR识别出错: {error}", error.message); + return { count: 0 }; + } + }, + easyOCROne: async (ocrdata) => { + results = await Utils.easyOCR(ocrdata); + if (results.count > 0) { + // 取第一个结果作为地点 + return results[0].text.trim(); + } + return ""; + }, + // 清理文本(去除标点符号等) + cleanText: (text) => { + if (!text) return ""; + // 去除标点符号和特殊字符 + return text.replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, "").trim(); + }, + + // 读取角色别名文件 + readAliases: () => { + try { + const combatText = file.ReadTextSync("Data/avatar/combat_avatar.json"); + const combatData = JSON.parse(combatText); + const aliases = {}; + for (const character of combatData) { + if (character.alias && character.name) { + for (const alias of character.alias) { + aliases[alias] = character.name; + } + } + } + return aliases; + } catch (error) { + log.error("读取角色别名文件失败: {error}", error.message); + return {}; + } + }, + }; + + const UI = { + // 角色选择界面滚动页面函数 + scrollPage: async (totalDistance, stepDistance = 10, delayMs = 5) => { + try { + moveMouseTo(400, 750); + await sleep(50); + leftButtonDown(); + const steps = Math.ceil(totalDistance / stepDistance); + for (let j = 0; j < steps; j++) { + const remainingDistance = totalDistance - j * stepDistance; + const moveDistance = + remainingDistance < stepDistance ? remainingDistance : stepDistance; + moveMouseBy(0, -moveDistance); + await sleep(delayMs); + } + await sleep(700); + leftButtonUp(); + await sleep(100); + return true; + } catch (error) { + log.error(`角色选择界面滚动操作时发生错误:${error.message}`); + return false; + } + }, + }; + + // 步骤处理器类 - 处理不同类型的委托执行步骤 + // TAG:添加脚本功能点1 + const StepProcessor = { + // 处理地图追踪步骤 + processMapTracking: async (step, commissionName, location) => { + const fullPath = `${ + Datas.TALK_PROCESS_BASE_PATH + }/${commissionName}/${location}/${step.data || step}`; + log.info("执行地图追踪: {path}", fullPath); + try { + await pathingScript.runFile(fullPath); + log.info("地图追踪执行完成"); + } catch (error) { + log.error("执行地图追踪时出错: {error}", error.message); + throw error; + } + }, + + // 处理追踪委托步骤 + processCommissionTracking: async (step) => { + try { + // 获取目标NPC名称和图标类型 + let targetNpc = ""; + let iconType = "bigmap"; + + if (typeof step.data === "string") { + targetNpc = step.data; + } else if (typeof step.data === "object") { + if (step.data.npc) targetNpc = step.data.npc; + if (step.data.iconType) iconType = step.data.iconType; + } + + log.info( + "执行追踪委托,目标NPC: {target},图标类型: {type}", + targetNpc, + iconType + ); + await Execute.autoNavigateToTalk(targetNpc, iconType); + log.info("追踪委托执行完成"); + } catch (error) { + log.error("执行追踪委托时出错: {error}", error.message); + throw error; + } + }, + + // 处理键鼠脚本步骤 + processKeyMouseScript: async (step, commissionName, location) => { + log.info("执行键鼠脚本: {path}", step.data); + try { + const fullPath = `${Datas.TALK_PROCESS_BASE_PATH}/${commissionName}/${location}/${step.data}`; + await keyMouseScript.runFile(fullPath); + log.info("键鼠脚本执行完成"); + } catch (error) { + log.error("执行键鼠脚本时出错: {error}", error.message); + throw error; + } + }, + + // 处理按键步骤 + processKeyPress: async (step) => { + if (typeof step.data === "string") { + log.info("执行按键: {key}", step.data); + keyPress(step.data); + } else if (typeof step.data === "object") { + if (step.data.action === "down") { + log.info("按下按键: {key}", step.data.key); + keyDown(step.data.key); + } else if (step.data.action === "up") { + log.info("释放按键: {key}", step.data.key); + keyUp(step.data.key); + } else if (step.data.action === "press") { + log.info("点击按键: {key}", step.data.key); + keyPress(step.data.key); + } + } + }, + + // 处理传送步骤 + processTeleport: async (step) => { + if (Array.isArray(step.data) && step.data.length >= 2) { + log.info("执行传送: {x}, {y}", step.data[0], step.data[1]); + const force = step.data.length > 2 ? step.data[2] : false; + await genshin.tp(step.data[0], step.data[1], force); + log.info("传送完成"); + } else { + log.error("传送参数格式错误"); + throw new Error("传送参数格式错误"); + } + }, + + // 处理等待主界面步骤 + processWaitMainUI: async (isInMainUI) => { + for (let i = 0; i < 120; i++) { + if (isInMainUI()) { + log.info("检测到已返回主界面,结束等待"); + break; + } + await sleep(1000); + } + if (!isInMainUI()) { + log.info("等待返回主界面超时,尝试继续执行后续步骤"); + } + }, + + // 处理地址检测步骤 + processLocationDetection: async ( + step, + commissionName, + location, + processSteps, + currentIndex + ) => { + if (Array.isArray(step.data) && step.data.length >= 2) { + log.info( + `地址检测: {${step.data[0]}},{${step.data[1]}},run:${step.run}` + ); + + try { + // 获取当前委托目标位置 + let commissionTarget = await Execute.findCommissionTarget( + commissionName + ); + + if (commissionTarget) { + const distance2 = CommissionsFunc.calculateDistance( + commissionTarget, + { + x: step.data[0], + y: step.data[1], + } + ); + + log.info( + "地址检测 - 委托位置: ({x}, {y}), 目标位置: ({tx}, {ty}), 距离: {d}", + commissionTarget.x, + commissionTarget.y, + step.data[0], + step.data[1], + distance2 + ); + + if (distance2 < 15) { + log.info("地址检测成功,执行后续步骤"); + const nextSteps = await Execute.loadAndParseProcessFile( + commissionName, + location, + step.run + ); + // 插入到processSteps的这一步后面 + if (nextSteps && Array.isArray(nextSteps)) { + processSteps.splice(currentIndex + 1, 0, ...nextSteps); + log.info("已插入 {count} 个后续步骤", nextSteps.length); + } + } else { + log.info("地址检测失败,距离过远: {distance}", distance2); + } + } else { + log.warn("无法获取委托目标位置,跳过地址检测"); + } + } catch (error) { + log.error("地址检测时出错: {error}", error.message); + throw error; + } + } else { + log.error("地址检测参数格式错误"); + throw new Error("地址检测参数格式错误"); + } + }, + + // 处理委托描述检测步骤 + processCommissionDescriptionDetection: async ( + step, + commissionName, + location, + processSteps, + currentIndex + ) => { + // 按v键打开任务界面 + keyPress("v"); + await sleep(300); + + if (step.data !== "") { + log.info(`委托描述检测: {${step.data}}`); + + // 循环检测,直到稳定 + for (let c = 0; c < 13; c++) { + try { + // 使用委托详情检测区域进行OCR + const taskRegion = { X: 75, Y: 240, WIDTH: 280, HEIGHT: 43 }; + const ocrResult = await Utils.easyOCROne(taskRegion); + if (ocrResult === commissionName || ocrResult === "") { + await sleep(1000); + // 没有延时13s的错误提示,继续检测 + log.debug("检测到委托名称或空文本,继续等待..."); + keyPress("v"); + } + // 成功匹配,开始插入step + else if (ocrResult === step.data) { + log.info("委托描述检测成功,执行后续步骤"); + const nextSteps = await Execute.loadAndParseProcessFile( + commissionName, + location, + step.run + ); + // 插入到这一步后面 + if (nextSteps && Array.isArray(nextSteps)) { + processSteps.splice(currentIndex + 1, 0, ...nextSteps); + log.info("已插入 {count} 个后续步骤", nextSteps.length); + } + break; + } else { + log.warn(`委托描述不匹配,识别:${ocrResult},期望:${step.data}`); + break; + } + } catch (ocrError) { + log.error("委托描述OCR识别出错: {error}", ocrError); + break; + } + } + } else { + log.error("委托描述检测参数格式错误"); + throw new Error("委托描述检测参数格式错误"); + } + }, + + // 处理角色切换步骤 + processSwitchRole: async (step) => { + try { + const { position, character } = step.data; + + if (!position || !character) { + log.error("角色切换参数不完整,需要 position 和 character"); + return false; + } + + log.info(`开始切换角色:第${position}号位 -> ${character}`); + + const positionCoordinates = [ + [460, 538], + [792, 538], + [1130, 538], + [1462, 538], + ]; + + // 读取别名 + const aliases = Utils.readAliases(); + const actualName = aliases[character] || character; + log.info(`设置对应号位为【${character}】,切换角色为【${actualName}】`); + + // 识别对象定义 + const roTeamConfig = RecognitionObject.TemplateMatch( + file.ReadImageMatSync(`Data/RecognitionObject/队伍配置.png`), + 0, + 0, + 1920, + 1080 + ); + const roReplace = RecognitionObject.TemplateMatch( + file.ReadImageMatSync(`Data/RecognitionObject/更换.png`), + 0, + 0, + 1920, + 1080 + ); + const roJoin = RecognitionObject.TemplateMatch( + file.ReadImageMatSync(`Data/RecognitionObject/加入.png`), + 0, + 0, + 1920, + 1080 + ); + + let openPairingTries = 0; + let totalOpenPairingTries = 0; + + // 打开配对界面的内部函数 + const openPairingInterface = async () => { + while (openPairingTries < 3) { + keyPress("l"); + await sleep(3500); + const teamConfigResult = captureGameRegion().find(roTeamConfig); + if (teamConfigResult.isExist()) { + openPairingTries = 0; + return true; + } + openPairingTries++; + totalOpenPairingTries++; + } + if (totalOpenPairingTries < 6) { + await genshin.tp("2297.630859375", "-824.5517578125"); + openPairingTries = 0; + return openPairingInterface(); + } else { + log.error("无法打开配对界面,任务结束"); + return false; + } + }; + + if (!(await openPairingInterface())) { + return false; + } + + const rolenum = position; + const selectedCharacter = actualName; + const [x, y] = positionCoordinates[position - 1]; + click(x, y); + log.info(`开始设置${rolenum}号位角色`); + await sleep(1000); + let characterFound = false; + let pageTries = 0; + + // 最多尝试滚动页面20次 + while (pageTries < 20) { + // 尝试识别所有可能的角色文件名 + for (let num = 1; ; num++) { + const paddedNum = num.toString().padStart(2, "0"); + const characterFileName = `${selectedCharacter}${paddedNum}`; + try { + const characterRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync( + `Data/characterimage/${characterFileName}.png` + ), + 0, + 0, + 1920, + 1080 + ); + const characterResult = captureGameRegion().find(characterRo); + if (characterResult.isExist()) { + log.info(`已找到角色${selectedCharacter}`); + // 计算向右偏移35像素、向下偏移35像素的位置 + const targetX = characterResult.x + 35; + const targetY = characterResult.y + 35; + + // 边界检查,确保坐标在屏幕范围内 + const safeX = Math.min(Math.max(targetX, 0), 1920); + const safeY = Math.min(Math.max(targetY, 0), 1080); + + click(safeX, safeY); + await sleep(500); // 点击角色后等待0.5秒 + characterFound = true; + break; + } + } catch (error) { + // 如果文件不存在,跳出循环 + break; + } + } + + if (characterFound) { + break; + } + + // 如果不是最后一次尝试,尝试滚动页面 + if (pageTries < 15) { + log.info("当前页面没有目标角色,滚动页面"); + await UI.scrollPage(200); // 使用UI模块的scrollPage函数 + } + pageTries++; + } + + if (!characterFound) { + log.error(`未找到【${selectedCharacter}】`); + return false; + } + + // 识别"更换"或"加入"按钮 + const replaceResult = captureGameRegion().find(roReplace); + const joinResult = captureGameRegion().find(roJoin); + + if (replaceResult.isExist() || joinResult.isExist()) { + await sleep(300); + click(68, 1020); + keyPress("VK_LBUTTON"); + await sleep(500); + log.info(`角色切换完成:${character} -> ${actualName}`); + return true; + } else { + log.error(`该角色已在队伍中,无需切换`); + await sleep(300); + keyPress("VK_ESCAPE"); + await sleep(500); + return false; + } + } catch (error) { + log.error("角色切换过程中出错: {error}", error.message); + return false; + } + }, + + // 处理自动任务步骤 + processAutoTask: async (step) => { + try { + const { action, taskType, config } = step.data; + + if (!action) { + log.error("自动任务参数不完整,需要 action 参数"); + return false; + } + + log.info("执行自动任务操作: {action}", action); + + switch (action) { + case "enable": + // 启用自动任务 + if (!taskType) { + log.error("启用自动任务需要指定 taskType"); + return false; + } + + if (config && typeof config === "object") { + log.info("启用自动任务: {type},配置: {config}", taskType, JSON.stringify(config)); + dispatcher.addTimer(new RealtimeTimer(taskType, config)); + } else { + log.info("启用自动任务: {type}", taskType); + dispatcher.addTimer(new RealtimeTimer(taskType)); + } + break; + + case "disable": + // 取消所有自动任务 + log.info("取消所有自动任务"); + dispatcher.ClearAllTriggers(); + break; + + default: + log.error("未知的自动任务操作: {action}", action); + return false; + } + + return true; + } catch (error) { + log.error("处理自动任务步骤时出错: {error}", error.message); + return false; + } + }, + }; + + // 步骤处理器工厂 - 更好的扩展性设计 + // TAG:添加脚本功能点2 + const StepProcessorFactory = { + // 步骤处理器映射表 + processors: { + 地图追踪: async (step, context) => { + await StepProcessor.processMapTracking( + step, + context.commissionName, + context.location + ); + }, + + 等待: async (step, context) => { + const waitTime = step.data || 5000; + log.info("等待 {time} 毫秒", waitTime); + await sleep(waitTime); + }, + + 追踪委托: async (step, context) => { + await StepProcessor.processCommissionTracking(step); + }, + + 键鼠脚本: async (step, context) => { + await StepProcessor.processKeyMouseScript( + step, + context.commissionName, + context.location + ); + }, + + 对话: async (step, context) => { + await Execute.processDialogStep( + step, + context.priorityOptions, + context.npcWhiteList, + context.isInMainUI + ); + }, + + 按键: async (step, context) => { + await StepProcessor.processKeyPress(step); + }, + + tp: async (step, context) => { + await StepProcessor.processTeleport(step); + }, + + 等待返回主界面: async (step, context) => { + await StepProcessor.processWaitMainUI(context.isInMainUI); + }, + + 地址检测: async (step, context) => { + //await StepProcessor.processLocationDetection(step,context.commissionName,context.location,context.processSteps,context.currentIndex); + log.info("地址检测当前版本用不了,请联请联系作者获取最新版"); + }, + + 委托描述检测: async (step, context) => { + await StepProcessor.processCommissionDescriptionDetection( + step, + context.commissionName, + context.location, + context.processSteps, + context.currentIndex + ); + }, + + 切换角色: async (step, context) => { + await StepProcessor.processSwitchRole(step); + }, + + 自动任务: async (step, context) => { + await StepProcessor.processAutoTask(step); + }, + }, + + // 注册新的步骤处理器 + register: (stepType, processor) => { + StepProcessorFactory.processors[stepType] = processor; + log.info("注册新的步骤处理器: {type}", stepType); + }, + + // 处理步骤 + process: async (step, context) => { + const processor = StepProcessorFactory.processors[step.type]; + if (processor) { + await processor(step, context); + } else { + log.warn("未知的流程类型: {type}", step.type); + } + }, + }; + + // UI工具模块 - 处理UI检测和文本提取等工具函数 + const UIUtils = { + // 创建主界面检测函数 + createMainUIChecker: () => { + const paimonMenuRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync("Data/RecognitionObject/paimon_menu.png"), + 0, + 0, + genshin.width / 3.0, + genshin.width / 5.0 + ); + + return () => { + let captureRegion = captureGameRegion(); + let res = captureRegion.Find(paimonMenuRo); + return !res.isEmpty(); + }; + }, + + // 人名提取函数 + extractName: (text) => { + const patterns = [ + /与(.+?)对话/, + /与(.+?)一起/, + /同(.+?)交谈/, + /向(.+?)打听/, + /向(.+?)回报/, + /向(.+?)报告/, + /给(.+?)听/, + /陪同(.+?)\S+/, + /找到(.+?)\S+/, + /询问(.+?)\S+/, + /拜访(.+?)\S+/, + /寻找(.+?)\S+/, + /告诉(.+?)\S+/, + /带(.+?)去\S+/, + /跟随(.+?)\S+/, + /协助(.+?)\S+/, + /请教(.+?)\S+/, + /拜托(.+?)\S+/, + /委托(.+?)\S+/, + ]; + + for (const pattern of patterns) { + const match = text.match(pattern); + if (match && match[1]) { + return match[1].trim(); + } + } + return null; + }, + }; + + // 对话处理模块 - 处理自动对话相关功能 + const DialogProcessor = { + // 执行优化的自动对话 + executeOptimizedAutoTalk: async ( + extractedName = null, + skipCount = 5, + customPriorityOptions = null, + customNpcWhiteList = null, + isInMainUI + ) => { + // 使用传入的参数,不再加载默认配置 + const effectivePriorityOptions = customPriorityOptions || []; + const effectiveNpcWhiteList = customNpcWhiteList || []; + + // 初始化 + keyPress("V"); + + // 初始触发剧情 - 识别人名并点击 + extractedName = []; + // 人名区域OCR识别 + const nameRegion = { X: 75, Y: 240, WIDTH: 225, HEIGHT: 60 }; + let nameResults = await Utils.easyOCR(nameRegion); + // 尝试提取任务人名 + for (let i = 0; i < nameResults.count; i++) { + let text = nameResults[i].text; + log.info(`任务区域识别文本: ${text}`); + + // 尝试提取任务人名 + let name = UIUtils.extractName(text); + if (name) { + extractedName = name; + log.info(`提取到人名: ${extractedName}`); + break; + } + } + + // 对话选项区域OCR识别 + const dialogRegion = { X: 1150, Y: 300, WIDTH: 350, HEIGHT: 400 }; + nameResults = await Utils.easyOCR(dialogRegion); + let clickedWhitelistNPC = false; + let clickedExtractedName = false; + + // 处理人名区域的OCR结果 + if (nameResults.count > 0) { + log.info(`人名区域识别到 ${nameResults.count} 个文本`); + + // 首先尝试点击白名单中的NPC + for (let i = 0; i < nameResults.count; i++) { + let text = nameResults[i].text; + let res = nameResults[i]; + log.info( + "人名区域识别到{text}:位置({x},{y},{h},{w})", + res.text, + res.x, + res.y, + res.width, + res.Height + ); + // 检查是否包含白名单中的NPC名称 + for (let j = 0; j < effectiveNpcWhiteList.length; j++) { + if (text.includes(effectiveNpcWhiteList[j])) { + log.info(`找到白名单NPC: ${effectiveNpcWhiteList[j]},点击该NPC`); + keyDown("VK_MENU"); + await sleep(500); + click(res.x, res.y); + leftButtonClick(); + keyUp("VK_MENU"); + clickedWhitelistNPC = true; + break; + } + } + if (clickedWhitelistNPC) break; + } + + // 如果没有点击白名单NPC,尝试点击包含提取到的人名的选项 + if (!clickedWhitelistNPC && extractedName) { + for (let i = 0; i < nameResults.count; i++) { + let text = nameResults[i].text; + let res = nameResults[i]; + if (text.includes(extractedName)) { + log.info(`点击包含提取到任务人名的选项: ${text}`); + keyDown("VK_MENU"); + await sleep(500); + click(res.x, res.y); + leftButtonClick(); + keyUp("VK_MENU"); + clickedExtractedName = true; + break; + } + } + } + } + + // 如果没有找到NPC,使用默认触发 + if (!clickedWhitelistNPC && !clickedExtractedName) { + log.info("未找到匹配的NPC,使用默认触发方式"); + keyPress("F"); // 默认触发剧情 + await sleep(500); + } + + // 重复执行自动剧情,直到返回主界面 + let maxAttempts = 100; // 设置最大尝试次数,防止无限循环 + let attempts = 0; + let repetition = 0; + let oldcount = 1; + await sleep(1000); + log.info("开始执行自动剧情"); + + while (!isInMainUI() && attempts < maxAttempts) { + attempts++; + + // 正常跳过对话 + await genshin.chooseTalkOption("纳西妲美貌举世无双", skipCount, false); + + if (isInMainUI()) { + log.info("检测到已返回主界面,结束循环"); + break; + } + + //keyPress("VK_ESCAPE");//关弹窗 + + // 每skipCount次跳过后,进行OCR识别 + if (true) { + // 检查是否有匹配的优先选项 + let foundPriorityOption = false; + + // 获取对话区域截图并进行OCR识别 + const dialogOptionsRegion = { + X: 1250, + Y: 450, + WIDTH: 550, + HEIGHT: 400, + }; + let ocrResults = await Utils.easyOCR(dialogOptionsRegion); + if (ocrResults.count > 0) { + log.info(`识别到 ${ocrResults.count} 个选项`); + + if (ocrResults.count === oldcount) { + repetition++; + } + else { + repetition = 0; + } + oldcount = ocrResults.count; + if (repetition >= 5) { + log.info("连续5次选项数量一样,执行F跳过"); + keyPress("F"); + keyPress("VK_ESCAPE"); + repetition = 0; + } + for (let i = 0; i < ocrResults.count; i++) { + let ocrText = ocrResults[i].text; + + // 检查是否在优先选项列表中 + for (let j = 0; j < effectivePriorityOptions.length; j++) { + if (ocrText.includes(effectivePriorityOptions[j])) { + log.info( + `找到优先选项: ${effectivePriorityOptions[j]},点击该选项` + ); + // 点击该选项 + ocrResults[i].click(); + await sleep(500); + foundPriorityOption = true; + break; + } + } + + if (foundPriorityOption) break; + } + + // 如果没有找到优先选项,则使用默认跳过 + if (!foundPriorityOption) { + await genshin.chooseTalkOption("", 1, false); + } + } + } + + // 检查是否已返回主界面 + if (isInMainUI()) { + log.info("检测到已返回主界面,结束循环"); + break; + } + } + + if (isInMainUI()) { + log.info("已返回主界面,自动剧情执行完成"); + keyPress("V"); + } else { + log.warn(`已达到最大尝试次数 ${maxAttempts},但未检测到返回主界面`); + } + }, + }; + + const Execute = { + // 寻找委托目的地址带追踪任务 + findCommissionTarget: async (commissionName) => { + try { + log.info("开始寻找委托目标位置: {name}", commissionName); + + // 确保回到主界面 + await genshin.returnMainUi(); + + // 第一步,检测这个任务是否在1-3之中 + let index = 4; + + try { + // 进入委托界面 + const enterSuccess = await UI.enterCommissionScreen(); + if (!enterSuccess) { + log.error("无法进入委托界面"); + return null; + } + + await sleep(1000); + + // 识别前3个委托 + log.debug("findCommissionTarget识别前3个委托"); + + // 先识别前3个Main_Dev区域(索引0-2) + for (let regionIndex = 0; regionIndex < 3; regionIndex++) { + const region = Datas.OCR_REGIONS.Main_Dev[regionIndex]; + + try { + let results = await Utils.easyOCR(region); + + // 处理识别结果,取第一个有效结果 + for (let i = 0; i < results.count; i++) { + let result = results[i]; + let text = Utils.cleanText(result.text); + if (text && text.length >= 2) { + log.info( + '第{regionIndex}个委托: "{text}"', + regionIndex + 1, + text + ); + if (text === commissionName) { + index = regionIndex + 1; + log.info( + "找到委托 {name} 在位置 {index}", + commissionName, + index + ); + break; + } + } + } + + // 如果找到了委托,跳出外层循环 + if (index !== 4) { + break; + } + } catch (regionError) { + log.error( + "识别第{index}个委托区域时出错: {error}", + regionIndex + 1, + regionError + ); + continue; + } + } + } catch (error) { + log.error("findCommissionTarget第一步失败: {error}", error.message); + } + + // 如果前3个没找到,检查第4个委托(需要翻页) + if (index === 4) { + try { + log.info("前3个委托中未找到,检查第4个委托"); + await UI.pageScroll(1); + + const region = Datas.OCR_REGIONS.Main_Dev[3]; // 第4个区域 + let results = await Utils.easyOCR(region); + + for (let i = 0; i < results.count; i++) { + let result = results[i]; + let text = Utils.cleanText(result.text); + if (text && text.length >= 2) { + log.info('第4个委托: "{text}"', text); + if (text === commissionName) { + index = 4; + log.info("找到委托 {name} 在第4个位置", commissionName); + break; + } + } + } + } catch (fourthError) { + log.error("识别第4个委托时出错: {error}", fourthError); + } + } + + // 第二步:进入对应的大地图,获取位置 + let currentCommissionPosition = null; + try { + // 点击详情按钮 + if (index === 4) { + // 第4个委托已经翻页了,使用索引3 + index = 3; + } + + const button = Datas.COMMISSION_DETAIL_BUTTONS[index - 1]; + if (button) { + log.info("点击委托详情按钮: {id}", button.id); + click(button.x, button.y); + await sleep(2000); + + // 检查是否有追踪按钮并点击 + const trackingResult = await Utils.easyOCROne( + Datas.OCR_REGIONS.COMMISSION_TRACKING + ); + if (trackingResult === "追踪") { + log.info("发现追踪按钮,点击追踪"); + click(1693, 1000); + await sleep(1000); + } + + // 退出详情页面 + log.info("退出详情页面 - 按ESC"); + keyDown("VK_ESCAPE"); + await sleep(300); + keyUp("VK_ESCAPE"); + await sleep(1200); + await genshin.setBigMapZoomLevel(2); + // 获取地图坐标并保存 + const bigMapPosition = genshin.getPositionFromBigMap(); + if (bigMapPosition) { + currentCommissionPosition = bigMapPosition; + log.info( + "当前委托位置: ({x}, {y})", + bigMapPosition.x, + bigMapPosition.y + ); + } + + await genshin.returnMainUi(); + } else { + log.error("无效的委托按钮索引: {index}", index); + } + } catch (error) { + log.error("findCommissionTarget第2步失败: {error}", error.message); + } + + return currentCommissionPosition; + } catch (error) { + log.error("寻找委托目标位置时出错: {error}", error.message); + return null; + } + }, + + // 读取并解析流程文件为步骤数组 + loadAndParseProcessFile: async ( + commissionName, + location, + locationprocessFilePath = "process.json" + ) => { + const processFilePath = `${Datas.TALK_PROCESS_BASE_PATH}/${commissionName}/${location}/${locationprocessFilePath}`; + let processContent; + let processSteps; + try { + processContent = await file.readText(processFilePath); + log.info("找到对话委托流程文件: {path}", processFilePath); + } catch (error) { + log.warn( + "未找到对话委托 {name} 在 {location} 的流程文件: {path}", + commissionName, + location, + processFilePath + ); + return false; + } + // 解析流程内容 + + try { + // 尝试解析为JSON格式 + const jsonData = JSON.parse(processContent); + if (Array.isArray(jsonData)) { + processSteps = jsonData; + log.debug("JSON流程解析成功"); + } else { + log.error("JSON流程格式错误,应为数组"); + return false; + } + } catch (jsonError) { + // 如果不是JSON格式,按简单格式处理 + const lines = processContent + .split("\n") + .map((line) => line.trim()) + .filter((line) => line.length > 0); + processSteps = lines; + } + return processSteps; + }, + + // 执行对话委托流程(优化版) + executeTalkCommission: async (commissionName, location) => { + try { + const processSteps = await Execute.loadAndParseProcessFile( + commissionName, + location, + "process.json" + ); + + // 使用统一的处理器执行流程 + return await Execute.executeUnifiedTalkProcess( + processSteps, + commissionName, + location + ); + } catch (error) { + log.error("执行对话委托时出错: {error}", error.message); + return false; + } + }, + + // 自动导航到NPC对话位置(从main_branch.js移植) + autoNavigateToTalk: async (npcName = "", iconType = "") => { + try { + // 设置目标NPC名称 + const textArray = npcName; + + // 根据图标类型选择不同的识别对象 + let boxIconRo; + if (iconType === "Bigmap") { + boxIconRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync( + "Data/RecognitionObject/IconBigmapCommission.jpg" + ) + ); + log.info("使用大地图图标"); + } + else if (iconType === "Question") { + boxIconRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync( + "Data/RecognitionObject/IconQuestionCommission.png" + ) + ); + log.info("使用问号任务图标"); + } + else { + // 默认使用任务图标 + boxIconRo = RecognitionObject.TemplateMatch( + file.ReadImageMatSync( + "Data/RecognitionObject/IconTaskCommission.png" + ) + ); + log.info("使用任务图标"); + } + + let advanceNum = 0; //前进次数 + + middleButtonClick(); + await sleep(800); + + while (true) { + // 1. 优先检查是否已到达 + await sleep(500);// 等待0.5秒 + let captureRegion = captureGameRegion(); + let rewardTextArea = captureRegion.DeriveCrop(1210, 515, 200, 50); + let rewardResult = rewardTextArea.find(RecognitionObject.ocrThis); + log.debug("检测到文字: " + rewardResult.text); + // 检测到特点文字则结束!!! + if (rewardResult.text == textArray) { + log.info("已到达指定位置,检测到文字: " + rewardResult.text); + return; + } else if (advanceNum > 80) { + throw new Error("前进时间超时"); + } + // 2. 未到达领奖点,则调整视野 + for (let i = 0; i < 100; i++) { + captureRegion = captureGameRegion(); + let iconRes = captureRegion.Find(boxIconRo); + log.info("检测到委托图标位置 ({x}, {y})", iconRes.x, iconRes.y); + if (iconRes.x >= 920 && iconRes.x <= 980 && iconRes.y <= 540) { + advanceNum++; + log.info(`视野已调正,前进第${advanceNum}次`); + break; + } else { + // 小幅度调整 + if (iconRes.y >= 520) moveMouseBy(0, 920); + let adjustAmount = iconRes.x < 920 ? -20 : 20; + let distanceToCenter = Math.abs(iconRes.x - 920); // 计算与920的距离 + let scaleFactor = Math.max(1, Math.floor(distanceToCenter / 50)); // 根据距离缩放,最小为1 + let adjustAmount2 = iconRes.y < 540 ? scaleFactor : 10; + moveMouseBy(adjustAmount * adjustAmount2, 0); + await sleep(100); + } + if (i > 50) throw new Error("视野调整超时"); + } + // 3. 前进一小步 + keyDown("w"); + await sleep(200); + keyPress("VK_SPACE"); + await sleep(200); + keyPress("VK_SPACE"); + await sleep(200); + keyUp("w"); + await sleep(200); // 等待角色移动稳定 + } + } catch (error) { + log.error("自动导航到NPC对话位置时出错: {error}", error.message); + throw error; + } + }, + + // 统一的对话委托流程处理器(重构版 - 更简洁的主控制函数) + executeUnifiedTalkProcess: async ( + processSteps, + commissionName, + location + ) => { + try { + log.info("执行统一对话委托流程: {name}", commissionName); + + if (!processSteps || processSteps.length === 0) { + log.warn("没有找到有效的流程步骤"); + return false; + } + + // 初始化UI检测器和配置 + const isInMainUI = UIUtils.createMainUIChecker(); + let priorityOptions = []; + let npcWhiteList = []; + + // 刚开始就追踪委托目标 + //await Execute.findCommissionTarget(commissionName); + + // 执行处理步骤 + for (let i = 0; i < processSteps.length; i++) { + const step = processSteps[i]; + log.info("执行流程步骤 {step}: {type}", i + 1, step.type || step); + + try { + // 重置为默认值并处理自定义配置 + const stepConfig = Execute.processStepConfiguration( + step, + priorityOptions, + npcWhiteList + ); + priorityOptions = stepConfig.priorityOptions; + npcWhiteList = stepConfig.npcWhiteList; + + // TAG:添加脚本功能点3 + const context = { + commissionName, + location, + processSteps, + currentIndex: i, + isInMainUI, + priorityOptions, + npcWhiteList, + }; + + // 处理步骤 + await Execute.processStep(step, context); + } catch (stepError) { + log.error( + "执行步骤 {step} 时出错: {error}", + i + 1, + stepError.message + ); + // 继续执行下一步,不中断整个流程 + } + + // 每个步骤之间等待一段时间 + await sleep(2000); + } + + log.info("统一对话委托流程执行完成: {name}", commissionName); + return true; + } catch (error) { + log.error("执行统一对话委托流程时出错: {error}", error.message); + return false; + } + }, + + // 处理步骤配置(优先选项和NPC白名单) + processStepConfiguration: ( + step, + defaultPriorityOptions, + defaultNpcWhiteList + ) => { + let priorityOptions = [...defaultPriorityOptions]; + let npcWhiteList = [...defaultNpcWhiteList]; + + // 如果步骤中包含自定义的优先选项和NPC白名单,则使用它们 + if (step.data && typeof step.data === "object") { + if (Array.isArray(step.data.priorityOptions)) { + priorityOptions = step.data.priorityOptions; + log.info("使用自定义优先选项: {options}", priorityOptions.join(", ")); + } + if (Array.isArray(step.data.npcWhiteList)) { + npcWhiteList = step.data.npcWhiteList; + log.info("使用自定义NPC白名单: {npcs}", npcWhiteList.join(", ")); + } + } + + return { priorityOptions, npcWhiteList }; + }, + + // 处理单个步骤 + processStep: async (step, context) => { + if (typeof step === "string") { + // 简单格式处理 + await Execute.processStringStep(step, context); + } else if (typeof step === "object") { + // JSON格式处理 + await Execute.processObjectStep(step, context); + } + }, + + // 处理字符串格式的步骤 + processStringStep: async (step, context) => { + if (step.endsWith(".json")) { + // 地图追踪文件 + await StepProcessor.processMapTracking( + step, + context.commissionName, + context.location + ); + } else if (step === "F") { + // 按F键并执行优化的自动剧情 + log.info("执行自动剧情"); + await DialogProcessor.executeOptimizedAutoTalk( + null, + 5, + context.priorityOptions, + context.npcWhiteList, + context.isInMainUI + ); + } + }, + + // 处理对象格式的步骤 + processObjectStep: async (step, context) => { + if (step.note) { + log.info("步骤说明: {note}", step.note); + } + + // 使用步骤处理器工厂来处理步骤 + await StepProcessorFactory.process(step, context); + }, + + // 示例:注册自定义步骤处理器 + registerCustomStepProcessors: () => { + // 注册等待步骤处理器 + StepProcessorFactory.register("等待", async (step, context) => { + const waitTime = step.data || 1000; + log.info("等待 {time} 毫秒", waitTime); + await sleep(waitTime); + }); + + // 注册截图步骤处理器 + StepProcessorFactory.register("截图", async (step, context) => { + const filename = step.data || `screenshot_${Date.now()}.png`; + log.info("截图保存为: {filename}", filename); + // 这里可以添加实际的截图逻辑 + }); + + // 注册条件检查步骤处理器 + StepProcessorFactory.register("条件检查", async (step, context) => { + const condition = step.data.condition; + const trueSteps = step.data.trueSteps || []; + const falseSteps = step.data.falseSteps || []; + + log.info("执行条件检查: {condition}", condition); + + // 这里可以添加条件判断逻辑 + const conditionResult = true; // 示例结果 + + const stepsToExecute = conditionResult ? trueSteps : falseSteps; + for (const subStep of stepsToExecute) { + await Execute.processStep(subStep, context); + } + }); + + log.info("自定义步骤处理器注册完成"); + }, + + // 处理对话步骤 + processDialogStep: async ( + step, + priorityOptions, + npcWhiteList, + isInMainUI + ) => { + log.info("执行对话"); + let skipCount = 2; // 默认跳过2次 + + // 处理对话选项 + if (typeof step.data === "number") { + // 兼容旧版本,如果data是数字,则视为skipCount + skipCount = step.data; + } else if (typeof step.data === "object" && step.data.skipCount) { + // 新版本,data是对象,包含skipCount + skipCount = step.data.skipCount; + } + + // 执行对话,使用当前步骤的优先选项和NPC白名单 + await DialogProcessor.executeOptimizedAutoTalk( + null, + skipCount, + priorityOptions, + npcWhiteList, + isInMainUI + ); + }, + }; + + const CommissionsFunc = { + + // 计算两点之间的距离 + calculateDistance: (point1, point2) => { + if ( + !point1 || + !point2 || + !point1.X || + !point1.Y || + !point2.x || + !point2.y + ) { + log.warn("无效的位置数据"); + return Infinity; + } + return Math.sqrt( + Math.pow(point1.X - point2.x, 2) + Math.pow(point1.Y - point2.y, 2) + ); + }, + + // 获取委托的目标坐标(从路径追踪文件中获取最后一个坐标) + getCommissionTargetPosition: async (scriptPath) => { + try { + const scriptContent = await file.readText(scriptPath); + const pathData = JSON.parse(scriptContent); + + if (!pathData.positions || pathData.positions.length === 0) { + log.warn("路径追踪文件 {path} 中没有有效的坐标数据", scriptPath); + return null; + } + + const lastPosition = pathData.positions[pathData.positions.length - 1]; + if (!lastPosition.x || !lastPosition.y) { + log.warn( + "路径追踪文件 {path} 的最后一个路径点缺少坐标数据", + scriptPath + ); + return null; + } + + log.debug( + "从脚本路径 {path} 获取到目标坐标: ({x}, {y})", + scriptPath, + lastPosition.x, + lastPosition.y + ); + return { + x: lastPosition.x, + y: lastPosition.y, + }; + } catch (error) { + log.error("获取委托目标坐标时出错: {error}", error.message); + return null; + } + }, + + // 执行带分支的对话委托流程(从main_branch.js移植) + executeTalkCommissionWithBranches: async (processPath) => { + try { + log.info("开始执行对话委托流程: {path}", processPath); + + // 读取流程文件 + const processContent = await file.readText(processPath); + + // 解析流程内容 + const branches = CommissionsFunc.parseProcessBranches(processContent); + + // 确定要执行的分支 + const branchToExecute = await CommissionsFunc.determineBranch(branches); + + if (branchToExecute) { + log.info("执行分支: {id}", branchToExecute.id); + await Execute.executeUnifiedTalkProcess(branchToExecute.steps); + } else { + log.warn("没有找到匹配的分支,执行默认流程"); + // 尝试解析整个内容作为单一流程 + const steps = JSON.parse(processContent); + await Execute.executeUnifiedTalkProcess(steps); + } + } catch (error) { + log.error("执行对话委托流程出错: {error}", error.message); + } + }, + + // 解析流程文件中的分支(从main_branch.js移植) + parseProcessBranches: (content) => { + const branches = []; + const branchRegex = + /分支:(\d+)[\s\S]*?判断方法"([^"]+)"[\s\S]*?data:"([^"]+)"([\s\S]*?)(?=分支:|$)/g; + + let match; + while ((match = branchRegex.exec(content)) !== null) { + const branchId = parseInt(match[1]); + const judgmentMethod = match[2]; + const judgmentData = match[3]; + const stepsContent = match[4].trim(); + + // 解析步骤 + let steps = []; + try { + // 尝试解析JSON数组 + const jsonContent = `[${stepsContent}]`; + steps = JSON.parse(jsonContent); + } catch (error) { + log.warn("解析分支{id}的步骤出错: {error}", branchId, error); + continue; + } + + branches.push({ + id: branchId, + method: judgmentMethod, + data: judgmentData, + steps: steps, + }); + } + + return branches; + }, + + // 确定要执行的分支(从main_branch.js移植) + determineBranch: async (branches) => { + for (const branch of branches) { + switch (branch.method) { + case "坐标": + if (await CommissionsFunc.checkCoordinateMatch(branch.data)) { + return branch; + } + break; + + case "任务追踪": + if (await CommissionsFunc.checkTaskMatch(branch.data)) { + return branch; + } + break; + + default: + log.warn("未知的判断方法: {method}", branch.method); + } + } + + return null; + }, + + // 检查当前坐标是否匹配(从main_branch.js移植) + checkCoordinateMatch: async (coordData) => { + try { + const [targetX, targetY] = coordData + .split(",") + .map((c) => parseFloat(c.trim())); + + // 获取当前委托位置 + const playerPos = await CommissionsFunc.getCurrentCommissionPosition(); + if (!playerPos) return false; + + // 计算距离 + const distance = CommissionsFunc.calculateDistance(playerPos, { + x: targetX, + y: targetY, + }); + log.info( + "当前位置: ({x}, {y}),目标位置: ({tx}, {ty}),距离: {d}", + playerPos.x, + playerPos.y, + targetX, + targetY, + distance + ); + + // 如果距离小于阈值,认为匹配 + return distance < 100; // 可以调整阈值 + } catch (error) { + log.error("检查坐标匹配出错: {error}", error.message); + return false; + } + }, + + // 检查当前任务是否匹配(从main_branch.js移植) + checkTaskMatch: async (taskName) => { + try { + // 识别左上角任务区域文本 + const taskRegion = { X: 75, Y: 240, WIDTH: 225, HEIGHT: 60 }; + const taskResults = await Utils.easyOCR(taskRegion); + + // 检查是否包含目标任务名称 + for (let i = 0; i < taskResults.count; i++) { + const text = taskResults[i].text; + log.info(`任务区域识别文本: ${text}`); + + if (text.includes(taskName)) { + log.info(`找到匹配任务: ${taskName}`); + return true; + } + } + + log.info(`未找到匹配任务: ${taskName}`); + return false; + } catch (error) { + log.error("检查任务匹配出错: {error}", error.message); + return false; + } + }, + + // 获取当前委托位置(辅助函数) + getCurrentCommissionPosition: async () => { + try { + // 这里可以通过多种方式获取当前位置 + // 1. 从大地图获取 + await genshin.setBigMapZoomLevel(2); + const bigMapPosition = genshin.getPositionFromBigMap(); + if (bigMapPosition) { + return bigMapPosition; + } + + // 2. 从当前委托位置变量获取(如果有的话) + if (currentCommissionPosition) { + return currentCommissionPosition; + } + + log.warn("无法获取当前委托位置"); + return null; + } catch (error) { + log.error("获取当前委托位置时出错: {error}", error.message); + return null; + } + }, + }; + + const Test = async () => { + Utils.iframe(Datas.OCR_REGIONS.Main_Dev[0]); + // 角色切换步骤使用示例: + // 在process.json文件中添加如下步骤: + // { + // "type": "切换角色", + // "data": { + // "position": 1, + // "character": "枫原万叶" + // }, + // "note": "切换第1号位为枫原万叶" + // } + + // // 切换角色示例(可选) + // // 如果需要切换角色,可以取消注释下面的代码 + // const switchRoleStep = { + // type: "切换角色", + // data: { position: 1, character: "枫原万叶" }, + // note: "切换第1号位为枫原万叶", + // }; + // await StepProcessor.processSwitchRole(switchRoleStep); + }; + + //Main + const Main = async () => { + log.debug("版本: {version}", VERSION); + + try { + // 读取设置 + const team = settings.team || ""; + const elementTeam = settings.elementTeam || ""; + const selectedProcess = settings.process_selector || "刷新剧情列表"; + + if (selectedProcess === "刷新剧情列表") { + // 刷新操作:扫描所有process.json并更新设置 + await refreshProcessList(); + log.info("委托列表已刷新,请重新选择并运行"); + } else { + // 解析选中的委托路径 + const pathParts = selectedProcess.split('-'); + + // 确保至少有两个文件夹层级 + if (pathParts.length < 2) { + throw new Error("无效的委托路径格式"); + } + + // 提取最后两个文件夹名 + const folder1 = pathParts[pathParts.length - 2]; + const folder2 = pathParts[pathParts.length - 1]; + + // 设置动态基础路径(倒数第二个文件夹之前的所有部分) + Datas.TALK_PROCESS_BASE_PATH = "process/"+pathParts.slice(0, pathParts.length - 2).join('/'); + + log.info("执行委托: {path}", selectedProcess); + log.debug("基础路径: {basePath}", Datas.TALK_PROCESS_BASE_PATH); + log.debug("文件夹1: {folder1}, 文件夹2: {folder2}", folder1, folder2); + + await Execute.executeTalkCommission(folder1, folder2); + dispatcher.ClearAllTriggers(); + } + } catch (error) { + log.error("执行出错: {error}", error.message); + errorlog(); + } +}; + + +// 刷新委托列表(保留完整路径结构) +async function refreshProcessList() { + // 读取所有process.json文件 + const allFiles = await readFolder("process/", true); + + // 筛选并处理符合条件的process.json文件 + const processEntries = allFiles + .filter(file => file.fileName === "process.json") + .map(file => { + const pathSegments = file.folderPathArray; + + // 确保路径中有"process"部分 + const processIndex = pathSegments.indexOf("process"); + if (processIndex === -1 || processIndex >= pathSegments.length - 2) { + throw new Error(`无效的路径结构: ${file.fullPath}`); + } + + // 提取"process"之后的所有部分 + const relativePath = pathSegments.slice(processIndex + 1); + + // 确保至少有两个文件夹层级 + if (relativePath.length < 2) { + throw new Error(`路径层级不足: ${file.fullPath}`); + } + + // 创建选项名称(用连字符连接所有文件夹名) + const optionName = relativePath.join('-'); + + return { + name: optionName, + path: file.fullPath + }; + }); + + // 创建选项列表(以"刷新剧情列表"开头) + const options = ["刷新剧情列表", ...processEntries.map(entry => entry.name)]; + + // 更新settings.json + await updateSettingsFile(options); + log.info("已更新{count}个委托选项", processEntries.length); +} + +// 更新settings.json文件 +async function updateSettingsFile(options) { + const settingsPath = "./settings.json"; + let settingsArray; + + try { + // 读取现有设置 + const content = file.readTextSync(settingsPath); + settingsArray = JSON.parse(content); + } catch (e) { + // 文件不存在或解析失败时创建默认设置 + throw new Error("设置文件不存在"); + } + + // 更新process_selector选项 + const selectorIndex = settingsArray.findIndex(item => item.name === "process_selector"); + if (selectorIndex !== -1) { + settingsArray[selectorIndex].options = options; + settingsArray[selectorIndex].default = "刷新剧情列表"; + } else { + // 如果不存在则添加 + settingsArray.push({ + "name": "process_selector", + "type": "select", + "label": "可执行剧情列表", + "options": options, + "default": "刷新剧情列表" + }); + } + + // 写入更新后的设置 + const success = file.writeTextSync(settingsPath, JSON.stringify(settingsArray, null, 2)); + if (!success) { + throw new Error("写入设置文件失败"); + } +} + +// 文件夹读取函数(优化版) +async function readFolder(folderPath, onlyJson) { + log.info(`开始读取文件夹: ${folderPath}`); + const folderStack = [folderPath]; + const files = []; + + while (folderStack.length > 0) { + const currentPath = folderStack.pop(); + const items = file.ReadPathSync(currentPath); + const subFolders = []; + + for (const itemPath of items) { + if (file.IsFolder(itemPath)) { + subFolders.push(itemPath); + } else if (!onlyJson || itemPath.toLowerCase().endsWith(".json")) { + const pathParts = itemPath.split(/[\\/]/).filter(Boolean); + const fileName = pathParts.pop(); + files.push({ + fullPath: itemPath, + fileName: fileName, + folderPathArray: pathParts + }); + } + } + + // 保持原始顺序添加子文件夹 + folderStack.push(...subFolders.reverse()); + } + + return files; +} + +await Main(); +})(); diff --git a/repo/js/AAA-Auto-Story-Loader/manifest.json b/repo/js/AAA-Auto-Story-Loader/manifest.json new file mode 100644 index 000000000..7a91bd76e --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/manifest.json @@ -0,0 +1,15 @@ +{ + "manifest_version": 1, + "name": "自动剧情加载器", + "version": "1.0", + "tags": ["剧情","任务"], + "description": "剧情自动执行器一键挂机过剧情:自动寻路、对话、战斗,脚本拖进调度器就能跑,仅提供技术框架,详情见说明文档", + "authors": [ + { + "name": "星野", + "links": "https://github.com/LX666-666" + } + ], + "settings_ui": "settings.json", + "main": "main.js" +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/process.json new file mode 100644 index 000000000..4ce26c4f6 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/process.json @@ -0,0 +1,3 @@ +圆滚滚的大团骚乱-1.json +F +圆滚滚的大团骚乱-2.json \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-1.json new file mode 100644 index 000000000..cdeb8f6c9 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-1.json @@ -0,0 +1,130 @@ +{ + "info": { + "name": "圆滚滚的大团骚乱-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "圆滚滚的大团骚乱-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -578.8076171875, + "y": 1853.396484375, + "action_params": "" + }, + { + "id": 2, + "x": -496.169921875, + "y": 1821.05224609375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -488.1904296875, + "y": 1815.54638671875, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -446.2294921875, + "y": 1787.8017578125, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 5, + "x": -444.9365234375, + "y": 1770.681640625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -443.546875, + "y": 1749.72216796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -451.5029296875, + "y": 1708.76025390625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -421.736328125, + "y": 1694.24658203125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -403.6259765625, + "y": 1692.9951171875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": -402.4580078125, + "y": 1686.95361328125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 11, + "x": -409.0654296875, + "y": 1685.06787109375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 12, + "x": -407.998046875, + "y": 1687.474609375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 13, + "x": -405.185546875, + "y": 1687.04296875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-2.json new file mode 100644 index 000000000..71c831600 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/圆滚滚的大团骚乱/晨曦酒庄/圆滚滚的大团骚乱-2.json @@ -0,0 +1,105 @@ +{ + "info": { + "name": "圆滚滚的大团骚乱-2", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "圆滚滚的大团骚乱-2", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -406.5341796875, + "y": 1686.943359375, + "action_params": "" + }, + { + "id": 2, + "x": -412.4833984375, + "y": 1684.91162109375, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -420.6025390625, + "y": 1653.9306640625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -378.134765625, + "y": 1652.35400390625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -353.4072265625, + "y": 1655.490234375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -326.3935546875, + "y": 1633.00146484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -322.5263671875, + "y": 1631.1552734375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 8, + "x": -322.5263671875, + "y": 1631.1552734375, + "type": "path", + "move_mode": "walk", + "action": "anemo_collect", + "action_params": "", + "locked": false + }, + { + "id": 9, + "x": -322.5263671875, + "y": 1631.1552734375, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 10, + "x": -318.3642578125, + "y": 1629.23779296875, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/process.json new file mode 100644 index 000000000..1dcf4ef92 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/process.json @@ -0,0 +1,79 @@ +[ + { + "type": "地图追踪", + "data": "愿风带走思念-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" +}, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待", + "data": 20 + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待对话完成" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待", + "data": 20 + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待对话完成" + }, + { + "type": "地图追踪", + "data": "到风神神像手上.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待", + "data": 20 + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "地图追踪", + "data": "愿风带走思念-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/到风神神像手上.json b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/到风神神像手上.json new file mode 100644 index 000000000..faff3e0bf --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/到风神神像手上.json @@ -0,0 +1,177 @@ +{ + "info": { + "name": "未命名路径", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1750834568592 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -749.390625, + "y": 2263.107421875, + "action_params": "" + }, + { + "id": 2, + "x": -747.5390625, + "y": 2262.634521484375, + "type": "target", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -746.6640625, + "y": 2288.333984375, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 4, + "x": -748.8193359375, + "y": 2312.42626953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -751.2431640625, + "y": 2316.685546875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -752.2646484375, + "y": 2319.859130859375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -748.5244140625, + "y": 2325.636474609375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -745.65625, + "y": 2325.71435546875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -745.3330078125, + "y": 2323.943115234375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": -746.1318359375, + "y": 2319.88916015625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -747.109375, + "y": 2319.633544921875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 12, + "x": -748.43359375, + "y": 2319.788330078125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 13, + "x": -748.9775390625, + "y": 2320.320556640625, + "type": "target", + "move_mode": "climb", + "action": "", + "action_params": "" + }, + { + "id": 14, + "x": -751.6474609375, + "y": 2321.45068359375, + "type": "target", + "move_mode": "climb", + "action": "", + "action_params": "" + }, + { + "id": 15, + "x": -751.7041015625, + "y": 2320.953369140625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 16, + "x": -752.2158203125, + "y": 2320.233154296875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 17, + "x": -753.3447265625, + "y": 2318.937255859375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 18, + "x": -754.841796875, + "y": 2317.612548828125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/愿风带走思念-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/愿风带走思念-1.json new file mode 100644 index 000000000..b3d7da2d9 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/愿风带走思念/蒙德城/愿风带走思念-1.json @@ -0,0 +1,60 @@ +{ + "info": { + "name": "愿风带走思念-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753433105044 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -867.6884765625, + "y": 2281.375244140625, + "action_params": "" + }, + { + "id": 2, + "x": -850.603515625, + "y": 2247.04443359375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -846.548828125, + "y": 2238.94482421875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -849.9765625, + "y": 2236.47802734375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -855.09765625, + "y": 2233.345947265625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/process.json new file mode 100644 index 000000000..564fb2bfc --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/process.json @@ -0,0 +1,2 @@ +此路不通-1.json +F diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/此路不通-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/此路不通-1.json new file mode 100644 index 000000000..b9a931200 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/坠星山谷/此路不通-1.json @@ -0,0 +1,104 @@ +{ + "info": { + "name": "此路不通-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "此路不通-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1167.66015625, + "y": 2133.339599609375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1183.017578125, + "y": 2114.7578125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1204.1376953125, + "y": 2113.880126953125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -1237.576171875, + "y": 2118.918701171875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -1257.15625, + "y": 2134.82568359375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -1256.58984375, + "y": 2136.4736328125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 7, + "x": -1256.58984375, + "y": 2136.4736328125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 8, + "x": -1264.908203125, + "y": 2148.431640625, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": -1258.1123046875, + "y": 2144.801513671875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 10, + "x": -1255.60546875, + "y": 2142.148193359375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/process.json new file mode 100644 index 000000000..564fb2bfc --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/process.json @@ -0,0 +1,2 @@ +此路不通-1.json +F diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/此路不通-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/此路不通-1.json new file mode 100644 index 000000000..d162df89e --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/清泉镇/此路不通-1.json @@ -0,0 +1,94 @@ +{ + "info": { + "name": "此路不通-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "此路不通-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1120.9248046875, + "y": 2190.61865234375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1082.921875, + "y": 2170.38916015625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1077.7021484375, + "y": 2170.734375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -1054.9169921875, + "y": 2147.05078125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -1038.853515625, + "y": 2089.74267578125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -1030.337890625, + "y": 2068.903564453125, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": -1038.0185546875, + "y": 2067.16064453125, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -1029.134765625, + "y": 2071.604736328125, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": -1029.7587890625, + "y": 2067.420166015625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/process.json new file mode 100644 index 000000000..48d4cd80a --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/process.json @@ -0,0 +1,20 @@ +[ + { + "type": "地址检测", + "data": [ + -774, + 1808 + ], + "note": "目的地址与检测地址超过15的情况", + "run": "执行分支一米拉娜.json" + }, + { + "type": "地址检测", + "data": [ + -568, + 1955 + ], + "note": "目的地址与检测地址超过15的情况", + "run": "执行分支二杰克.json" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支一米拉娜.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支一米拉娜.json new file mode 100644 index 000000000..7f5b1afa8 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支一米拉娜.json @@ -0,0 +1,24 @@ +[ + { + "type": "地图追踪", + "data": "此路不通-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待返回主界面" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支二杰克.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支二杰克.json new file mode 100644 index 000000000..77ccd5a1d --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/执行分支二杰克.json @@ -0,0 +1,24 @@ +[ + { + "type": "地图追踪", + "data": "此路不通-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待返回主界面" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-1.json new file mode 100644 index 000000000..85f9d3fc5 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-1.json @@ -0,0 +1,104 @@ +{ + "info": { + "name": "此路不通-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "此路不通-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -914.822265625, + "y": 1795.4873046875, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -904.6572265625, + "y": 1800.70703125, + "type": "path", + "move_mode": "swim", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -889.396484375, + "y": 1808.716796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -834.48046875, + "y": 1806.64208984375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -799.4609375, + "y": 1808.38671875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -772.3544921875, + "y": 1808.93017578125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 7, + "x": -772.3544921875, + "y": 1808.93017578125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 8, + "x": -767.53515625, + "y": 1797.4560546875, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 9, + "x": -778.1533203125, + "y": 1801.01513671875, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 10, + "x": -774.4892578125, + "y": 1808.38037109375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-2.json new file mode 100644 index 000000000..01aeff892 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/此路不通/苍风高地/此路不通-2.json @@ -0,0 +1,112 @@ +{ + "info": { + "name": "此路不通-2", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "此路不通-2", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -578.767578125, + "y": 1853.41552734375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -583.9541015625, + "y": 1872.5712890625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -540.2041015625, + "y": 1932.1123046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -542.66796875, + "y": 1940.15576171875, + "action": "stop_flying", + "move_mode": "fly", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -543.021484375, + "y": 1953.623046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -566.66015625, + "y": 1953.3759765625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": -566.66015625, + "y": 1953.3759765625, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -566.66015625, + "y": 1953.3759765625, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": -565.3037109375, + "y": 1949.03466796875, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 10, + "x": -564.1240234375, + "y": 1956.7958984375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -568.38671875, + "y": 1955.6904296875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/process.json new file mode 100644 index 000000000..3a1088256 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/process.json @@ -0,0 +1,7 @@ +艾琳,未来的骑士-1.json +F +艾琳,未来的骑士-2.json +艾琳,未来的骑士-3.json +艾琳,未来的骑士-4.json +艾琳,未来的骑士-5.json +F \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-1.json new file mode 100644 index 000000000..c45f3214f --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-1.json @@ -0,0 +1,59 @@ +{ + "info": { + "name": "艾琳,未来的骑士-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "艾琳,未来的骑士-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "update_time":20250615 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -749.513671875, + "y": 2263.146484375, + "action_params": "" + }, + { + "id": 2, + "x": -747.12890625, + "y": 2262.235595703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -740.51953125, + "y": 2260.38525390625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -738.279296875, + "y": 2264.16845703125, + "type": "target", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 5, + "x": -730.9306640625, + "y": 2267.73046875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-2.json new file mode 100644 index 000000000..3fb5625f8 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-2.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "艾琳,未来的骑士-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "艾琳,未来的骑士-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -749.513671875, + "y": 2263.146484375, + "action_params": "" + }, + { + "id": 2, + "x": -747.12890625, + "y": 2262.235595703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -740.51953125, + "y": 2260.38525390625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -738.279296875, + "y": 2264.16845703125, + "type": "target", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-3.json new file mode 100644 index 000000000..406be6daa --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-3.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "艾琳,未来的骑士-3", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "艾琳,未来的骑士-3", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -749.513671875, + "y": 2263.146484375, + "action_params": "" + }, + { + "id": 2, + "x": -747.12890625, + "y": 2262.235595703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -740.51953125, + "y": 2260.38525390625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -734.431640625, + "y": 2264.39208984375, + "type": "target", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "300" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-4.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-4.json new file mode 100644 index 000000000..260f56aea --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-4.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "艾琳,未来的骑士-4", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "艾琳,未来的骑士-4", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -749.513671875, + "y": 2263.146484375, + "action_params": "" + }, + { + "id": 2, + "x": -747.12890625, + "y": 2262.235595703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -740.51953125, + "y": 2260.38525390625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -737.0185546875, + "y": 2263.715087890625, + "type": "target", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "200" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-5.json b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-5.json new file mode 100644 index 000000000..584008608 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/艾琳未来的骑士/蒙德城/艾琳,未来的骑士-5.json @@ -0,0 +1,76 @@ +{ + "info": { + "name": "艾琳,未来的骑士-5", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "艾琳,未来的骑士-5", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -733.5673828125, + "y": 2264.910888671875, + "type": "path", + "move_mode": "walk", + "action": "combat_script", + "action_params": "钟离 wait(12),e(hold)," + }, + { + "id": 2, + "x": -734.591796875, + "y": 2262.66064453125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "钟离 wait(12),e(hold),", + "type": "target" + }, + { + "id": 3, + "x": -734.591796875, + "y": 2262.66064453125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "attack,keypress(1),wait(0.3),keypress(Q),wait(2.1),e(hold),", + "type": "target" + }, + { + "id": 4, + "x": -734.591796875, + "y": 2262.66064453125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "attack,keypress(2),wait(0.3),keypress(Q),wait(2.1),e(hold),", + "type": "target" + }, + { + "id": 5, + "x": -734.591796875, + "y": 2262.66064453125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "attack,keypress(3),wait(0.3),keypress(Q),wait(2.1),e(hold),", + "type": "target" + }, + { + "id": 6, + "x": -734.591796875, + "y": 2262.66064453125, + "action": "combat_script", + "move_mode": "walk", + "action_params": "attack,keypress(4),wait(0.3),keypress(Q),wait(2.1),e(hold),", + "type": "target" + }, + { + "id": 7, + "x": -731.0205078125, + "y": 2267.665771484375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/1.json new file mode 100644 index 000000000..7b4ceb03e --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/1.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "1", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -1166.845703125, + "y": 2133.358642578125, + "action_params": "" + }, + { + "id": 2, + "x": -1172.5341796875, + "y": 2103.667236328125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1186.0234375, + "y": 2066.802734375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/2.json new file mode 100644 index 000000000..155c47c06 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/2.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "2", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753774931527 + }, + "positions": [ + { + "id": 1, + "x": -867.685546875, + "y": 2281.36083984375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -846.0087890625, + "y": 2238.015625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -852.6513671875, + "y": 2234.505859375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -854.9996745089811, + "y": 2233.3751376736036, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/process.json new file mode 100644 index 000000000..1567d7234 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/process.json @@ -0,0 +1,64 @@ +[ + { + "type": "地图追踪", + "data": "1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待返回主界面" + }, + { + "type": "自动任务", + "data": { + "action": "disable" + }, + "note": "取消所有自动任务" +}, + { + "type": "地图追踪", + "data": "2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "键鼠脚本", + "data": "对话并关闭阅读.json", + "note": "对话并关闭阅读" + }, + { + "type": "地图追踪", + "data": "1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoSkip" + }, + "note": "开启自动剧情" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "等待返回主界面", + "note": "等待返回主界面" + } +] + diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/对话并关闭阅读.json b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/对话并关闭阅读.json new file mode 100644 index 000000000..7a7735a42 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/触不可及的恋人/风起地/对话并关闭阅读.json @@ -0,0 +1 @@ +{"macroEvents":[{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":3250},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":3375},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":5438},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":5547},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":6766},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":6891},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":8407},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":8532},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":9860},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":9969},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":11328},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":11438},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":13063},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":13157},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":14610},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":14719},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":16063},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":16203},{"type":0,"keyCode":27,"mouseX":0,"mouseY":0,"time":18828},{"type":1,"keyCode":27,"mouseX":0,"mouseY":0,"time":18953},{"type":0,"keyCode":27,"mouseX":0,"mouseY":0,"time":20625},{"type":1,"keyCode":27,"mouseX":0,"mouseY":0,"time":20797},{"type":0,"keyCode":70,"mouseX":0,"mouseY":0,"time":21297},{"type":1,"keyCode":70,"mouseX":0,"mouseY":0,"time":22407},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":22807},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":23047},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":23425},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":23819},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":24072},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":24460},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":25047},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":25488},{"type":0,"keyCode":32,"mouseX":0,"mouseY":0,"time":25769},{"type":1,"keyCode":32,"mouseX":0,"mouseY":0,"time":26110}],"info":{"name":"","description":"","x":319,"y":195,"width":1920,"height":1080,"recordDpi":1.25}} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/process.json new file mode 100644 index 000000000..a9333410e --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/process.json @@ -0,0 +1,40 @@ +[ + { + "type": "地图追踪", + "data": "诗歌交流-坠星山谷-1.json", + "note": "执行第一个地图追踪步骤" + }, + + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + }, + + { + "type": "地图追踪", + "data": "诗歌交流-坠星山谷-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": [ + "Celi dada", + "Muhe ye!", + "Ye dada" + ] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + + { + "type": "地图追踪", + "data": "诗歌交流-坠星山谷-3.json", + "note": "执行第三个地图追踪步骤" + }, + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-1.json new file mode 100644 index 000000000..ec756ed67 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-1.json @@ -0,0 +1,67 @@ +{ + "info": { + "name": "诗歌交流-坠星山谷-1", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "诗歌交流-坠星山谷-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1536.81640625, + "y": 1978.66552734375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1536.109375, + "y": 1982.35986328125, + "action": "stop_flying", + "move_mode": "fly", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1502.8125, + "y": 2070.242431640625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -1472.19140625, + "y": 2081.34033203125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -1474.841796875, + "y": 2133.108154296875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -1473.66796875, + "y": 2144.080078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-2.json new file mode 100644 index 000000000..c55338577 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-2.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "诗歌交流-坠星山谷-2", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "诗歌交流-坠星山谷-2", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1473.802734375, + "y": 2143.8759765625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -1455.962890625, + "y": 2159.3115234375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1475.9736328125, + "y": 2191.275634765625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-3.json new file mode 100644 index 000000000..4397b440b --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/诗歌交流/坠星山谷/诗歌交流-坠星山谷-3.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "诗歌交流-坠星山谷-3", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "诗歌交流-坠星山谷-3", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1476.3779296875, + "y": 2190.221923828125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -1473.28125, + "y": 2143.79248046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/process.json new file mode 100644 index 000000000..7c2120a46 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/process.json @@ -0,0 +1,7 @@ +语言交流-1.json +F +语言交流-2.json +F +语言交流-3.json +语言交流-4.json +F \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-1.json new file mode 100644 index 000000000..50cdc8ac3 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-1.json @@ -0,0 +1,30 @@ +{ + "info": { + "name": "语言交流-1", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -1558.7587890625, + "y": 2495.6064453125, + "action_params": "" + }, + { + "id": 2, + "x": -1526.3173828125, + "y": 2498.93212890625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-2.json new file mode 100644 index 000000000..532cc79b5 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-2.json @@ -0,0 +1,30 @@ +{ + "info": { + "name": "语言交流-2", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "x": -1526.9365234375, + "y": 2498.802001953125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -1527.57421875, + "y": 2479.588134765625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-3.json new file mode 100644 index 000000000..694f500d2 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-3.json @@ -0,0 +1,39 @@ +{ + "info": { + "name": "语言交流-3", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "x": -1527.5419921875, + "y": 2480.11181640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -1513.6279296875, + "y": 2478.95361328125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1514.599609375, + "y": 2472.046875, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-4.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-4.json new file mode 100644 index 000000000..91e1e3f83 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/坠星山谷/语言交流-4.json @@ -0,0 +1,21 @@ +{ + "info": { + "name": "语言交流-4", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "x": -1514.599609375, + "y": 2472.046875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/process.json new file mode 100644 index 000000000..3106a91c7 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/process.json @@ -0,0 +1,9 @@ +语言交流-1.json +F +语言交流-2.json +F +语言交流-3.json +F +语言交流-4.json +语言交流-5.json +F \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-1.json new file mode 100644 index 000000000..c5d0787ba --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-1.json @@ -0,0 +1,94 @@ +{ + "info": { + "name": "语言交流-1", + "type": "collect", + "author": "星野工具箱", + "version": "1.0", + "description": "自动地图追踪录制", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1266.513671875, + "y": 1933.7255859375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1254.9794921875, + "y": 1934.5322265625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1226.2001953125, + "y": 1939.65771484375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -1199.3505859375, + "y": 1939.05517578125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -1173.5078125, + "y": 1939.14794921875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -1148.2265625, + "y": 1940.38720703125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 7, + "x": -1137.47265625, + "y": 1932.69140625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -1137.9951171875, + "y": 1925.18798828125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": -1136.283203125, + "y": 1922.94580078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-2.json new file mode 100644 index 000000000..35def7982 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-2.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "语言交流-2", + "type": "collect", + "author": "星野工具箱", + "version": "1.0", + "description": "自动地图追踪录制", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1136.326171875, + "y": 1923.3017578125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -1139.361328125, + "y": 1936.99853515625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1146.9228515625, + "y": 1960.92236328125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-3.json new file mode 100644 index 000000000..819843433 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-3.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "语言交流-3", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "自动地图追踪录制", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1147.1240234375, + "y": 1960.763671875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -1161.0830078125, + "y": 1950.35498046875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-4.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-4.json new file mode 100644 index 000000000..bdd83ee96 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-4.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "语言交流-3", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "自动地图追踪录制", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1161.0830078125, + "y": 1950.35498046875, + "action": "fight", + "move_mode": "dash", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-5.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-5.json new file mode 100644 index 000000000..6864f5528 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/苍风高地/语言交流-5.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "语言交流-3", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "自动地图追踪录制", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1161.0830078125, + "y": 1950.35498046875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/process.json new file mode 100644 index 000000000..38bdb31e6 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/process.json @@ -0,0 +1,42 @@ +[ + { + "type": "地图追踪", + "data": "语言交流-风龙废墟-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "地图追踪", + "data": "语言交流-风龙废墟-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "地图追踪", + "data": "语言交流-风龙废墟-3.json", + "note": "执行第三个地图追踪步骤" + }, + { + "type": "地图追踪", + "data": "执行战斗策略.json", + "note": "执行战斗策略" + }, + { + "type": "地图追踪", + "data": "语言交流-风龙废墟-4.json", + "note": "执行第四个地图追踪步骤" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/执行战斗策略.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/执行战斗策略.json new file mode 100644 index 000000000..adc9afdf2 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/执行战斗策略.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "5", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 72.7578125, + "y": 2767.362060546875, + "type": "fight", + "move_mode": "walk", + "action": "", + "action_params": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-1.json new file mode 100644 index 000000000..12f1bb0fd --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-1.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "1", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -83.3798828125, + "y": 2781.734130859375, + "action_params": "" + }, + { + "id": 2, + "x": -4.775390625, + "y": 2798.0595703125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -7.8662109375, + "y": 2803.570068359375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-2.json new file mode 100644 index 000000000..8c58df799 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-2.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "2", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -5.537109375, + "y": 2801.556884765625, + "action_params": "" + }, + { + "id": 2, + "x": 43.2666015625, + "y": 2761.027587890625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-3.json new file mode 100644 index 000000000..02d8346e5 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-3.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "3", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": 43.578125, + "y": 2761.056640625, + "action_params": "" + }, + { + "id": 2, + "x": 72.7578125, + "y": 2767.362060546875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-4.json b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-4.json new file mode 100644 index 000000000..1a2f9688c --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/语言交流/风龙废墟/语言交流-风龙废墟-4.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "4", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 72.7578125, + "y": 2767.362060546875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/process.json new file mode 100644 index 000000000..56a5f8fff --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/process.json @@ -0,0 +1,5 @@ +说到做到-1.json +F +说到做到-2.json +说到做到-1.json +F \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-1.json new file mode 100644 index 000000000..bac359481 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-1.json @@ -0,0 +1,76 @@ +{ + "info": { + "name": "说到做到-1", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "x": -1136, + "y": 1589, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1142.5, + "y": 1623.5, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -1097, + "y": 1647.75, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -1079.5, + "y": 1666.75, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -1091.875, + "y": 1767.5, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -1094.125, + "y": 1775.375, + "action": "stop_flying", + "move_mode": "fly", + "action_params": "", + "type": "path", + "locked": false + }, + { + "id": 7, + "x": -1088.517578125, + "y": 1770.88134765625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-2.json new file mode 100644 index 000000000..c6091f464 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/说到做到/苍风高地/说到做到-2.json @@ -0,0 +1,53 @@ +{ + "info": { + "name": "说到做到-2", + "type": "collect", + "author": "LX666-666", + "version": "1.0", + "description": "", + "bgi_version": "0.42.3" + }, + "positions": [ + { + "id": 1, + "x": -1131.666015625, + "y": 1597.25390625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -1155.25, + "y": 1628, + "type": "path", + "move_mode": "dash" + }, + { + "id": 3, + "x": -1186.5, + "y": 1648, + "type": "path", + "move_mode": "fly" + }, + { + "id": 4, + "x": -1198.5, + "y": 1654.75, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 5, + "x": -1192.25, + "y": 1645, + "action": "fight", + "move_mode": "walk", + "action_params": "", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/process.json new file mode 100644 index 000000000..8928bb62f --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/process.json @@ -0,0 +1,36 @@ +[ +{ + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoPick" + }, + "note": "启用自动拾取" +}, + { + "type": "地图追踪", + "data": "钥匙是易丢物品-晨曦酒庄-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 3, + "npcWhiteList": ["怀尔德"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "地图追踪", + "data": "钥匙是易丢物品-晨曦酒庄-2.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 3, + "npcWhiteList": ["怀尔德"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-1.json new file mode 100644 index 000000000..d20757383 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-1.json @@ -0,0 +1,68 @@ +{ + "info": { + "name": "钥匙是易丢物品-晨曦酒庄-1", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "钥匙是易丢物品2", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -578.76171875, + "y": 1853.5517578125, + "action_params": "" + }, + { + "id": 2, + "x": -555.89453125, + "y": 1844.61572265625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -495.7841796875, + "y": 1822.93310546875, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 4, + "x": -488.7841796875, + "y": 1820.93310546875, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -456.9140625, + "y": 1808.41552734375, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "100" + }, + { + "id": 6, + "x": -442.2568359375, + "y": 1790.41357421875, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2 .json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2 .json new file mode 100644 index 000000000..c70fd52c2 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2 .json @@ -0,0 +1,193 @@ +{ + "info": { + "name": "钥匙是易丢物品-晨曦酒庄-2", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "钥匙是易丢物品2", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -442.783203125, + "y": 1790.21826171875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -443.55078125, + "y": 1755.0136718749998, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -448.6533203125, + "y": 1721.419921875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -455.9951171875, + "y": 1696.10107421875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -459.19921875, + "y": 1705.77734375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -466.1142578125, + "y": 1701.08544921875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 7, + "x": -474.76171875, + "y": 1713.13330078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -493.640625, + "y": 1723.76318359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 9, + "x": -477.82421875, + "y": 1750.01806640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 10, + "x": -473.2314453125, + "y": 1794.81005859375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 11, + "x": -446.4462890625, + "y": 1804.73046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 12, + "x": -386.4208984375, + "y": 1820.828125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 13, + "x": -385.7529296875, + "y": 1832.931640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 14, + "x": -375.109375, + "y": 1804.3125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 15, + "x": -365.55078125, + "y": 1788.20068359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 16, + "x": -362.6923828125, + "y": 1788.6904296875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 17, + "x": -385.783203125, + "y": 1777.36572265625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 18, + "x": -402.17578125, + "y": 1786.65673828125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 19, + "x": -418.06738281250006, + "y": 1780.18115234375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 20, + "x": -441.8291015625, + "y": 1790.55078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2.json new file mode 100644 index 000000000..4caff8986 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/晨曦酒庄/钥匙是易丢物品-晨曦酒庄-2.json @@ -0,0 +1,229 @@ +{ + "info": { + "name": "钥匙是易丢物品-晨曦酒庄-2", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "说到做到-山腰", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -442.783203125, + "y": 1790.21826171875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 2, + "x": -443.55078125, + "y": 1755.013671875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -448.6533203125, + "y": 1721.419921875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -454.09765625, + "y": 1702.578125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -456.978515625, + "y": 1697.5751953125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 6, + "x": -460.173828125, + "y": 1707.54638671875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 7, + "x": -464.20703125, + "y": 1703.1494140625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -467.2568359375, + "y": 1699.845703125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 9, + "x": -474.76171875, + "y": 1713.13330078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 10, + "x": -489.84765625, + "y": 1721.37841796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -493.640625, + "y": 1723.76318359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 12, + "x": -477.82421875, + "y": 1750.01806640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 13, + "x": -472.4998719544019, + "y": 1794.3751695505216, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 14, + "x": -446.4462890625, + "y": 1804.73046875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 15, + "x": -386.4375, + "y": 1820.3751978089422, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 16, + "x": -383.962890625, + "y": 1829.78955078125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 17, + "x": -385.7529296875, + "y": 1832.931640625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 18, + "x": -375.109375, + "y": 1804.3125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 19, + "x": -365.55078125, + "y": 1788.20068359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 20, + "x": -362.6923828125, + "y": 1788.6904296875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + }, + { + "id": 21, + "x": -385.783203125, + "y": 1777.36572265625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 22, + "x": -402.17578125, + "y": 1786.65673828125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 23, + "x": -418.0673828125, + "y": 1780.18115234375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 24, + "x": -441.8291015625, + "y": 1790.55078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/process.json new file mode 100644 index 000000000..e524369fe --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/process.json @@ -0,0 +1,48 @@ +[ +{ + "type": "自动任务", + "data": { + "action": "enable", + "taskType": "AutoPick" + }, + "note": "启用自动拾取" +}, + { + "type": "地图追踪", + "data": "钥匙是易丢品-达达乌帕谷-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 6, + "priorityOptions": ["好的"], + "npcWhiteList": ["怀尔德"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "地图追踪", + "data": "钥匙是易丢品-达达乌帕谷-2.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "地图追踪", + "data": "钥匙是易丢品-达达乌帕谷-3.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "地图追踪", + "data": "钥匙是易丢品-达达乌帕谷-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 3, + "priorityOptions": ["这是你丢的钥匙吗?"], + "npcWhiteList": ["怀尔德"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-1.json new file mode 100644 index 000000000..19a93f527 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-1.json @@ -0,0 +1,58 @@ +{ + "info": { + "name": "钥匙是易丢物品", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "钥匙是易丢物品", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -1432.650390625, + "y": 1464.65673828125, + "action_params": "" + }, + { + "id": 2, + "x": -1457.60546875, + "y": 1451.36474609375, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1472.6240234375, + "y": 1444.4580078125, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -1500.3818359375, + "y": 1435.9716796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -1538.0888671875, + "y": 1415.87646484375, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-2.json new file mode 100644 index 000000000..2b63cba62 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-2.json @@ -0,0 +1,178 @@ +{ + "info": { + "name": "钥匙是易丢物品-达达乌帕谷", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "钥匙是易丢物品-达达乌帕谷", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -1537.58984375, + "y": 1415.99169921875, + "action_params": "", + "locked": false + }, + { + "id": 2, + "x": -1531.7080078125, + "y": 1358.65771484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 3, + "x": -1533.7119140625, + "y": 1297.326171875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 4, + "x": -1517.5908203125, + "y": 1275.15966796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -1497.7314453125, + "y": 1288.021484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -1485.02734375, + "y": 1267.44921875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -1439.3837890625, + "y": 1274.07861328125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -1442.4599609375, + "y": 1249.560546875, + "type": "path", + "move_mode": "climb", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -1445.2509765625, + "y": 1251.44140625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": -1411.1650390625, + "y": 1258.8120117187498, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 11, + "x": -1436.15234375, + "y": 1255.63525390625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 12, + "x": -1467.1767578125, + "y": 1270.5498046875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 13, + "x": -1488.24609375, + "y": 1266.62744140625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 14, + "x": -1496.958984375, + "y": 1282.8486328125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 15, + "x": -1514.9072265625, + "y": 1272.970703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 16, + "x": -1533.7119140625, + "y": 1297.326171875, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 17, + "x": -1531.7080078125, + "y": 1358.65771484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 18, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -1537.58984375, + "y": 1415.99169921875, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-3.json new file mode 100644 index 000000000..ca3c79fe6 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/钥匙是易丢品/达达乌帕谷/钥匙是易丢品-达达乌帕谷-3.json @@ -0,0 +1,167 @@ +{ + "info": { + "name": "钥匙是易丢物品-达达乌帕谷大锅位置", + "type": "collect", + "author": "11", + "version": "1.0", + "description": "钥匙是易丢物品-达达乌帕谷大锅位置", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -1540.1884765625, + "y": 1413.04296875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -1580.9248046875, + "y": 1411.60546875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1599.0830078125, + "y": 1473.849609375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -1607.7294921875, + "y": 1487.51904296875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -1613.5263671875, + "y": 1509.744140625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -1599.279296875, + "y": 1543.27099609375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -1581.9541015625, + "y": 1557.22802734375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -1567.30859375, + "y": 1563.79296875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -1562.21875, + "y": 1565.611328125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 10, + "x": -1564.8750601748943, + "y": 1571.5, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 11, + "x": -1563.5623094461644, + "y": 1565.625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 12, + "x": -1576.18775072873, + "y": 1561.25, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 13, + "x": -1578.5908203125, + "y": 1592.2978515625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path", + "locked": false + }, + { + "id": 14, + "x": -1582.5908203125, + "y": 1600.2978515625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 15, + "x": -1584.154296875, + "y": 1603.55810546875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 16, + "x": -1600.962890625, + "y": 1606.20947265625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 17, + "x": -1605.0751953125, + "y": 1609.23193359375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/process.json new file mode 100644 index 000000000..95e5e6eca --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/process.json @@ -0,0 +1,59 @@ +[ + { + "type": "地图追踪", + "data": "餐品订单-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": [ + "餐品外送订单", + "好吧" + ], + "npcWhiteList": [ + "莎拉" + ] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "委托描述检测", + "data": "取得制作好的餐品", + "note": "分支名字正确的情况", + "run": "取餐.json" + }, + + { + "type": "委托描述检测", + "data": "询问帕拉德", + "note": "分支名字正确的情况", + "run": "询问帕拉德.json" + }, + { + "type": "委托描述检测", + "data": "运送餐品给活跃的欧琳", + "note": "分支名字正确的情况", + "run": "找到活跃的欧琳.json" + }, + { + "type": "地图追踪", + "data": "餐品订单-1.json", + "note": "执行第四个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": [ + "交付餐费", + "这是餐费" + ], + "npcWhiteList": [ + "莎拉" + ] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/取餐.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/取餐.json new file mode 100644 index 000000000..a378d6f99 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/取餐.json @@ -0,0 +1,35 @@ +[ + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": [ + "已经找好了" + + ], + "npcWhiteList": [ + "莎拉" + ] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "地图追踪", + "data": "餐品订单-晨曦酒庄-1.json", + "note": "执行地图追踪找到恩内斯特" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": [ + "这是你点的餐" + + ], + "npcWhiteList": [ + "恩内斯特" + ] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/找到活跃的欧琳.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/找到活跃的欧琳.json new file mode 100644 index 000000000..60f5395ab --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/找到活跃的欧琳.json @@ -0,0 +1,16 @@ +[ + { + "type": "地图追踪", + "data": "餐品订单-5.json", + "note": "执行第五个地图追踪步骤,自动战斗" + }, + { + "type": "地图追踪", + "data": "餐品订单-6.json", + "note": "执行第六个地图追踪步骤,对话" + }, + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + } +] \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/询问帕拉德.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/询问帕拉德.json new file mode 100644 index 000000000..3a4d9c573 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/询问帕拉德.json @@ -0,0 +1,29 @@ +[ + { + "type": "地图追踪", + "data": "餐品订单-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + }, + { + "type": "地图追踪", + "data": "餐品订单-3.json", + "note": "执行第三个地图追踪步骤,找到冒失的帕拉德" + }, + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + }, + { + "type": "地图追踪", + "data": "餐品订单-4.json", + "note": "执行第四个地图追踪步骤,对话" + }, + { + "type": "对话", + "note": "执行对话步骤,默认跳过10次对话" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-1.json new file mode 100644 index 000000000..570360a9b --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-1.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "餐品订单-1", + "type": "collect", + "author": "小鹰划船不用桨", + "version": "1.0", + "description": "寻路", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -867.693359375, + "y": 2281.361572265625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -880.0439453125, + "y": 2268.28662109375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -889.107421875, + "y": 2246.7099609375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -888.232421875, + "y": 2241.43359375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-2.json new file mode 100644 index 000000000..2fb8c23cf --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-2.json @@ -0,0 +1,96 @@ +{ + "info": { + "name": "餐品订单-2", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "餐品订单-2", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751272328810 + }, + "positions": [ + { + "id": 1, + "x": -867.6806640625, + "y": 1992.19775390625, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport" + }, + { + "id": 2, + "x": -876.0380859375, + "y": 1983.77880859375, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 3, + "x": -880.236328125, + "y": 1966.93603515625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 4, + "x": -880.912109375, + "y": 1950.27783203125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -890.921875, + "y": 1930.01904296875, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -884.580078125, + "y": 1928.8720703125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -882.423828125, + "y": 1935.13330078125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 8, + "x": -872.28515625, + "y": 1947.14404296875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "path" + }, + { + "id": 9, + "x": -869.341796875, + "y": 1948.38330078125, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-3.json new file mode 100644 index 000000000..0041e57c5 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-3.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "餐品订单-3", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "餐品订单-3", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "dash", + "type": "path", + "x": -869.3271484375, + "y": 1948.564453125, + "action_params": "" + }, + { + "id": 2, + "x": -889.55859375, + "y": 1932.28955078125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -896.9921875, + "y": 1917.9619140625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -900.1279296875, + "y": 1908.84814453125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-4.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-4.json new file mode 100644 index 000000000..702497127 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-4.json @@ -0,0 +1,58 @@ +{ + "info": { + "name": "餐品订单-4", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "餐品订单-4", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "dash", + "type": "path", + "x": -899.7958984375, + "y": 1907.9736328125, + "action_params": "" + }, + { + "id": 2, + "x": -907.2802734375, + "y": 1849.0224609375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -878.3642578125, + "y": 1841.28125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -878.34765625, + "y": 1852.4248046875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -880.515625, + "y": 1856.84228515625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-5.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-5.json new file mode 100644 index 000000000..c4b43d003 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-5.json @@ -0,0 +1,51 @@ +{ + "info": { + "name": "餐品订单-5", + "type": "collect", + "author": "", + "version": "1.0", + "description": "餐品订单-5", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753169040026 + }, + "positions": [ + { + "id": 1, + "x": -912.716796875, + "y": 1795.1181640625, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -905.14453125, + "y": 1798.400390625, + "type": "path", + "move_mode": "swim", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -882.166015625, + "y": 1807.447265625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -840.013671875, + "y": 1825.50830078125, + "action": "fight", + "move_mode": "dash", + "action_params": "", + "type": "path" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-6.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-6.json new file mode 100644 index 000000000..9490e34dd --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-6.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "餐品订单-6", + "type": "collect", + "author": "小鹰划船不用桨", + "version": "1.0", + "description": "餐品订单-6", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": -845.49609375, + "y": 1827.08056640625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -844.818359375, + "y": 1824.11279296875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -838.5029296875, + "y": 1825.25634765625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-晨曦酒庄-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-晨曦酒庄-1.json new file mode 100644 index 000000000..95f0a2f92 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/餐品订单/蒙德城/餐品订单-晨曦酒庄-1.json @@ -0,0 +1,105 @@ +{ + "info": { + "name": "餐品订单-晨曦酒庄-1", + "type": "collect", + "author": "云闲vsv", + "version": "1.0", + "description": "餐品订单-晨曦酒庄-1", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1751031744808 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -578.794921875, + "y": 1853.41015625, + "action_params": "" + }, + { + "id": 2, + "x": -558.85546875, + "y": 1844.28125, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -505.28515625, + "y": 1820.08203125, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -498.1748046875, + "y": 1817.87109375, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -461.40234375, + "y": 1800.5986328125, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 6, + "x": -426.3291015625, + "y": 1785.091796875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -413.607421875, + "y": 1792.0458984375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -405.88671875, + "y": 1792.48388671875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 9, + "x": -398.4873046875, + "y": 1789.5810546875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 10, + "x": -395.7255859375, + "y": 1788.23876953125, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/process.json new file mode 100644 index 000000000..23c0ec180 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/process.json @@ -0,0 +1,40 @@ +[ + { + "type": "地图追踪", + "data": "鸽子习惯一去不回-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": ["鸽子"], + "npcWhiteList": ["杜拉夫"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "地图追踪", + "data": "鸽子习惯一去不回-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "地图追踪", + "data": "鸽子习惯一去不回-3.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "地图追踪", + "data": "鸽子习惯一去不回-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "data": { + "skipCount": 5, + "priorityOptions": ["鸽子"], + "npcWhiteList": ["杜拉夫"] + }, + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-1.json new file mode 100644 index 000000000..10387be4e --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-1.json @@ -0,0 +1,71 @@ +{ + "info": { + "name": "鸽子习惯一去不回-1", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753107027152 + }, + "positions": [ + { + "id": 1, + "x": -867.611328125, + "y": 1992.30029296875, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "teleport", + "locked": false + }, + { + "id": 2, + "x": -867.611328125, + "y": 1992.30029296875, + "action": "set_time", + "move_mode": "dash", + "action_params": "8:00", + "type": "path", + "locked": false + }, + { + "id": 3, + "x": -867.611328125, + "y": 1992.30029296875, + "action": "set_time", + "move_mode": "dash", + "action_params": "9:00", + "type": "path" + }, + { + "id": 4, + "x": -889.37109375, + "y": 1986.9931640625, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 5, + "x": -909.185546875, + "y": 1973.29345703125, + "action": "", + "move_mode": "dash", + "action_params": "", + "type": "path" + }, + { + "id": 6, + "x": -914.1845703125, + "y": 1958.85693359375, + "action": "", + "move_mode": "walk", + "action_params": "", + "type": "target" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-2.json new file mode 100644 index 000000000..35cdb0e03 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-2.json @@ -0,0 +1,81 @@ +{ + "info": { + "name": "鸽子习惯一去不回-2", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753091712667 + }, + "positions": [ + { + "id": 1, + "x": -578.7451171875, + "y": 1853.404296875, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": -626.267578125, + "y": 1907.54541015625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -672.021484375, + "y": 1960.14453125, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 4, + "x": -672.021484375, + "y": 1960.14453125, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 5, + "x": -693.5458984375, + "y": 2011.5703125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 6, + "x": -693.5458984375, + "y": 2011.5703125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "", + "locked": false + }, + { + "id": 7, + "x": -693.5458984375, + "y": 2011.5703125, + "type": "target", + "move_mode": "walk", + "action": "pick_around", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-3.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-3.json new file mode 100644 index 000000000..3d767fe96 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子习惯一去不回/清泉镇/鸽子习惯一去不回-3.json @@ -0,0 +1,96 @@ +{ + "info": { + "name": "鸽子习惯一去不回-3", + "type": "collect", + "author": "星野", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1753091890935 + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -867.5166015625, + "y": 1992.19140625, + "action_params": "" + }, + { + "id": 2, + "x": -824.0859375, + "y": 1980.37890625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -803.9501953125, + "y": 1975.4482421875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -779.7744140625, + "y": 1977.1767578125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": -748.525390625, + "y": 1972.9638671875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": -736.8916015625, + "y": 1981.36572265625, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": -700.64453125, + "y": 2003.47509765625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 8, + "x": -697.267578125, + "y": 2004.078125, + "type": "path", + "move_mode": "walk", + "action": "fight", + "action_params": "" + }, + { + "id": 7, + "x": -693.5458984375, + "y": 2011.5703125, + "type": "target", + "move_mode": "walk", + "action": "pick_around", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/process.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/process.json new file mode 100644 index 000000000..6e73d6481 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/process.json @@ -0,0 +1,34 @@ +[ + { + "type": "地图追踪", + "data": "鸽子、鸭子、小孩子-坠星山谷-1.json", + "note": "执行第一个地图追踪步骤" + }, + { + "type": "对话", + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "对话", + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + }, + { + "type": "地图追踪", + "data": "鸽子、鸭子、小孩子-坠星山谷-2.json", + "note": "执行第二个地图追踪步骤" + }, + { + "type": "按键", + "data": "F", + "note": "按下F键" + }, + { + "type": "地图追踪", + "data": "鸽子、鸭子、小孩子-坠星山谷-1.json", + "note": "执行第三个地图追踪步骤" + }, + { + "type": "对话", + "note": "执行对话步骤,优先选择特定选项并与白名单NPC交互" + } +] diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-1.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-1.json new file mode 100644 index 000000000..a067b9054 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-1.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "鸽子、鸭子、小孩子-坠星山谷-1", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "teleport", + "x": -1120.9697265625, + "y": 2190.62646484375, + "action_params": "" + }, + { + "id": 2, + "x": -1053.6591796875, + "y": 2184.705810546875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1017.8310546875, + "y": 2184.93603515625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-2.json b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-2.json new file mode 100644 index 000000000..89073de84 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/process/委托/鸽子鸭子小孩子/坠星山谷/鸽子、鸭子、小孩子-坠星山谷-2.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "到达播撒点位", + "type": "collect", + "author": "未知_", + "version": "1.0", + "description": "到达任务执行地点", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "action": "", + "move_mode": "walk", + "type": "path", + "x": -1018.0361328125, + "y": 2184.58251953125, + "action_params": "" + }, + { + "id": 2, + "x": -1048.16796875, + "y": 2199.8818359375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": -1071.3662109375, + "y": 2204.976806640625, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": -1069.3525390625, + "y": 2226.945068359375, + "type": "target", + "move_mode": "swim", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AAA-Auto-Story-Loader/settings.json b/repo/js/AAA-Auto-Story-Loader/settings.json new file mode 100644 index 000000000..25d611b71 --- /dev/null +++ b/repo/js/AAA-Auto-Story-Loader/settings.json @@ -0,0 +1,21 @@ +[ + { + "name": "process_selector", + "type": "select", + "label": "可执行剧情列表", + "options": [ + "刷新剧情列表" + ], + "default": "刷新剧情列表" + }, + { + "name": "team", + "type": "input-text", + "label": "战斗的队伍名称,不填表示不切换队伍" + }, + { + "name": "elementTeam", + "type": "input-text", + "label": "元素采集的队伍名称" + } +] \ No newline at end of file