From a54d37843b4ed08c5a970b9a357e7a470a3536ef Mon Sep 17 00:00:00 2001 From: ddaodan <40017293+ddaodan@users.noreply.github.com> Date: Wed, 9 Apr 2025 11:21:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E8=87=AA=E5=8A=A8=E5=9C=B0=E8=84=89?= =?UTF-8?q?=E8=8A=B11.0=EF=BC=9A=E6=AD=A3=E5=BC=8F=E5=8F=91=E5=B8=83=20(#5?= =?UTF-8?q?38)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 全自动地脉花1.0:正式发布 * 改回优化前的版本 --- repo/js/AutoLeyLineOutcrop/README.md | 62 +++ .../assets/icon/Blossom_of_Revelation.png | Bin 0 -> 2930 bytes .../assets/icon/Blossom_of_Wealth.png | Bin 0 -> 2723 bytes .../AutoLeyLineOutcrop/assets/icon/close.png | Bin 0 -> 6559 bytes .../AutoLeyLineOutcrop/assets/icon/open.png | Bin 0 -> 6261 bytes .../pathing/BoR/枫丹1-秋分山西侧-1.json | 90 +++ .../pathing/BoR/枫丹1-秋分山西侧-2.json | 103 ++++ .../pathing/BoR/枫丹1-秋分山西侧-3.json | 112 ++++ .../pathing/BoR/枫丹1-秋分山西侧-4.json | 94 ++++ .../pathing/BoR/枫丹1-秋分山西侧-5.json | 85 +++ .../pathing/BoR/枫丹2-芒索斯山东麓-1.json | 85 +++ .../pathing/BoR/枫丹2-芒索斯山东麓-2.json | 76 +++ .../pathing/BoR/枫丹2-芒索斯山东麓-3.json | 89 +++ .../pathing/BoR/枫丹2-芒索斯山东麓-4.json | 107 ++++ .../pathing/BoR/枫丹5-秋分山东侧-1.json | 85 +++ .../pathing/BoR/枫丹5-秋分山东侧-2.json | 85 +++ .../pathing/BoR/枫丹5-秋分山东侧-3.json | 103 ++++ .../pathing/BoR/枫丹5-秋分山东侧-4.json | 99 ++++ .../assets/pathing/BoR/枫丹6-厄里那斯-1.json | 85 +++ .../assets/pathing/BoR/枫丹6-厄里那斯-2.json | 85 +++ .../assets/pathing/BoR/枫丹6-厄里那斯-3.json | 103 ++++ .../assets/pathing/BoR/枫丹6-厄里那斯-4.json | 103 ++++ .../assets/pathing/BoR/枫丹6-厄里那斯-5.json | 103 ++++ .../assets/pathing/BoR/枫丹6-厄里那斯-6.json | 94 ++++ .../assets/pathing/BoR/璃月1-石门-1.json | 86 +++ .../assets/pathing/BoR/璃月1-石门-2.json | 95 ++++ .../assets/pathing/BoR/璃月1-石门-3.json | 86 +++ .../assets/pathing/BoR/璃月1-石门-4.json | 68 +++ .../assets/pathing/BoR/璃月3-瑶光滩-1.json | 51 ++ .../assets/pathing/BoR/稻妻3-八酝岛-1.json | 68 +++ .../pathing/BoR/纳塔5-圣火竞技场-1.json | 78 +++ .../pathing/BoR/纳塔5-圣火竞技场-2.json | 86 +++ .../pathing/BoR/纳塔5-圣火竞技场-3.json | 77 +++ .../pathing/BoR/纳塔5-圣火竞技场-4.json | 68 +++ .../assets/pathing/BoR/蒙德1-风起地-1.json | 103 ++++ .../assets/pathing/BoR/蒙德1-风起地-2.json | 50 ++ .../assets/pathing/BoR/蒙德1-风起地-3.json | 59 ++ .../assets/pathing/BoR/蒙德1-风起地-4.json | 95 ++++ .../assets/pathing/BoR/蒙德2-清泉镇-1.json | 68 +++ .../assets/pathing/BoR/蒙德2-清泉镇-2.json | 59 ++ .../assets/pathing/BoR/蒙德2-清泉镇-3.json | 77 +++ .../assets/pathing/BoR/蒙德2-清泉镇-4.json | 104 ++++ .../assets/pathing/BoR/蒙德3-奔狼领-1.json | 86 +++ .../assets/pathing/BoR/蒙德3-奔狼领-2.json | 68 +++ .../assets/pathing/BoR/蒙德3-奔狼领-3.json | 59 ++ .../assets/pathing/BoR/蒙德3-奔狼领-4.json | 95 ++++ .../assets/pathing/BoR/蒙德4-风龙废墟-1.json | 86 +++ .../assets/pathing/BoR/蒙德4-风龙废墟-2.json | 77 +++ .../assets/pathing/BoR/蒙德4-风龙废墟-3.json | 50 ++ .../assets/pathing/BoR/蒙德4-风龙废墟-4.json | 77 +++ .../assets/pathing/BoR/蒙德5-千风神殿-1.json | 67 +++ .../assets/pathing/BoR/蒙德5-千风神殿-2.json | 68 +++ .../assets/pathing/BoR/蒙德5-千风神殿-3.json | 95 ++++ .../assets/pathing/BoR/蒙德5-千风神殿-4.json | 68 +++ .../assets/pathing/BoR/蒙德6-望风山地-1.json | 59 ++ .../assets/pathing/BoR/蒙德6-望风山地-2.json | 95 ++++ .../assets/pathing/BoR/蒙德6-望风山地-3.json | 68 +++ .../assets/pathing/BoR/蒙德6-望风山地-4.json | 50 ++ .../assets/pathing/BoR/蒙德6-望风山地-5.json | 68 +++ .../pathing/BoR/蒙德7-达达乌帕谷-1.json | 86 +++ .../pathing/BoR/蒙德7-达达乌帕谷-2.json | 77 +++ .../pathing/BoR/蒙德7-达达乌帕谷-3.json | 68 +++ .../pathing/BoR/蒙德7-达达乌帕谷-4.json | 68 +++ .../pathing/BoR/蒙德7-达达乌帕谷-5.json | 86 +++ .../pathing/BoW/枫丹1-秋分山西侧-1.json | 90 +++ .../pathing/BoW/枫丹1-秋分山西侧-2.json | 103 ++++ .../pathing/BoW/枫丹1-秋分山西侧-3.json | 112 ++++ .../pathing/BoW/枫丹1-秋分山西侧-4.json | 94 ++++ .../pathing/BoW/枫丹1-秋分山西侧-5.json | 85 +++ .../pathing/BoW/枫丹2-芒索斯山东麓-1.json | 85 +++ .../pathing/BoW/枫丹2-芒索斯山东麓-2.json | 76 +++ .../pathing/BoW/枫丹2-芒索斯山东麓-3.json | 89 +++ .../pathing/BoW/枫丹2-芒索斯山东麓-4.json | 107 ++++ .../pathing/BoW/枫丹5-秋分山东侧-1.json | 85 +++ .../pathing/BoW/枫丹5-秋分山东侧-2.json | 85 +++ .../pathing/BoW/枫丹5-秋分山东侧-3.json | 103 ++++ .../pathing/BoW/枫丹5-秋分山东侧-4.json | 99 ++++ .../assets/pathing/BoW/枫丹6-厄里那斯-1.json | 85 +++ .../assets/pathing/BoW/枫丹6-厄里那斯-2.json | 85 +++ .../assets/pathing/BoW/枫丹6-厄里那斯-3.json | 103 ++++ .../assets/pathing/BoW/枫丹6-厄里那斯-4.json | 103 ++++ .../assets/pathing/BoW/枫丹6-厄里那斯-5.json | 103 ++++ .../assets/pathing/BoW/枫丹6-厄里那斯-6.json | 94 ++++ .../assets/pathing/BoW/璃月1-石门-1.json | 86 +++ .../assets/pathing/BoW/璃月1-石门-2.json | 95 ++++ .../assets/pathing/BoW/璃月1-石门-3.json | 86 +++ .../assets/pathing/BoW/璃月1-石门-4.json | 68 +++ .../assets/pathing/BoW/璃月3-瑶光滩-1.json | 51 ++ .../assets/pathing/BoW/稻妻3-八酝岛-1.json | 68 +++ .../pathing/BoW/纳塔5-圣火竞技场-1.json | 78 +++ .../pathing/BoW/纳塔5-圣火竞技场-2.json | 86 +++ .../pathing/BoW/纳塔5-圣火竞技场-3.json | 77 +++ .../pathing/BoW/纳塔5-圣火竞技场-4.json | 68 +++ .../assets/pathing/BoW/蒙德1-风起地-1.json | 103 ++++ .../assets/pathing/BoW/蒙德1-风起地-2.json | 50 ++ .../assets/pathing/BoW/蒙德1-风起地-3.json | 59 ++ .../assets/pathing/BoW/蒙德1-风起地-4.json | 95 ++++ .../assets/pathing/BoW/蒙德2-清泉镇-1.json | 68 +++ .../assets/pathing/BoW/蒙德2-清泉镇-2.json | 59 ++ .../assets/pathing/BoW/蒙德2-清泉镇-3.json | 77 +++ .../assets/pathing/BoW/蒙德2-清泉镇-4.json | 104 ++++ .../assets/pathing/BoW/蒙德3-奔狼领-1.json | 86 +++ .../assets/pathing/BoW/蒙德3-奔狼领-2.json | 68 +++ .../assets/pathing/BoW/蒙德3-奔狼领-3.json | 59 ++ .../assets/pathing/BoW/蒙德3-奔狼领-4.json | 95 ++++ .../assets/pathing/BoW/蒙德4-风龙废墟-1.json | 86 +++ .../assets/pathing/BoW/蒙德4-风龙废墟-2.json | 77 +++ .../assets/pathing/BoW/蒙德4-风龙废墟-3.json | 50 ++ .../assets/pathing/BoW/蒙德4-风龙废墟-4.json | 77 +++ .../assets/pathing/BoW/蒙德5-千风神殿-1.json | 67 +++ .../assets/pathing/BoW/蒙德5-千风神殿-2.json | 68 +++ .../assets/pathing/BoW/蒙德5-千风神殿-3.json | 95 ++++ .../assets/pathing/BoW/蒙德5-千风神殿-4.json | 68 +++ .../assets/pathing/BoW/蒙德6-望风山地-1.json | 59 ++ .../assets/pathing/BoW/蒙德6-望风山地-2.json | 95 ++++ .../assets/pathing/BoW/蒙德6-望风山地-3.json | 68 +++ .../assets/pathing/BoW/蒙德6-望风山地-4.json | 50 ++ .../assets/pathing/BoW/蒙德6-望风山地-5.json | 68 +++ .../pathing/BoW/蒙德7-达达乌帕谷-1.json | 86 +++ .../pathing/BoW/蒙德7-达达乌帕谷-2.json | 77 +++ .../pathing/BoW/蒙德7-达达乌帕谷-3.json | 68 +++ .../pathing/BoW/蒙德7-达达乌帕谷-4.json | 68 +++ .../pathing/BoW/蒙德7-达达乌帕谷-5.json | 86 +++ .../assets/pathing/README.md | 12 + repo/js/AutoLeyLineOutcrop/main.js | 515 ++++++++++++++++++ repo/js/AutoLeyLineOutcrop/manifest.json | 19 + repo/js/AutoLeyLineOutcrop/settings.json | 70 +++ 127 files changed, 10248 insertions(+) create mode 100644 repo/js/AutoLeyLineOutcrop/README.md create mode 100644 repo/js/AutoLeyLineOutcrop/assets/icon/Blossom_of_Revelation.png create mode 100644 repo/js/AutoLeyLineOutcrop/assets/icon/Blossom_of_Wealth.png create mode 100644 repo/js/AutoLeyLineOutcrop/assets/icon/close.png create mode 100644 repo/js/AutoLeyLineOutcrop/assets/icon/open.png create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹1-秋分山西侧-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹1-秋分山西侧-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹1-秋分山西侧-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹1-秋分山西侧-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹1-秋分山西侧-5.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹2-芒索斯山东麓-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹2-芒索斯山东麓-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹2-芒索斯山东麓-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹2-芒索斯山东麓-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹5-秋分山东侧-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹5-秋分山东侧-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹5-秋分山东侧-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹5-秋分山东侧-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹6-厄里那斯-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹6-厄里那斯-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹6-厄里那斯-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹6-厄里那斯-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹6-厄里那斯-5.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/枫丹6-厄里那斯-6.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/璃月1-石门-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/璃月1-石门-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/璃月1-石门-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/璃月1-石门-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/璃月3-瑶光滩-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/稻妻3-八酝岛-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/纳塔5-圣火竞技场-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/纳塔5-圣火竞技场-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/纳塔5-圣火竞技场-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/纳塔5-圣火竞技场-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德1-风起地-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德1-风起地-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德1-风起地-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德1-风起地-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德2-清泉镇-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德2-清泉镇-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德2-清泉镇-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德2-清泉镇-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德3-奔狼领-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德3-奔狼领-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德3-奔狼领-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德3-奔狼领-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德4-风龙废墟-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德4-风龙废墟-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德4-风龙废墟-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德4-风龙废墟-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德5-千风神殿-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德5-千风神殿-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德5-千风神殿-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德5-千风神殿-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德6-望风山地-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德6-望风山地-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德6-望风山地-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德6-望风山地-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德6-望风山地-5.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德7-达达乌帕谷-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德7-达达乌帕谷-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德7-达达乌帕谷-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德7-达达乌帕谷-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoR/蒙德7-达达乌帕谷-5.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹1-秋分山西侧-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹1-秋分山西侧-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹1-秋分山西侧-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹1-秋分山西侧-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹1-秋分山西侧-5.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹2-芒索斯山东麓-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹2-芒索斯山东麓-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹2-芒索斯山东麓-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹2-芒索斯山东麓-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹5-秋分山东侧-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹5-秋分山东侧-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹5-秋分山东侧-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹5-秋分山东侧-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹6-厄里那斯-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹6-厄里那斯-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹6-厄里那斯-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹6-厄里那斯-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹6-厄里那斯-5.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/枫丹6-厄里那斯-6.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/璃月1-石门-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/璃月1-石门-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/璃月1-石门-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/璃月1-石门-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/璃月3-瑶光滩-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/稻妻3-八酝岛-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/纳塔5-圣火竞技场-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/纳塔5-圣火竞技场-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/纳塔5-圣火竞技场-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/纳塔5-圣火竞技场-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德1-风起地-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德1-风起地-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德1-风起地-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德1-风起地-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德2-清泉镇-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德2-清泉镇-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德2-清泉镇-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德2-清泉镇-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德3-奔狼领-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德3-奔狼领-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德3-奔狼领-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德3-奔狼领-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德4-风龙废墟-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德4-风龙废墟-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德4-风龙废墟-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德4-风龙废墟-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德5-千风神殿-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德5-千风神殿-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德5-千风神殿-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德5-千风神殿-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德6-望风山地-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德6-望风山地-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德6-望风山地-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德6-望风山地-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德6-望风山地-5.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德7-达达乌帕谷-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德7-达达乌帕谷-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德7-达达乌帕谷-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德7-达达乌帕谷-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/BoW/蒙德7-达达乌帕谷-5.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/README.md create mode 100644 repo/js/AutoLeyLineOutcrop/main.js create mode 100644 repo/js/AutoLeyLineOutcrop/manifest.json create mode 100644 repo/js/AutoLeyLineOutcrop/settings.json diff --git a/repo/js/AutoLeyLineOutcrop/README.md b/repo/js/AutoLeyLineOutcrop/README.md new file mode 100644 index 00000000..e18c319b --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/README.md @@ -0,0 +1,62 @@ +# BGI全自动地脉花脚本使用手册 +仅支持BetterGI 0.44.3 及以上版本! +仅支持Bitblt截图方式! +## 配置 +使用前需要对脚本以及战斗策略进行配置 +在调度器新建一个配置组,将脚本添加进来 +右键脚本选择修改js脚本自定义配置,根据你的需要对脚本进行配置。 +目前刷取次数设置没有实际效果 +配置战斗策略,点击配置组设置,打开地图追踪设置,开启在js中使用和覆盖js战斗策略,并打开战斗策略配置,根据你的队伍进行配置。 +在bgi设置内,关闭就近七天神像,指定一个七天神像,如无特殊要求推荐选择须弥道成林。 +## 强制运行模式 +启用后,该脚本将按照既定路线运行,不再于大地图上搜寻地脉花。 +即便无法领取地脉花奖励,脚本仍将继续运行。 +此模式适用于以下场景:地脉花并非首个目标,或全自动运行过程中因特定原因中断后需要继续恢复运行。 +## 特色介绍 +- **全自动运行**:配置好之后,只需要点击运行,就可以全部打完,无需任何其他操作。 +- **自动寻找地脉花**:由于地脉花出现的第一个位置是固定的,脚本以此来寻找地脉花,并执行后续的路线。 +- **自动开启地脉花奖励**,优先使用浓缩树脂:领取奖励时优先选择浓缩树脂。后续会加入优先选择双倍奖励。 +- **树脂不足时自动停止**:如果领取奖励时树脂不够了,脚本会直接停止,不会使用脆弱树脂。 +## 常见问题 +### 一运行就报错退出了 +根据错误提示自行排查原因 +### 找不到地脉花 / 找到地脉花,未找到策略 +脚本配置里最下面强制运行路线里看一下有没有,有请将出错的完整游戏界面截图反馈,没有请等待脚本更新。 +注意:为了方便截图反馈,出现该错误时不会关闭大地图界面!也不会将关闭的自定义标记按钮打开! +### 走到地脉花旁边就开始战斗了,没有开启地脉花 +wgc的bug,请使用bitblt截图方式,脚本只支持这个 +如果一定要用wgc,请自行修改所有地图追踪文件的坐标 +如果后续bgi没有修复这个bug的打算,可能会出一个wgc专版 +### 明明设置了刷经验花/摩拉花,但是会打另一种花 +当地脉花打完后,下一个点位已经存在另一类型的地脉花,则下一朵地脉花将跳过这个点,刷新在下一个位置。 +例如这里,摩拉花刷新在经验花的下一个位置上 +目前没有很好的解决方法 +### 跑完后大地图所有自定义的标点都没了 +打开大地图,点击左下角设置,开启自定义标记。 +脚本正常结束运行时会打开的。 + +## 更新日志 +1.0 脚本发布 + +## 制作进度 +### 蒙德 +[x] 风起地 +[x] 清泉镇 +[x] 奔狼领 +[x] 风龙废墟 +[x] 千风神殿 +[x] 望风山地 +[x] 达达乌帕谷 +### 璃月 +[x] 石门 +### 稻妻 +### 须弥 +### 枫丹 +[x] 秋分山西侧 +[x] 芒索斯山东麓 +[ ] 新枫丹科学院 +[ ] 柔灯港 +[x] 秋分山东侧 +[x] 厄里那斯 +### 纳塔 +[x] 圣火竞技场 \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/icon/Blossom_of_Revelation.png b/repo/js/AutoLeyLineOutcrop/assets/icon/Blossom_of_Revelation.png new file mode 100644 index 0000000000000000000000000000000000000000..7f6e5856ec2a114df2e60f45405487935121fe51 GIT binary patch literal 2930 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 literal 0 HcmV?d00001 diff --git a/repo/js/AutoLeyLineOutcrop/assets/icon/close.png b/repo/js/AutoLeyLineOutcrop/assets/icon/close.png new file mode 100644 index 0000000000000000000000000000000000000000..2490a1e4bf244522c866715be4ff7c5e245d06d3 GIT binary patch literal 6559 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 RON0Ob002ovPDHLkV1mPetN8!` literal 0 HcmV?d00001 diff --git a/repo/js/AutoLeyLineOutcrop/assets/icon/open.png b/repo/js/AutoLeyLineOutcrop/assets/icon/open.png new file mode 100644 index 0000000000000000000000000000000000000000..31286a86601ca7773077a7e6cc0203eeb0ca0894 GIT binary patch literal 6261 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 6) { + timesValue = 6; + log.info(`⚠️ 次数 ${num} 大于6,已调整为6`); + } else { + // 处理小数 + if (!Number.isInteger(num)) { + timesValue = Math.floor(num); + log.info(`⚠️ 次数 ${num} 不是整数,已向下取整为 ${timesValue}`); + } else { + timesValue = num; + } + } + } + log.info(`刷取次数:${timesValue}`); + + // 强制运行 + if (forcerun == true) { + log.info("已开启强制运行,不再识别地脉花位置"); + log.info(`执行策略:${forcerunpath}`); + try { + const pathType = type == "蓝花(经验书)" ? "BoR" : "BoW"; + for (let i = 1; i <= 6; i++) { + await pathingScript.runFile(`assets/pathing/${pathType}/${forcerunpath}-${i}.json`); + await attemptReward(forcerun); + } + } catch (error) { + log.info(error.message); + } + return; + } + + // 寻找地脉花位置 + await findLeyLineOutcrop(country, type, retry, retryCount); + + // 分配对应的策略 + // 可以通过getBigMapZoomLevel(),获取到中心点坐标和地脉花图标的位置来确定地脉花所处的准确位置,但是作者的数学不好,实在是算不明白,只好先采用这种笨办法了,后续可以对这个进行优化 + if (country == "蒙德" && lanhua && lanhua.x > 1250 && lanhua.x < 1300 && lanhua.y > 600 && lanhua.y < 610 || country == "蒙德" && huanghua && huanghua.x > 1250 && huanghua.x < 1300 && huanghua.y > 600 && huanghua.y < 610) { + task = "蒙德1-风起地"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 4; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (country == "蒙德" && lanhua && lanhua.x > 810 && lanhua.x < 830 && lanhua.y > 880 && lanhua.y < 910 || country == "蒙德" && huanghua && huanghua.x > 810 && huanghua.x < 830 && huanghua.y > 880 && huanghua.y < 910) { + task = "蒙德2-清泉镇"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 4; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (country == "蒙德" && lanhua && lanhua.x > 480 && lanhua.x < 490 && lanhua.y > 490 && lanhua.y < 500) { + task = "蒙德3-奔狼领"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 4; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (country == "蒙德" && lanhua && lanhua.x > 550 && lanhua.x < 600 && lanhua.y > 150 && lanhua.y < 250 || country == "蒙德" && huanghua && huanghua.x > 550 && huanghua.x < 600 && huanghua.y > 150 && huanghua.y < 250) { + task = "蒙德4-风龙废墟"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 4; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (country == "蒙德" && lanhua && lanhua.x > 1380 && lanhua.x < 1390 && lanhua.y > 515 && lanhua.y < 525 || country == "蒙德" && huanghua && huanghua.x > 1380 && huanghua.x < 1390 && huanghua.y > 515 && huanghua.y < 525) { + task = "蒙德5-千风神殿"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 4; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (country == "蒙德" && lanhua && lanhua.x > 1280 && lanhua.x < 1290 && lanhua.y > 170 && lanhua.y < 180 || country == "蒙德" && huanghua && huanghua.x > 1280 && huanghua.x < 1290 && huanghua.y > 170 && huanghua.y < 180) { + task = "蒙德6-望风山地"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 5; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (country == "蒙德" && lanhua && lanhua.x > 1100 && lanhua.x < 1300 && lanhua.y > 700 && lanhua.y < 900 || country == "蒙德" && huanghua && huanghua.x > 1100 && huanghua.x < 1300 && huanghua.y > 700 && huanghua.y < 900) { + task = "蒙德7-达达乌帕谷"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 5; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (lanhua && lanhua.x > 1100 && lanhua.x < 1150 && lanhua.y > 300 && lanhua.y < 350) { + task = "璃月1-石门"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 4; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + //} else if (lanhua.x > 1350 && lanhua.x < 1400 && lanhua.y > 400 && lanhua.y < 450 && center.x - lanhua.x >= 1050 && center.x - lanhua.x <= 1060 && center.y - lanhua.y >= 90 && center.y - lanhua.y <= 100) { + } else if (lanhua && lanhua.x > 1200 && lanhua.x < 1250 && lanhua.y > 450 && lanhua.y < 500) { // 如果改用碧水原七天神像的中心点的话这个也要改 + task = "璃月3-瑶光滩"; + log.info(`执行策略:${task}`); + await pathingScript.runFile(`assets/pathing/BoR/${task}-1.json`); + await attemptReward(forcerun); + } else if (lanhua && lanhua.x > 220 && lanhua.x < 270 && lanhua.y > 900 && lanhua.y < 950) { + task = "稻妻3-八酝岛"; + log.info(`执行策略:${task}`); + await pathingScript.runFile(`assets/pathing/BoR/${task}-1.json`); + await attemptReward(forcerun); + } else if (country == "枫丹" && huanghua && huanghua.x > 700 && huanghua.x < 900 && huanghua.y > 900 && huanghua.y < 1100) { + task = "枫丹1-秋分山西侧"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 5; i++) { + await pathingScript.runFile(`assets/pathing/BoW/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (country == "枫丹" && lanhua && lanhua.x > 300 && lanhua.x < 500 && lanhua.y > 700 && lanhua.y < 900) { + task = "枫丹2-芒索斯山东麓"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 4; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (country == "枫丹" && lanhua && lanhua.x > 800 && lanhua.x < 1000 && lanhua.y > 800 && lanhua.y < 1000 || country == "枫丹" && huanghua && huanghua.x > 800 && huanghua.x < 1000 && huanghua.y > 800 && huanghua.y < 1000) { + task = "枫丹5-秋分山东侧"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 4; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (country == "枫丹" && lanhua && lanhua.x > 300 && lanhua.x < 500 && lanhua.y > 900 && lanhua.y < 1000) { + task = "枫丹6-厄里那斯"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 6; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + } else if (lanhua && lanhua.x > 1100 && lanhua.x < 1200 && lanhua.y > 750 && lanhua.y < 850) { + task = "纳塔5-圣火竞技场"; + log.info(`执行策略:${task}`); + for (let i = 1; i <= 4; i++) { + await pathingScript.runFile(`assets/pathing/BoR/${task}-${i}.json`); + await attemptReward(forcerun); + } + + } else { + log.error("未找到对应的地脉花策略,请再次运行脚本"); + log.error("如果仍然不行,请截图*完整的*游戏界面,并反馈给作者!"); + log.error("完整的游戏界面!完整的游戏界面!完整的游戏界面!"); + return; + } + await openCustomMarks(); + } catch (e) { + log.error("出错了! {error}", e.message); + await openCustomMarks(); + } +})(); + +async function attemptReward(forcerun) { + // 超时处理 + if (retryCount >= 5 && forcerun == false) { + retryCount = 0; + throw new Error("超过最大重试次数,领取奖励失败"); + } else if (retryCount >= 5 && forcerun == true) { + retryCount = 0; + log.error("超过最大重试次数,领取奖励失败"); + log.info("强制运行模式,继续执行后续路线"); + await genshin.returnMainUi(); + return; + } + log.info("领取奖励,优先使用浓缩树脂"); + keyPress("F"); + await sleep(500); + // 识别是否为地脉之花界面 + let resList = captureGameRegion().findMulti(RecognitionObject.ocrThis); + let isValid = false; + let condensedResin = null; + let originalResin = null; + + if (resList && resList.count > 0) { + for (let i = 0; i < resList.count; i++) { + let res = resList[i]; + if (res.text.includes("使用浓缩树脂")) { + condensedResin = res; + } else if (res.text.includes("使用原粹树脂")) { + originalResin = res; + } else if (res.text.includes("补充原粹树脂")) { + // 树脂用完了,结束脚本 + isValid = true; + log.error("识别到补充原粹树脂,看来树脂用完了呢"); + await keyPress("VK_ESCAPE"); + throw new Error("树脂已用完"); + } + } + + if (condensedResin) { + isValid = true; + log.info("选择使用浓缩树脂"); + click(Math.round(condensedResin.x + condensedResin.width / 2), Math.round(condensedResin.y + condensedResin.height / 2)); + return; + } else if (originalResin) { + isValid = true; + log.info("选择使用原粹树脂"); + click(Math.round(originalResin.x + originalResin.width / 2), Math.round(originalResin.y + originalResin.height / 2)); + return; + } + } + + // 重试 + if (!isValid) { + log.info("当前界面不是地脉之花界面,重新执行代码"); + await genshin.returnMainUi(); + await sleep(1000); + retryCount++; + await attemptReward(forcerun); + } +} +async function closeCustomMarks() { + await genshin.returnMainUi(); + keyPress("M"); + await sleep(600); + click(60,1020); + await sleep(600); + let button = captureGameRegion().find(RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/icon/open.png"),)); + if (button) { + log.info("关闭自定义标记"); + click(Math.round(button.x + button.width / 2), Math.round(button.y + button.height / 2)); + await sleep(600); + } else { + log.error("未找到开关按钮"); + } + await genshin.returnMainUi(); +} + +async function findLeyLineOutcrop(country, type, retry, retryCount) { + if (retryCount >= 5) { + retryCount = 0; + throw new Error("寻找地脉花位置失败"); + } + log.info("寻找地脉花位置"); + keyPress("M"); + await sleep(600); + /* OCR识别国家,会点到“蒙德城”“璃月港”等地区标注 + await click(1840, 1020); + await sleep(600); + let captureRegion = captureGameRegion(); + let resList = captureRegion.findMulti(RecognitionObject.ocrThis); + for (let i = 0; i < resList.count; i++) { + let res = resList[i]; + if (res.text.includes(country)) { + log.info("选择国家: {1}", country); + click(Math.round(res.x + res.width / 2), Math.round(res.y + res.height / 2)); + break; + } + } + */ + if (country == "蒙德") { + await genshin.moveMapTo(-876, 2278, "蒙德"); + } else if (country == "璃月") { + await genshin.moveMapTo(270, -666, "璃月"); + } else if (country == "稻妻") { + await genshin.moveMapTo(-4400, -3050, "稻妻"); + } else if (country == "须弥") { + await genshin.moveMapTo(2877, -374, "须弥"); + } else if (country == "枫丹") { + await genshin.moveMapTo(4029, 3054, "枫丹"); //吞星之鲸周本 + } else if (country == "纳塔") { + await genshin.moveMapTo(9541, -1782, "纳塔"); //镜璧山七天神像 +// } else if (country == "至冬") { +// await genshin.moveMapTo(12288, 6144, "至冬"); + } else { + throw new Error(`未知国家: ${country}`); + } + + // 应该不需要再延时等待了 + // await sleep(500); + // 识别地脉花位置 + lanhua = null; + huanghua = null; + + // 定位地脉花位置 + await locateLeyLineOutcrop(country, type, retry, retryCount); +} + +async function locateLeyLineOutcrop(country, type, retry, retryCount) { + await sleep(200); + // 使用新的方法来缩放地图 + await genshin.setBigMapZoomLevel(3.0); + if (type == "蓝花(经验书)") { + // 经验花的模板匹配 + // 虽然匹配写了多个地脉花的识别,但是还没有写对应的处理逻辑,如果真识别到了多个可能会出问题 + let lanhuaList = captureGameRegion().findMulti(RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/icon/Blossom_of_Revelation.png"))); + if (lanhuaList && lanhuaList.count > 0) { + for (let i = 0; i < lanhuaList.count; i++) { + lanhua = lanhuaList[i]; + log.info("找到经验地脉花,位置({x},{y})", lanhua.x, lanhua.y); + center = genshin.getPositionFromBigMap(); + } + } else { + // 部分地脉花需要拖动地图才能找到 + if (country == "蒙德" && retry == true && retryCount == 1) { + // 蒙德4 + retry = false; + await genshin.moveMapTo(-386, 2298); // 奔狼领上方锚点 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } else if (country == "璃月" && retry == true && retryCount == 1) { + // 璃月1 + retry = false; + await genshin.moveMapTo(253, 1285); // 碧水原七天神像 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } else if (country == "璃月" && retry == true && retryCount == 2) { + // 璃月3 + retry = false; + await genshin.moveMapTo(342, 548); // 归离原字左边的锚点 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } else if (country == "稻妻" && retry == true && retryCount == 1) { + // 稻妻3 + retry = false; + await genshin.moveMapTo(-3233, -3533); // 踏鞴砂七天神像 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } else if (country == "枫丹" && retry == true && retryCount == 1) { + // 枫丹5 6 + retry = false; + await genshin.moveMapTo(4301, 4765); // 新枫丹科学院锚点 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } + retryCount++; + retry = true; + log.warn("未找到地脉花"); + //log.info(`国家:${country},是否重试:${retry},重试次数:${retryCount}`); + log.warn("传送到七天神像并关闭自定义标记以避免地脉花图标被遮挡导致找不到地脉花"); + // 优先处理站在地脉花上的情况,不过这个可能性比较小,后续会考虑放到后面处理 + await genshin.tpToStatueOfTheSeven(); + await closeCustomMarks(); + await findLeyLineOutcrop(country, type, retry, retryCount); + return; + } + } else { + let huanghuaList = captureGameRegion().findMulti(RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/icon/Blossom_of_Wealth.png"))); + if (huanghuaList && huanghuaList.count > 0) { + for (let i = 0; i < huanghuaList.count; i++) { + huanghua = huanghuaList[i]; + log.info("找到摩拉地脉花,位置({x},{y})", huanghua.x, huanghua.y); + } + } else { + // 部分地脉花需要拖动地图才能找到 + if (country == "蒙德" && retry == true && retryCount == 1) { + // 蒙德4 + retry = false; + await genshin.moveMapTo(-386, 2298); // 奔狼领上方锚点 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } else if (country == "蒙德" && retry == true && retryCount == 2) { + // 蒙德6 + retry = false; + await genshin.moveMapTo(-1427, 1662); // 南风之狮的庙宇 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } else if (country == "璃月" && retry == true && retryCount == 1) { + // 璃月1 + retry = false; + await genshin.moveMapTo(253, 1285); // 碧水原七天神像 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } else if (country == "璃月" && retry == true && retryCount == 2) { + // 璃月3 + retry = false; + await genshin.moveMapTo(342, 548); // 归离原字左边的锚点 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } else if (country == "稻妻" && retry == true && retryCount == 1) { + // 稻妻3 + retry = false; + await genshin.moveMapTo(-3233, -3533); // 踏鞴砂七天神像 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } else if (country == "枫丹" && retry == true && retryCount == 1) { + // 枫丹5 6 + retry = false; + await genshin.moveMapTo(4301, 4765); // 新枫丹科学院锚点 + await locateLeyLineOutcrop(country, type, retry, retryCount); + return; + } + retry = true; + retryCount++; + log.warn("未找到地脉花"); + if (retryCount == 1) { + log.warn("传送到七天神像并关闭自定义标记以避免地脉花图标被遮挡导致找不到地脉花"); + await genshin.tpToStatueOfTheSeven(); + await closeCustomMarks(); + } + await findLeyLineOutcrop(country, type, retry, retryCount); + return; + } + } +} + +async function openCustomMarks() { + await genshin.returnMainUi(); + keyPress("M"); + await sleep(600); + click(60, 1020); + await sleep(600); + let button = captureGameRegion().findMulti(RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/icon/close.png"),)); + if (button) { + for (let i = 0; i < button.count; i++) { + b = button[i]; + if (b.y > 280 && b.y < 350) { + log.info("打开自定义标记"); + click(Math.round(b.x + b.width / 2), Math.round(b.y + b.height / 2)); + } + } + } else { + log.error("未找到开关按钮"); + } + await genshin.returnMainUi(); +} + +// 纯点击的缩放地图,已弃用 +async function zoomMap() { + // 缩小地图 + await sleep(1000); + await click(50, 640); + await sleep(500); + await click(50, 640); + await sleep(500); + await click(50, 640); + await sleep(500); + await click(50, 640); + await sleep(500); + await click(50, 640); + await sleep(500); + // 放大 + await click(50, 450); + await sleep(500); + await click(50, 450); + await sleep(500); +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/manifest.json b/repo/js/AutoLeyLineOutcrop/manifest.json new file mode 100644 index 00000000..899add70 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/manifest.json @@ -0,0 +1,19 @@ +{ + "manifest_version": 1, + "name": "全自动地脉花", + "version": "1.0", + "bgi_version": "0.44.3", + "description": "基于OCR图像识别的全自动刷取地脉花。\n感谢 平面镜 制作的枫丹地脉花脚本,本脚本在该脚本的基础上修改而来。\n\n💡更多信息请查看在线手册:https://hcnsvf0s8d0s.feishu.cn/wiki/Tb1twpThLi7UlykqcYOcuccTnjJ \n\n----------注意事项----------\n●仅支持BetterGI 0.44.3 及以上版本!\n●脚本仍未完成,没有出现的路线还未制作,请耐心等待。目前只有蒙德是全部路线,其他国家请使用强制运行模式。\n●目前脚本能力有限,暂时不支持识别地脉花是否已经开启,请确保队伍的练度足够,中途出现角色血量过低或倒下会无法继续,届时需要在重新运行时手动关闭领取地脉花奖励的界面。\n●脚本还提供了强行运行的功能,当无法识别地脉花位置时可以指定线路,脚本将不再对地脉花进行识别,即使没有领取到奖励也会继续运行,适用于路线重跑以及开发调试。\n●运行时会传送到七天神像设置中设置的七天神像,可能需要关闭七天神像设置中的“是否就近七天神像恢复血量”,并指定七天神像。\n●战斗策略注意调度器设置中地图追踪行走配置里的“允许在JsSpript中使用”和“覆盖JS中的自动战斗配置”,只有在都打开的情况下脚本才会使用下面的战斗配置,否则会使用独立任务中的战斗策略。", + "authors": [ + { + "name": "ddaodan", + "link": "https://github.com/ddaodan" + }, + { + "name": "平面镜" + } + ], + "settings_ui": "settings.json", + "main": "main.js" + } + \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/settings.json b/repo/js/AutoLeyLineOutcrop/settings.json new file mode 100644 index 00000000..d213a29b --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/settings.json @@ -0,0 +1,70 @@ +[ + { + "name": "start", + "type": "checkbox", + "label": "请仔细阅读脚本介绍,并进行配置后勾选此项\n不勾选脚本不会运行!" + }, + { + "name": "leylineoutcroptype", + "type": "select", + "label": "地脉花类型", + "options": [ + "蓝花(经验书)", + "黄花(摩拉)" + ] + }, + { + "name": "country", + "type": "select", + "label": "国家", + "options": [ + "蒙德", + "璃月", + //"稻妻", + //"须弥", + "枫丹", + "纳塔" + ] + }, + { + "name": "count", + "type": "input-text", + "label": "刷取次数,默认6次\n目前该项暂无效果" + }, + { + "name": "team", + "type": "input-text", + "label": "战斗的队伍名称,不填表示不切换队伍" + }, + { + "name": "forcerun", + "type": "checkbox", + "label": "强制运行,适用于中途停止等特殊情况\n开启后将无视地脉花的实际位置" + }, + { + "name": "forcerunpath", + "type": "select", + "label": "强制运行的路线,勾选上方选项后生效", + "options": [ + "蒙德1-风起地", + "蒙德2-清泉镇", + "蒙德3-奔狼领", + "蒙德4-风龙废墟", + "蒙德5-千风神殿", + "蒙德6-望风山地", + "蒙德7-达达乌帕谷", + "璃月1-石门", + //"(WIP)璃月3-瑶光滩", + //"(WIP)稻妻3-八酝岛", + //"(WIP)须弥", + "枫丹1-秋分山西侧", + "枫丹2-芒索斯山东麓", + //"枫丹3-新枫丹科学院", + //"枫丹4-柔灯港", + "枫丹5-秋分山东侧", + "枫丹6-厄里那斯", + "纳塔5-圣火竞技场" + ] + } +] + \ No newline at end of file