From 5f5249b348043dc849a75cb1ea68826562134d39 Mon Sep 17 00:00:00 2001 From: 214-hanyan Date: Mon, 9 Jun 2025 06:13:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=86=E5=88=AB=E4=BD=93=E5=8A=9B=E4=B8=8E?= =?UTF-8?q?=E6=A0=91=E8=84=82=E6=95=B0=E9=87=8F=20(#981)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 识别体力与树脂数量 * 璃月6-奥藏山 * update repo.json * 地图追踪 星银矿石 (#1025) * Add files via upload * 自动修复 JSON 格式和版本号 [ci skip] * Delete repo/pathing/矿物/星银矿石/desktop.ini * Add files via upload --------- Co-authored-by: GitHub Actions Bot * Update main.js (#1024) 手动终止夹断 * update repo.json * 6.7 富Abpro (#1022) * Add files via upload * Add files via upload * Delete repo/js/AutoArtifactsPro/assets/ArtifactsPath/A路线/01普通/000【激活程序】稻妻大炮.json * Delete repo/js/AutoArtifactsPro/assets/ArtifactsPath/A路线/01普通/404须弥-天臂池七天神像4.json * Delete repo/js/AutoArtifactsPro/assets/ArtifactsPath/A路线/01普通/601纳塔-流泉之众4.json * Delete repo/js/AutoArtifactsPro/assets/ArtifactsPath/A路线/01普通/602纳塔-悬木人声望2.json * Delete repo/js/AutoArtifactsPro/assets/ArtifactsPath/A路线/01普通/603纳塔-花羽会西2.json * Add files via upload * update repo.json * `七圣召唤七日历练`: 修复牌币已满时卡在出战界面的问题 (#1017) * update repo.json * js:狗粮重置版1.2更新 (#1026) * update repo.json * fix: 修复部分情况下未找到图标直接结束 * temp * add: 璃月7 * feat: 新的数据结构 * add: 合并代码,功能待实现 --------- Co-authored-by: 寒烟 <2841974482@qq.com> Co-authored-by: physligl <181079228+physligl@users.noreply.github.com> Co-authored-by: Tooltingsu <143606015+Tooltingsu@users.noreply.github.com> Co-authored-by: GitHub Actions Bot Co-authored-by: JJMdzh Co-authored-by: 汐 <121607261+jiegedabaobei@users.noreply.github.com> Co-authored-by: Patrick-Ze <19711799+Patrick-Ze@users.noreply.github.com> Co-authored-by: mno <718135749@qq.com> Co-authored-by: 秋云 --- .../LeyLineOutcropData.json | 10962 +++++++++------- .../RecognitionObject/Condensed Resin.png | Bin 0 -> 25852 bytes .../RecognitionObject/Fragile Resin.png | Bin 0 -> 22741 bytes .../RecognitionObject/Temporary Resin.png | Bin 0 -> 25939 bytes .../generate_data_format.cpython-313.pyc | Bin 0 -> 23053 bytes .../assets/pathing/target/璃月6-奥藏山-1.json | 20 + .../assets/pathing/target/璃月6-奥藏山-2.json | 20 + .../assets/pathing/target/璃月6-奥藏山-3.json | 20 + .../assets/pathing/target/璃月6-奥藏山-4.json | 20 + .../pathing/target/璃月6-奥藏山-5-2.json | 20 + .../pathing/target/璃月6-奥藏山-6-2.json | 20 + .../pathing/target/璃月6-奥藏山-7-2.json | 20 + .../pathing/target/璃月6-奥藏山-8-2.json | 20 + .../pathing/target/璃月6-奥藏山-9-2.json | 20 + .../assets/pathing/target/璃月7-遁玉陵-1.json | 22 + .../assets/pathing/target/璃月7-遁玉陵-2.json | 22 + .../assets/pathing/target/璃月7-遁玉陵-3.json | 22 + .../assets/pathing/target/璃月7-遁玉陵-4.json | 22 + .../assets/pathing/target/璃月7-遁玉陵-5.json | 22 + .../assets/pathing/target/璃月7-遁玉陵-6.json | 20 + .../assets/pathing/璃月6-奥藏山-1.json | 31 + .../assets/pathing/璃月6-奥藏山-2.json | 58 + .../assets/pathing/璃月6-奥藏山-3.json | 76 + .../assets/pathing/璃月6-奥藏山-4.json | 31 + .../assets/pathing/璃月6-奥藏山-5-2.json | 31 + .../assets/pathing/璃月6-奥藏山-6-2.json | 49 + .../assets/pathing/璃月6-奥藏山-7-2.json | 68 + .../assets/pathing/璃月6-奥藏山-8-2.json | 49 + .../assets/pathing/璃月6-奥藏山-9-2.json | 40 + .../assets/pathing/璃月7-遁玉陵-1.json | 33 + .../assets/pathing/璃月7-遁玉陵-2.json | 33 + .../assets/pathing/璃月7-遁玉陵-3.json | 60 + .../assets/pathing/璃月7-遁玉陵-4.json | 42 + .../assets/pathing/璃月7-遁玉陵-5.json | 60 + .../assets/pathing/璃月7-遁玉陵-6.json | 31 + .../generate_data_format.py | 859 ++ repo/js/AutoLeyLineOutcrop/main.js | 62 +- repo/js/AutoLeyLineOutcrop/orphan_handling.py | 28 + repo/js/AutoLeyLineOutcrop/output.txt | 1370 ++ repo/js/AutoLeyLineOutcrop/output_new.txt | 1001 ++ repo/js/AutoLeyLineOutcrop/settings.json | 14 +- .../test_filename_parsing.py | 58 + repo/js/AutoLeyLineOutcrop/test_parsing.py | 58 + .../utils/executePathsUsingNewNodeData.js | 0 .../utils/executePathsUsingNodeData.js | 103 +- .../executePathsUsingSeparatedNodeData.js | 0 .../utils/recognitionResin.js | 149 + 47 files changed, 10564 insertions(+), 5102 deletions(-) create mode 100644 repo/js/AutoLeyLineOutcrop/RecognitionObject/Condensed Resin.png create mode 100644 repo/js/AutoLeyLineOutcrop/RecognitionObject/Fragile Resin.png create mode 100644 repo/js/AutoLeyLineOutcrop/RecognitionObject/Temporary Resin.png create mode 100644 repo/js/AutoLeyLineOutcrop/__pycache__/generate_data_format.cpython-313.pyc create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-5-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-6-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-7-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-8-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-9-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-5.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-6.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-5-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-6-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-7-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-8-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-9-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-1.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-2.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-3.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-4.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-5.json create mode 100644 repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-6.json create mode 100644 repo/js/AutoLeyLineOutcrop/generate_data_format.py create mode 100644 repo/js/AutoLeyLineOutcrop/orphan_handling.py create mode 100644 repo/js/AutoLeyLineOutcrop/output.txt create mode 100644 repo/js/AutoLeyLineOutcrop/output_new.txt create mode 100644 repo/js/AutoLeyLineOutcrop/test_filename_parsing.py create mode 100644 repo/js/AutoLeyLineOutcrop/test_parsing.py create mode 100644 repo/js/AutoLeyLineOutcrop/utils/executePathsUsingNewNodeData.js create mode 100644 repo/js/AutoLeyLineOutcrop/utils/executePathsUsingSeparatedNodeData.js create mode 100644 repo/js/AutoLeyLineOutcrop/utils/recognitionResin.js diff --git a/repo/js/AutoLeyLineOutcrop/LeyLineOutcropData.json b/repo/js/AutoLeyLineOutcrop/LeyLineOutcropData.json index d84207aa..6aa41c5c 100644 --- a/repo/js/AutoLeyLineOutcrop/LeyLineOutcropData.json +++ b/repo/js/AutoLeyLineOutcrop/LeyLineOutcropData.json @@ -1,5070 +1,5896 @@ { - "node": [ - { - "id": 1, - "type": "teleport", - "region": "枫丹1", - "position": { - "x": 4146.91, - "y": 2606.27 - }, - "prev": [], - "next": [ - { - "target": 90, - "route": "assets/pathing/枫丹1-秋分山西侧-1.json" - }, - { - "target": 91, - "route": "assets/pathing/枫丹1-秋分山西侧-2.json" - }, - { - "target": 107, - "route": "assets/pathing/枫丹5-秋分山东侧-1.json" - } - ] - }, - { - "id": 2, - "type": "teleport", - "region": "枫丹1", - "position": { - "x": 4375.5, - "y": 2280.05 - }, - "prev": [], - "next": [ - { - "target": 92, - "route": "assets/pathing/枫丹1-秋分山西侧-3.json" - }, - { - "target": 93, - "route": "assets/pathing/枫丹1-秋分山西侧-4.json" - }, - { - "target": 94, - "route": "assets/pathing/枫丹1-秋分山西侧-5.json" - } - ] - }, - { - "id": 3, - "type": "teleport", - "region": "枫丹2", - "position": { - "x": 4984.79, - "y": 4462.98 - }, - "prev": [], - "next": [ - { - "target": 95, - "route": "assets/pathing/枫丹2-芒索斯山东麓-1.json" - }, - { - "target": 96, - "route": "assets/pathing/枫丹2-芒索斯山东麓-2.json" - }, - { - "target": 97, - "route": "assets/pathing/枫丹2-芒索斯山东麓-3.json" - }, - { - "target": 98, - "route": "assets/pathing/枫丹2-芒索斯山东麓-4.json" - } - ] - }, - { - "id": 4, - "type": "teleport", - "region": "枫丹3", - "position": { - "x": 4498.18, - "y": 4710.79 - }, - "prev": [], - "next": [ - { - "target": 99, - "route": "assets/pathing/枫丹3-新枫丹科学院-1.json" - }, - { - "target": 100, - "route": "assets/pathing/枫丹3-新枫丹科学院-2.json" - } - ] - }, - { - "id": 5, - "type": "teleport", - "region": "枫丹3", - "position": { - "x": 4624.36, - "y": 4951.78 - }, - "prev": [], - "next": [ - { - "target": 101, - "route": "assets/pathing/枫丹3-新枫丹科学院-3.json" - }, - { - "target": 102, - "route": "assets/pathing/枫丹3-新枫丹科学院-4.json" - } - ] - }, - { - "id": 6, - "type": "teleport", - "region": "枫丹4", - "position": { - "x": 2873.54, - "y": 3512.04 - }, - "prev": [], - "next": [ - { - "target": 103, - "route": "assets/pathing/枫丹4-柔灯港-1.json" - } - ] - }, - { - "id": 7, - "type": "teleport", - "region": "枫丹4", - "position": { - "x": 3032.66, - "y": 3732.42 - }, - "prev": [], - "next": [ - { - "target": 104, - "route": "assets/pathing/枫丹4-柔灯港-2.json" - }, - { - "target": 105, - "route": "assets/pathing/枫丹4-柔灯港-3.json" - }, - { - "target": 106, - "route": "assets/pathing/枫丹4-柔灯港-4.json" - } - ] - }, - { - "id": 8, - "type": "teleport", - "region": "枫丹5", - "position": { - "x": 3917.29, - "y": 2576.43 - }, - "prev": [], - "next": [ - { - "target": 108, - "route": "assets/pathing/枫丹5-秋分山东侧-3.json" - }, - { - "target": 109, - "route": "assets/pathing/枫丹5-秋分山东侧-4.json" - } - ] - }, - { - "id": 9, - "type": "teleport", - "region": "枫丹6", - "position": { - "x": 4749.59, - "y": 2636.21 - }, - "prev": [], - "next": [ - { - "target": 110, - "route": "assets/pathing/枫丹6-厄里那斯-1.json" - } - ] - }, - { - "id": 10, - "type": "teleport", - "region": "枫丹6", - "position": { - "x": 4689.61, - "y": 2429.43 - }, - "prev": [], - "next": [ - { - "target": 111, - "route": "assets/pathing/枫丹6-厄里那斯-2.json" - }, - { - "target": 112, - "route": "assets/pathing/枫丹6-厄里那斯-3.json" - }, - { - "target": 113, - "route": "assets/pathing/枫丹6-厄里那斯-4.json" - }, - { - "target": 115, - "route": "assets/pathing/枫丹6-厄里那斯-6.json" - } - ] - }, - { - "id": 11, - "type": "teleport", - "region": "枫丹6", - "position": { - "x": 4626.1, - "y": 2182.3 - }, - "prev": [], - "next": [ - { - "target": 114, - "route": "assets/pathing/枫丹6-厄里那斯-5.json" - } - ] - }, - { - "id": 12, - "type": "teleport", - "region": "璃月1", - "position": { - "x": 207.48, - "y": 1573.01 - }, - "prev": [], - "next": [ - { - "target": 116, - "route": "assets/pathing/璃月1-石门-1.json" - } - ] - }, - { - "id": 13, - "type": "teleport", - "region": "璃月1", - "position": { - "x": -321.55, - "y": 1473.33 - }, - "prev": [], - "next": [ - { - "target": 117, - "route": "assets/pathing/璃月1-石门-2.json" - } - ] - }, - { - "id": 14, - "type": "teleport", - "region": "璃月10", - "position": { - "x": 897.84, - "y": 583.5 - }, - "prev": [], - "next": [ - { - "target": 120, - "route": "assets/pathing/璃月10-绝云间-1.json" - }, - { - "target": 123, - "route": "assets/pathing/璃月8-南天门南-6.json" - } - ] - }, - { - "id": 15, - "type": "teleport", - "region": "璃月10", - "position": { - "x": 1045.53, - "y": 950.63 - }, - "prev": [], - "next": [ - { - "target": 121, - "route": "assets/pathing/璃月10-绝云间-2.json" - } - ] - }, - { - "id": 16, - "type": "teleport", - "region": "璃月10", - "position": { - "x": 341.33, - "y": 548.08 - }, - "prev": [], - "next": [ - { - "target": 122, - "route": "assets/pathing/璃月10-绝云间-3.json" - }, - { - "target": 124, - "route": "assets/pathing/璃月10-绝云间-5.json" - }, - { - "target": 141, - "route": "assets/pathing/璃月3-瑶光滩-3.json" - }, - { - "target": 142, - "route": "assets/pathing/璃月3-瑶光滩-4.json" - } - ] - }, - { - "id": 17, - "type": "teleport", - "region": "璃月11", - "position": { - "x": 839.82, - "y": 1532.39 - }, - "prev": [], - "next": [ - { - "target": 125, - "route": "assets/pathing/璃月11-轻策庄-1.json" - } - ] - }, - { - "id": 18, - "type": "teleport", - "region": "璃月11", - "position": { - "x": 489.8, - "y": 1435.14 - }, - "prev": [], - "next": [ - { - "target": 129, - "route": "assets/pathing/璃月11-轻策庄-5.json" - } - ] - }, - { - "id": 19, - "type": "teleport", - "region": "璃月11", - "position": { - "x": 253.05, - "y": 1284.9 - }, - "prev": [], - "next": [ - { - "target": 130, - "route": "assets/pathing/璃月11-轻策庄-6.json" - } - ] - }, - { - "id": 20, - "type": "teleport", - "region": "璃月14", - "position": { - "x": 1433.37, - "y": 1288.0 - }, - "prev": [], - "next": [ - { - "target": 131, - "route": "assets/pathing/璃月14-药蝶谷-1.json" - } - ] - }, - { - "id": 21, - "type": "teleport", - "region": "璃月2", - "position": { - "x": -164.59, - "y": 1182.45 - }, - "prev": [], - "next": [ - { - "target": 135, - "route": "assets/pathing/璃月2-地中之盐-1.json" - }, - { - "target": 136, - "route": "assets/pathing/璃月2-地中之盐-2.json" - } - ] - }, - { - "id": 22, - "type": "teleport", - "region": "璃月2", - "position": { - "x": -188.52, - "y": 972.43 - }, - "prev": [], - "next": [ - { - "target": 137, - "route": "assets/pathing/璃月2-地中之盐-3.json" - } - ] - }, - { - "id": 23, - "type": "teleport", - "region": "璃月2", - "position": { - "x": -57.41, - "y": 656.93 - }, - "prev": [], - "next": [ - { - "target": 138, - "route": "assets/pathing/璃月2-地中之盐-4.json" - }, - { - "target": 139, - "route": "assets/pathing/璃月3-瑶光滩-1.json" - }, - { - "target": 140, - "route": "assets/pathing/璃月3-瑶光滩-2.json" - } - ] - }, - { - "id": 24, - "type": "teleport", - "region": "璃月4", - "position": { - "x": 26.02, - "y": -112.29 - }, - "prev": [], - "next": [ - { - "target": 143, - "route": "assets/pathing/璃月4-璃月港-1.json" - } - ] - }, - { - "id": 25, - "type": "teleport", - "region": "璃月4", - "position": { - "x": 173.88, - "y": 389.47 - }, - "prev": [], - "next": [ - { - "target": 147, - "route": "assets/pathing/璃月4-璃月港-5.json" - } - ] - }, - { - "id": 26, - "type": "teleport", - "region": "璃月5", - "position": { - "x": 710.68, - "y": -772.49 - }, - "prev": [], - "next": [ - { - "target": 148, - "route": "assets/pathing/璃月5-天衡山-1.json" - }, - { - "target": 149, - "route": "assets/pathing/璃月5-天衡山-2.json" - } - ] - }, - { - "id": 27, - "type": "teleport", - "region": "璃月5", - "position": { - "x": 978.65, - "y": -353.56 - }, - "prev": [], - "next": [ - { - "target": 151, - "route": "assets/pathing/璃月5-天衡山-4-1.json" - } - ] - }, - { - "id": 28, - "type": "teleport", - "region": "璃月8", - "position": { - "x": 1665.91, - "y": 386.6 - }, - "prev": [], - "next": [ - { - "target": 152, - "route": "assets/pathing/璃月8-南天门南-1.json" - }, - { - "target": 160, - "route": "assets/pathing/璃月9-南天门东-4.json" - } - ] - }, - { - "id": 29, - "type": "teleport", - "region": "璃月8", - "position": { - "x": 1152.67, - "y": 141.57 - }, - "prev": [], - "next": [ - { - "target": 153, - "route": "assets/pathing/璃月8-南天门南-2.json" - }, - { - "target": 154, - "route": "assets/pathing/璃月8-南天门南-3.json" - }, - { - "target": 155, - "route": "assets/pathing/璃月8-南天门南-4.json" - } - ] - }, - { - "id": 30, - "type": "teleport", - "region": "璃月8", - "position": { - "x": 837.47, - "y": 235.17 - }, - "prev": [], - "next": [ - { - "target": 156, - "route": "assets/pathing/璃月8-南天门南-5.json" - } - ] - }, - { - "id": 31, - "type": "teleport", - "region": "璃月9", - "position": { - "x": 1389.08, - "y": 516.44 - }, - "prev": [], - "next": [ - { - "target": 157, - "route": "assets/pathing/璃月9-南天门东-1.json" - }, - { - "target": 159, - "route": "assets/pathing/璃月9-南天门东-3-1.json" - } - ] - }, - { - "id": 32, - "type": "teleport", - "region": "稻妻1", - "position": { - "x": -4217.89, - "y": -2397.87 - }, - "prev": [], - "next": [ - { - "target": 161, - "route": "assets/pathing/稻妻1-鸣神岛-1.json" - }, - { - "target": 162, - "route": "assets/pathing/稻妻1-鸣神岛-2.json" - } - ] - }, - { - "id": 33, - "type": "teleport", - "region": "稻妻1", - "position": { - "x": -4408.91, - "y": -2395.34 - }, - "prev": [], - "next": [ - { - "target": 163, - "route": "assets/pathing/稻妻1-鸣神岛-3.json" - }, - { - "target": 164, - "route": "assets/pathing/稻妻1-鸣神岛-4.json" - } - ] - }, - { - "id": 34, - "type": "teleport", - "region": "稻妻2", - "position": { - "x": -3016.79, - "y": -3623.7 - }, - "prev": [], - "next": [ - { - "target": 165, - "route": "assets/pathing/稻妻2-踏鞴砂-1.json" - } - ] - }, - { - "id": 35, - "type": "teleport", - "region": "稻妻2", - "position": { - "x": -3233.21, - "y": -3534.22 - }, - "prev": [], - "next": [ - { - "target": 166, - "route": "assets/pathing/稻妻2-踏鞴砂-2.json" - } - ] - }, - { - "id": 36, - "type": "teleport", - "region": "稻妻2", - "position": { - "x": -3393.16, - "y": -3555.99 - }, - "prev": [], - "next": [ - { - "target": 167, - "route": "assets/pathing/稻妻2-踏鞴砂-3.json" - } - ] - }, - { - "id": 37, - "type": "teleport", - "region": "稻妻2", - "position": { - "x": -3437.06, - "y": -3319.78 - }, - "prev": [], - "next": [ - { - "target": 168, - "route": "assets/pathing/稻妻2-踏鞴砂-4.json" - }, - { - "target": 169, - "route": "assets/pathing/稻妻2-踏鞴砂-5.json" - } - ] - }, - { - "id": 38, - "type": "teleport", - "region": "稻妻3", - "position": { - "x": -2224.14, - "y": -4004.16 - }, - "prev": [], - "next": [ - { - "target": 170, - "route": "assets/pathing/稻妻3-八酝岛-1.json" - }, - { - "target": 172, - "route": "assets/pathing/稻妻3-八酝岛-3.json" - }, - { - "target": 173, - "route": "assets/pathing/稻妻3-八酝岛-4.json" - } - ] - }, - { - "id": 39, - "type": "teleport", - "region": "稻妻4", - "position": { - "x": -1058.01, - "y": -3948.66 - }, - "prev": [], - "next": [ - { - "target": 174, - "route": "assets/pathing/稻妻4-海祇岛-1.json" - } - ] - }, - { - "id": 40, - "type": "teleport", - "region": "稻妻4", - "position": { - "x": -1315.93, - "y": -3774.25 - }, - "prev": [], - "next": [ - { - "target": 177, - "route": "assets/pathing/稻妻4-海祇岛-4.json" - } - ] - }, - { - "id": 41, - "type": "teleport", - "region": "稻妻5", - "position": { - "x": -3891.55, - "y": -4389.92 - }, - "prev": [], - "next": [ - { - "target": 178, - "route": "assets/pathing/稻妻5-清籁岛-1.json" - } - ] - }, - { - "id": 42, - "type": "teleport", - "region": "稻妻5", - "position": { - "x": -3684.76, - "y": -4278.4 - }, - "prev": [], - "next": [ - { - "target": 181, - "route": "assets/pathing/稻妻5-清籁岛-4.json" - } - ] - }, - { - "id": 43, - "type": "teleport", - "region": "纳塔1", - "position": { - "x": 7796.08, - "y": -1873.18 - }, - "prev": [], - "next": [ - { - "target": 183, - "route": "assets/pathing/纳塔1-隆崛坡-1.json" - } - ] - }, - { - "id": 44, - "type": "teleport", - "region": "纳塔1", - "position": { - "x": 7857.47, - "y": -1751.25 - }, - "prev": [], - "next": [ - { - "target": 184, - "route": "assets/pathing/纳塔1-隆崛坡-2.json" - }, - { - "target": 185, - "route": "assets/pathing/纳塔1-隆崛坡-3.json" - } - ] - }, - { - "id": 45, - "type": "teleport", - "region": "纳塔10", - "position": { - "x": 8291.35, - "y": -2922.46 - }, - "prev": [], - "next": [ - { - "target": 187, - "route": "assets/pathing/纳塔10-溶水域-1.json" - } - ] - }, - { - "id": 46, - "type": "teleport", - "region": "纳塔10", - "position": { - "x": 8744.65, - "y": -3009.56 - }, - "prev": [], - "next": [ - { - "target": 190, - "route": "assets/pathing/纳塔10-溶水域-4.json" - } - ] - }, - { - "id": 47, - "type": "teleport", - "region": "纳塔2", - "position": { - "x": 8706.46, - "y": -1575.02 - }, - "prev": [], - "next": [ - { - "target": 191, - "route": "assets/pathing/纳塔2-硫晶支脉-1.json" - }, - { - "target": 192, - "route": "assets/pathing/纳塔2-硫晶支脉-2.json" - }, - { - "target": 193, - "route": "assets/pathing/纳塔2-硫晶支脉-3.json" - } - ] - }, - { - "id": 48, - "type": "teleport", - "region": "纳塔2", - "position": { - "x": 8670.84, - "y": -1269.72 - }, - "prev": [], - "next": [ - { - "target": 194, - "route": "assets/pathing/纳塔2-硫晶支脉-4.json" - } - ] - }, - { - "id": 49, - "type": "teleport", - "region": "纳塔3", - "position": { - "x": 8201.95, - "y": -2288.75 - }, - "prev": [], - "next": [ - { - "target": 195, - "route": "assets/pathing/纳塔3-彩石顶-1.json" - } - ] - }, - { - "id": 50, - "type": "teleport", - "region": "纳塔3", - "position": { - "x": 8372.19, - "y": -2196.26 - }, - "prev": [], - "next": [ - { - "target": 196, - "route": "assets/pathing/纳塔3-彩石顶-2.json" - }, - { - "target": 197, - "route": "assets/pathing/纳塔3-彩石顶-3.json" - } - ] - }, - { - "id": 51, - "type": "teleport", - "region": "纳塔4", - "position": { - "x": 9038.74, - "y": -2429.33 - }, - "prev": [], - "next": [ - { - "target": 199, - "route": "assets/pathing/纳塔4-溶水域-1.json" - } - ] - }, - { - "id": 52, - "type": "teleport", - "region": "纳塔5", - "position": { - "x": 9812.76, - "y": -2852.58 - }, - "prev": [], - "next": [ - { - "target": 201, - "route": "assets/pathing/纳塔5-安饶之野-1.json" - }, - { - "target": 202, - "route": "assets/pathing/纳塔5-安饶之野-2.json" - }, - { - "target": 203, - "route": "assets/pathing/纳塔5-安饶之野-3.json" - } - ] - }, - { - "id": 53, - "type": "teleport", - "region": "纳塔6", - "position": { - "x": 9282.7, - "y": -2163.58 - }, - "prev": [], - "next": [ - { - "target": 204, - "route": "assets/pathing/纳塔6-圣火竞技场-1.json" - }, - { - "target": 205, - "route": "assets/pathing/纳塔6-圣火竞技场-2.json" - } - ] - }, - { - "id": 54, - "type": "teleport", - "region": "纳塔7", - "position": { - "x": 9989.5, - "y": -1607.82 - }, - "prev": [], - "next": [ - { - "target": 208, - "route": "assets/pathing/纳塔7-烟谜主-1.json" - } - ] - }, - { - "id": 55, - "type": "teleport", - "region": "纳塔8", - "position": { - "x": 9548.24, - "y": -1116.54 - }, - "prev": [], - "next": [ - { - "target": 211, - "route": "assets/pathing/纳塔8-花羽会-1.json" - }, - { - "target": 212, - "route": "assets/pathing/纳塔8-花羽会-2.json" - } - ] - }, - { - "id": 56, - "type": "teleport", - "region": "纳塔8", - "position": { - "x": 9719.22, - "y": -851.99 - }, - "prev": [], - "next": [ - { - "target": 213, - "route": "assets/pathing/纳塔8-花羽会-3.json" - } - ] - }, - { - "id": 57, - "type": "teleport", - "region": "纳塔9", - "position": { - "x": 9839.57, - "y": -1290.01 - }, - "prev": [], - "next": [ - { - "target": 214, - "route": "assets/pathing/纳塔9-翘枝崖-1.json" - } - ] - }, - { - "id": 58, - "type": "teleport", - "region": "蒙德1", - "position": { - "x": -1166.84, - "y": 2132.83 - }, - "prev": [], - "next": [ - { - "target": 218, - "route": "assets/pathing/蒙德1-风起地-1.json" - } - ] - }, - { - "id": 59, - "type": "teleport", - "region": "蒙德1", - "position": { - "x": -1266.59, - "y": 1933.52 - }, - "prev": [], - "next": [ - { - "target": 219, - "route": "assets/pathing/蒙德1-风起地-2.json" - } - ] - }, - { - "id": 60, - "type": "teleport", - "region": "蒙德1", - "position": { - "x": -914.82, - "y": 1795.51 - }, - "prev": [], - "next": [ - { - "target": 222, - "route": "assets/pathing/蒙德1-风起地-5.json" - } - ] - }, - { - "id": 61, - "type": "teleport", - "region": "蒙德2", - "position": { - "x": -663.61, - "y": 1709.65 - }, - "prev": [], - "next": [ - { - "target": 223, - "route": "assets/pathing/蒙德2-清泉镇-1.json" - } - ] - }, - { - "id": 62, - "type": "teleport", - "region": "蒙德2", - "position": { - "x": -578.76, - "y": 1853.42 - }, - "prev": [], - "next": [ - { - "target": 224, - "route": "assets/pathing/蒙德2-清泉镇-2.json" - } - ] - }, - { - "id": 63, - "type": "teleport", - "region": "蒙德2", - "position": { - "x": -251.66, - "y": 2256.55 - }, - "prev": [], - "next": [ - { - "target": 227, - "route": "assets/pathing/蒙德2-清泉镇-5-1.json" - } - ] - }, - { - "id": 64, - "type": "teleport", - "region": "蒙德3", - "position": { - "x": -385.84, - "y": 2297.22 - }, - "prev": [], - "next": [ - { - "target": 228, - "route": "assets/pathing/蒙德3-奔狼领-1.json" - } - ] - }, - { - "id": 65, - "type": "teleport", - "region": "蒙德3", - "position": { - "x": -440.09, - "y": 2580.75 - }, - "prev": [], - "next": [ - { - "target": 231, - "route": "assets/pathing/蒙德3-奔狼领-4.json" - } - ] - }, - { - "id": 66, - "type": "teleport", - "region": "蒙德4", - "position": { - "x": 177.18, - "y": 2647.07 - }, - "prev": [], - "next": [ - { - "target": 232, - "route": "assets/pathing/蒙德4-风龙废墟-1.json" - } - ] - }, - { - "id": 67, - "type": "teleport", - "region": "蒙德4", - "position": { - "x": 265.6, - "y": 2915.02 - }, - "prev": [], - "next": [ - { - "target": 234, - "route": "assets/pathing/蒙德4-风龙废墟-3.json" - } - ] - }, - { - "id": 68, - "type": "teleport", - "region": "蒙德5", - "position": { - "x": -1505.87, - "y": 2296.26 - }, - "prev": [], - "next": [ - { - "target": 236, - "route": "assets/pathing/蒙德5-千风神殿-1.json" - } - ] - }, - { - "id": 69, - "type": "teleport", - "region": "蒙德5", - "position": { - "x": -1330.15, - "y": 2563.86 - }, - "prev": [], - "next": [ - { - "target": 239, - "route": "assets/pathing/蒙德5-千风神殿-4.json" - } - ] - }, - { - "id": 70, - "type": "teleport", - "region": "蒙德5", - "position": { - "x": -1273.84, - "y": 2721.72 - }, - "prev": [], - "next": [ - { - "target": 240, - "route": "assets/pathing/蒙德5-千风神殿-5.json" - }, - { - "target": 241, - "route": "assets/pathing/蒙德6-望风山地-1.json" - } - ] - }, - { - "id": 71, - "type": "teleport", - "region": "蒙德6", - "position": { - "x": -1629.44, - "y": 2834.36 - }, - "prev": [], - "next": [ - { - "target": 243, - "route": "assets/pathing/蒙德6-望风山地-3.json" - } - ] - }, - { - "id": 72, - "type": "teleport", - "region": "蒙德7", - "position": { - "x": -1867.21, - "y": 1331.21 - }, - "prev": [], - "next": [ - { - "target": 245, - "route": "assets/pathing/蒙德7-达达乌帕谷-1.json" - } - ] - }, - { - "id": 73, - "type": "teleport", - "region": "蒙德7", - "position": { - "x": -1432.63, - "y": 1464.61 - }, - "prev": [], - "next": [ - { - "target": 246, - "route": "assets/pathing/蒙德7-达达乌帕谷-2.json" - }, - { - "target": 247, - "route": "assets/pathing/蒙德7-达达乌帕谷-3.json" - } - ] - }, - { - "id": 74, - "type": "teleport", - "region": "须弥1", - "position": { - "x": 2342.31, - "y": -4.68 - }, - "prev": [], - "next": [ - { - "target": 250, - "route": "assets/pathing/须弥1-无郁稠林-1.json" - } - ] - }, - { - "id": 75, - "type": "teleport", - "region": "须弥10", - "position": { - "x": 6615.13, - "y": 724.95 - }, - "prev": [], - "next": [ - { - "target": 255, - "route": "assets/pathing/须弥10-荼泥黑渊-1.json" - }, - { - "target": 256, - "route": "assets/pathing/须弥10-荼泥黑渊-2.json" - }, - { - "target": 257, - "route": "assets/pathing/须弥10-荼泥黑渊-3.json" - } - ] - }, - { - "id": 76, - "type": "teleport", - "region": "须弥10", - "position": { - "x": 6339.59, - "y": 738.39 - }, - "prev": [], - "next": [ - { - "target": 258, - "route": "assets/pathing/须弥10-荼泥黑渊-4.json" - } - ] - }, - { - "id": 77, - "type": "teleport", - "region": "须弥2", - "position": { - "x": 2806.54, - "y": -1790.45 - }, - "prev": [], - "next": [ - { - "target": 259, - "route": "assets/pathing/须弥2-奥摩斯港西-1.json" - } - ] - }, - { - "id": 78, - "type": "teleport", - "region": "须弥2", - "position": { - "x": 2980.23, - "y": -1758.59 - }, - "prev": [], - "next": [ - { - "target": 261, - "route": "assets/pathing/须弥2-奥摩斯港西-3.json" - } - ] - }, - { - "id": 79, - "type": "teleport", - "region": "须弥3", - "position": { - "x": 3199.51, - "y": -911.7 - }, - "prev": [], - "next": [ - { - "target": 264, - "route": "assets/pathing/须弥3-禅那园-1.json" - } - ] - }, - { - "id": 80, - "type": "teleport", - "region": "须弥3", - "position": { - "x": 3252.87, - "y": -591.25 - }, - "prev": [], - "next": [ - { - "target": 266, - "route": "assets/pathing/须弥3-禅那园-3.json" - } - ] - }, - { - "id": 81, - "type": "teleport", - "region": "须弥4", - "position": { - "x": 3402.18, - "y": -1175.26 - }, - "prev": [], - "next": [ - { - "target": 268, - "route": "assets/pathing/须弥4-水天丛林-1.json" - } - ] - }, - { - "id": 82, - "type": "teleport", - "region": "须弥4", - "position": { - "x": 3473.06, - "y": -1573.53 - }, - "prev": [], - "next": [ - { - "target": 271, - "route": "assets/pathing/须弥4-水天丛林-4.json" - } - ] - }, - { - "id": 83, - "type": "teleport", - "region": "须弥4", - "position": { - "x": 3639.36, - "y": -1416.85 - }, - "prev": [], - "next": [ - { - "target": 272, - "route": "assets/pathing/须弥4-水天丛林-5.json" - } - ] - }, - { - "id": 84, - "type": "teleport", - "region": "须弥5", - "position": { - "x": 4409.72, - "y": -1874.67 - }, - "prev": [], - "next": [ - { - "target": 273, - "route": "assets/pathing/须弥5-阿如村-1.json" - } - ] - }, - { - "id": 85, - "type": "teleport", - "region": "须弥6", - "position": { - "x": 4470.72, - "y": -2915.3 - }, - "prev": [], - "next": [ - { - "target": 277, - "route": "assets/pathing/须弥6-荼诃落谷-1.json" - } - ] - }, - { - "id": 86, - "type": "teleport", - "region": "须弥6", - "position": { - "x": 4790.78, - "y": -3182.65 - }, - "prev": [], - "next": [ - { - "target": 278, - "route": "assets/pathing/须弥6-荼诃落谷-2.json" - } - ] - }, - { - "id": 87, - "type": "teleport", - "region": "须弥6", - "position": { - "x": 4810.42, - "y": -2732.88 - }, - "prev": [], - "next": [ - { - "target": 280, - "route": "assets/pathing/须弥6-荼诃落谷-4.json" - } - ] - }, - { - "id": 88, - "type": "teleport", - "region": "须弥8", - "position": { - "x": 5759.42, - "y": -1307.6 - }, - "prev": [], - "next": [ - { - "target": 281, - "route": "assets/pathing/须弥8-折胫谷-1.json" - } - ] - }, - { - "id": 89, - "type": "teleport", - "region": "须弥9", - "position": { - "x": 4592.2, - "y": -647.56 - }, - "prev": [], - "next": [ - { - "target": 285, - "route": "assets/pathing/须弥9-镔铁沙丘-1.json" - } - ] - }, - { - "id": 90, - "type": "blossom", - "region": "枫丹1", - "position": { - "x": 4183.27, - "y": 2502.37 - }, - "prev": [ - 1 - ], - "next": [ - { - "target": 91, - "route": "assets/pathing/枫丹1-秋分山西侧-2.json" - } - ] - }, - { - "id": 91, - "type": "blossom", - "region": "枫丹1", - "position": { - "x": 4190.03, - "y": 2426.41 - }, - "prev": [ - 1, - 90 - ], - "next": [ - { - "target": 92, - "route": "assets/pathing/枫丹1-秋分山西侧-3.json" - } - ] - }, - { - "id": 92, - "type": "blossom", - "region": "枫丹1", - "position": { - "x": 4246.28, - "y": 2374.05 - }, - "prev": [ - 2, - 91 - ], - "next": [ - { - "target": 93, - "route": "assets/pathing/枫丹1-秋分山西侧-4.json" - } - ] - }, - { - "id": 93, - "type": "blossom", - "region": "枫丹1", - "position": { - "x": 4299.75, - "y": 2232.59 - }, - "prev": [ - 2, - 92 - ], - "next": [ - { - "target": 94, - "route": "assets/pathing/枫丹1-秋分山西侧-5.json" - } - ] - }, - { - "id": 94, - "type": "blossom", - "region": "枫丹1", - "position": { - "x": 4402.53, - "y": 2253.27 - }, - "prev": [ - 2, - 93 - ], - "next": [] - }, - { - "id": 95, - "type": "blossom", - "region": "枫丹2", - "position": { - "x": 4962.82, - "y": 4395.81 - }, - "prev": [ - 3 - ], - "next": [ - { - "target": 96, - "route": "assets/pathing/枫丹2-芒索斯山东麓-2.json" - } - ] - }, - { - "id": 96, - "type": "blossom", - "region": "枫丹2", - "position": { - "x": 4952.04, - "y": 4468.84 - }, - "prev": [ - 3, - 95 - ], - "next": [ - { - "target": 97, - "route": "assets/pathing/枫丹2-芒索斯山东麓-3.json" - } - ] - }, - { - "id": 97, - "type": "blossom", - "region": "枫丹2", - "position": { - "x": 5043.36, - "y": 4479.99 - }, - "prev": [ - 3, - 96 - ], - "next": [ - { - "target": 98, - "route": "assets/pathing/枫丹2-芒索斯山东麓-4.json" - } - ] - }, - { - "id": 98, - "type": "blossom", - "region": "枫丹2", - "position": { - "x": 5087.02, - "y": 4573.27 - }, - "prev": [ - 3, - 97 - ], - "next": [] - }, - { - "id": 99, - "type": "blossom", - "region": "枫丹3", - "position": { - "x": 4556.1, - "y": 4762.42 - }, - "prev": [ - 4 - ], - "next": [ - { - "target": 100, - "route": "assets/pathing/枫丹3-新枫丹科学院-2.json" - } - ] - }, - { - "id": 100, - "type": "blossom", - "region": "枫丹3", - "position": { - "x": 4517.81, - "y": 4866.48 - }, - "prev": [ - 4, - 99 - ], - "next": [ - { - "target": 101, - "route": "assets/pathing/枫丹3-新枫丹科学院-3.json" - } - ] - }, - { - "id": 101, - "type": "blossom", - "region": "枫丹3", - "position": { - "x": 4578.63, - "y": 4913.28 - }, - "prev": [ - 5, - 100 - ], - "next": [ - { - "target": 102, - "route": "assets/pathing/枫丹3-新枫丹科学院-4.json" - } - ] - }, - { - "id": 102, - "type": "blossom", - "region": "枫丹3", - "position": { - "x": 4679.47, - "y": 4977.83 - }, - "prev": [ - 5, - 101 - ], - "next": [] - }, - { - "id": 103, - "type": "blossom", - "region": "枫丹4", - "position": { - "x": 2932.47, - "y": 3583.9 - }, - "prev": [ - 6 - ], - "next": [ - { - "target": 104, - "route": "assets/pathing/枫丹4-柔灯港-2.json" - } - ] - }, - { - "id": 104, - "type": "blossom", - "region": "枫丹4", - "position": { - "x": 3008.4, - "y": 3602.59 - }, - "prev": [ - 7, - 103 - ], - "next": [ - { - "target": 105, - "route": "assets/pathing/枫丹4-柔灯港-3.json" - } - ] - }, - { - "id": 105, - "type": "blossom", - "region": "枫丹4", - "position": { - "x": 3077.19, - "y": 3602.84 - }, - "prev": [ - 7, - 104 - ], - "next": [ - { - "target": 106, - "route": "assets/pathing/枫丹4-柔灯港-4.json" - } - ] - }, - { - "id": 106, - "type": "blossom", - "region": "枫丹4", - "position": { - "x": 3091.8, - "y": 3654.75 - }, - "prev": [ - 7, - 105 - ], - "next": [] - }, - { - "id": 107, - "type": "blossom", - "region": "枫丹5", - "position": { - "x": 4098.63, - "y": 2584.16 - }, - "prev": [ - 1, - 107 - ], - "next": [ - { - "target": 107, - "route": "assets/pathing/枫丹5-秋分山东侧-2.json" - }, - { - "target": 108, - "route": "assets/pathing/枫丹5-秋分山东侧-3.json" - } - ] - }, - { - "id": 108, - "type": "blossom", - "region": "枫丹5", - "position": { - "x": 3999.66, - "y": 2613.18 - }, - "prev": [ - 8, - 107 - ], - "next": [ - { - "target": 109, - "route": "assets/pathing/枫丹5-秋分山东侧-4.json" - } - ] - }, - { - "id": 109, - "type": "blossom", - "region": "枫丹5", - "position": { - "x": 3921.35, - "y": 2617.81 - }, - "prev": [ - 8, - 108 - ], - "next": [] - }, - { - "id": 110, - "type": "blossom", - "region": "枫丹6", - "position": { - "x": 4760.8, - "y": 2574.52 - }, - "prev": [ - 9 - ], - "next": [ - { - "target": 111, - "route": "assets/pathing/枫丹6-厄里那斯-2.json" - } - ] - }, - { - "id": 111, - "type": "blossom", - "region": "枫丹6", - "position": { - "x": 4653.67, - "y": 2531.89 - }, - "prev": [ - 10, - 110 - ], - "next": [ - { - "target": 112, - "route": "assets/pathing/枫丹6-厄里那斯-3.json" - } - ] - }, - { - "id": 112, - "type": "blossom", - "region": "枫丹6", - "position": { - "x": 4568.49, - "y": 2433.23 - }, - "prev": [ - 10, - 111 - ], - "next": [ - { - "target": 113, - "route": "assets/pathing/枫丹6-厄里那斯-4.json" - } - ] - }, - { - "id": 113, - "type": "blossom", - "region": "枫丹6", - "position": { - "x": 4553.51, - "y": 2358.49 - }, - "prev": [ - 10, - 112 - ], - "next": [ - { - "target": 114, - "route": "assets/pathing/枫丹6-厄里那斯-5.json" - } - ] - }, - { - "id": 114, - "type": "blossom", - "region": "枫丹6", - "position": { - "x": 4607.46, - "y": 2316.58 - }, - "prev": [ - 11, - 113 - ], - "next": [ - { - "target": 115, - "route": "assets/pathing/枫丹6-厄里那斯-6.json" - } - ] - }, - { - "id": 115, - "type": "blossom", - "region": "枫丹6", - "position": { - "x": 4700.14, - "y": 2393.35 - }, - "prev": [ - 10, - 114 - ], - "next": [] - }, - { - "id": 116, - "type": "blossom", - "region": "璃月1", - "position": { - "x": 73.73, - "y": 1496.59 - }, - "prev": [ - 12 - ], - "next": [ - { - "target": 117, - "route": "assets/pathing/璃月1-石门-2.json" - } - ] - }, - { - "id": 117, - "type": "blossom", - "region": "璃月1", - "position": { - "x": -12.62, - "y": 1566.51 - }, - "prev": [ - 13, - 116 - ], - "next": [ - { - "target": 118, - "route": "assets/pathing/璃月1-石门-3.json" - } - ] - }, - { - "id": 118, - "type": "blossom", - "region": "璃月1", - "position": { - "x": -81.76, - "y": 1534.73 - }, - "prev": [ - 117 - ], - "next": [ - { - "target": 119, - "route": "assets/pathing/璃月1-石门-4.json" - } - ] - }, - { - "id": 119, - "type": "blossom", - "region": "璃月1", - "position": { - "x": -28.76, - "y": 1417.37 - }, - "prev": [ - 118 - ], - "next": [] - }, - { - "id": 120, - "type": "blossom", - "region": "璃月10", - "position": { - "x": 1046.34, - "y": 662.76 - }, - "prev": [ - 14 - ], - "next": [ - { - "target": 121, - "route": "assets/pathing/璃月10-绝云间-2.json" - } - ] - }, - { - "id": 121, - "type": "blossom", - "region": "璃月10", - "position": { - "x": 892.5, - "y": 748.02 - }, - "prev": [ - 15, - 120 - ], - "next": [ - { - "target": 122, - "route": "assets/pathing/璃月10-绝云间-3.json" - } - ] - }, - { - "id": 122, - "type": "blossom", - "region": "璃月10", - "position": { - "x": 594.3, - "y": 437.83 - }, - "prev": [ - 16, - 121 - ], - "next": [ - { - "target": 123, - "route": "assets/pathing/璃月10-绝云间-4.json" - } - ] - }, - { - "id": 123, - "type": "blossom", - "region": "璃月10", - "position": { - "x": 683.19, - "y": 529.0 - }, - "prev": [ - 14, - 122, - 156 - ], - "next": [ - { - "target": 124, - "route": "assets/pathing/璃月10-绝云间-5.json" - } - ] - }, - { - "id": 124, - "type": "blossom", - "region": "璃月10", - "position": { - "x": 455.4, - "y": 546.56 - }, - "prev": [ - 16, - 123, - 142 - ], - "next": [] - }, - { - "id": 125, - "type": "blossom", - "region": "璃月11", - "position": { - "x": 802.19, - "y": 1634.03 - }, - "prev": [ - 17 - ], - "next": [ - { - "target": 126, - "route": "assets/pathing/璃月11-轻策庄-2.json" - } - ] - }, - { - "id": 126, - "type": "blossom", - "region": "璃月11", - "position": { - "x": 697.31, - "y": 1551.84 - }, - "prev": [ - 125 - ], - "next": [ - { - "target": 127, - "route": "assets/pathing/璃月11-轻策庄-3.json" - } - ] - }, - { - "id": 127, - "type": "blossom", - "region": "璃月11", - "position": { - "x": 646.5, - "y": 1421.98 - }, - "prev": [ - 126 - ], - "next": [ - { - "target": 128, - "route": "assets/pathing/璃月11-轻策庄-4.json" - } - ] - }, - { - "id": 128, - "type": "blossom", - "region": "璃月11", - "position": { - "x": 632.03, - "y": 1331.15 - }, - "prev": [ - 127 - ], - "next": [ - { - "target": 129, - "route": "assets/pathing/璃月11-轻策庄-5.json" - } - ] - }, - { - "id": 129, - "type": "blossom", - "region": "璃月11", - "position": { - "x": 558.31, - "y": 1437.82 - }, - "prev": [ - 18, - 128 - ], - "next": [ - { - "target": 130, - "route": "assets/pathing/璃月11-轻策庄-6.json" - } - ] - }, - { - "id": 130, - "type": "blossom", - "region": "璃月11", - "position": { - "x": 285.79, - "y": 1457.93 - }, - "prev": [ - 19, - 129 - ], - "next": [] - }, - { - "id": 131, - "type": "blossom", - "region": "璃月14", - "position": { - "x": 1614.21, - "y": 1382.09 - }, - "prev": [ - 20 - ], - "next": [ - { - "target": 132, - "route": "assets/pathing/璃月14-药蝶谷-2.json" - } - ] - }, - { - "id": 132, - "type": "blossom", - "region": "璃月14", - "position": { - "x": 1581.57, - "y": 1437.1 - }, - "prev": [ - 131 - ], - "next": [ - { - "target": 133, - "route": "assets/pathing/璃月14-药蝶谷-3.json" - } - ] - }, - { - "id": 133, - "type": "blossom", - "region": "璃月14", - "position": { - "x": 1563.45, - "y": 1487.35 - }, - "prev": [ - 132 - ], - "next": [ - { - "target": 134, - "route": "assets/pathing/璃月14-药蝶谷-4.json" - } - ] - }, - { - "id": 134, - "type": "blossom", - "region": "璃月14", - "position": { - "x": 1525.0, - "y": 1549.17 - }, - "prev": [ - 133 - ], - "next": [] - }, - { - "id": 135, - "type": "blossom", - "region": "璃月2", - "position": { - "x": -194.85, - "y": 1163.89 - }, - "prev": [ - 21 - ], - "next": [ - { - "target": 136, - "route": "assets/pathing/璃月2-地中之盐-2.json" - } - ] - }, - { - "id": 136, - "type": "blossom", - "region": "璃月2", - "position": { - "x": 32.81, - "y": 1118.31 - }, - "prev": [ - 21, - 135 - ], - "next": [ - { - "target": 137, - "route": "assets/pathing/璃月2-地中之盐-3.json" - } - ] - }, - { - "id": 137, - "type": "blossom", - "region": "璃月2", - "position": { - "x": -24.14, - "y": 931.71 - }, - "prev": [ - 22, - 136 - ], - "next": [ - { - "target": 138, - "route": "assets/pathing/璃月2-地中之盐-4.json" - } - ] - }, - { - "id": 138, - "type": "blossom", - "region": "璃月2", - "position": { - "x": -10.67, - "y": 683.67 - }, - "prev": [ - 23, - 137 - ], - "next": [] - }, - { - "id": 139, - "type": "blossom", - "region": "璃月3", - "position": { - "x": -55.27, - "y": 603.84 - }, - "prev": [ - 23 - ], - "next": [ - { - "target": 140, - "route": "assets/pathing/璃月3-瑶光滩-2.json" - } - ] - }, - { - "id": 140, - "type": "blossom", - "region": "璃月3", - "position": { - "x": 139.9, - "y": 685.26 - }, - "prev": [ - 23, - 139 - ], - "next": [ - { - "target": 141, - "route": "assets/pathing/璃月3-瑶光滩-3.json" - } - ] - }, - { - "id": 141, - "type": "blossom", - "region": "璃月3", - "position": { - "x": 284.12, - "y": 620.66 - }, - "prev": [ - 16, - 140 - ], - "next": [ - { - "target": 142, - "route": "assets/pathing/璃月3-瑶光滩-4.json" - } - ] - }, - { - "id": 142, - "type": "blossom", - "region": "璃月3", - "position": { - "x": 276.12, - "y": 542.51 - }, - "prev": [ - 16, - 141, - 147 - ], - "next": [ - { - "target": 124, - "route": "assets/pathing/璃月3-瑶光滩-5.json" - } - ] - }, - { - "id": 143, - "type": "blossom", - "region": "璃月4", - "position": { - "x": -7.16, - "y": -48.77 - }, - "prev": [ - 24 - ], - "next": [ - { - "target": 144, - "route": "assets/pathing/璃月4-璃月港-2.json" - } - ] - }, - { - "id": 144, - "type": "blossom", - "region": "璃月4", - "position": { - "x": 101.14, - "y": -2.97 - }, - "prev": [ - 143 - ], - "next": [ - { - "target": 145, - "route": "assets/pathing/璃月4-璃月港-3.json" - } - ] - }, - { - "id": 145, - "type": "blossom", - "region": "璃月4", - "position": { - "x": 127.05, - "y": 113.87 - }, - "prev": [ - 144 - ], - "next": [ - { - "target": 146, - "route": "assets/pathing/璃月4-璃月港-4.json" - } - ] - }, - { - "id": 146, - "type": "blossom", - "region": "璃月4", - "position": { - "x": 146.03, - "y": 220.07 - }, - "prev": [ - 145 - ], - "next": [ - { - "target": 147, - "route": "assets/pathing/璃月4-璃月港-5.json" - } - ] - }, - { - "id": 147, - "type": "blossom", - "region": "璃月4", - "position": { - "x": 262.65, - "y": 357.85 - }, - "prev": [ - 25, - 146 - ], - "next": [ - { - "target": 142, - "route": "assets/pathing/璃月4-璃月港-6.json" - } - ] - }, - { - "id": 148, - "type": "blossom", - "region": "璃月5", - "position": { - "x": 773.08, - "y": -928.68 - }, - "prev": [ - 26 - ], - "next": [ - { - "target": 149, - "route": "assets/pathing/璃月5-天衡山-2.json" - } - ] - }, - { - "id": 149, - "type": "blossom", - "region": "璃月5", - "position": { - "x": 885.79, - "y": -780.15 - }, - "prev": [ - 26, - 148 - ], - "next": [ - { - "target": 150, - "route": "assets/pathing/璃月5-天衡山-3.json" - } - ] - }, - { - "id": 150, - "type": "blossom", - "region": "璃月5", - "position": { - "x": 1063.54, - "y": -727.34 - }, - "prev": [ - 149 - ], - "next": [ - { - "target": 151, - "route": "assets/pathing/璃月5-天衡山-4-1.json" - } - ] - }, - { - "id": 151, - "type": "blossom", - "region": "璃月5", - "position": { - "x": 936.52, - "y": -489.9 - }, - "prev": [ - 27, - 150 - ], - "next": [] - }, - { - "id": 152, - "type": "blossom", - "region": "璃月8", - "position": { - "x": 1627.15, - "y": 303.83 - }, - "prev": [ - 28 - ], - "next": [ - { - "target": 153, - "route": "assets/pathing/璃月8-南天门南-2.json" - } - ] - }, - { - "id": 153, - "type": "blossom", - "region": "璃月8", - "position": { - "x": 1333.25, - "y": 266.26 - }, - "prev": [ - 29, - 152 - ], - "next": [ - { - "target": 154, - "route": "assets/pathing/璃月8-南天门南-3.json" - } - ] - }, - { - "id": 154, - "type": "blossom", - "region": "璃月8", - "position": { - "x": 1160.17, - "y": 86.75 - }, - "prev": [ - 29, - 153 - ], - "next": [ - { - "target": 155, - "route": "assets/pathing/璃月8-南天门南-4.json" - } - ] - }, - { - "id": 155, - "type": "blossom", - "region": "璃月8", - "position": { - "x": 972.68, - "y": 98.66 - }, - "prev": [ - 29, - 154 - ], - "next": [ - { - "target": 156, - "route": "assets/pathing/璃月8-南天门南-5.json" - } - ] - }, - { - "id": 156, - "type": "blossom", - "region": "璃月8", - "position": { - "x": 815.31, - "y": 137.31 - }, - "prev": [ - 30, - 155 - ], - "next": [ - { - "target": 123, - "route": "assets/pathing/璃月8-南天门南-6.json" - } - ] - }, - { - "id": 157, - "type": "blossom", - "region": "璃月9", - "position": { - "x": 1484.37, - "y": 458.69 - }, - "prev": [ - 31 - ], - "next": [ - { - "target": 158, - "route": "assets/pathing/璃月9-南天门东-2.json" - } - ] - }, - { - "id": 158, - "type": "blossom", - "region": "璃月9", - "position": { - "x": 1445.77, - "y": 577.83 - }, - "prev": [ - 157 - ], - "next": [ - { - "target": 159, - "route": "assets/pathing/璃月9-南天门东-3-2.json" - } - ] - }, - { - "id": 159, - "type": "blossom", - "region": "璃月9", - "position": { - "x": 1561.48, - "y": 483.03 - }, - "prev": [ - 31, - 158 - ], - "next": [ - { - "target": 160, - "route": "assets/pathing/璃月9-南天门东-4.json" - } - ] - }, - { - "id": 160, - "type": "blossom", - "region": "璃月9", - "position": { - "x": 1686.66, - "y": 567.55 - }, - "prev": [ - 28, - 159 - ], - "next": [] - }, - { - "id": 161, - "type": "blossom", - "region": "稻妻1", - "position": { - "x": -4309.58, - "y": -2288.5 - }, - "prev": [ - 32 - ], - "next": [ - { - "target": 162, - "route": "assets/pathing/稻妻1-鸣神岛-2.json" - } - ] - }, - { - "id": 162, - "type": "blossom", - "region": "稻妻1", - "position": { - "x": -4401.19, - "y": -2226.96 - }, - "prev": [ - 32, - 161 - ], - "next": [ - { - "target": 163, - "route": "assets/pathing/稻妻1-鸣神岛-3.json" - } - ] - }, - { - "id": 163, - "type": "blossom", - "region": "稻妻1", - "position": { - "x": -4509.57, - "y": -2332.11 - }, - "prev": [ - 33, - 162 - ], - "next": [ - { - "target": 164, - "route": "assets/pathing/稻妻1-鸣神岛-4.json" - } - ] - }, - { - "id": 164, - "type": "blossom", - "region": "稻妻1", - "position": { - "x": -4549.96, - "y": -2399.98 - }, - "prev": [ - 33, - 163 - ], - "next": [] - }, - { - "id": 165, - "type": "blossom", - "region": "稻妻2", - "position": { - "x": -3007.64, - "y": -3515.28 - }, - "prev": [ - 34 - ], - "next": [ - { - "target": 166, - "route": "assets/pathing/稻妻2-踏鞴砂-2.json" - } - ] - }, - { - "id": 166, - "type": "blossom", - "region": "稻妻2", - "position": { - "x": -3153.03, - "y": -3485.5 - }, - "prev": [ - 35, - 165 - ], - "next": [ - { - "target": 167, - "route": "assets/pathing/稻妻2-踏鞴砂-3.json" - } - ] - }, - { - "id": 167, - "type": "blossom", - "region": "稻妻2", - "position": { - "x": -3328.99, - "y": -3561.28 - }, - "prev": [ - 36, - 166 - ], - "next": [ - { - "target": 168, - "route": "assets/pathing/稻妻2-踏鞴砂-4.json" - } - ] - }, - { - "id": 168, - "type": "blossom", - "region": "稻妻2", - "position": { - "x": -3429.72, - "y": -3419.55 - }, - "prev": [ - 37, - 167 - ], - "next": [ - { - "target": 169, - "route": "assets/pathing/稻妻2-踏鞴砂-5.json" - } - ] - }, - { - "id": 169, - "type": "blossom", - "region": "稻妻2", - "position": { - "x": -3340.38, - "y": -3237.16 - }, - "prev": [ - 37, - 168 - ], - "next": [] - }, - { - "id": 170, - "type": "blossom", - "region": "稻妻3", - "position": { - "x": -2269.86, - "y": -4068.62 - }, - "prev": [ - 38 - ], - "next": [ - { - "target": 171, - "route": "assets/pathing/稻妻3-八酝岛-2.json" - } - ] - }, - { - "id": 171, - "type": "blossom", - "region": "稻妻3", - "position": { - "x": -2280.61, - "y": -4171.18 - }, - "prev": [ - 170 - ], - "next": [ - { - "target": 172, - "route": "assets/pathing/稻妻3-八酝岛-3.json" - } - ] - }, - { - "id": 172, - "type": "blossom", - "region": "稻妻3", - "position": { - "x": -2169.62, - "y": -4076.36 - }, - "prev": [ - 38, - 171 - ], - "next": [ - { - "target": 173, - "route": "assets/pathing/稻妻3-八酝岛-4.json" - } - ] - }, - { - "id": 173, - "type": "blossom", - "region": "稻妻3", - "position": { - "x": -2211.44, - "y": -4033.62 - }, - "prev": [ - 38, - 172 - ], - "next": [] - }, - { - "id": 174, - "type": "blossom", - "region": "稻妻4", - "position": { - "x": -1120.06, - "y": -3962.66 - }, - "prev": [ - 39 - ], - "next": [ - { - "target": 175, - "route": "assets/pathing/稻妻4-海祇岛-2.json" - } - ] - }, - { - "id": 175, - "type": "blossom", - "region": "稻妻4", - "position": { - "x": -1190.51, - "y": -3902.08 - }, - "prev": [ - 174 - ], - "next": [ - { - "target": 176, - "route": "assets/pathing/稻妻4-海祇岛-3.json" - } - ] - }, - { - "id": 176, - "type": "blossom", - "region": "稻妻4", - "position": { - "x": -1254.7, - "y": -3839.91 - }, - "prev": [ - 175 - ], - "next": [ - { - "target": 177, - "route": "assets/pathing/稻妻4-海祇岛-4.json" - } - ] - }, - { - "id": 177, - "type": "blossom", - "region": "稻妻4", - "position": { - "x": -1322.41, - "y": -3815.69 - }, - "prev": [ - 40, - 176 - ], - "next": [] - }, - { - "id": 178, - "type": "blossom", - "region": "稻妻5", - "position": { - "x": -3908.27, - "y": -4290.55 - }, - "prev": [ - 41 - ], - "next": [ - { - "target": 179, - "route": "assets/pathing/稻妻5-清籁岛-2.json" - } - ] - }, - { - "id": 179, - "type": "blossom", - "region": "稻妻5", - "position": { - "x": -3850.61, - "y": -4241.9 - }, - "prev": [ - 178 - ], - "next": [ - { - "target": 180, - "route": "assets/pathing/稻妻5-清籁岛-3.json" - } - ] - }, - { - "id": 180, - "type": "blossom", - "region": "稻妻5", - "position": { - "x": -3763.54, - "y": -4259.14 - }, - "prev": [ - 179 - ], - "next": [ - { - "target": 181, - "route": "assets/pathing/稻妻5-清籁岛-4.json" - } - ] - }, - { - "id": 181, - "type": "blossom", - "region": "稻妻5", - "position": { - "x": -3703.34, - "y": -4343.16 - }, - "prev": [ - 42, - 180 - ], - "next": [ - { - "target": 182, - "route": "assets/pathing/稻妻5-清籁岛-5.json" - } - ] - }, - { - "id": 182, - "type": "blossom", - "region": "稻妻5", - "position": { - "x": -3671.61, - "y": -4414.03 - }, - "prev": [ - 181 - ], - "next": [] - }, - { - "id": 183, - "type": "blossom", - "region": "纳塔1", - "position": { - "x": 7864.95, - "y": -1823.96 - }, - "prev": [ - 43 - ], - "next": [ - { - "target": 184, - "route": "assets/pathing/纳塔1-隆崛坡-2.json" - } - ] - }, - { - "id": 184, - "type": "blossom", - "region": "纳塔1", - "position": { - "x": 7945.72, - "y": -1744.08 - }, - "prev": [ - 44, - 183 - ], - "next": [ - { - "target": 185, - "route": "assets/pathing/纳塔1-隆崛坡-3.json" - } - ] - }, - { - "id": 185, - "type": "blossom", - "region": "纳塔1", - "position": { - "x": 7932.2, - "y": -1616.37 - }, - "prev": [ - 44, - 184 - ], - "next": [ - { - "target": 186, - "route": "assets/pathing/纳塔1-隆崛坡-4.json" - } - ] - }, - { - "id": 186, - "type": "blossom", - "region": "纳塔1", - "position": { - "x": 7853.72, - "y": -1554.26 - }, - "prev": [ - 185 - ], - "next": [] - }, - { - "id": 187, - "type": "blossom", - "region": "纳塔10", - "position": { - "x": 8361.82, - "y": -2993.79 - }, - "prev": [ - 45 - ], - "next": [ - { - "target": 188, - "route": "assets/pathing/纳塔10-溶水域-2.json" - } - ] - }, - { - "id": 188, - "type": "blossom", - "region": "纳塔10", - "position": { - "x": 8495.87, - "y": -3019.42 - }, - "prev": [ - 187 - ], - "next": [ - { - "target": 189, - "route": "assets/pathing/纳塔10-溶水域-3.json" - } - ] - }, - { - "id": 189, - "type": "blossom", - "region": "纳塔10", - "position": { - "x": 8587.99, - "y": -3022.4 - }, - "prev": [ - 188 - ], - "next": [ - { - "target": 190, - "route": "assets/pathing/纳塔10-溶水域-4.json" - } - ] - }, - { - "id": 190, - "type": "blossom", - "region": "纳塔10", - "position": { - "x": 8879.8, - "y": -3059.26 - }, - "prev": [ - 46, - 189 - ], - "next": [] - }, - { - "id": 191, - "type": "blossom", - "region": "纳塔2", - "position": { - "x": 8604.22, - "y": -1635.22 - }, - "prev": [ - 47 - ], - "next": [ - { - "target": 192, - "route": "assets/pathing/纳塔2-硫晶支脉-2.json" - } - ] - }, - { - "id": 192, - "type": "blossom", - "region": "纳塔2", - "position": { - "x": 8657.57, - "y": -1501.26 - }, - "prev": [ - 47, - 191 - ], - "next": [ - { - "target": 193, - "route": "assets/pathing/纳塔2-硫晶支脉-3.json" - } - ] - }, - { - "id": 193, - "type": "blossom", - "region": "纳塔2", - "position": { - "x": 8733.62, - "y": -1528.95 - }, - "prev": [ - 47, - 192 - ], - "next": [ - { - "target": 194, - "route": "assets/pathing/纳塔2-硫晶支脉-4.json" - } - ] - }, - { - "id": 194, - "type": "blossom", - "region": "纳塔2", - "position": { - "x": 8588.9, - "y": -1373.62 - }, - "prev": [ - 48, - 193 - ], - "next": [] - }, - { - "id": 195, - "type": "blossom", - "region": "纳塔3", - "position": { - "x": 8312.07, - "y": -2344.44 - }, - "prev": [ - 49 - ], - "next": [ - { - "target": 196, - "route": "assets/pathing/纳塔3-彩石顶-2.json" - } - ] - }, - { - "id": 196, - "type": "blossom", - "region": "纳塔3", - "position": { - "x": 8429.86, - "y": -2328.47 - }, - "prev": [ - 50, - 195 - ], - "next": [ - { - "target": 197, - "route": "assets/pathing/纳塔3-彩石顶-3.json" - } - ] - }, - { - "id": 197, - "type": "blossom", - "region": "纳塔3", - "position": { - "x": 8291.29, - "y": -2096.67 - }, - "prev": [ - 50, - 196 - ], - "next": [ - { - "target": 198, - "route": "assets/pathing/纳塔3-彩石顶-4.json" - } - ] - }, - { - "id": 198, - "type": "blossom", - "region": "纳塔3", - "position": { - "x": 8088.21, - "y": -2053.56 - }, - "prev": [ - 197 - ], - "next": [] - }, - { - "id": 199, - "type": "blossom", - "region": "纳塔4", - "position": { - "x": 9028.67, - "y": -2342.6 - }, - "prev": [ - 51 - ], - "next": [ - { - "target": 200, - "route": "assets/pathing/纳塔4-溶水域-2.json" - } - ] - }, - { - "id": 200, - "type": "blossom", - "region": "纳塔4", - "position": { - "x": 9090.71, - "y": -2407.11 - }, - "prev": [ - 199 - ], - "next": [] - }, - { - "id": 201, - "type": "blossom", - "region": "纳塔5", - "position": { - "x": 9687.15, - "y": -2898.19 - }, - "prev": [ - 52 - ], - "next": [ - { - "target": 202, - "route": "assets/pathing/纳塔5-安饶之野-2.json" - } - ] - }, - { - "id": 202, - "type": "blossom", - "region": "纳塔5", - "position": { - "x": 9754.7, - "y": -2904.43 - }, - "prev": [ - 52, - 201 - ], - "next": [ - { - "target": 203, - "route": "assets/pathing/纳塔5-安饶之野-3.json" - } - ] - }, - { - "id": 203, - "type": "blossom", - "region": "纳塔5", - "position": { - "x": 9778.7, - "y": -2856.31 - }, - "prev": [ - 52, - 202 - ], - "next": [] - }, - { - "id": 204, - "type": "blossom", - "region": "纳塔6", - "position": { - "x": 9231.08, - "y": -2154.74 - }, - "prev": [ - 53 - ], - "next": [ - { - "target": 205, - "route": "assets/pathing/纳塔6-圣火竞技场-2.json" - } - ] - }, - { - "id": 205, - "type": "blossom", - "region": "纳塔6", - "position": { - "x": 9110.86, - "y": -2222.48 - }, - "prev": [ - 53, - 204 - ], - "next": [ - { - "target": 206, - "route": "assets/pathing/纳塔6-圣火竞技场-3.json" - } - ] - }, - { - "id": 206, - "type": "blossom", - "region": "纳塔6", - "position": { - "x": 8945.55, - "y": -2138.43 - }, - "prev": [ - 205 - ], - "next": [ - { - "target": 207, - "route": "assets/pathing/纳塔6-圣火竞技场-4.json" - } - ] - }, - { - "id": 207, - "type": "blossom", - "region": "纳塔6", - "position": { - "x": 8810.08, - "y": -2077.83 - }, - "prev": [ - 206 - ], - "next": [] - }, - { - "id": 208, - "type": "blossom", - "region": "纳塔7", - "position": { - "x": 9999.51, - "y": -1570.23 - }, - "prev": [ - 54 - ], - "next": [ - { - "target": 209, - "route": "assets/pathing/纳塔7-烟谜主-2.json" - } - ] - }, - { - "id": 209, - "type": "blossom", - "region": "纳塔7", - "position": { - "x": 9963.8, - "y": -1511.61 - }, - "prev": [ - 208 - ], - "next": [ - { - "target": 210, - "route": "assets/pathing/纳塔7-烟谜主-3.json" - } - ] - }, - { - "id": 210, - "type": "blossom", - "region": "纳塔7", - "position": { - "x": 9907.78, - "y": -1424.0 - }, - "prev": [ - 209 - ], - "next": [] - }, - { - "id": 211, - "type": "blossom", - "region": "纳塔8", - "position": { - "x": 9636.29, - "y": -1038.41 - }, - "prev": [ - 55 - ], - "next": [ - { - "target": 212, - "route": "assets/pathing/纳塔8-花羽会-2.json" - } - ] - }, - { - "id": 212, - "type": "blossom", - "region": "纳塔8", - "position": { - "x": 9517.92, - "y": -1029.8 - }, - "prev": [ - 55, - 211 - ], - "next": [ - { - "target": 213, - "route": "assets/pathing/纳塔8-花羽会-3.json" - } - ] - }, - { - "id": 213, - "type": "blossom", - "region": "纳塔8", - "position": { - "x": 9472.28, - "y": -771.8 - }, - "prev": [ - 56, - 212 - ], - "next": [] - }, - { - "id": 214, - "type": "blossom", - "region": "纳塔9", - "position": { - "x": 9920.8, - "y": -1196.25 - }, - "prev": [ - 57 - ], - "next": [ - { - "target": 215, - "route": "assets/pathing/纳塔9-翘枝崖-2.json" - } - ] - }, - { - "id": 215, - "type": "blossom", - "region": "纳塔9", - "position": { - "x": 9888.22, - "y": -1046.55 - }, - "prev": [ - 214 - ], - "next": [ - { - "target": 216, - "route": "assets/pathing/纳塔9-翘枝崖-3.json" - } - ] - }, - { - "id": 216, - "type": "blossom", - "region": "纳塔9", - "position": { - "x": 9938.82, - "y": -933.87 - }, - "prev": [ - 215 - ], - "next": [ - { - "target": 217, - "route": "assets/pathing/纳塔9-翘枝崖-4.json" - } - ] - }, - { - "id": 217, - "type": "blossom", - "region": "纳塔9", - "position": { - "x": 9984.24, - "y": -876.43 - }, - "prev": [ - 216 - ], - "next": [] - }, - { - "id": 218, - "type": "blossom", - "region": "蒙德1", - "position": { - "x": -1298.03, - "y": 2172.37 - }, - "prev": [ - 58 - ], - "next": [ - { - "target": 219, - "route": "assets/pathing/蒙德1-风起地-2.json" - } - ] - }, - { - "id": 219, - "type": "blossom", - "region": "蒙德1", - "position": { - "x": -1223.18, - "y": 2032.04 - }, - "prev": [ - 59, - 218 - ], - "next": [ - { - "target": 220, - "route": "assets/pathing/蒙德1-风起地-3.json" - } - ] - }, - { - "id": 220, - "type": "blossom", - "region": "蒙德1", - "position": { - "x": -1113.87, - "y": 1971.9 - }, - "prev": [ - 219 - ], - "next": [ - { - "target": 221, - "route": "assets/pathing/蒙德1-风起地-4.json" - } - ] - }, - { - "id": 221, - "type": "blossom", - "region": "蒙德1", - "position": { - "x": -1041.91, - "y": 1927.07 - }, - "prev": [ - 220 - ], - "next": [ - { - "target": 222, - "route": "assets/pathing/蒙德1-风起地-5.json" - } - ] - }, - { - "id": 222, - "type": "blossom", - "region": "蒙德1", - "position": { - "x": -895.08, - "y": 1833.84 - }, - "prev": [ - 60, - 221, - 249 - ], - "next": [] - }, - { - "id": 223, - "type": "blossom", - "region": "蒙德2", - "position": { - "x": -717.83, - "y": 1802.77 - }, - "prev": [ - 61 - ], - "next": [ - { - "target": 224, - "route": "assets/pathing/蒙德2-清泉镇-2.json" - } - ] - }, - { - "id": 224, - "type": "blossom", - "region": "蒙德2", - "position": { - "x": -523.76, - "y": 1813.84 - }, - "prev": [ - 62, - 223 - ], - "next": [ - { - "target": 225, - "route": "assets/pathing/蒙德2-清泉镇-3.json" - } - ] - }, - { - "id": 225, - "type": "blossom", - "region": "蒙德2", - "position": { - "x": -420.36, - "y": 1998.11 - }, - "prev": [ - 224 - ], - "next": [ - { - "target": 227, - "route": "assets/pathing/蒙德2-清泉镇-4-2.json" - } - ] - }, - { - "id": 226, - "type": "blossom", - "region": "蒙德2", - "position": { - "x": -347.95, - "y": 1902.51 - }, - "prev": [], - "next": [] - }, - { - "id": 227, - "type": "blossom", - "region": "蒙德2", - "position": { - "x": -319.46, - "y": 2156.93 - }, - "prev": [ - 63, - 225, - 227 - ], - "next": [ - { - "target": 227, - "route": "assets/pathing/蒙德2-清泉镇-5-1.json" - } - ] - }, - { - "id": 228, - "type": "blossom", - "region": "蒙德3", - "position": { - "x": -281.79, - "y": 2310.78 - }, - "prev": [ - 64 - ], - "next": [ - { - "target": 229, - "route": "assets/pathing/蒙德3-奔狼领-2.json" - } - ] - }, - { - "id": 229, - "type": "blossom", - "region": "蒙德3", - "position": { - "x": -205.49, - "y": 2429.07 - }, - "prev": [ - 228 - ], - "next": [ - { - "target": 230, - "route": "assets/pathing/蒙德3-奔狼领-3.json" - } - ] - }, - { - "id": 230, - "type": "blossom", - "region": "蒙德3", - "position": { - "x": -327.03, - "y": 2410.43 - }, - "prev": [ - 229 - ], - "next": [ - { - "target": 231, - "route": "assets/pathing/蒙德3-奔狼领-4.json" - } - ] - }, - { - "id": 231, - "type": "blossom", - "region": "蒙德3", - "position": { - "x": -336.15, - "y": 2562.91 - }, - "prev": [ - 65, - 230 - ], - "next": [] - }, - { - "id": 232, - "type": "blossom", - "region": "蒙德4", - "position": { - "x": 241.41, - "y": 2703.08 - }, - "prev": [ - 66 - ], - "next": [ - { - "target": 233, - "route": "assets/pathing/蒙德4-风龙废墟-2.json" - } - ] - }, - { - "id": 233, - "type": "blossom", - "region": "蒙德4", - "position": { - "x": 124.61, - "y": 2817.24 - }, - "prev": [ - 232 - ], - "next": [ - { - "target": 234, - "route": "assets/pathing/蒙德4-风龙废墟-3.json" - } - ] - }, - { - "id": 234, - "type": "blossom", - "region": "蒙德4", - "position": { - "x": 152.71, - "y": 2963.33 - }, - "prev": [ - 67, - 233 - ], - "next": [ - { - "target": 235, - "route": "assets/pathing/蒙德4-风龙废墟-4.json" - } - ] - }, - { - "id": 235, - "type": "blossom", - "region": "蒙德4", - "position": { - "x": -27.99, - "y": 2919.59 - }, - "prev": [ - 234 - ], - "next": [] - }, - { - "id": 236, - "type": "blossom", - "region": "蒙德5", - "position": { - "x": -1453.46, - "y": 2282.88 - }, - "prev": [ - 68 - ], - "next": [ - { - "target": 237, - "route": "assets/pathing/蒙德5-千风神殿-2.json" - } - ] - }, - { - "id": 237, - "type": "blossom", - "region": "蒙德5", - "position": { - "x": -1367.78, - "y": 2411.31 - }, - "prev": [ - 236 - ], - "next": [ - { - "target": 238, - "route": "assets/pathing/蒙德5-千风神殿-3.json" - } - ] - }, - { - "id": 238, - "type": "blossom", - "region": "蒙德5", - "position": { - "x": -1474.91, - "y": 2520.0 - }, - "prev": [ - 237 - ], - "next": [ - { - "target": 239, - "route": "assets/pathing/蒙德5-千风神殿-4.json" - } - ] - }, - { - "id": 239, - "type": "blossom", - "region": "蒙德5", - "position": { - "x": -1394.83, - "y": 2569.65 - }, - "prev": [ - 69, - 238 - ], - "next": [ - { - "target": 240, - "route": "assets/pathing/蒙德5-千风神殿-5.json" - } - ] - }, - { - "id": 240, - "type": "blossom", - "region": "蒙德5", - "position": { - "x": -1316.21, - "y": 2734.67 - }, - "prev": [ - 70, - 239 - ], - "next": [] - }, - { - "id": 241, - "type": "blossom", - "region": "蒙德6", - "position": { - "x": -1512.81, - "y": 2774.26 - }, - "prev": [ - 70 - ], - "next": [ - { - "target": 242, - "route": "assets/pathing/蒙德6-望风山地-2.json" - } - ] - }, - { - "id": 242, - "type": "blossom", - "region": "蒙德6", - "position": { - "x": -1518.71, - "y": 2877.4 - }, - "prev": [ - 241 - ], - "next": [ - { - "target": 243, - "route": "assets/pathing/蒙德6-望风山地-3.json" - } - ] - }, - { - "id": 243, - "type": "blossom", - "region": "蒙德6", - "position": { - "x": -1603.95, - "y": 2865.65 - }, - "prev": [ - 71, - 242 - ], - "next": [ - { - "target": 244, - "route": "assets/pathing/蒙德6-望风山地-4.json" - } - ] - }, - { - "id": 244, - "type": "blossom", - "region": "蒙德6", - "position": { - "x": -1710.73, - "y": 2983.29 - }, - "prev": [ - 243 - ], - "next": [] - }, - { - "id": 245, - "type": "blossom", - "region": "蒙德7", - "position": { - "x": -1660.63, - "y": 1392.87 - }, - "prev": [ - 72 - ], - "next": [ - { - "target": 246, - "route": "assets/pathing/蒙德7-达达乌帕谷-2.json" - } - ] - }, - { - "id": 246, - "type": "blossom", - "region": "蒙德7", - "position": { - "x": -1517.07, - "y": 1513.97 - }, - "prev": [ - 73, - 245 - ], - "next": [ - { - "target": 247, - "route": "assets/pathing/蒙德7-达达乌帕谷-3.json" - } - ] - }, - { - "id": 247, - "type": "blossom", - "region": "蒙德7", - "position": { - "x": -1331.96, - "y": 1560.15 - }, - "prev": [ - 73, - 246 - ], - "next": [ - { - "target": 248, - "route": "assets/pathing/蒙德7-达达乌帕谷-4.json" - } - ] - }, - { - "id": 248, - "type": "blossom", - "region": "蒙德7", - "position": { - "x": -1318.63, - "y": 1692.63 - }, - "prev": [ - 247 - ], - "next": [ - { - "target": 249, - "route": "assets/pathing/蒙德7-达达乌帕谷-5.json" - } - ] - }, - { - "id": 249, - "type": "blossom", - "region": "蒙德7", - "position": { - "x": -1138.22, - "y": 1789.79 - }, - "prev": [ - 248 - ], - "next": [ - { - "target": 222, - "route": "assets/pathing/蒙德7-达达乌帕谷-6.json" - } - ] - }, - { - "id": 250, - "type": "blossom", - "region": "须弥1", - "position": { - "x": 2368.79, - "y": -92.11 - }, - "prev": [ - 74 - ], - "next": [ - { - "target": 251, - "route": "assets/pathing/须弥1-无郁稠林-2.json" - } - ] - }, - { - "id": 251, - "type": "blossom", - "region": "须弥1", - "position": { - "x": 2317.29, - "y": -115.35 - }, - "prev": [ - 250 - ], - "next": [ - { - "target": 252, - "route": "assets/pathing/须弥1-无郁稠林-3.json" - } - ] - }, - { - "id": 252, - "type": "blossom", - "region": "须弥1", - "position": { - "x": 2212.83, - "y": -83.02 - }, - "prev": [ - 251 - ], - "next": [ - { - "target": 253, - "route": "assets/pathing/须弥1-无郁稠林-4.json" - } - ] - }, - { - "id": 253, - "type": "blossom", - "region": "须弥1", - "position": { - "x": 2233.8, - "y": -160.88 - }, - "prev": [ - 252 - ], - "next": [ - { - "target": 254, - "route": "assets/pathing/须弥1-无郁稠林-5.json" - } - ] - }, - { - "id": 254, - "type": "blossom", - "region": "须弥1", - "position": { - "x": 2269.0, - "y": -251.14 - }, - "prev": [ - 253 - ], - "next": [] - }, - { - "id": 255, - "type": "blossom", - "region": "须弥10", - "position": { - "x": 6501.08, - "y": 904.25 - }, - "prev": [ - 75 - ], - "next": [ - { - "target": 256, - "route": "assets/pathing/须弥10-荼泥黑渊-2.json" - } - ] - }, - { - "id": 256, - "type": "blossom", - "region": "须弥10", - "position": { - "x": 6613.41, - "y": 784.42 - }, - "prev": [ - 75, - 255 - ], - "next": [ - { - "target": 257, - "route": "assets/pathing/须弥10-荼泥黑渊-3.json" - } - ] - }, - { - "id": 257, - "type": "blossom", - "region": "须弥10", - "position": { - "x": 6692.66, - "y": 625.4 - }, - "prev": [ - 75, - 256 - ], - "next": [ - { - "target": 258, - "route": "assets/pathing/须弥10-荼泥黑渊-4.json" - } - ] - }, - { - "id": 258, - "type": "blossom", - "region": "须弥10", - "position": { - "x": 6280.81, - "y": 616.8 - }, - "prev": [ - 76, - 257 - ], - "next": [] - }, - { - "id": 259, - "type": "blossom", - "region": "须弥2", - "position": { - "x": 2910.46, - "y": -1818.57 - }, - "prev": [ - 77 - ], - "next": [ - { - "target": 260, - "route": "assets/pathing/须弥2-奥摩斯港西-2.json" - } - ] - }, - { - "id": 260, - "type": "blossom", - "region": "须弥2", - "position": { - "x": 2980.38, - "y": -1758.57 - }, - "prev": [ - 259 - ], - "next": [ - { - "target": 261, - "route": "assets/pathing/须弥2-奥摩斯港西-3.json" - } - ] - }, - { - "id": 261, - "type": "blossom", - "region": "须弥2", - "position": { - "x": 3013.06, - "y": -1700.54 - }, - "prev": [ - 78, - 260 - ], - "next": [ - { - "target": 262, - "route": "assets/pathing/须弥2-奥摩斯港西-4.json" - } - ] - }, - { - "id": 262, - "type": "blossom", - "region": "须弥2", - "position": { - "x": 2981.92, - "y": -1641.54 - }, - "prev": [ - 261 - ], - "next": [ - { - "target": 263, - "route": "assets/pathing/须弥2-奥摩斯港西-5.json" - } - ] - }, - { - "id": 263, - "type": "blossom", - "region": "须弥2", - "position": { - "x": 2963.07, - "y": -1586.92 - }, - "prev": [ - 262 - ], - "next": [] - }, - { - "id": 264, - "type": "blossom", - "region": "须弥3", - "position": { - "x": 3195.78, - "y": -806.97 - }, - "prev": [ - 79 - ], - "next": [ - { - "target": 265, - "route": "assets/pathing/须弥3-禅那园-2.json" - } - ] - }, - { - "id": 265, - "type": "blossom", - "region": "须弥3", - "position": { - "x": 3233.51, - "y": -740.65 - }, - "prev": [ - 264 - ], - "next": [ - { - "target": 266, - "route": "assets/pathing/须弥3-禅那园-3.json" - } - ] - }, - { - "id": 266, - "type": "blossom", - "region": "须弥3", - "position": { - "x": 3324.5, - "y": -659.02 - }, - "prev": [ - 80, - 265 - ], - "next": [ - { - "target": 267, - "route": "assets/pathing/须弥3-禅那园-4.json" - } - ] - }, - { - "id": 267, - "type": "blossom", - "region": "须弥3", - "position": { - "x": 3387.39, - "y": -664.21 - }, - "prev": [ - 266 - ], - "next": [] - }, - { - "id": 268, - "type": "blossom", - "region": "须弥4", - "position": { - "x": 3381.91, - "y": -1231.97 - }, - "prev": [ - 81 - ], - "next": [ - { - "target": 269, - "route": "assets/pathing/须弥4-水天丛林-2.json" - } - ] - }, - { - "id": 269, - "type": "blossom", - "region": "须弥4", - "position": { - "x": 3355.82, - "y": -1318.18 - }, - "prev": [ - 268 - ], - "next": [ - { - "target": 270, - "route": "assets/pathing/须弥4-水天丛林-3.json" - } - ] - }, - { - "id": 270, - "type": "blossom", - "region": "须弥4", - "position": { - "x": 3466.17, - "y": -1318.08 - }, - "prev": [ - 269 - ], - "next": [ - { - "target": 271, - "route": "assets/pathing/须弥4-水天丛林-4.json" - } - ] - }, - { - "id": 271, - "type": "blossom", - "region": "须弥4", - "position": { - "x": 3504.37, - "y": -1500.13 - }, - "prev": [ - 82, - 270 - ], - "next": [ - { - "target": 272, - "route": "assets/pathing/须弥4-水天丛林-5.json" - } - ] - }, - { - "id": 272, - "type": "blossom", - "region": "须弥4", - "position": { - "x": 3721.99, - "y": -1507.71 - }, - "prev": [ - 83, - 271 - ], - "next": [] - }, - { - "id": 273, - "type": "blossom", - "region": "须弥5", - "position": { - "x": 4345.77, - "y": -1793.67 - }, - "prev": [ - 84 - ], - "next": [ - { - "target": 274, - "route": "assets/pathing/须弥5-阿如村-2.json" - } - ] - }, - { - "id": 274, - "type": "blossom", - "region": "须弥5", - "position": { - "x": 4257.86, - "y": -1903.31 - }, - "prev": [ - 273 - ], - "next": [ - { - "target": 275, - "route": "assets/pathing/须弥5-阿如村-3.json" - } - ] - }, - { - "id": 275, - "type": "blossom", - "region": "须弥5", - "position": { - "x": 4144.29, - "y": -2014.19 - }, - "prev": [ - 274, - 275 - ], - "next": [ - { - "target": 275, - "route": "assets/pathing/须弥5-阿如村-4.json" - }, - { - "target": 276, - "route": "assets/pathing/须弥5-阿如村-5.json" - } - ] - }, - { - "id": 276, - "type": "blossom", - "region": "须弥5", - "position": { - "x": 4211.01, - "y": -2165.65 - }, - "prev": [ - 275 - ], - "next": [] - }, - { - "id": 277, - "type": "blossom", - "region": "须弥6", - "position": { - "x": 4552.75, - "y": -2945.07 - }, - "prev": [ - 85 - ], - "next": [ - { - "target": 278, - "route": "assets/pathing/须弥6-荼诃落谷-2.json" - } - ] - }, - { - "id": 278, - "type": "blossom", - "region": "须弥6", - "position": { - "x": 4696.5, - "y": -3055.9 - }, - "prev": [ - 86, - 277 - ], - "next": [ - { - "target": 279, - "route": "assets/pathing/须弥6-荼诃落谷-3.json" - } - ] - }, - { - "id": 279, - "type": "blossom", - "region": "须弥6", - "position": { - "x": 4886.54, - "y": -2940.45 - }, - "prev": [ - 278 - ], - "next": [ - { - "target": 280, - "route": "assets/pathing/须弥6-荼诃落谷-4.json" - } - ] - }, - { - "id": 280, - "type": "blossom", - "region": "须弥6", - "position": { - "x": 4756.03, - "y": -2742.32 - }, - "prev": [ - 87, - 279 - ], - "next": [] - }, - { - "id": 281, - "type": "blossom", - "region": "须弥8", - "position": { - "x": 5758.76, - "y": -1154.57 - }, - "prev": [ - 88 - ], - "next": [ - { - "target": 282, - "route": "assets/pathing/须弥8-折胫谷-2.json" - } - ] - }, - { - "id": 282, - "type": "blossom", - "region": "须弥8", - "position": { - "x": 5887.09, - "y": -1120.65 - }, - "prev": [ - 281 - ], - "next": [ - { - "target": 283, - "route": "assets/pathing/须弥8-折胫谷-3.json" - } - ] - }, - { - "id": 283, - "type": "blossom", - "region": "须弥8", - "position": { - "x": 5902.11, - "y": -1008.25 - }, - "prev": [ - 282 - ], - "next": [ - { - "target": 284, - "route": "assets/pathing/须弥8-折胫谷-4.json" - } - ] - }, - { - "id": 284, - "type": "blossom", - "region": "须弥8", - "position": { - "x": 5928.09, - "y": -922.46 - }, - "prev": [ - 283 - ], - "next": [] - }, - { - "id": 285, - "type": "blossom", - "region": "须弥9", - "position": { - "x": 4555.52, - "y": -569.96 - }, - "prev": [ - 89 - ], - "next": [ - { - "target": 286, - "route": "assets/pathing/须弥9-镔铁沙丘-2.json" - } - ] - }, - { - "id": 286, - "type": "blossom", - "region": "须弥9", - "position": { - "x": 4573.81, - "y": -408.86 - }, - "prev": [ - 285 - ], - "next": [ - { - "target": 287, - "route": "assets/pathing/须弥9-镔铁沙丘-3.json" - } - ] - }, - { - "id": 287, - "type": "blossom", - "region": "须弥9", - "position": { - "x": 4756.13, - "y": -221.43 - }, - "prev": [ - 286 - ], - "next": [ - { - "target": 288, - "route": "assets/pathing/须弥9-镔铁沙丘-4.json" - } - ] - }, - { - "id": 288, - "type": "blossom", - "region": "须弥9", - "position": { - "x": 4862.07, - "y": -150.71 - }, - "prev": [ - 287 - ], - "next": [] - } - ] + "teleports": [ + { + "id": 1, + "region": "蒙德", + "position": { + "x": -1166.84, + "y": 2132.83 + } + }, + { + "id": 2, + "region": "蒙德", + "position": { + "x": -1266.59, + "y": 1933.52 + } + }, + { + "id": 3, + "region": "蒙德", + "position": { + "x": -914.82, + "y": 1795.51 + } + }, + { + "id": 4, + "region": "蒙德", + "position": { + "x": -663.61, + "y": 1709.65 + } + }, + { + "id": 5, + "region": "蒙德", + "position": { + "x": -578.76, + "y": 1853.42 + } + }, + { + "id": 6, + "region": "蒙德", + "position": { + "x": -251.66, + "y": 2256.55 + } + }, + { + "id": 7, + "region": "蒙德", + "position": { + "x": -385.84, + "y": 2297.22 + } + }, + { + "id": 8, + "region": "蒙德", + "position": { + "x": -440.09, + "y": 2580.75 + } + }, + { + "id": 9, + "region": "蒙德", + "position": { + "x": 177.18, + "y": 2647.07 + } + }, + { + "id": 10, + "region": "蒙德", + "position": { + "x": 265.6, + "y": 2915.02 + } + }, + { + "id": 11, + "region": "蒙德", + "position": { + "x": -1505.87, + "y": 2296.26 + } + }, + { + "id": 12, + "region": "蒙德", + "position": { + "x": -1330.15, + "y": 2563.86 + } + }, + { + "id": 13, + "region": "蒙德", + "position": { + "x": -1273.84, + "y": 2721.72 + } + }, + { + "id": 14, + "region": "蒙德", + "position": { + "x": -1629.44, + "y": 2834.36 + } + }, + { + "id": 15, + "region": "蒙德", + "position": { + "x": -1867.21, + "y": 1331.21 + } + }, + { + "id": 16, + "region": "蒙德", + "position": { + "x": -1432.63, + "y": 1464.61 + } + }, + { + "id": 17, + "region": "璃月", + "position": { + "x": 207.48, + "y": 1573.01 + } + }, + { + "id": 18, + "region": "璃月", + "position": { + "x": -321.55, + "y": 1473.33 + } + }, + { + "id": 19, + "region": "璃月", + "position": { + "x": 897.84, + "y": 583.5 + } + }, + { + "id": 20, + "region": "璃月", + "position": { + "x": 1045.53, + "y": 950.63 + } + }, + { + "id": 21, + "region": "璃月", + "position": { + "x": 341.33, + "y": 548.08 + } + }, + { + "id": 22, + "region": "璃月", + "position": { + "x": 839.82, + "y": 1532.39 + } + }, + { + "id": 23, + "region": "璃月", + "position": { + "x": 489.8, + "y": 1435.14 + } + }, + { + "id": 24, + "region": "璃月", + "position": { + "x": 253.05, + "y": 1284.9 + } + }, + { + "id": 25, + "region": "璃月", + "position": { + "x": 2257.04, + "y": 934.92 + } + }, + { + "id": 26, + "region": "璃月", + "position": { + "x": 1433.37, + "y": 1288.0 + } + }, + { + "id": 27, + "region": "璃月", + "position": { + "x": -164.59, + "y": 1182.45 + } + }, + { + "id": 28, + "region": "璃月", + "position": { + "x": -188.52, + "y": 972.43 + } + }, + { + "id": 29, + "region": "璃月", + "position": { + "x": -57.41, + "y": 656.93 + } + }, + { + "id": 30, + "region": "璃月", + "position": { + "x": 26.02, + "y": -112.29 + } + }, + { + "id": 31, + "region": "璃月", + "position": { + "x": 173.88, + "y": 389.47 + } + }, + { + "id": 32, + "region": "璃月", + "position": { + "x": 710.68, + "y": -772.49 + } + }, + { + "id": 33, + "region": "璃月", + "position": { + "x": 978.65, + "y": -353.56 + } + }, + { + "id": 34, + "region": "璃月", + "position": { + "x": 1271.19, + "y": 1563.98 + } + }, + { + "id": 35, + "region": "璃月", + "position": { + "x": 1121.11, + "y": 1190.4 + } + }, + { + "id": 36, + "region": "璃月", + "position": { + "x": 489.41, + "y": 222.23 + } + }, + { + "id": 37, + "region": "璃月", + "position": { + "x": 611.74, + "y": -284.65 + } + }, + { + "id": 38, + "region": "璃月", + "position": { + "x": 837.46, + "y": 235.15 + } + }, + { + "id": 39, + "region": "璃月", + "position": { + "x": 876.75, + "y": 587.25 + } + }, + { + "id": 40, + "region": "璃月", + "position": { + "x": 1665.91, + "y": 386.6 + } + }, + { + "id": 41, + "region": "璃月", + "position": { + "x": 1152.67, + "y": 141.57 + } + }, + { + "id": 42, + "region": "璃月", + "position": { + "x": 1389.08, + "y": 516.44 + } + }, + { + "id": 43, + "region": "稻妻", + "position": { + "x": -4217.89, + "y": -2397.87 + } + }, + { + "id": 44, + "region": "稻妻", + "position": { + "x": -4408.91, + "y": -2395.34 + } + }, + { + "id": 45, + "region": "稻妻", + "position": { + "x": -3016.79, + "y": -3623.7 + } + }, + { + "id": 46, + "region": "稻妻", + "position": { + "x": -3233.21, + "y": -3534.22 + } + }, + { + "id": 47, + "region": "稻妻", + "position": { + "x": -3393.16, + "y": -3555.99 + } + }, + { + "id": 48, + "region": "稻妻", + "position": { + "x": -3437.06, + "y": -3319.78 + } + }, + { + "id": 49, + "region": "稻妻", + "position": { + "x": -2224.14, + "y": -4004.16 + } + }, + { + "id": 50, + "region": "稻妻", + "position": { + "x": -1058.01, + "y": -3948.66 + } + }, + { + "id": 51, + "region": "稻妻", + "position": { + "x": -1315.93, + "y": -3774.25 + } + }, + { + "id": 52, + "region": "稻妻", + "position": { + "x": -3891.55, + "y": -4389.92 + } + }, + { + "id": 53, + "region": "稻妻", + "position": { + "x": -3684.76, + "y": -4278.4 + } + }, + { + "id": 54, + "region": "须弥", + "position": { + "x": 2342.31, + "y": -4.68 + } + }, + { + "id": 55, + "region": "须弥", + "position": { + "x": 6615.13, + "y": 724.95 + } + }, + { + "id": 56, + "region": "须弥", + "position": { + "x": 6339.59, + "y": 738.39 + } + }, + { + "id": 57, + "region": "须弥", + "position": { + "x": 2806.54, + "y": -1790.45 + } + }, + { + "id": 58, + "region": "须弥", + "position": { + "x": 2980.23, + "y": -1758.59 + } + }, + { + "id": 59, + "region": "须弥", + "position": { + "x": 3199.51, + "y": -911.7 + } + }, + { + "id": 60, + "region": "须弥", + "position": { + "x": 3252.87, + "y": -591.25 + } + }, + { + "id": 61, + "region": "须弥", + "position": { + "x": 3402.18, + "y": -1175.26 + } + }, + { + "id": 62, + "region": "须弥", + "position": { + "x": 3473.06, + "y": -1573.53 + } + }, + { + "id": 63, + "region": "须弥", + "position": { + "x": 3639.36, + "y": -1416.85 + } + }, + { + "id": 64, + "region": "须弥", + "position": { + "x": 4409.72, + "y": -1874.67 + } + }, + { + "id": 65, + "region": "须弥", + "position": { + "x": 4470.72, + "y": -2915.3 + } + }, + { + "id": 66, + "region": "须弥", + "position": { + "x": 4790.78, + "y": -3182.65 + } + }, + { + "id": 67, + "region": "须弥", + "position": { + "x": 4810.42, + "y": -2732.88 + } + }, + { + "id": 68, + "region": "须弥", + "position": { + "x": 5759.42, + "y": -1307.6 + } + }, + { + "id": 69, + "region": "须弥", + "position": { + "x": 4592.2, + "y": -647.56 + } + }, + { + "id": 70, + "region": "枫丹", + "position": { + "x": 4146.91, + "y": 2606.27 + } + }, + { + "id": 71, + "region": "枫丹", + "position": { + "x": 4375.5, + "y": 2280.05 + } + }, + { + "id": 72, + "region": "枫丹", + "position": { + "x": 4984.79, + "y": 4462.98 + } + }, + { + "id": 73, + "region": "枫丹", + "position": { + "x": 4498.18, + "y": 4710.79 + } + }, + { + "id": 74, + "region": "枫丹", + "position": { + "x": 4624.36, + "y": 4951.78 + } + }, + { + "id": 75, + "region": "枫丹", + "position": { + "x": 2873.54, + "y": 3512.04 + } + }, + { + "id": 76, + "region": "枫丹", + "position": { + "x": 3032.66, + "y": 3732.42 + } + }, + { + "id": 77, + "region": "枫丹", + "position": { + "x": 3917.29, + "y": 2576.43 + } + }, + { + "id": 78, + "region": "枫丹", + "position": { + "x": 4749.59, + "y": 2636.21 + } + }, + { + "id": 79, + "region": "枫丹", + "position": { + "x": 4689.61, + "y": 2429.43 + } + }, + { + "id": 80, + "region": "枫丹", + "position": { + "x": 4626.1, + "y": 2182.3 + } + }, + { + "id": 81, + "region": "纳塔", + "position": { + "x": 7796.08, + "y": -1873.18 + } + }, + { + "id": 82, + "region": "纳塔", + "position": { + "x": 7857.47, + "y": -1751.25 + } + }, + { + "id": 83, + "region": "纳塔", + "position": { + "x": 8291.35, + "y": -2922.46 + } + }, + { + "id": 84, + "region": "纳塔", + "position": { + "x": 8744.65, + "y": -3009.56 + } + }, + { + "id": 85, + "region": "纳塔", + "position": { + "x": 8706.46, + "y": -1575.02 + } + }, + { + "id": 86, + "region": "纳塔", + "position": { + "x": 8670.84, + "y": -1269.72 + } + }, + { + "id": 87, + "region": "纳塔", + "position": { + "x": 8201.95, + "y": -2288.75 + } + }, + { + "id": 88, + "region": "纳塔", + "position": { + "x": 8372.19, + "y": -2196.26 + } + }, + { + "id": 89, + "region": "纳塔", + "position": { + "x": 9038.74, + "y": -2429.33 + } + }, + { + "id": 90, + "region": "纳塔", + "position": { + "x": 9812.76, + "y": -2852.58 + } + }, + { + "id": 91, + "region": "纳塔", + "position": { + "x": 9282.7, + "y": -2163.58 + } + }, + { + "id": 92, + "region": "纳塔", + "position": { + "x": 9989.5, + "y": -1607.82 + } + }, + { + "id": 93, + "region": "纳塔", + "position": { + "x": 9548.24, + "y": -1116.54 + } + }, + { + "id": 94, + "region": "纳塔", + "position": { + "x": 9719.22, + "y": -851.99 + } + }, + { + "id": 95, + "region": "纳塔", + "position": { + "x": 9839.57, + "y": -1290.01 + } + } + ], + "blossoms": [ + { + "id": 1000, + "region": "蒙德1-1", + "position": { + "x": -1298.03, + "y": 2172.37 + } + }, + { + "id": 1001, + "region": "蒙德1-2", + "position": { + "x": -1223.18, + "y": 2032.04 + } + }, + { + "id": 1002, + "region": "蒙德1-3", + "position": { + "x": -1113.87, + "y": 1971.9 + } + }, + { + "id": 1003, + "region": "蒙德1-4", + "position": { + "x": -1041.91, + "y": 1927.07 + } + }, + { + "id": 1004, + "region": "蒙德1-5", + "position": { + "x": -895.08, + "y": 1833.84 + } + }, + { + "id": 1005, + "region": "蒙德2-1", + "position": { + "x": -717.83, + "y": 1802.77 + } + }, + { + "id": 1006, + "region": "蒙德2-2", + "position": { + "x": -523.76, + "y": 1813.84 + } + }, + { + "id": 1007, + "region": "蒙德2-3", + "position": { + "x": -420.36, + "y": 1998.11 + } + }, + { + "id": 1008, + "region": "蒙德2-4-1", + "position": { + "x": -347.95, + "y": 1902.51 + } + }, + { + "id": 1009, + "region": "蒙德2-4-2", + "position": { + "x": -319.46, + "y": 2156.93 + } + }, + { + "id": 1010, + "region": "蒙德2-5-1", + "position": { + "x": -319.57, + "y": 2156.48 + } + }, + { + "id": 1011, + "region": "蒙德3-1", + "position": { + "x": -281.79, + "y": 2310.78 + } + }, + { + "id": 1012, + "region": "蒙德3-2", + "position": { + "x": -205.49, + "y": 2429.07 + } + }, + { + "id": 1013, + "region": "蒙德3-3", + "position": { + "x": -327.03, + "y": 2410.43 + } + }, + { + "id": 1014, + "region": "蒙德3-4", + "position": { + "x": -336.15, + "y": 2562.91 + } + }, + { + "id": 1015, + "region": "蒙德4-1", + "position": { + "x": 241.41, + "y": 2703.08 + } + }, + { + "id": 1016, + "region": "蒙德4-2", + "position": { + "x": 124.61, + "y": 2817.24 + } + }, + { + "id": 1017, + "region": "蒙德4-3", + "position": { + "x": 152.71, + "y": 2963.33 + } + }, + { + "id": 1018, + "region": "蒙德4-4", + "position": { + "x": -27.99, + "y": 2919.59 + } + }, + { + "id": 1019, + "region": "蒙德5-1", + "position": { + "x": -1453.46, + "y": 2282.88 + } + }, + { + "id": 1020, + "region": "蒙德5-2", + "position": { + "x": -1367.78, + "y": 2411.31 + } + }, + { + "id": 1021, + "region": "蒙德5-3", + "position": { + "x": -1474.91, + "y": 2520.0 + } + }, + { + "id": 1022, + "region": "蒙德5-4", + "position": { + "x": -1394.83, + "y": 2569.65 + } + }, + { + "id": 1023, + "region": "蒙德5-5", + "position": { + "x": -1316.21, + "y": 2734.67 + } + }, + { + "id": 1024, + "region": "蒙德6-1", + "position": { + "x": -1512.81, + "y": 2774.26 + } + }, + { + "id": 1025, + "region": "蒙德6-2", + "position": { + "x": -1518.71, + "y": 2877.4 + } + }, + { + "id": 1026, + "region": "蒙德6-3", + "position": { + "x": -1603.95, + "y": 2865.65 + } + }, + { + "id": 1027, + "region": "蒙德6-4", + "position": { + "x": -1710.73, + "y": 2983.29 + } + }, + { + "id": 1028, + "region": "蒙德7-1", + "position": { + "x": -1660.63, + "y": 1392.87 + } + }, + { + "id": 1029, + "region": "蒙德7-2", + "position": { + "x": -1517.07, + "y": 1513.97 + } + }, + { + "id": 1030, + "region": "蒙德7-3", + "position": { + "x": -1331.96, + "y": 1560.15 + } + }, + { + "id": 1031, + "region": "蒙德7-4", + "position": { + "x": -1318.63, + "y": 1692.63 + } + }, + { + "id": 1032, + "region": "蒙德7-5", + "position": { + "x": -1138.22, + "y": 1789.79 + } + }, + { + "id": 1033, + "region": "蒙德7-6", + "position": { + "x": -895.08, + "y": 1833.84 + } + }, + { + "id": 1034, + "region": "璃月1-1", + "position": { + "x": 73.73, + "y": 1496.59 + } + }, + { + "id": 1035, + "region": "璃月1-2", + "position": { + "x": -12.62, + "y": 1566.51 + } + }, + { + "id": 1036, + "region": "璃月1-3", + "position": { + "x": -81.76, + "y": 1534.73 + } + }, + { + "id": 1037, + "region": "璃月1-4", + "position": { + "x": -28.76, + "y": 1417.37 + } + }, + { + "id": 1038, + "region": "璃月10-1", + "position": { + "x": 1046.34, + "y": 662.76 + } + }, + { + "id": 1039, + "region": "璃月10-2", + "position": { + "x": 892.5, + "y": 748.02 + } + }, + { + "id": 1040, + "region": "璃月10-3", + "position": { + "x": 594.3, + "y": 437.83 + } + }, + { + "id": 1041, + "region": "璃月10-4", + "position": { + "x": 683.19, + "y": 529.0 + } + }, + { + "id": 1042, + "region": "璃月10-5", + "position": { + "x": 455.4, + "y": 546.56 + } + }, + { + "id": 1043, + "region": "璃月11-1", + "position": { + "x": 802.19, + "y": 1634.03 + } + }, + { + "id": 1044, + "region": "璃月11-2", + "position": { + "x": 697.31, + "y": 1551.84 + } + }, + { + "id": 1045, + "region": "璃月11-3", + "position": { + "x": 646.5, + "y": 1421.98 + } + }, + { + "id": 1046, + "region": "璃月11-4", + "position": { + "x": 632.03, + "y": 1331.15 + } + }, + { + "id": 1047, + "region": "璃月11-5", + "position": { + "x": 558.31, + "y": 1437.82 + } + }, + { + "id": 1048, + "region": "璃月11-6", + "position": { + "x": 285.79, + "y": 1457.93 + } + }, + { + "id": 1049, + "region": "璃月13-1", + "position": { + "x": 2254.49, + "y": 970.92 + } + }, + { + "id": 1050, + "region": "璃月13-2", + "position": { + "x": 2252.54, + "y": 898.21 + } + }, + { + "id": 1051, + "region": "璃月13-3", + "position": { + "x": 2226.91, + "y": 863.09 + } + }, + { + "id": 1052, + "region": "璃月13-4", + "position": { + "x": 2028.69, + "y": 830.67 + } + }, + { + "id": 1053, + "region": "璃月14-1", + "position": { + "x": 1614.21, + "y": 1382.09 + } + }, + { + "id": 1054, + "region": "璃月14-2", + "position": { + "x": 1581.57, + "y": 1437.1 + } + }, + { + "id": 1055, + "region": "璃月14-3", + "position": { + "x": 1563.45, + "y": 1487.35 + } + }, + { + "id": 1056, + "region": "璃月14-4", + "position": { + "x": 1525.0, + "y": 1549.17 + } + }, + { + "id": 1057, + "region": "璃月2-1", + "position": { + "x": -194.85, + "y": 1163.89 + } + }, + { + "id": 1058, + "region": "璃月2-2", + "position": { + "x": 32.81, + "y": 1118.31 + } + }, + { + "id": 1059, + "region": "璃月2-3", + "position": { + "x": -24.14, + "y": 931.71 + } + }, + { + "id": 1060, + "region": "璃月2-4", + "position": { + "x": -10.67, + "y": 683.67 + } + }, + { + "id": 1061, + "region": "璃月3-1", + "position": { + "x": -55.27, + "y": 603.84 + } + }, + { + "id": 1062, + "region": "璃月3-2", + "position": { + "x": 139.9, + "y": 685.26 + } + }, + { + "id": 1063, + "region": "璃月3-3", + "position": { + "x": 284.12, + "y": 620.66 + } + }, + { + "id": 1064, + "region": "璃月3-4", + "position": { + "x": 276.12, + "y": 542.51 + } + }, + { + "id": 1065, + "region": "璃月3-5", + "position": { + "x": 456.0, + "y": 546.29 + } + }, + { + "id": 1066, + "region": "璃月4-1", + "position": { + "x": -7.16, + "y": -48.77 + } + }, + { + "id": 1067, + "region": "璃月4-2", + "position": { + "x": 101.14, + "y": -2.97 + } + }, + { + "id": 1068, + "region": "璃月4-3", + "position": { + "x": 127.05, + "y": 113.87 + } + }, + { + "id": 1069, + "region": "璃月4-4", + "position": { + "x": 146.03, + "y": 220.07 + } + }, + { + "id": 1070, + "region": "璃月4-5", + "position": { + "x": 262.65, + "y": 357.85 + } + }, + { + "id": 1071, + "region": "璃月4-6", + "position": { + "x": 276.55, + "y": 543.11 + } + }, + { + "id": 1072, + "region": "璃月4-7", + "position": { + "x": 456.44, + "y": 546.35 + } + }, + { + "id": 1073, + "region": "璃月5-1", + "position": { + "x": 773.08, + "y": -928.68 + } + }, + { + "id": 1074, + "region": "璃月5-2", + "position": { + "x": 885.79, + "y": -780.15 + } + }, + { + "id": 1075, + "region": "璃月5-3", + "position": { + "x": 1063.54, + "y": -727.34 + } + }, + { + "id": 1076, + "region": "璃月5-4-1", + "position": { + "x": 936.52, + "y": -489.9 + } + }, + { + "id": 1077, + "region": "璃月6-1", + "position": { + "x": 1220.19, + "y": 1535.11 + } + }, + { + "id": 1078, + "region": "璃月6-2", + "position": { + "x": 1086.87, + "y": 1428.01 + } + }, + { + "id": 1079, + "region": "璃月6-3", + "position": { + "x": 901.21, + "y": 1235.83 + } + }, + { + "id": 1080, + "region": "璃月6-4", + "position": { + "x": 833.48, + "y": 1181.69 + } + }, + { + "id": 1081, + "region": "璃月6-5-2", + "position": { + "x": 900.15, + "y": 896.96 + } + }, + { + "id": 1082, + "region": "璃月6-6-2", + "position": { + "x": 892.24, + "y": 747.75 + } + }, + { + "id": 1083, + "region": "璃月6-7-2", + "position": { + "x": 594.7, + "y": 437.16 + } + }, + { + "id": 1084, + "region": "璃月6-8-2", + "position": { + "x": 683.1, + "y": 529.06 + } + }, + { + "id": 1085, + "region": "璃月6-9-2", + "position": { + "x": 455.04, + "y": 546.38 + } + }, + { + "id": 1086, + "region": "璃月7-1", + "position": { + "x": 824.28, + "y": -325.68 + } + }, + { + "id": 1087, + "region": "璃月7-2", + "position": { + "x": 721.94, + "y": -106.43 + } + }, + { + "id": 1088, + "region": "璃月7-3", + "position": { + "x": 752.42, + "y": 3.88 + } + }, + { + "id": 1089, + "region": "璃月7-4", + "position": { + "x": 815.03, + "y": 136.35 + } + }, + { + "id": 1090, + "region": "璃月7-5", + "position": { + "x": 681.46, + "y": 528.76 + } + }, + { + "id": 1091, + "region": "璃月7-6", + "position": { + "x": 455.4, + "y": 546.56 + } + }, + { + "id": 1092, + "region": "璃月8-1", + "position": { + "x": 1627.15, + "y": 303.83 + } + }, + { + "id": 1093, + "region": "璃月8-2", + "position": { + "x": 1333.25, + "y": 266.26 + } + }, + { + "id": 1094, + "region": "璃月8-3", + "position": { + "x": 1160.17, + "y": 86.75 + } + }, + { + "id": 1095, + "region": "璃月8-4", + "position": { + "x": 972.68, + "y": 98.66 + } + }, + { + "id": 1096, + "region": "璃月8-5", + "position": { + "x": 815.31, + "y": 137.31 + } + }, + { + "id": 1097, + "region": "璃月8-6", + "position": { + "x": 683.33, + "y": 529.05 + } + }, + { + "id": 1098, + "region": "璃月8-7", + "position": { + "x": 455.84, + "y": 546.39 + } + }, + { + "id": 1099, + "region": "璃月9-1", + "position": { + "x": 1484.37, + "y": 458.69 + } + }, + { + "id": 1100, + "region": "璃月9-2", + "position": { + "x": 1445.77, + "y": 577.83 + } + }, + { + "id": 1101, + "region": "璃月9-3-1", + "position": { + "x": 1561.48, + "y": 483.03 + } + }, + { + "id": 1102, + "region": "璃月9-4", + "position": { + "x": 1686.66, + "y": 567.55 + } + }, + { + "id": 1103, + "region": "稻妻1-1", + "position": { + "x": -4309.58, + "y": -2288.5 + } + }, + { + "id": 1104, + "region": "稻妻1-2", + "position": { + "x": -4401.19, + "y": -2226.96 + } + }, + { + "id": 1105, + "region": "稻妻1-3", + "position": { + "x": -4509.57, + "y": -2332.11 + } + }, + { + "id": 1106, + "region": "稻妻1-4", + "position": { + "x": -4549.96, + "y": -2399.98 + } + }, + { + "id": 1107, + "region": "稻妻2-1", + "position": { + "x": -3007.64, + "y": -3515.28 + } + }, + { + "id": 1108, + "region": "稻妻2-2", + "position": { + "x": -3153.03, + "y": -3485.5 + } + }, + { + "id": 1109, + "region": "稻妻2-3", + "position": { + "x": -3328.99, + "y": -3561.28 + } + }, + { + "id": 1110, + "region": "稻妻2-4", + "position": { + "x": -3429.72, + "y": -3419.55 + } + }, + { + "id": 1111, + "region": "稻妻2-5", + "position": { + "x": -3340.38, + "y": -3237.16 + } + }, + { + "id": 1112, + "region": "稻妻3-1", + "position": { + "x": -2270.07, + "y": -4068.21 + } + }, + { + "id": 1113, + "region": "稻妻3-2", + "position": { + "x": -2280.61, + "y": -4171.18 + } + }, + { + "id": 1114, + "region": "稻妻3-3", + "position": { + "x": -2169.62, + "y": -4076.36 + } + }, + { + "id": 1115, + "region": "稻妻3-4", + "position": { + "x": -2211.44, + "y": -4033.62 + } + }, + { + "id": 1116, + "region": "稻妻4-1", + "position": { + "x": -1120.06, + "y": -3962.66 + } + }, + { + "id": 1117, + "region": "稻妻4-2", + "position": { + "x": -1190.51, + "y": -3902.08 + } + }, + { + "id": 1118, + "region": "稻妻4-3", + "position": { + "x": -1254.7, + "y": -3839.91 + } + }, + { + "id": 1119, + "region": "稻妻4-4", + "position": { + "x": -1322.41, + "y": -3815.69 + } + }, + { + "id": 1120, + "region": "稻妻5-1", + "position": { + "x": -3908.27, + "y": -4290.55 + } + }, + { + "id": 1121, + "region": "稻妻5-2", + "position": { + "x": -3850.61, + "y": -4241.9 + } + }, + { + "id": 1122, + "region": "稻妻5-3", + "position": { + "x": -3763.54, + "y": -4259.14 + } + }, + { + "id": 1123, + "region": "稻妻5-4", + "position": { + "x": -3703.34, + "y": -4343.16 + } + }, + { + "id": 1124, + "region": "稻妻5-5", + "position": { + "x": -3671.61, + "y": -4414.03 + } + }, + { + "id": 1125, + "region": "须弥1-1", + "position": { + "x": 2368.79, + "y": -92.11 + } + }, + { + "id": 1126, + "region": "须弥1-2", + "position": { + "x": 2317.29, + "y": -115.35 + } + }, + { + "id": 1127, + "region": "须弥1-3", + "position": { + "x": 2212.83, + "y": -83.02 + } + }, + { + "id": 1128, + "region": "须弥1-4", + "position": { + "x": 2233.8, + "y": -160.88 + } + }, + { + "id": 1129, + "region": "须弥1-5", + "position": { + "x": 2269.0, + "y": -251.14 + } + }, + { + "id": 1130, + "region": "须弥10-1", + "position": { + "x": 6501.08, + "y": 904.25 + } + }, + { + "id": 1131, + "region": "须弥10-2", + "position": { + "x": 6613.41, + "y": 784.42 + } + }, + { + "id": 1132, + "region": "须弥10-3", + "position": { + "x": 6692.66, + "y": 625.4 + } + }, + { + "id": 1133, + "region": "须弥10-4", + "position": { + "x": 6280.81, + "y": 616.8 + } + }, + { + "id": 1134, + "region": "须弥2-1", + "position": { + "x": 2910.46, + "y": -1818.57 + } + }, + { + "id": 1135, + "region": "须弥2-2", + "position": { + "x": 2980.38, + "y": -1758.57 + } + }, + { + "id": 1136, + "region": "须弥2-3", + "position": { + "x": 3013.06, + "y": -1700.54 + } + }, + { + "id": 1137, + "region": "须弥2-4", + "position": { + "x": 2981.92, + "y": -1641.54 + } + }, + { + "id": 1138, + "region": "须弥2-5", + "position": { + "x": 2963.07, + "y": -1586.92 + } + }, + { + "id": 1139, + "region": "须弥3-1", + "position": { + "x": 3195.78, + "y": -806.97 + } + }, + { + "id": 1140, + "region": "须弥3-2", + "position": { + "x": 3233.51, + "y": -740.65 + } + }, + { + "id": 1141, + "region": "须弥3-3", + "position": { + "x": 3324.5, + "y": -659.02 + } + }, + { + "id": 1142, + "region": "须弥3-4", + "position": { + "x": 3387.39, + "y": -664.21 + } + }, + { + "id": 1143, + "region": "须弥4-1", + "position": { + "x": 3381.91, + "y": -1231.97 + } + }, + { + "id": 1144, + "region": "须弥4-2", + "position": { + "x": 3355.82, + "y": -1318.18 + } + }, + { + "id": 1145, + "region": "须弥4-3", + "position": { + "x": 3466.17, + "y": -1318.08 + } + }, + { + "id": 1146, + "region": "须弥4-4", + "position": { + "x": 3504.37, + "y": -1500.13 + } + }, + { + "id": 1147, + "region": "须弥4-5", + "position": { + "x": 3721.99, + "y": -1507.71 + } + }, + { + "id": 1148, + "region": "须弥5-1", + "position": { + "x": 4345.77, + "y": -1793.67 + } + }, + { + "id": 1149, + "region": "须弥5-2", + "position": { + "x": 4257.86, + "y": -1903.31 + } + }, + { + "id": 1150, + "region": "须弥5-3", + "position": { + "x": 4144.29, + "y": -2014.19 + } + }, + { + "id": 1151, + "region": "须弥5-4", + "position": { + "x": 4144.18, + "y": -2014.48 + } + }, + { + "id": 1152, + "region": "须弥5-5", + "position": { + "x": 4211.01, + "y": -2165.65 + } + }, + { + "id": 1153, + "region": "须弥6-1", + "position": { + "x": 4552.75, + "y": -2945.07 + } + }, + { + "id": 1154, + "region": "须弥6-2", + "position": { + "x": 4696.5, + "y": -3055.9 + } + }, + { + "id": 1155, + "region": "须弥6-3", + "position": { + "x": 4886.54, + "y": -2940.45 + } + }, + { + "id": 1156, + "region": "须弥6-4", + "position": { + "x": 4756.03, + "y": -2742.32 + } + }, + { + "id": 1157, + "region": "须弥8-1", + "position": { + "x": 5758.76, + "y": -1154.57 + } + }, + { + "id": 1158, + "region": "须弥8-2", + "position": { + "x": 5887.09, + "y": -1120.65 + } + }, + { + "id": 1159, + "region": "须弥8-3", + "position": { + "x": 5902.11, + "y": -1008.25 + } + }, + { + "id": 1160, + "region": "须弥8-4", + "position": { + "x": 5928.09, + "y": -922.46 + } + }, + { + "id": 1161, + "region": "须弥9-1", + "position": { + "x": 4555.52, + "y": -569.96 + } + }, + { + "id": 1162, + "region": "须弥9-2", + "position": { + "x": 4573.81, + "y": -408.86 + } + }, + { + "id": 1163, + "region": "须弥9-3", + "position": { + "x": 4756.13, + "y": -221.43 + } + }, + { + "id": 1164, + "region": "须弥9-4", + "position": { + "x": 4862.07, + "y": -150.71 + } + }, + { + "id": 1165, + "region": "枫丹1-1", + "position": { + "x": 4183.27, + "y": 2502.37 + } + }, + { + "id": 1166, + "region": "枫丹1-2", + "position": { + "x": 4190.03, + "y": 2426.41 + } + }, + { + "id": 1167, + "region": "枫丹1-3", + "position": { + "x": 4246.28, + "y": 2374.05 + } + }, + { + "id": 1168, + "region": "枫丹1-4", + "position": { + "x": 4299.75, + "y": 2232.59 + } + }, + { + "id": 1169, + "region": "枫丹1-5", + "position": { + "x": 4402.53, + "y": 2253.27 + } + }, + { + "id": 1170, + "region": "枫丹2-1", + "position": { + "x": 4962.82, + "y": 4395.81 + } + }, + { + "id": 1171, + "region": "枫丹2-2", + "position": { + "x": 4952.04, + "y": 4468.84 + } + }, + { + "id": 1172, + "region": "枫丹2-3", + "position": { + "x": 5043.36, + "y": 4479.99 + } + }, + { + "id": 1173, + "region": "枫丹2-4", + "position": { + "x": 5087.02, + "y": 4573.27 + } + }, + { + "id": 1174, + "region": "枫丹3-1", + "position": { + "x": 4556.1, + "y": 4762.42 + } + }, + { + "id": 1175, + "region": "枫丹3-2", + "position": { + "x": 4517.81, + "y": 4866.48 + } + }, + { + "id": 1176, + "region": "枫丹3-3", + "position": { + "x": 4578.63, + "y": 4913.28 + } + }, + { + "id": 1177, + "region": "枫丹3-4", + "position": { + "x": 4679.47, + "y": 4977.83 + } + }, + { + "id": 1178, + "region": "枫丹4-1", + "position": { + "x": 2932.47, + "y": 3583.9 + } + }, + { + "id": 1179, + "region": "枫丹4-2", + "position": { + "x": 3008.4, + "y": 3602.59 + } + }, + { + "id": 1180, + "region": "枫丹4-3", + "position": { + "x": 3077.19, + "y": 3602.84 + } + }, + { + "id": 1181, + "region": "枫丹4-4", + "position": { + "x": 3091.8, + "y": 3654.75 + } + }, + { + "id": 1182, + "region": "枫丹5-1", + "position": { + "x": 4098.63, + "y": 2584.16 + } + }, + { + "id": 1183, + "region": "枫丹5-2", + "position": { + "x": 4063.52, + "y": 2564.29 + } + }, + { + "id": 1184, + "region": "枫丹5-3", + "position": { + "x": 3999.66, + "y": 2613.18 + } + }, + { + "id": 1185, + "region": "枫丹5-4", + "position": { + "x": 3921.35, + "y": 2617.81 + } + }, + { + "id": 1186, + "region": "枫丹6-1", + "position": { + "x": 4760.8, + "y": 2574.52 + } + }, + { + "id": 1187, + "region": "枫丹6-2", + "position": { + "x": 4653.67, + "y": 2531.89 + } + }, + { + "id": 1188, + "region": "枫丹6-3", + "position": { + "x": 4568.49, + "y": 2433.23 + } + }, + { + "id": 1189, + "region": "枫丹6-4", + "position": { + "x": 4553.51, + "y": 2358.49 + } + }, + { + "id": 1190, + "region": "枫丹6-5", + "position": { + "x": 4607.46, + "y": 2316.58 + } + }, + { + "id": 1191, + "region": "枫丹6-6", + "position": { + "x": 4700.14, + "y": 2393.35 + } + }, + { + "id": 1192, + "region": "纳塔1-1", + "position": { + "x": 7864.95, + "y": -1823.96 + } + }, + { + "id": 1193, + "region": "纳塔1-2", + "position": { + "x": 7945.72, + "y": -1744.08 + } + }, + { + "id": 1194, + "region": "纳塔1-3", + "position": { + "x": 7932.2, + "y": -1616.37 + } + }, + { + "id": 1195, + "region": "纳塔1-4", + "position": { + "x": 7853.72, + "y": -1554.26 + } + }, + { + "id": 1196, + "region": "纳塔10-1", + "position": { + "x": 8361.82, + "y": -2993.79 + } + }, + { + "id": 1197, + "region": "纳塔10-2", + "position": { + "x": 8496.07, + "y": -3018.4 + } + }, + { + "id": 1198, + "region": "纳塔10-3", + "position": { + "x": 8587.99, + "y": -3022.4 + } + }, + { + "id": 1199, + "region": "纳塔10-4", + "position": { + "x": 8879.8, + "y": -3059.26 + } + }, + { + "id": 1200, + "region": "纳塔2-1", + "position": { + "x": 8604.22, + "y": -1635.22 + } + }, + { + "id": 1201, + "region": "纳塔2-2", + "position": { + "x": 8657.57, + "y": -1501.26 + } + }, + { + "id": 1202, + "region": "纳塔2-3", + "position": { + "x": 8733.62, + "y": -1528.95 + } + }, + { + "id": 1203, + "region": "纳塔2-4", + "position": { + "x": 8588.9, + "y": -1373.62 + } + }, + { + "id": 1204, + "region": "纳塔3-1", + "position": { + "x": 8312.07, + "y": -2344.44 + } + }, + { + "id": 1205, + "region": "纳塔3-2", + "position": { + "x": 8429.86, + "y": -2328.47 + } + }, + { + "id": 1206, + "region": "纳塔3-3", + "position": { + "x": 8291.29, + "y": -2096.67 + } + }, + { + "id": 1207, + "region": "纳塔3-4", + "position": { + "x": 8088.21, + "y": -2053.56 + } + }, + { + "id": 1208, + "region": "纳塔4-1", + "position": { + "x": 9028.67, + "y": -2342.6 + } + }, + { + "id": 1209, + "region": "纳塔4-2", + "position": { + "x": 9090.71, + "y": -2407.11 + } + }, + { + "id": 1210, + "region": "纳塔5-1", + "position": { + "x": 9687.15, + "y": -2898.19 + } + }, + { + "id": 1211, + "region": "纳塔5-2", + "position": { + "x": 9754.7, + "y": -2904.43 + } + }, + { + "id": 1212, + "region": "纳塔5-3", + "position": { + "x": 9778.7, + "y": -2856.31 + } + }, + { + "id": 1213, + "region": "纳塔6-1", + "position": { + "x": 9231.08, + "y": -2154.74 + } + }, + { + "id": 1214, + "region": "纳塔6-2", + "position": { + "x": 9110.86, + "y": -2222.48 + } + }, + { + "id": 1215, + "region": "纳塔6-3", + "position": { + "x": 8945.55, + "y": -2138.43 + } + }, + { + "id": 1216, + "region": "纳塔6-4", + "position": { + "x": 8810.08, + "y": -2077.83 + } + }, + { + "id": 1217, + "region": "纳塔7-1", + "position": { + "x": 9999.51, + "y": -1570.23 + } + }, + { + "id": 1218, + "region": "纳塔7-2", + "position": { + "x": 9963.8, + "y": -1511.61 + } + }, + { + "id": 1219, + "region": "纳塔7-3", + "position": { + "x": 9907.78, + "y": -1424.0 + } + }, + { + "id": 1220, + "region": "纳塔8-1", + "position": { + "x": 9636.29, + "y": -1038.41 + } + }, + { + "id": 1221, + "region": "纳塔8-2", + "position": { + "x": 9517.92, + "y": -1029.8 + } + }, + { + "id": 1222, + "region": "纳塔8-3", + "position": { + "x": 9472.28, + "y": -771.8 + } + }, + { + "id": 1223, + "region": "纳塔9-1", + "position": { + "x": 9920.8, + "y": -1196.25 + } + }, + { + "id": 1224, + "region": "纳塔9-2", + "position": { + "x": 9888.22, + "y": -1046.55 + } + }, + { + "id": 1225, + "region": "纳塔9-3", + "position": { + "x": 9938.82, + "y": -933.87 + } + }, + { + "id": 1226, + "region": "纳塔9-4", + "position": { + "x": 9984.24, + "y": -876.43 + } + } + ], + "edges": [ + { + "source": 1, + "target": 1000, + "route": "assets/pathing/蒙德1-风起地-1.json" + }, + { + "source": 2, + "target": 1001, + "route": "assets/pathing/蒙德1-风起地-2.json" + }, + { + "source": 1000, + "target": 1001, + "route": "assets/pathing/蒙德1-风起地-2.json" + }, + { + "source": 1001, + "target": 1002, + "route": "assets/pathing/蒙德1-风起地-3.json" + }, + { + "source": 1002, + "target": 1003, + "route": "assets/pathing/蒙德1-风起地-4.json" + }, + { + "source": 3, + "target": 1004, + "route": "assets/pathing/蒙德1-风起地-5.json" + }, + { + "source": 3, + "target": 1004, + "route": "assets/pathing/蒙德7-达达乌帕谷-6.json" + }, + { + "source": 1003, + "target": 1004, + "route": "assets/pathing/蒙德1-风起地-5.json" + }, + { + "source": 4, + "target": 1005, + "route": "assets/pathing/蒙德2-清泉镇-1.json" + }, + { + "source": 5, + "target": 1006, + "route": "assets/pathing/蒙德2-清泉镇-2.json" + }, + { + "source": 1005, + "target": 1006, + "route": "assets/pathing/蒙德2-清泉镇-2.json" + }, + { + "source": 1006, + "target": 1007, + "route": "assets/pathing/蒙德2-清泉镇-3.json" + }, + { + "source": 1007, + "target": 1008, + "route": "assets/pathing/蒙德2-清泉镇-4-1.json" + }, + { + "source": 6, + "target": 1009, + "route": "assets/pathing/蒙德2-清泉镇-5-1.json" + }, + { + "source": 1007, + "target": 1009, + "route": "assets/pathing/蒙德2-清泉镇-4-2.json" + }, + { + "source": 1008, + "target": 1010, + "route": "assets/pathing/蒙德2-清泉镇-5-1.json" + }, + { + "source": 7, + "target": 1011, + "route": "assets/pathing/蒙德3-奔狼领-1.json" + }, + { + "source": 1011, + "target": 1012, + "route": "assets/pathing/蒙德3-奔狼领-2.json" + }, + { + "source": 1012, + "target": 1013, + "route": "assets/pathing/蒙德3-奔狼领-3.json" + }, + { + "source": 8, + "target": 1014, + "route": "assets/pathing/蒙德3-奔狼领-4.json" + }, + { + "source": 1013, + "target": 1014, + "route": "assets/pathing/蒙德3-奔狼领-4.json" + }, + { + "source": 9, + "target": 1015, + "route": "assets/pathing/蒙德4-风龙废墟-1.json" + }, + { + "source": 1015, + "target": 1016, + "route": "assets/pathing/蒙德4-风龙废墟-2.json" + }, + { + "source": 10, + "target": 1017, + "route": "assets/pathing/蒙德4-风龙废墟-3.json" + }, + { + "source": 1016, + "target": 1017, + "route": "assets/pathing/蒙德4-风龙废墟-3.json" + }, + { + "source": 1017, + "target": 1018, + "route": "assets/pathing/蒙德4-风龙废墟-4.json" + }, + { + "source": 11, + "target": 1019, + "route": "assets/pathing/蒙德5-千风神殿-1.json" + }, + { + "source": 1019, + "target": 1020, + "route": "assets/pathing/蒙德5-千风神殿-2.json" + }, + { + "source": 1020, + "target": 1021, + "route": "assets/pathing/蒙德5-千风神殿-3.json" + }, + { + "source": 12, + "target": 1022, + "route": "assets/pathing/蒙德5-千风神殿-4.json" + }, + { + "source": 1021, + "target": 1022, + "route": "assets/pathing/蒙德5-千风神殿-4.json" + }, + { + "source": 13, + "target": 1023, + "route": "assets/pathing/蒙德5-千风神殿-5.json" + }, + { + "source": 1022, + "target": 1023, + "route": "assets/pathing/蒙德5-千风神殿-5.json" + }, + { + "source": 13, + "target": 1024, + "route": "assets/pathing/蒙德6-望风山地-1.json" + }, + { + "source": 1024, + "target": 1025, + "route": "assets/pathing/蒙德6-望风山地-2.json" + }, + { + "source": 14, + "target": 1026, + "route": "assets/pathing/蒙德6-望风山地-3.json" + }, + { + "source": 1025, + "target": 1026, + "route": "assets/pathing/蒙德6-望风山地-3.json" + }, + { + "source": 1026, + "target": 1027, + "route": "assets/pathing/蒙德6-望风山地-4.json" + }, + { + "source": 15, + "target": 1028, + "route": "assets/pathing/蒙德7-达达乌帕谷-1.json" + }, + { + "source": 16, + "target": 1029, + "route": "assets/pathing/蒙德7-达达乌帕谷-2.json" + }, + { + "source": 1028, + "target": 1029, + "route": "assets/pathing/蒙德7-达达乌帕谷-2.json" + }, + { + "source": 16, + "target": 1030, + "route": "assets/pathing/蒙德7-达达乌帕谷-3.json" + }, + { + "source": 1029, + "target": 1030, + "route": "assets/pathing/蒙德7-达达乌帕谷-3.json" + }, + { + "source": 1030, + "target": 1031, + "route": "assets/pathing/蒙德7-达达乌帕谷-4.json" + }, + { + "source": 1031, + "target": 1032, + "route": "assets/pathing/蒙德7-达达乌帕谷-5.json" + }, + { + "source": 1032, + "target": 1033, + "route": "assets/pathing/蒙德7-达达乌帕谷-6.json" + }, + { + "source": 17, + "target": 1034, + "route": "assets/pathing/璃月1-石门-1.json" + }, + { + "source": 18, + "target": 1035, + "route": "assets/pathing/璃月1-石门-2.json" + }, + { + "source": 1034, + "target": 1035, + "route": "assets/pathing/璃月1-石门-2.json" + }, + { + "source": 1035, + "target": 1036, + "route": "assets/pathing/璃月1-石门-3.json" + }, + { + "source": 1036, + "target": 1037, + "route": "assets/pathing/璃月1-石门-4.json" + }, + { + "source": 19, + "target": 1038, + "route": "assets/pathing/璃月10-绝云间-1.json" + }, + { + "source": 20, + "target": 1039, + "route": "assets/pathing/璃月10-绝云间-2.json" + }, + { + "source": 1038, + "target": 1039, + "route": "assets/pathing/璃月10-绝云间-2.json" + }, + { + "source": 21, + "target": 1040, + "route": "assets/pathing/璃月10-绝云间-3.json" + }, + { + "source": 36, + "target": 1040, + "route": "assets/pathing/璃月6-奥藏山-7-2.json" + }, + { + "source": 1039, + "target": 1040, + "route": "assets/pathing/璃月10-绝云间-3.json" + }, + { + "source": 39, + "target": 1041, + "route": "assets/pathing/璃月7-遁玉陵-5.json" + }, + { + "source": 19, + "target": 1041, + "route": "assets/pathing/璃月8-南天门南-6.json" + }, + { + "source": 1040, + "target": 1041, + "route": "assets/pathing/璃月10-绝云间-4.json" + }, + { + "source": 21, + "target": 1042, + "route": "assets/pathing/璃月10-绝云间-5.json" + }, + { + "source": 21, + "target": 1042, + "route": "assets/pathing/璃月3-瑶光滩-5.json" + }, + { + "source": 21, + "target": 1042, + "route": "assets/pathing/璃月4-璃月港-7.json" + }, + { + "source": 21, + "target": 1042, + "route": "assets/pathing/璃月6-奥藏山-9-2.json" + }, + { + "source": 21, + "target": 1042, + "route": "assets/pathing/璃月7-遁玉陵-6.json" + }, + { + "source": 21, + "target": 1042, + "route": "assets/pathing/璃月8-南天门南-7.json" + }, + { + "source": 1041, + "target": 1042, + "route": "assets/pathing/璃月10-绝云间-5.json" + }, + { + "source": 22, + "target": 1043, + "route": "assets/pathing/璃月11-轻策庄-1.json" + }, + { + "source": 1043, + "target": 1044, + "route": "assets/pathing/璃月11-轻策庄-2.json" + }, + { + "source": 1044, + "target": 1045, + "route": "assets/pathing/璃月11-轻策庄-3.json" + }, + { + "source": 1045, + "target": 1046, + "route": "assets/pathing/璃月11-轻策庄-4.json" + }, + { + "source": 23, + "target": 1047, + "route": "assets/pathing/璃月11-轻策庄-5.json" + }, + { + "source": 1046, + "target": 1047, + "route": "assets/pathing/璃月11-轻策庄-5.json" + }, + { + "source": 24, + "target": 1048, + "route": "assets/pathing/璃月11-轻策庄-6.json" + }, + { + "source": 1047, + "target": 1048, + "route": "assets/pathing/璃月11-轻策庄-6.json" + }, + { + "source": 25, + "target": 1049, + "route": "assets/pathing/璃月13-悬练山-1.json" + }, + { + "source": 25, + "target": 1050, + "route": "assets/pathing/璃月13-悬练山-2.json" + }, + { + "source": 1049, + "target": 1050, + "route": "assets/pathing/璃月13-悬练山-2.json" + }, + { + "source": 1050, + "target": 1051, + "route": "assets/pathing/璃月13-悬练山-3.json" + }, + { + "source": 1051, + "target": 1052, + "route": "assets/pathing/璃月13-悬练山-4.json" + }, + { + "source": 26, + "target": 1053, + "route": "assets/pathing/璃月14-药蝶谷-1.json" + }, + { + "source": 1053, + "target": 1054, + "route": "assets/pathing/璃月14-药蝶谷-2.json" + }, + { + "source": 1054, + "target": 1055, + "route": "assets/pathing/璃月14-药蝶谷-3.json" + }, + { + "source": 1055, + "target": 1056, + "route": "assets/pathing/璃月14-药蝶谷-4.json" + }, + { + "source": 27, + "target": 1057, + "route": "assets/pathing/璃月2-地中之盐-1.json" + }, + { + "source": 27, + "target": 1058, + "route": "assets/pathing/璃月2-地中之盐-2.json" + }, + { + "source": 1057, + "target": 1058, + "route": "assets/pathing/璃月2-地中之盐-2.json" + }, + { + "source": 28, + "target": 1059, + "route": "assets/pathing/璃月2-地中之盐-3.json" + }, + { + "source": 1058, + "target": 1059, + "route": "assets/pathing/璃月2-地中之盐-3.json" + }, + { + "source": 29, + "target": 1060, + "route": "assets/pathing/璃月2-地中之盐-4.json" + }, + { + "source": 1059, + "target": 1060, + "route": "assets/pathing/璃月2-地中之盐-4.json" + }, + { + "source": 29, + "target": 1061, + "route": "assets/pathing/璃月3-瑶光滩-1.json" + }, + { + "source": 29, + "target": 1062, + "route": "assets/pathing/璃月3-瑶光滩-2.json" + }, + { + "source": 1061, + "target": 1062, + "route": "assets/pathing/璃月3-瑶光滩-2.json" + }, + { + "source": 21, + "target": 1063, + "route": "assets/pathing/璃月3-瑶光滩-3.json" + }, + { + "source": 1062, + "target": 1063, + "route": "assets/pathing/璃月3-瑶光滩-3.json" + }, + { + "source": 21, + "target": 1064, + "route": "assets/pathing/璃月3-瑶光滩-4.json" + }, + { + "source": 21, + "target": 1064, + "route": "assets/pathing/璃月4-璃月港-6.json" + }, + { + "source": 1063, + "target": 1064, + "route": "assets/pathing/璃月3-瑶光滩-4.json" + }, + { + "source": 1064, + "target": 1065, + "route": "assets/pathing/璃月3-瑶光滩-5.json" + }, + { + "source": 30, + "target": 1066, + "route": "assets/pathing/璃月4-璃月港-1.json" + }, + { + "source": 1066, + "target": 1067, + "route": "assets/pathing/璃月4-璃月港-2.json" + }, + { + "source": 1067, + "target": 1068, + "route": "assets/pathing/璃月4-璃月港-3.json" + }, + { + "source": 1068, + "target": 1069, + "route": "assets/pathing/璃月4-璃月港-4.json" + }, + { + "source": 31, + "target": 1070, + "route": "assets/pathing/璃月4-璃月港-5.json" + }, + { + "source": 1069, + "target": 1070, + "route": "assets/pathing/璃月4-璃月港-5.json" + }, + { + "source": 1070, + "target": 1071, + "route": "assets/pathing/璃月4-璃月港-6.json" + }, + { + "source": 1071, + "target": 1072, + "route": "assets/pathing/璃月4-璃月港-7.json" + }, + { + "source": 32, + "target": 1073, + "route": "assets/pathing/璃月5-天衡山-1.json" + }, + { + "source": 32, + "target": 1074, + "route": "assets/pathing/璃月5-天衡山-2.json" + }, + { + "source": 1073, + "target": 1074, + "route": "assets/pathing/璃月5-天衡山-2.json" + }, + { + "source": 1074, + "target": 1075, + "route": "assets/pathing/璃月5-天衡山-3.json" + }, + { + "source": 33, + "target": 1076, + "route": "assets/pathing/璃月5-天衡山-4-1.json" + }, + { + "source": 1075, + "target": 1076, + "route": "assets/pathing/璃月5-天衡山-4-1.json" + }, + { + "source": 34, + "target": 1077, + "route": "assets/pathing/璃月6-奥藏山-1.json" + }, + { + "source": 1077, + "target": 1078, + "route": "assets/pathing/璃月6-奥藏山-2.json" + }, + { + "source": 35, + "target": 1079, + "route": "assets/pathing/璃月6-奥藏山-3.json" + }, + { + "source": 1078, + "target": 1079, + "route": "assets/pathing/璃月6-奥藏山-3.json" + }, + { + "source": 1079, + "target": 1080, + "route": "assets/pathing/璃月6-奥藏山-4.json" + }, + { + "source": 20, + "target": 1081, + "route": "assets/pathing/璃月6-奥藏山-5-2.json" + }, + { + "source": 1080, + "target": 1081, + "route": "assets/pathing/璃月6-奥藏山-5-2.json" + }, + { + "source": 1081, + "target": 1082, + "route": "assets/pathing/璃月6-奥藏山-6-2.json" + }, + { + "source": 1082, + "target": 1083, + "route": "assets/pathing/璃月6-奥藏山-7-2.json" + }, + { + "source": 1083, + "target": 1084, + "route": "assets/pathing/璃月6-奥藏山-8-2.json" + }, + { + "source": 1084, + "target": 1085, + "route": "assets/pathing/璃月6-奥藏山-9-2.json" + }, + { + "source": 33, + "target": 1086, + "route": "assets/pathing/璃月7-遁玉陵-1.json" + }, + { + "source": 37, + "target": 1087, + "route": "assets/pathing/璃月7-遁玉陵-2.json" + }, + { + "source": 1086, + "target": 1087, + "route": "assets/pathing/璃月7-遁玉陵-2.json" + }, + { + "source": 1087, + "target": 1088, + "route": "assets/pathing/璃月7-遁玉陵-3.json" + }, + { + "source": 38, + "target": 1089, + "route": "assets/pathing/璃月7-遁玉陵-4.json" + }, + { + "source": 38, + "target": 1089, + "route": "assets/pathing/璃月8-南天门南-5.json" + }, + { + "source": 1088, + "target": 1089, + "route": "assets/pathing/璃月7-遁玉陵-4.json" + }, + { + "source": 1089, + "target": 1090, + "route": "assets/pathing/璃月7-遁玉陵-5.json" + }, + { + "source": 1090, + "target": 1091, + "route": "assets/pathing/璃月7-遁玉陵-6.json" + }, + { + "source": 40, + "target": 1092, + "route": "assets/pathing/璃月8-南天门南-1.json" + }, + { + "source": 41, + "target": 1093, + "route": "assets/pathing/璃月8-南天门南-2.json" + }, + { + "source": 1092, + "target": 1093, + "route": "assets/pathing/璃月8-南天门南-2.json" + }, + { + "source": 41, + "target": 1094, + "route": "assets/pathing/璃月8-南天门南-3.json" + }, + { + "source": 1093, + "target": 1094, + "route": "assets/pathing/璃月8-南天门南-3.json" + }, + { + "source": 41, + "target": 1095, + "route": "assets/pathing/璃月8-南天门南-4.json" + }, + { + "source": 1094, + "target": 1095, + "route": "assets/pathing/璃月8-南天门南-4.json" + }, + { + "source": 1095, + "target": 1096, + "route": "assets/pathing/璃月8-南天门南-5.json" + }, + { + "source": 1096, + "target": 1097, + "route": "assets/pathing/璃月8-南天门南-6.json" + }, + { + "source": 1097, + "target": 1098, + "route": "assets/pathing/璃月8-南天门南-7.json" + }, + { + "source": 42, + "target": 1099, + "route": "assets/pathing/璃月9-南天门东-1.json" + }, + { + "source": 1099, + "target": 1100, + "route": "assets/pathing/璃月9-南天门东-2.json" + }, + { + "source": 42, + "target": 1101, + "route": "assets/pathing/璃月9-南天门东-3-1.json" + }, + { + "source": 42, + "target": 1101, + "route": "assets/pathing/璃月9-南天门东-3-2.json" + }, + { + "source": 1100, + "target": 1101, + "route": "assets/pathing/璃月9-南天门东-3-1.json" + }, + { + "source": 40, + "target": 1102, + "route": "assets/pathing/璃月9-南天门东-4.json" + }, + { + "source": 1101, + "target": 1102, + "route": "assets/pathing/璃月9-南天门东-4.json" + }, + { + "source": 1100, + "target": 1102, + "route": "assets/pathing/璃月9-南天门东-4.json" + }, + { + "source": 43, + "target": 1103, + "route": "assets/pathing/稻妻1-鸣神岛-1.json" + }, + { + "source": 43, + "target": 1104, + "route": "assets/pathing/稻妻1-鸣神岛-2.json" + }, + { + "source": 1103, + "target": 1104, + "route": "assets/pathing/稻妻1-鸣神岛-2.json" + }, + { + "source": 44, + "target": 1105, + "route": "assets/pathing/稻妻1-鸣神岛-3.json" + }, + { + "source": 1104, + "target": 1105, + "route": "assets/pathing/稻妻1-鸣神岛-3.json" + }, + { + "source": 44, + "target": 1106, + "route": "assets/pathing/稻妻1-鸣神岛-4.json" + }, + { + "source": 1105, + "target": 1106, + "route": "assets/pathing/稻妻1-鸣神岛-4.json" + }, + { + "source": 45, + "target": 1107, + "route": "assets/pathing/稻妻2-踏鞴砂-1.json" + }, + { + "source": 46, + "target": 1108, + "route": "assets/pathing/稻妻2-踏鞴砂-2.json" + }, + { + "source": 1107, + "target": 1108, + "route": "assets/pathing/稻妻2-踏鞴砂-2.json" + }, + { + "source": 47, + "target": 1109, + "route": "assets/pathing/稻妻2-踏鞴砂-3.json" + }, + { + "source": 1108, + "target": 1109, + "route": "assets/pathing/稻妻2-踏鞴砂-3.json" + }, + { + "source": 48, + "target": 1110, + "route": "assets/pathing/稻妻2-踏鞴砂-4.json" + }, + { + "source": 1109, + "target": 1110, + "route": "assets/pathing/稻妻2-踏鞴砂-4.json" + }, + { + "source": 48, + "target": 1111, + "route": "assets/pathing/稻妻2-踏鞴砂-5.json" + }, + { + "source": 1110, + "target": 1111, + "route": "assets/pathing/稻妻2-踏鞴砂-5.json" + }, + { + "source": 49, + "target": 1112, + "route": "assets/pathing/稻妻3-八酝岛-1.json" + }, + { + "source": 1112, + "target": 1113, + "route": "assets/pathing/稻妻3-八酝岛-2.json" + }, + { + "source": 49, + "target": 1114, + "route": "assets/pathing/稻妻3-八酝岛-3.json" + }, + { + "source": 1113, + "target": 1114, + "route": "assets/pathing/稻妻3-八酝岛-3.json" + }, + { + "source": 49, + "target": 1115, + "route": "assets/pathing/稻妻3-八酝岛-4.json" + }, + { + "source": 1114, + "target": 1115, + "route": "assets/pathing/稻妻3-八酝岛-4.json" + }, + { + "source": 50, + "target": 1116, + "route": "assets/pathing/稻妻4-海祇岛-1.json" + }, + { + "source": 1116, + "target": 1117, + "route": "assets/pathing/稻妻4-海祇岛-2.json" + }, + { + "source": 1117, + "target": 1118, + "route": "assets/pathing/稻妻4-海祇岛-3.json" + }, + { + "source": 51, + "target": 1119, + "route": "assets/pathing/稻妻4-海祇岛-4.json" + }, + { + "source": 1118, + "target": 1119, + "route": "assets/pathing/稻妻4-海祇岛-4.json" + }, + { + "source": 52, + "target": 1120, + "route": "assets/pathing/稻妻5-清籁岛-1.json" + }, + { + "source": 1120, + "target": 1121, + "route": "assets/pathing/稻妻5-清籁岛-2.json" + }, + { + "source": 1121, + "target": 1122, + "route": "assets/pathing/稻妻5-清籁岛-3.json" + }, + { + "source": 53, + "target": 1123, + "route": "assets/pathing/稻妻5-清籁岛-4.json" + }, + { + "source": 1122, + "target": 1123, + "route": "assets/pathing/稻妻5-清籁岛-4.json" + }, + { + "source": 1123, + "target": 1124, + "route": "assets/pathing/稻妻5-清籁岛-5.json" + }, + { + "source": 54, + "target": 1125, + "route": "assets/pathing/须弥1-无郁稠林-1.json" + }, + { + "source": 1125, + "target": 1126, + "route": "assets/pathing/须弥1-无郁稠林-2.json" + }, + { + "source": 1126, + "target": 1127, + "route": "assets/pathing/须弥1-无郁稠林-3.json" + }, + { + "source": 1127, + "target": 1128, + "route": "assets/pathing/须弥1-无郁稠林-4.json" + }, + { + "source": 1128, + "target": 1129, + "route": "assets/pathing/须弥1-无郁稠林-5.json" + }, + { + "source": 55, + "target": 1130, + "route": "assets/pathing/须弥10-荼泥黑渊-1.json" + }, + { + "source": 55, + "target": 1131, + "route": "assets/pathing/须弥10-荼泥黑渊-2.json" + }, + { + "source": 1130, + "target": 1131, + "route": "assets/pathing/须弥10-荼泥黑渊-2.json" + }, + { + "source": 55, + "target": 1132, + "route": "assets/pathing/须弥10-荼泥黑渊-3.json" + }, + { + "source": 1131, + "target": 1132, + "route": "assets/pathing/须弥10-荼泥黑渊-3.json" + }, + { + "source": 56, + "target": 1133, + "route": "assets/pathing/须弥10-荼泥黑渊-4.json" + }, + { + "source": 1132, + "target": 1133, + "route": "assets/pathing/须弥10-荼泥黑渊-4.json" + }, + { + "source": 57, + "target": 1134, + "route": "assets/pathing/须弥2-奥摩斯港西-1.json" + }, + { + "source": 1134, + "target": 1135, + "route": "assets/pathing/须弥2-奥摩斯港西-2.json" + }, + { + "source": 58, + "target": 1136, + "route": "assets/pathing/须弥2-奥摩斯港西-3.json" + }, + { + "source": 1135, + "target": 1136, + "route": "assets/pathing/须弥2-奥摩斯港西-3.json" + }, + { + "source": 1136, + "target": 1137, + "route": "assets/pathing/须弥2-奥摩斯港西-4.json" + }, + { + "source": 1137, + "target": 1138, + "route": "assets/pathing/须弥2-奥摩斯港西-5.json" + }, + { + "source": 59, + "target": 1139, + "route": "assets/pathing/须弥3-禅那园-1.json" + }, + { + "source": 1139, + "target": 1140, + "route": "assets/pathing/须弥3-禅那园-2.json" + }, + { + "source": 60, + "target": 1141, + "route": "assets/pathing/须弥3-禅那园-3.json" + }, + { + "source": 1140, + "target": 1141, + "route": "assets/pathing/须弥3-禅那园-3.json" + }, + { + "source": 1141, + "target": 1142, + "route": "assets/pathing/须弥3-禅那园-4.json" + }, + { + "source": 61, + "target": 1143, + "route": "assets/pathing/须弥4-水天丛林-1.json" + }, + { + "source": 1143, + "target": 1144, + "route": "assets/pathing/须弥4-水天丛林-2.json" + }, + { + "source": 1144, + "target": 1145, + "route": "assets/pathing/须弥4-水天丛林-3.json" + }, + { + "source": 62, + "target": 1146, + "route": "assets/pathing/须弥4-水天丛林-4.json" + }, + { + "source": 1145, + "target": 1146, + "route": "assets/pathing/须弥4-水天丛林-4.json" + }, + { + "source": 63, + "target": 1147, + "route": "assets/pathing/须弥4-水天丛林-5.json" + }, + { + "source": 1146, + "target": 1147, + "route": "assets/pathing/须弥4-水天丛林-5.json" + }, + { + "source": 64, + "target": 1148, + "route": "assets/pathing/须弥5-阿如村-1.json" + }, + { + "source": 1148, + "target": 1149, + "route": "assets/pathing/须弥5-阿如村-2.json" + }, + { + "source": 1149, + "target": 1150, + "route": "assets/pathing/须弥5-阿如村-3.json" + }, + { + "source": 1150, + "target": 1151, + "route": "assets/pathing/须弥5-阿如村-4.json" + }, + { + "source": 1151, + "target": 1152, + "route": "assets/pathing/须弥5-阿如村-5.json" + }, + { + "source": 65, + "target": 1153, + "route": "assets/pathing/须弥6-荼诃落谷-1.json" + }, + { + "source": 66, + "target": 1154, + "route": "assets/pathing/须弥6-荼诃落谷-2.json" + }, + { + "source": 1153, + "target": 1154, + "route": "assets/pathing/须弥6-荼诃落谷-2.json" + }, + { + "source": 1154, + "target": 1155, + "route": "assets/pathing/须弥6-荼诃落谷-3.json" + }, + { + "source": 67, + "target": 1156, + "route": "assets/pathing/须弥6-荼诃落谷-4.json" + }, + { + "source": 1155, + "target": 1156, + "route": "assets/pathing/须弥6-荼诃落谷-4.json" + }, + { + "source": 68, + "target": 1157, + "route": "assets/pathing/须弥8-折胫谷-1.json" + }, + { + "source": 1157, + "target": 1158, + "route": "assets/pathing/须弥8-折胫谷-2.json" + }, + { + "source": 1158, + "target": 1159, + "route": "assets/pathing/须弥8-折胫谷-3.json" + }, + { + "source": 1159, + "target": 1160, + "route": "assets/pathing/须弥8-折胫谷-4.json" + }, + { + "source": 69, + "target": 1161, + "route": "assets/pathing/须弥9-镔铁沙丘-1.json" + }, + { + "source": 1161, + "target": 1162, + "route": "assets/pathing/须弥9-镔铁沙丘-2.json" + }, + { + "source": 1162, + "target": 1163, + "route": "assets/pathing/须弥9-镔铁沙丘-3.json" + }, + { + "source": 1163, + "target": 1164, + "route": "assets/pathing/须弥9-镔铁沙丘-4.json" + }, + { + "source": 70, + "target": 1165, + "route": "assets/pathing/枫丹1-秋分山西侧-1.json" + }, + { + "source": 70, + "target": 1166, + "route": "assets/pathing/枫丹1-秋分山西侧-2.json" + }, + { + "source": 1165, + "target": 1166, + "route": "assets/pathing/枫丹1-秋分山西侧-2.json" + }, + { + "source": 71, + "target": 1167, + "route": "assets/pathing/枫丹1-秋分山西侧-3.json" + }, + { + "source": 1166, + "target": 1167, + "route": "assets/pathing/枫丹1-秋分山西侧-3.json" + }, + { + "source": 71, + "target": 1168, + "route": "assets/pathing/枫丹1-秋分山西侧-4.json" + }, + { + "source": 1167, + "target": 1168, + "route": "assets/pathing/枫丹1-秋分山西侧-4.json" + }, + { + "source": 71, + "target": 1169, + "route": "assets/pathing/枫丹1-秋分山西侧-5.json" + }, + { + "source": 1168, + "target": 1169, + "route": "assets/pathing/枫丹1-秋分山西侧-5.json" + }, + { + "source": 72, + "target": 1170, + "route": "assets/pathing/枫丹2-芒索斯山东麓-1.json" + }, + { + "source": 72, + "target": 1171, + "route": "assets/pathing/枫丹2-芒索斯山东麓-2.json" + }, + { + "source": 1170, + "target": 1171, + "route": "assets/pathing/枫丹2-芒索斯山东麓-2.json" + }, + { + "source": 72, + "target": 1172, + "route": "assets/pathing/枫丹2-芒索斯山东麓-3.json" + }, + { + "source": 1171, + "target": 1172, + "route": "assets/pathing/枫丹2-芒索斯山东麓-3.json" + }, + { + "source": 72, + "target": 1173, + "route": "assets/pathing/枫丹2-芒索斯山东麓-4.json" + }, + { + "source": 1172, + "target": 1173, + "route": "assets/pathing/枫丹2-芒索斯山东麓-4.json" + }, + { + "source": 73, + "target": 1174, + "route": "assets/pathing/枫丹3-新枫丹科学院-1.json" + }, + { + "source": 73, + "target": 1175, + "route": "assets/pathing/枫丹3-新枫丹科学院-2.json" + }, + { + "source": 1174, + "target": 1175, + "route": "assets/pathing/枫丹3-新枫丹科学院-2.json" + }, + { + "source": 74, + "target": 1176, + "route": "assets/pathing/枫丹3-新枫丹科学院-3.json" + }, + { + "source": 1175, + "target": 1176, + "route": "assets/pathing/枫丹3-新枫丹科学院-3.json" + }, + { + "source": 74, + "target": 1177, + "route": "assets/pathing/枫丹3-新枫丹科学院-4.json" + }, + { + "source": 1176, + "target": 1177, + "route": "assets/pathing/枫丹3-新枫丹科学院-4.json" + }, + { + "source": 75, + "target": 1178, + "route": "assets/pathing/枫丹4-柔灯港-1.json" + }, + { + "source": 76, + "target": 1179, + "route": "assets/pathing/枫丹4-柔灯港-2.json" + }, + { + "source": 1178, + "target": 1179, + "route": "assets/pathing/枫丹4-柔灯港-2.json" + }, + { + "source": 76, + "target": 1180, + "route": "assets/pathing/枫丹4-柔灯港-3.json" + }, + { + "source": 1179, + "target": 1180, + "route": "assets/pathing/枫丹4-柔灯港-3.json" + }, + { + "source": 76, + "target": 1181, + "route": "assets/pathing/枫丹4-柔灯港-4.json" + }, + { + "source": 1180, + "target": 1181, + "route": "assets/pathing/枫丹4-柔灯港-4.json" + }, + { + "source": 70, + "target": 1182, + "route": "assets/pathing/枫丹5-秋分山东侧-1.json" + }, + { + "source": 70, + "target": 1183, + "route": "assets/pathing/枫丹5-秋分山东侧-2.json" + }, + { + "source": 1182, + "target": 1183, + "route": "assets/pathing/枫丹5-秋分山东侧-2.json" + }, + { + "source": 77, + "target": 1184, + "route": "assets/pathing/枫丹5-秋分山东侧-3.json" + }, + { + "source": 1183, + "target": 1184, + "route": "assets/pathing/枫丹5-秋分山东侧-3.json" + }, + { + "source": 77, + "target": 1185, + "route": "assets/pathing/枫丹5-秋分山东侧-4.json" + }, + { + "source": 1184, + "target": 1185, + "route": "assets/pathing/枫丹5-秋分山东侧-4.json" + }, + { + "source": 78, + "target": 1186, + "route": "assets/pathing/枫丹6-厄里那斯-1.json" + }, + { + "source": 79, + "target": 1187, + "route": "assets/pathing/枫丹6-厄里那斯-2.json" + }, + { + "source": 1186, + "target": 1187, + "route": "assets/pathing/枫丹6-厄里那斯-2.json" + }, + { + "source": 79, + "target": 1188, + "route": "assets/pathing/枫丹6-厄里那斯-3.json" + }, + { + "source": 1187, + "target": 1188, + "route": "assets/pathing/枫丹6-厄里那斯-3.json" + }, + { + "source": 79, + "target": 1189, + "route": "assets/pathing/枫丹6-厄里那斯-4.json" + }, + { + "source": 1188, + "target": 1189, + "route": "assets/pathing/枫丹6-厄里那斯-4.json" + }, + { + "source": 80, + "target": 1190, + "route": "assets/pathing/枫丹6-厄里那斯-5.json" + }, + { + "source": 1189, + "target": 1190, + "route": "assets/pathing/枫丹6-厄里那斯-5.json" + }, + { + "source": 79, + "target": 1191, + "route": "assets/pathing/枫丹6-厄里那斯-6.json" + }, + { + "source": 1190, + "target": 1191, + "route": "assets/pathing/枫丹6-厄里那斯-6.json" + }, + { + "source": 81, + "target": 1192, + "route": "assets/pathing/纳塔1-隆崛坡-1.json" + }, + { + "source": 82, + "target": 1193, + "route": "assets/pathing/纳塔1-隆崛坡-2.json" + }, + { + "source": 1192, + "target": 1193, + "route": "assets/pathing/纳塔1-隆崛坡-2.json" + }, + { + "source": 82, + "target": 1194, + "route": "assets/pathing/纳塔1-隆崛坡-3.json" + }, + { + "source": 1193, + "target": 1194, + "route": "assets/pathing/纳塔1-隆崛坡-3.json" + }, + { + "source": 1194, + "target": 1195, + "route": "assets/pathing/纳塔1-隆崛坡-4.json" + }, + { + "source": 83, + "target": 1196, + "route": "assets/pathing/纳塔10-溶水域-1.json" + }, + { + "source": 1196, + "target": 1197, + "route": "assets/pathing/纳塔10-溶水域-2.json" + }, + { + "source": 1197, + "target": 1198, + "route": "assets/pathing/纳塔10-溶水域-3.json" + }, + { + "source": 84, + "target": 1199, + "route": "assets/pathing/纳塔10-溶水域-4.json" + }, + { + "source": 1198, + "target": 1199, + "route": "assets/pathing/纳塔10-溶水域-4.json" + }, + { + "source": 85, + "target": 1200, + "route": "assets/pathing/纳塔2-硫晶支脉-1.json" + }, + { + "source": 85, + "target": 1201, + "route": "assets/pathing/纳塔2-硫晶支脉-2.json" + }, + { + "source": 1200, + "target": 1201, + "route": "assets/pathing/纳塔2-硫晶支脉-2.json" + }, + { + "source": 85, + "target": 1202, + "route": "assets/pathing/纳塔2-硫晶支脉-3.json" + }, + { + "source": 1201, + "target": 1202, + "route": "assets/pathing/纳塔2-硫晶支脉-3.json" + }, + { + "source": 86, + "target": 1203, + "route": "assets/pathing/纳塔2-硫晶支脉-4.json" + }, + { + "source": 1202, + "target": 1203, + "route": "assets/pathing/纳塔2-硫晶支脉-4.json" + }, + { + "source": 87, + "target": 1204, + "route": "assets/pathing/纳塔3-彩石顶-1.json" + }, + { + "source": 88, + "target": 1205, + "route": "assets/pathing/纳塔3-彩石顶-2.json" + }, + { + "source": 1204, + "target": 1205, + "route": "assets/pathing/纳塔3-彩石顶-2.json" + }, + { + "source": 88, + "target": 1206, + "route": "assets/pathing/纳塔3-彩石顶-3.json" + }, + { + "source": 1205, + "target": 1206, + "route": "assets/pathing/纳塔3-彩石顶-3.json" + }, + { + "source": 1206, + "target": 1207, + "route": "assets/pathing/纳塔3-彩石顶-4.json" + }, + { + "source": 89, + "target": 1208, + "route": "assets/pathing/纳塔4-溶水域-1.json" + }, + { + "source": 1208, + "target": 1209, + "route": "assets/pathing/纳塔4-溶水域-2.json" + }, + { + "source": 90, + "target": 1210, + "route": "assets/pathing/纳塔5-安饶之野-1.json" + }, + { + "source": 90, + "target": 1211, + "route": "assets/pathing/纳塔5-安饶之野-2.json" + }, + { + "source": 1210, + "target": 1211, + "route": "assets/pathing/纳塔5-安饶之野-2.json" + }, + { + "source": 90, + "target": 1212, + "route": "assets/pathing/纳塔5-安饶之野-3.json" + }, + { + "source": 1211, + "target": 1212, + "route": "assets/pathing/纳塔5-安饶之野-3.json" + }, + { + "source": 91, + "target": 1213, + "route": "assets/pathing/纳塔6-圣火竞技场-1.json" + }, + { + "source": 91, + "target": 1214, + "route": "assets/pathing/纳塔6-圣火竞技场-2.json" + }, + { + "source": 1213, + "target": 1214, + "route": "assets/pathing/纳塔6-圣火竞技场-2.json" + }, + { + "source": 1214, + "target": 1215, + "route": "assets/pathing/纳塔6-圣火竞技场-3.json" + }, + { + "source": 1215, + "target": 1216, + "route": "assets/pathing/纳塔6-圣火竞技场-4.json" + }, + { + "source": 92, + "target": 1217, + "route": "assets/pathing/纳塔7-烟谜主-1.json" + }, + { + "source": 1217, + "target": 1218, + "route": "assets/pathing/纳塔7-烟谜主-2.json" + }, + { + "source": 1218, + "target": 1219, + "route": "assets/pathing/纳塔7-烟谜主-3.json" + }, + { + "source": 93, + "target": 1220, + "route": "assets/pathing/纳塔8-花羽会-1.json" + }, + { + "source": 93, + "target": 1221, + "route": "assets/pathing/纳塔8-花羽会-2.json" + }, + { + "source": 1220, + "target": 1221, + "route": "assets/pathing/纳塔8-花羽会-2.json" + }, + { + "source": 94, + "target": 1222, + "route": "assets/pathing/纳塔8-花羽会-3.json" + }, + { + "source": 1221, + "target": 1222, + "route": "assets/pathing/纳塔8-花羽会-3.json" + }, + { + "source": 95, + "target": 1223, + "route": "assets/pathing/纳塔9-翘枝崖-1.json" + }, + { + "source": 1223, + "target": 1224, + "route": "assets/pathing/纳塔9-翘枝崖-2.json" + }, + { + "source": 1224, + "target": 1225, + "route": "assets/pathing/纳塔9-翘枝崖-3.json" + }, + { + "source": 1225, + "target": 1226, + "route": "assets/pathing/纳塔9-翘枝崖-4.json" + } + ], + "indexes": { + "edgesBySource": { + "1": [ + 1000 + ], + "2": [ + 1001 + ], + "1000": [ + 1001 + ], + "1001": [ + 1002 + ], + "1002": [ + 1003 + ], + "3": [ + 1004, + 1004 + ], + "1003": [ + 1004 + ], + "4": [ + 1005 + ], + "5": [ + 1006 + ], + "1005": [ + 1006 + ], + "1006": [ + 1007 + ], + "1007": [ + 1008, + 1009 + ], + "6": [ + 1009 + ], + "1008": [ + 1010 + ], + "7": [ + 1011 + ], + "1011": [ + 1012 + ], + "1012": [ + 1013 + ], + "8": [ + 1014 + ], + "1013": [ + 1014 + ], + "9": [ + 1015 + ], + "1015": [ + 1016 + ], + "10": [ + 1017 + ], + "1016": [ + 1017 + ], + "1017": [ + 1018 + ], + "11": [ + 1019 + ], + "1019": [ + 1020 + ], + "1020": [ + 1021 + ], + "12": [ + 1022 + ], + "1021": [ + 1022 + ], + "13": [ + 1023, + 1024 + ], + "1022": [ + 1023 + ], + "1024": [ + 1025 + ], + "14": [ + 1026 + ], + "1025": [ + 1026 + ], + "1026": [ + 1027 + ], + "15": [ + 1028 + ], + "16": [ + 1029, + 1030 + ], + "1028": [ + 1029 + ], + "1029": [ + 1030 + ], + "1030": [ + 1031 + ], + "1031": [ + 1032 + ], + "1032": [ + 1033 + ], + "17": [ + 1034 + ], + "18": [ + 1035 + ], + "1034": [ + 1035 + ], + "1035": [ + 1036 + ], + "1036": [ + 1037 + ], + "19": [ + 1038, + 1041 + ], + "20": [ + 1039, + 1081 + ], + "1038": [ + 1039 + ], + "21": [ + 1040, + 1042, + 1042, + 1042, + 1042, + 1042, + 1042, + 1063, + 1064, + 1064 + ], + "36": [ + 1040 + ], + "1039": [ + 1040 + ], + "39": [ + 1041 + ], + "1040": [ + 1041 + ], + "1041": [ + 1042 + ], + "22": [ + 1043 + ], + "1043": [ + 1044 + ], + "1044": [ + 1045 + ], + "1045": [ + 1046 + ], + "23": [ + 1047 + ], + "1046": [ + 1047 + ], + "24": [ + 1048 + ], + "1047": [ + 1048 + ], + "25": [ + 1049, + 1050 + ], + "1049": [ + 1050 + ], + "1050": [ + 1051 + ], + "1051": [ + 1052 + ], + "26": [ + 1053 + ], + "1053": [ + 1054 + ], + "1054": [ + 1055 + ], + "1055": [ + 1056 + ], + "27": [ + 1057, + 1058 + ], + "1057": [ + 1058 + ], + "28": [ + 1059 + ], + "1058": [ + 1059 + ], + "29": [ + 1060, + 1061, + 1062 + ], + "1059": [ + 1060 + ], + "1061": [ + 1062 + ], + "1062": [ + 1063 + ], + "1063": [ + 1064 + ], + "1064": [ + 1065 + ], + "30": [ + 1066 + ], + "1066": [ + 1067 + ], + "1067": [ + 1068 + ], + "1068": [ + 1069 + ], + "31": [ + 1070 + ], + "1069": [ + 1070 + ], + "1070": [ + 1071 + ], + "1071": [ + 1072 + ], + "32": [ + 1073, + 1074 + ], + "1073": [ + 1074 + ], + "1074": [ + 1075 + ], + "33": [ + 1076, + 1086 + ], + "1075": [ + 1076 + ], + "34": [ + 1077 + ], + "1077": [ + 1078 + ], + "35": [ + 1079 + ], + "1078": [ + 1079 + ], + "1079": [ + 1080 + ], + "1080": [ + 1081 + ], + "1081": [ + 1082 + ], + "1082": [ + 1083 + ], + "1083": [ + 1084 + ], + "1084": [ + 1085 + ], + "37": [ + 1087 + ], + "1086": [ + 1087 + ], + "1087": [ + 1088 + ], + "38": [ + 1089, + 1089 + ], + "1088": [ + 1089 + ], + "1089": [ + 1090 + ], + "1090": [ + 1091 + ], + "40": [ + 1092, + 1102 + ], + "41": [ + 1093, + 1094, + 1095 + ], + "1092": [ + 1093 + ], + "1093": [ + 1094 + ], + "1094": [ + 1095 + ], + "1095": [ + 1096 + ], + "1096": [ + 1097 + ], + "1097": [ + 1098 + ], + "42": [ + 1099, + 1101, + 1101 + ], + "1099": [ + 1100 + ], + "1100": [ + 1101, + 1102 + ], + "1101": [ + 1102 + ], + "43": [ + 1103, + 1104 + ], + "1103": [ + 1104 + ], + "44": [ + 1105, + 1106 + ], + "1104": [ + 1105 + ], + "1105": [ + 1106 + ], + "45": [ + 1107 + ], + "46": [ + 1108 + ], + "1107": [ + 1108 + ], + "47": [ + 1109 + ], + "1108": [ + 1109 + ], + "48": [ + 1110, + 1111 + ], + "1109": [ + 1110 + ], + "1110": [ + 1111 + ], + "49": [ + 1112, + 1114, + 1115 + ], + "1112": [ + 1113 + ], + "1113": [ + 1114 + ], + "1114": [ + 1115 + ], + "50": [ + 1116 + ], + "1116": [ + 1117 + ], + "1117": [ + 1118 + ], + "51": [ + 1119 + ], + "1118": [ + 1119 + ], + "52": [ + 1120 + ], + "1120": [ + 1121 + ], + "1121": [ + 1122 + ], + "53": [ + 1123 + ], + "1122": [ + 1123 + ], + "1123": [ + 1124 + ], + "54": [ + 1125 + ], + "1125": [ + 1126 + ], + "1126": [ + 1127 + ], + "1127": [ + 1128 + ], + "1128": [ + 1129 + ], + "55": [ + 1130, + 1131, + 1132 + ], + "1130": [ + 1131 + ], + "1131": [ + 1132 + ], + "56": [ + 1133 + ], + "1132": [ + 1133 + ], + "57": [ + 1134 + ], + "1134": [ + 1135 + ], + "58": [ + 1136 + ], + "1135": [ + 1136 + ], + "1136": [ + 1137 + ], + "1137": [ + 1138 + ], + "59": [ + 1139 + ], + "1139": [ + 1140 + ], + "60": [ + 1141 + ], + "1140": [ + 1141 + ], + "1141": [ + 1142 + ], + "61": [ + 1143 + ], + "1143": [ + 1144 + ], + "1144": [ + 1145 + ], + "62": [ + 1146 + ], + "1145": [ + 1146 + ], + "63": [ + 1147 + ], + "1146": [ + 1147 + ], + "64": [ + 1148 + ], + "1148": [ + 1149 + ], + "1149": [ + 1150 + ], + "1150": [ + 1151 + ], + "1151": [ + 1152 + ], + "65": [ + 1153 + ], + "66": [ + 1154 + ], + "1153": [ + 1154 + ], + "1154": [ + 1155 + ], + "67": [ + 1156 + ], + "1155": [ + 1156 + ], + "68": [ + 1157 + ], + "1157": [ + 1158 + ], + "1158": [ + 1159 + ], + "1159": [ + 1160 + ], + "69": [ + 1161 + ], + "1161": [ + 1162 + ], + "1162": [ + 1163 + ], + "1163": [ + 1164 + ], + "70": [ + 1165, + 1166, + 1182, + 1183 + ], + "1165": [ + 1166 + ], + "71": [ + 1167, + 1168, + 1169 + ], + "1166": [ + 1167 + ], + "1167": [ + 1168 + ], + "1168": [ + 1169 + ], + "72": [ + 1170, + 1171, + 1172, + 1173 + ], + "1170": [ + 1171 + ], + "1171": [ + 1172 + ], + "1172": [ + 1173 + ], + "73": [ + 1174, + 1175 + ], + "1174": [ + 1175 + ], + "74": [ + 1176, + 1177 + ], + "1175": [ + 1176 + ], + "1176": [ + 1177 + ], + "75": [ + 1178 + ], + "76": [ + 1179, + 1180, + 1181 + ], + "1178": [ + 1179 + ], + "1179": [ + 1180 + ], + "1180": [ + 1181 + ], + "1182": [ + 1183 + ], + "77": [ + 1184, + 1185 + ], + "1183": [ + 1184 + ], + "1184": [ + 1185 + ], + "78": [ + 1186 + ], + "79": [ + 1187, + 1188, + 1189, + 1191 + ], + "1186": [ + 1187 + ], + "1187": [ + 1188 + ], + "1188": [ + 1189 + ], + "80": [ + 1190 + ], + "1189": [ + 1190 + ], + "1190": [ + 1191 + ], + "81": [ + 1192 + ], + "82": [ + 1193, + 1194 + ], + "1192": [ + 1193 + ], + "1193": [ + 1194 + ], + "1194": [ + 1195 + ], + "83": [ + 1196 + ], + "1196": [ + 1197 + ], + "1197": [ + 1198 + ], + "84": [ + 1199 + ], + "1198": [ + 1199 + ], + "85": [ + 1200, + 1201, + 1202 + ], + "1200": [ + 1201 + ], + "1201": [ + 1202 + ], + "86": [ + 1203 + ], + "1202": [ + 1203 + ], + "87": [ + 1204 + ], + "88": [ + 1205, + 1206 + ], + "1204": [ + 1205 + ], + "1205": [ + 1206 + ], + "1206": [ + 1207 + ], + "89": [ + 1208 + ], + "1208": [ + 1209 + ], + "90": [ + 1210, + 1211, + 1212 + ], + "1210": [ + 1211 + ], + "1211": [ + 1212 + ], + "91": [ + 1213, + 1214 + ], + "1213": [ + 1214 + ], + "1214": [ + 1215 + ], + "1215": [ + 1216 + ], + "92": [ + 1217 + ], + "1217": [ + 1218 + ], + "1218": [ + 1219 + ], + "93": [ + 1220, + 1221 + ], + "1220": [ + 1221 + ], + "94": [ + 1222 + ], + "1221": [ + 1222 + ], + "95": [ + 1223 + ], + "1223": [ + 1224 + ], + "1224": [ + 1225 + ], + "1225": [ + 1226 + ] + }, + "edgesByTarget": { + "1000": [ + 1 + ], + "1001": [ + 2, + 1000 + ], + "1002": [ + 1001 + ], + "1003": [ + 1002 + ], + "1004": [ + 3, + 3, + 1003 + ], + "1005": [ + 4 + ], + "1006": [ + 5, + 1005 + ], + "1007": [ + 1006 + ], + "1008": [ + 1007 + ], + "1009": [ + 6, + 1007 + ], + "1010": [ + 1008 + ], + "1011": [ + 7 + ], + "1012": [ + 1011 + ], + "1013": [ + 1012 + ], + "1014": [ + 8, + 1013 + ], + "1015": [ + 9 + ], + "1016": [ + 1015 + ], + "1017": [ + 10, + 1016 + ], + "1018": [ + 1017 + ], + "1019": [ + 11 + ], + "1020": [ + 1019 + ], + "1021": [ + 1020 + ], + "1022": [ + 12, + 1021 + ], + "1023": [ + 13, + 1022 + ], + "1024": [ + 13 + ], + "1025": [ + 1024 + ], + "1026": [ + 14, + 1025 + ], + "1027": [ + 1026 + ], + "1028": [ + 15 + ], + "1029": [ + 16, + 1028 + ], + "1030": [ + 16, + 1029 + ], + "1031": [ + 1030 + ], + "1032": [ + 1031 + ], + "1033": [ + 1032 + ], + "1034": [ + 17 + ], + "1035": [ + 18, + 1034 + ], + "1036": [ + 1035 + ], + "1037": [ + 1036 + ], + "1038": [ + 19 + ], + "1039": [ + 20, + 1038 + ], + "1040": [ + 21, + 36, + 1039 + ], + "1041": [ + 39, + 19, + 1040 + ], + "1042": [ + 21, + 21, + 21, + 21, + 21, + 21, + 1041 + ], + "1043": [ + 22 + ], + "1044": [ + 1043 + ], + "1045": [ + 1044 + ], + "1046": [ + 1045 + ], + "1047": [ + 23, + 1046 + ], + "1048": [ + 24, + 1047 + ], + "1049": [ + 25 + ], + "1050": [ + 25, + 1049 + ], + "1051": [ + 1050 + ], + "1052": [ + 1051 + ], + "1053": [ + 26 + ], + "1054": [ + 1053 + ], + "1055": [ + 1054 + ], + "1056": [ + 1055 + ], + "1057": [ + 27 + ], + "1058": [ + 27, + 1057 + ], + "1059": [ + 28, + 1058 + ], + "1060": [ + 29, + 1059 + ], + "1061": [ + 29 + ], + "1062": [ + 29, + 1061 + ], + "1063": [ + 21, + 1062 + ], + "1064": [ + 21, + 21, + 1063 + ], + "1065": [ + 1064 + ], + "1066": [ + 30 + ], + "1067": [ + 1066 + ], + "1068": [ + 1067 + ], + "1069": [ + 1068 + ], + "1070": [ + 31, + 1069 + ], + "1071": [ + 1070 + ], + "1072": [ + 1071 + ], + "1073": [ + 32 + ], + "1074": [ + 32, + 1073 + ], + "1075": [ + 1074 + ], + "1076": [ + 33, + 1075 + ], + "1077": [ + 34 + ], + "1078": [ + 1077 + ], + "1079": [ + 35, + 1078 + ], + "1080": [ + 1079 + ], + "1081": [ + 20, + 1080 + ], + "1082": [ + 1081 + ], + "1083": [ + 1082 + ], + "1084": [ + 1083 + ], + "1085": [ + 1084 + ], + "1086": [ + 33 + ], + "1087": [ + 37, + 1086 + ], + "1088": [ + 1087 + ], + "1089": [ + 38, + 38, + 1088 + ], + "1090": [ + 1089 + ], + "1091": [ + 1090 + ], + "1092": [ + 40 + ], + "1093": [ + 41, + 1092 + ], + "1094": [ + 41, + 1093 + ], + "1095": [ + 41, + 1094 + ], + "1096": [ + 1095 + ], + "1097": [ + 1096 + ], + "1098": [ + 1097 + ], + "1099": [ + 42 + ], + "1100": [ + 1099 + ], + "1101": [ + 42, + 42, + 1100 + ], + "1102": [ + 40, + 1101, + 1100 + ], + "1103": [ + 43 + ], + "1104": [ + 43, + 1103 + ], + "1105": [ + 44, + 1104 + ], + "1106": [ + 44, + 1105 + ], + "1107": [ + 45 + ], + "1108": [ + 46, + 1107 + ], + "1109": [ + 47, + 1108 + ], + "1110": [ + 48, + 1109 + ], + "1111": [ + 48, + 1110 + ], + "1112": [ + 49 + ], + "1113": [ + 1112 + ], + "1114": [ + 49, + 1113 + ], + "1115": [ + 49, + 1114 + ], + "1116": [ + 50 + ], + "1117": [ + 1116 + ], + "1118": [ + 1117 + ], + "1119": [ + 51, + 1118 + ], + "1120": [ + 52 + ], + "1121": [ + 1120 + ], + "1122": [ + 1121 + ], + "1123": [ + 53, + 1122 + ], + "1124": [ + 1123 + ], + "1125": [ + 54 + ], + "1126": [ + 1125 + ], + "1127": [ + 1126 + ], + "1128": [ + 1127 + ], + "1129": [ + 1128 + ], + "1130": [ + 55 + ], + "1131": [ + 55, + 1130 + ], + "1132": [ + 55, + 1131 + ], + "1133": [ + 56, + 1132 + ], + "1134": [ + 57 + ], + "1135": [ + 1134 + ], + "1136": [ + 58, + 1135 + ], + "1137": [ + 1136 + ], + "1138": [ + 1137 + ], + "1139": [ + 59 + ], + "1140": [ + 1139 + ], + "1141": [ + 60, + 1140 + ], + "1142": [ + 1141 + ], + "1143": [ + 61 + ], + "1144": [ + 1143 + ], + "1145": [ + 1144 + ], + "1146": [ + 62, + 1145 + ], + "1147": [ + 63, + 1146 + ], + "1148": [ + 64 + ], + "1149": [ + 1148 + ], + "1150": [ + 1149 + ], + "1151": [ + 1150 + ], + "1152": [ + 1151 + ], + "1153": [ + 65 + ], + "1154": [ + 66, + 1153 + ], + "1155": [ + 1154 + ], + "1156": [ + 67, + 1155 + ], + "1157": [ + 68 + ], + "1158": [ + 1157 + ], + "1159": [ + 1158 + ], + "1160": [ + 1159 + ], + "1161": [ + 69 + ], + "1162": [ + 1161 + ], + "1163": [ + 1162 + ], + "1164": [ + 1163 + ], + "1165": [ + 70 + ], + "1166": [ + 70, + 1165 + ], + "1167": [ + 71, + 1166 + ], + "1168": [ + 71, + 1167 + ], + "1169": [ + 71, + 1168 + ], + "1170": [ + 72 + ], + "1171": [ + 72, + 1170 + ], + "1172": [ + 72, + 1171 + ], + "1173": [ + 72, + 1172 + ], + "1174": [ + 73 + ], + "1175": [ + 73, + 1174 + ], + "1176": [ + 74, + 1175 + ], + "1177": [ + 74, + 1176 + ], + "1178": [ + 75 + ], + "1179": [ + 76, + 1178 + ], + "1180": [ + 76, + 1179 + ], + "1181": [ + 76, + 1180 + ], + "1182": [ + 70 + ], + "1183": [ + 70, + 1182 + ], + "1184": [ + 77, + 1183 + ], + "1185": [ + 77, + 1184 + ], + "1186": [ + 78 + ], + "1187": [ + 79, + 1186 + ], + "1188": [ + 79, + 1187 + ], + "1189": [ + 79, + 1188 + ], + "1190": [ + 80, + 1189 + ], + "1191": [ + 79, + 1190 + ], + "1192": [ + 81 + ], + "1193": [ + 82, + 1192 + ], + "1194": [ + 82, + 1193 + ], + "1195": [ + 1194 + ], + "1196": [ + 83 + ], + "1197": [ + 1196 + ], + "1198": [ + 1197 + ], + "1199": [ + 84, + 1198 + ], + "1200": [ + 85 + ], + "1201": [ + 85, + 1200 + ], + "1202": [ + 85, + 1201 + ], + "1203": [ + 86, + 1202 + ], + "1204": [ + 87 + ], + "1205": [ + 88, + 1204 + ], + "1206": [ + 88, + 1205 + ], + "1207": [ + 1206 + ], + "1208": [ + 89 + ], + "1209": [ + 1208 + ], + "1210": [ + 90 + ], + "1211": [ + 90, + 1210 + ], + "1212": [ + 90, + 1211 + ], + "1213": [ + 91 + ], + "1214": [ + 91, + 1213 + ], + "1215": [ + 1214 + ], + "1216": [ + 1215 + ], + "1217": [ + 92 + ], + "1218": [ + 1217 + ], + "1219": [ + 1218 + ], + "1220": [ + 93 + ], + "1221": [ + 93, + 1220 + ], + "1222": [ + 94, + 1221 + ], + "1223": [ + 95 + ], + "1224": [ + 1223 + ], + "1225": [ + 1224 + ], + "1226": [ + 1225 + ] + } + } } \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/RecognitionObject/Condensed Resin.png b/repo/js/AutoLeyLineOutcrop/RecognitionObject/Condensed Resin.png new file mode 100644 index 0000000000000000000000000000000000000000..ada167e176753e4cbadd301ff3bb9ccf6016eed1 GIT binary patch literal 25852 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 Xnvz1^@s6hZjYJ00001b5ch_0Itp) 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

dyOH4f{kt=psMDQnLE;(hb@ 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 literal 0 HcmV?d00001 diff --git a/repo/js/AutoLeyLineOutcrop/RecognitionObject/Temporary Resin.png b/repo/js/AutoLeyLineOutcrop/RecognitionObject/Temporary Resin.png new file mode 100644 index 0000000000000000000000000000000000000000..41fa39250967e86d2c40038c8a8d6e0658820d2d GIT binary patch literal 25939 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 aR(vi=y(UTjM@h*wN!i^fLY#u>^1lK7uGnb+ literal 0 HcmV?d00001 diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-1.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-1.json new file mode 100644 index 00000000..da2d3a71 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-1.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "璃月6-奥藏山-1", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 1220.19140625, + "y": 1535.111328125, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-2.json new file mode 100644 index 00000000..5a5610c6 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-2.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "璃月6-奥藏山-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 1086.873046875, + "y": 1428.01220703125, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-3.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-3.json new file mode 100644 index 00000000..6a02f481 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-3.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "璃月6-奥藏山-3", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "怪物多,需要绕路", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 901.2138671875, + "y": 1235.8271484375, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-4.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-4.json new file mode 100644 index 00000000..b4a0b107 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-4.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "璃月6-奥藏山-4", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "路途需处理风萨满", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 833.4765625, + "y": 1181.693359375, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-5-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-5-2.json new file mode 100644 index 00000000..b5d17e04 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-5-2.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "璃月6-奥藏山-5-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 900.1533203125, + "y": 896.95703125, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-6-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-6-2.json new file mode 100644 index 00000000..2cba17f9 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-6-2.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "璃月6-奥藏山-6-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 892.236328125, + "y": 747.74560546875, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-7-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-7-2.json new file mode 100644 index 00000000..52bcf18b --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-7-2.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "璃月6-奥藏山-7-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 594.7021484375, + "y": 437.15625, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-8-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-8-2.json new file mode 100644 index 00000000..0f8c6a9a --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-8-2.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "璃月6-奥藏山-8-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "绕开冰雾花", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 683.0986328125, + "y": 529.06396484375, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-9-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-9-2.json new file mode 100644 index 00000000..c79ee1a8 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月6-奥藏山-9-2.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "璃月6-奥藏山-9-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 455.041015625, + "y": 546.3779296875, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-1.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-1.json new file mode 100644 index 00000000..b53120c5 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-1.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "璃月7-遁玉陵-1", + "type": "collect", + "author": "秋云", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1749399134857 + }, + "positions": [ + { + "id": 1, + "x": 824.28, + "y": -325.68, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-2.json new file mode 100644 index 00000000..24586db5 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-2.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "璃月7-遁玉陵-2", + "type": "collect", + "author": "秋云", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1749399385367 + }, + "positions": [ + { + "id": 1, + "x": 721.94, + "y": -106.43, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-3.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-3.json new file mode 100644 index 00000000..23466c5d --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-3.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "璃月7-遁玉陵-3", + "type": "collect", + "author": "秋云", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1749399818683 + }, + "positions": [ + { + "id": 1, + "x": 752.42, + "y": 3.88, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-4.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-4.json new file mode 100644 index 00000000..e77c4fa8 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-4.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "璃月7-遁玉陵-4", + "type": "collect", + "author": "秋云", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1749399950280 + }, + "positions": [ + { + "id": 1, + "x": 815.03, + "y": 136.35, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-5.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-5.json new file mode 100644 index 00000000..506933f1 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-5.json @@ -0,0 +1,22 @@ +{ + "info": { + "name": "璃月7-遁玉陵-5", + "type": "collect", + "author": "秋云", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1749400498877 + }, + "positions": [ + { + "id": 1, + "x": 681.46, + "y": 528.76, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-6.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-6.json new file mode 100644 index 00000000..a36c61af --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/target/璃月7-遁玉陵-6.json @@ -0,0 +1,20 @@ +{ + "info": { + "name": "璃月7-遁玉陵-6", + "type": "collect", + "author": "寒烟", + "version": "1.1", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 455.4, + "y": 546.56, + "type": "target", + "move_mode": "walk" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-1.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-1.json new file mode 100644 index 00000000..9a399201 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-1.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "璃月6-奥藏山-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": 1271.1943359375, + "y": 1563.9794921875, + "action_params": "" + }, + { + "id": 2, + "x": 1220.19140625, + "y": 1535.111328125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-2.json new file mode 100644 index 00000000..bddd5d6c --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-2.json @@ -0,0 +1,58 @@ +{ + "info": { + "name": "璃月6-奥藏山-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 1182.2958984375, + "y": 1520.43359375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 1141.4580078125, + "y": 1496.076171875, + "type": "path", + "move_mode": "run", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 1129.1796875, + "y": 1474.1357421875, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 1120.623046875, + "y": 1440.248046875, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 1086.873046875, + "y": 1428.01220703125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-3.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-3.json new file mode 100644 index 00000000..6ae64c58 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-3.json @@ -0,0 +1,76 @@ +{ + "info": { + "name": "璃月6-奥藏山-3", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "怪物多,需要绕路", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 1121.11328125, + "y": 1190.404296875, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 1090.66015625, + "y": 1172.01904296875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 1024.1650390625, + "y": 1168.46826171875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 987.1689453125, + "y": 1175.048828125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 946.499348918609, + "y": 1208.4989920278222, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 918.666015625, + "y": 1200.896484375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 7, + "x": 901.2138671875, + "y": 1235.8271484375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-4.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-4.json new file mode 100644 index 00000000..159bc754 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-4.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "璃月6-奥藏山-4", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "路途需处理风萨满", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 860.724609375, + "y": 1208.26953125, + "type": "path", + "move_mode": "dash", + "action": "fight", + "action_params": "" + }, + { + "id": 2, + "x": 833.4765625, + "y": 1181.693359375, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-5-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-5-2.json new file mode 100644 index 00000000..8d9174ba --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-5-2.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "璃月6-奥藏山-5-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 1045.5576171875, + "y": 950.61474609375, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 900.1533203125, + "y": 896.95703125, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-6-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-6-2.json new file mode 100644 index 00000000..8b1572d2 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-6-2.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "璃月6-奥藏山-6-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 899.5732421875, + "y": 819.48681640625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 921.95703125, + "y": 785.88525390625, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 887.9111328125, + "y": 754.49658203125, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 892.236328125, + "y": 747.74560546875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-7-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-7-2.json new file mode 100644 index 00000000..88b6da95 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-7-2.json @@ -0,0 +1,68 @@ +{ + "info": { + "name": "璃月6-奥藏山-7-2", + "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": 489.412109375, + "y": 222.228515625, + "action_params": "" + }, + { + "id": 2, + "x": 500.255859375, + "y": 225.5390625, + "type": "orientation", + "move_mode": "walk", + "action": "", + "action_params": "", + "locked": false + }, + { + "id": 3, + "x": 500.255859375, + "y": 225.5390625, + "type": "target", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 512.90625, + "y": 258.54150390625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 551.162109375, + "y": 359.5361328125, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 6, + "x": 594.7021484375, + "y": 437.15625, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-8-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-8-2.json new file mode 100644 index 00000000..29fbf791 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-8-2.json @@ -0,0 +1,49 @@ +{ + "info": { + "name": "璃月6-奥藏山-8-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "绕开冰雾花", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 628.423828125, + "y": 468.4296875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 674.7001953125, + "y": 477.642578125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 673.2099609375, + "y": 528.255859375, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "100" + }, + { + "id": 4, + "x": 683.0986328125, + "y": 529.06396484375, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-9-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-9-2.json new file mode 100644 index 00000000..765aa416 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月6-奥藏山-9-2.json @@ -0,0 +1,40 @@ +{ + "info": { + "name": "璃月6-奥藏山-9-2", + "type": "collect", + "author": "寒烟", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 341.3388671875, + "y": 548.0703125, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 391.1884765625, + "y": 545.533203125, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 455.041015625, + "y": 546.3779296875, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-1.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-1.json new file mode 100644 index 00000000..c02f299e --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-1.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "璃月7-遁玉陵-1", + "type": "collect", + "author": "秋云", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1749399134857 + }, + "positions": [ + { + "id": 1, + "x": 978.7, + "y": -353.6, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "action": "stop_flying", + "move_mode": "fly", + "type": "path", + "x": 824.28, + "y": -325.68, + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-2.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-2.json new file mode 100644 index 00000000..5dcc5e0d --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-2.json @@ -0,0 +1,33 @@ +{ + "info": { + "name": "璃月7-遁玉陵-2", + "type": "collect", + "author": "秋云", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1749399385367 + }, + "positions": [ + { + "id": 1, + "x": 611.74, + "y": -284.65, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 721.94, + "y": -106.43, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-3.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-3.json new file mode 100644 index 00000000..eb565f1e --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-3.json @@ -0,0 +1,60 @@ +{ + "info": { + "name": "璃月7-遁玉陵-3", + "type": "collect", + "author": "秋云", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1749399818683 + }, + "positions": [ + { + "id": 1, + "x": 717.76, + "y": -94.89, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 716.96, + "y": -48.63, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + }, + { + "id": 3, + "x": 716.66, + "y": -25.97, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 736.17, + "y": -14.65, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 752.42, + "y": 3.88, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-4.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-4.json new file mode 100644 index 00000000..369064a6 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-4.json @@ -0,0 +1,42 @@ +{ + "info": { + "name": "璃月7-遁玉陵-4", + "type": "collect", + "author": "秋云", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1749399950280 + }, + "positions": [ + { + "id": 1, + "x": 837.46, + "y": 235.15, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 824.83, + "y": 156.61, + "type": "path", + "move_mode": "fly", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 815.03, + "y": 136.35, + "type": "path", + "move_mode": "walk", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-5.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-5.json new file mode 100644 index 00000000..7baf22a0 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-5.json @@ -0,0 +1,60 @@ +{ + "info": { + "name": "璃月7-遁玉陵-5", + "type": "collect", + "author": "秋云", + "version": "1.0", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0", + "tags": [], + "last_modified_time": 1749400498877 + }, + "positions": [ + { + "id": 1, + "x": 876.75, + "y": 587.25, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 868.48, + "y": 570.17, + "type": "path", + "move_mode": "jump", + "action": "", + "action_params": "" + }, + { + "id": 3, + "x": 840.12, + "y": 562.36, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 4, + "x": 761.5, + "y": 561.25, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + }, + { + "id": 5, + "x": 681.46, + "y": 528.76, + "type": "path", + "move_mode": "fly", + "action": "stop_flying", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-6.json b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-6.json new file mode 100644 index 00000000..19b12cbb --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/assets/pathing/璃月7-遁玉陵-6.json @@ -0,0 +1,31 @@ +{ + "info": { + "name": "璃月7-遁玉陵-6", + "type": "collect", + "author": "寒烟", + "version": "1.1", + "description": "", + "map_name": "Teyvat", + "bgi_version": "0.45.0" + }, + "positions": [ + { + "id": 1, + "x": 341.35, + "y": 548.07, + "type": "teleport", + "move_mode": "walk", + "action": "", + "action_params": "" + }, + { + "id": 2, + "x": 455.4, + "y": 546.56, + "type": "path", + "move_mode": "dash", + "action": "", + "action_params": "" + } + ] +} \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/generate_data_format.py b/repo/js/AutoLeyLineOutcrop/generate_data_format.py new file mode 100644 index 00000000..ab146f28 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/generate_data_format.py @@ -0,0 +1,859 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import json +import os +import sys +import re + +def format_coord(num): + return round(float(num), 2) + +def calculate_distance(x1, y1, x2, y2): + return ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5 + +# 定义区域排序顺序 +REGION_ORDER = { + "蒙德": 1, + "璃月": 2, + "稻妻": 3, + "须弥": 4, + "枫丹": 5, + "纳塔": 6, + "未知区域": 99 # 未知区域放最后 +} + +def get_region_sort_key(region_name): + """获取区域的排序键值,用于排序""" + # 从完整区域名称(如"枫丹1-1")中提取基本区域名称(如"枫丹") + base_region = re.match(r"^([^0-9]+)", region_name) + if base_region: + base_region = base_region.group(1) + return REGION_ORDER.get(base_region, 99) + return 99 + +def normalize_region_name(region_name, region_num, route_num, route_sub_num=None): + """规范化区域名称,确保命名一致性 + 例如: + - 标准格式: 蒙德3, 奔狼领, 2 -> 蒙德3-2 + - 特殊格式: 蒙德2, 清泉镇, 4, 1 -> 蒙德2-4-1 + """ + if route_sub_num is not None: + # 特殊格式 + return f"{region_name}{region_num}-{route_num}-{route_sub_num}" + else: + # 标准格式 + return f"{region_name}{region_num}-{route_num}" + +def is_same_region_base(region1, region2): + """检查两个区域名称是否属于同一基本区域 + 例如,"蒙德2-4-1"和"蒙德2-4-2"属于同一基本区域"蒙德2-4" + """ + # 提取区域名称的基本部分(例如从"蒙德2-4-1"提取"蒙德2-4") + base_region1 = re.match(r"^([^-]+-\d+)", region1) + base_region2 = re.match(r"^([^-]+-\d+)", region2) + + return (base_region1 and base_region2 and + base_region1.group(1) == base_region2.group(1)) + +def parse_region_area_number(filename): + """从文件名解析区域、地区和编号 + 支持两种格式: + 1. 标准格式: 蒙德3-奔狼领-2.json -> ("蒙德", 3, "奔狼领", 2) + 2. 特殊格式: 蒙德2-清泉镇-4-1.json -> ("蒙德", 2, "清泉镇", 4, 1) + """ + # 先尝试匹配特殊格式(带有额外连字符的格式) + special_pattern = r"^([^0-9]+)(\d+)-(.+)-(\d+)-(\d+(?:\.\d+)?)\.json$" + match = re.match(special_pattern, filename) + if match: + region_name = match.group(1) + region_num = int(match.group(2)) + area = match.group(3) + route_num = int(match.group(4)) + route_sub_num = int(match.group(5)) + return region_name, region_num, area, route_num, route_sub_num + + # 如果不是特殊格式,尝试匹配标准格式 + standard_pattern = r"^([^0-9]+)(\d+)-(.+)-(\d+(?:\.\d+)?)\.json$" + match = re.match(standard_pattern, filename) + if match: + region_name = match.group(1) + region_num = int(match.group(2)) + area = match.group(3) + route_num = int(match.group(4)) + return region_name, region_num, area, route_num + + # 如果都不匹配,返回默认值 + print(f"警告:无法解析文件名 {filename}") + return None, None, None, None + +def generate_new_data_structure_from_pathing(): + """直接从assets/pathing目录读取文件生成新的数据结构""" + # 获取脚本所在目录 + script_dir = os.path.dirname(os.path.abspath(__file__)) + pathing_dir = os.path.join(script_dir, "assets", "pathing") + target_dir = os.path.join(pathing_dir, "target") + + # 检查目录是否存在 + if not os.path.exists(pathing_dir): + print(f"错误:找不到路径目录 {pathing_dir}") + return None + # 初始化新数据结构,分开存储 blossom 和 teleport + new_data = { + "teleports": [], # 传送点节点 + "blossoms": [], # 地脉花节点 + "edges": [], # 边集合 + "indexes": { + "edgesBySource": {}, + "edgesByTarget": {} + } + } + # 创建独立的ID计数器和节点映射 + next_teleport_id = 1 # 传送点专用ID计数器 + next_blossom_id = 1000 # 地脉花专用ID计数器 + teleport_nodes = {} # 按坐标存储传送点节点 (x, y) -> node_id + target_nodes = {} # 按坐标存储目标点节点 (x, y) -> node_id + + # 创建文件路径映射 + file_paths = {} + + # 第一遍:读取所有路径文件并创建节点 + print("第一遍:读取路径文件并创建节点...") + for root, _, files in os.walk(pathing_dir): + for file in sorted(files): + # 跳过非JSON文件和重运行文件 + if not file.endswith('.json') or 'rerun' in file or 'rerun' in root: + continue + + # 跳过target目录 + if "target" in root.split(os.path.sep): + continue + + file_path = os.path.join(root, file) + + try: + with open(file_path, 'r', encoding='utf-8') as f: + path_data = json.load(f) + + # 记录文件路径 + relative_path = os.path.relpath(file_path, script_dir) + relative_path = relative_path.replace("\\", "/") + file_paths[file] = relative_path + + # 检查文件是否有position数据 + if "positions" not in path_data or not path_data["positions"]: + continue + + # 获取第一个位置点(通常是传送点) + first_pos = path_data["positions"][0] + if "type" in first_pos and first_pos["type"] == "teleport": + x = format_coord(first_pos["x"]) + y = format_coord(first_pos["y"]) # 解析区域信息 + result = parse_region_area_number(file) + if len(result) == 5: # 特殊格式 + region_name, region_num, _, _, _ = result + else: # 标准格式或无法解析 + region_name, region_num, _, _ = result + # 传送点仅显示区域名称,不显示编号 + region = f"{region_name}" if region_name else "未知区域" + # 检查是否已存在相同坐标的传送点 + existing_node = False + for coord, node_id in teleport_nodes.items(): + if calculate_distance(coord[0], coord[1], x, y) < 10: # 将阈值从50降低到10 + existing_node = True + break + if not existing_node: # 创建新的传送点节点 + teleport_node = { + "id": next_teleport_id, + "region": region, + "position": {"x": x, "y": y} + } + new_data["teleports"].append(teleport_node) + teleport_nodes[(x, y)] = next_teleport_id + next_teleport_id += 1 + print(f" 创建传送点: ID={teleport_node['id']}, 区域={region}, 坐标=({x}, {y})") + except Exception as e: + print(f" 警告:处理文件 {file} 时出错: {e}") + + # 第二遍:读取target目录文件并创建目标节点 + print("\n第二遍:读取target文件并创建目标节点...") + for file in sorted(os.listdir(target_dir)): + if not file.endswith('.json'): + continue + + file_path = os.path.join(target_dir, file) + + try: + with open(file_path, 'r', encoding='utf-8') as f: + target_data = json.load(f) + # 检查文件是否有position数据 + if "positions" not in target_data or not target_data["positions"]: + continue + + # 获取第一个位置点(通常是目标点) + target_pos = target_data["positions"][0] + x = format_coord(target_pos["x"]) + y = format_coord(target_pos["y"]) + result = parse_region_area_number(file) + if len(result) == 5: # 特殊格式 + region_name, region_num, area, route_num, route_sub_num = result + # 使用规范化函数来生成区域名 + region = normalize_region_name(region_name, region_num, route_num, route_sub_num) + else: # 标准格式或无法解析 + region_name, region_num, area, route_num = result + # 使用规范化函数来生成区域名 + region = normalize_region_name(region_name, region_num, route_num) if region_name and region_num and route_num else "未知区域" # 检查是否已存在相同坐标的目标点和相同区域名 + existing_node = False + existing_node_id = None + for coord, node_id in target_nodes.items(): + if calculate_distance(coord[0], coord[1], x, y) < 10: # 阈值为10 + # 找到这个节点,检查它的区域是否与当前区域相同 + for blossom in new_data["blossoms"]: + if blossom["id"] == node_id: + # 检查区域名完全相同 + if blossom["region"] == region: + existing_node = True + existing_node_id = node_id + break + + # 检查区域名基本部分是否相同(如"蒙德2-4"和"蒙德2-4-2") + # 提取区域名称的基本部分(例如从"蒙德2-4-1"提取"蒙德2-4") + current_base_region = re.match(r"^([^-]+-\d+)", region) + existing_base_region = re.match(r"^([^-]+-\d+)", blossom["region"]) + + if (current_base_region and existing_base_region and + current_base_region.group(1) == existing_base_region.group(1)): + print(f" 注意: 坐标 ({x}, {y}) 与已存在节点 '{blossom['region']}' 区域基本部分相同,视为同一节点") + existing_node = True + existing_node_id = node_id + break + + if not existing_node: + print(f" 注意: 坐标 ({x}, {y}) 附近有另一个区域的节点,但将创建新节点") + + if not existing_node: + # 创建新的目标点节点 + target_node = { + "id": next_blossom_id, + "region": region, + "position": {"x": x, "y": y} + } + new_data["blossoms"].append(target_node) + target_nodes[(x, y)] = next_blossom_id + next_blossom_id += 1 + print(f" 创建目标点: ID={target_node['id']}, 区域={region}, 坐标=({x}, {y})") + except Exception as e: + print(f" 警告:处理目标文件 {file} 时出错: {e}") + + # 第三遍:创建边和索引 + print("\n第三遍:创建边和索引...") + for file in sorted(os.listdir(pathing_dir)): + if not file.endswith('.json') or 'rerun' in file: + continue + + # 跳过target和rerun目录中的文件 + if file not in file_paths: + continue + # 解析文件名 + result = parse_region_area_number(file) + if len(result) == 5: # 特殊格式 + region_name, region_num, area, route_num, route_sub_num = result + else: # 标准格式 + region_name, region_num, area, route_num = result + route_sub_num = None + + if not region_name or not region_num or not area or not route_num: + continue + + # 构建对应的target文件名 + target_file = file + + # 检查target文件是否存在 + target_path = os.path.join(target_dir, target_file) + if not os.path.exists(target_path): + print(f" 警告:找不到对应的目标文件 {target_file}") + continue + + try: + # 读取路径文件获取源传送点 + file_path = os.path.join(pathing_dir, file) + with open(file_path, 'r', encoding='utf-8') as f: + path_data = json.load(f) + + # 读取目标文件获取目标点 + with open(target_path, 'r', encoding='utf-8') as f: + target_data = json.load(f) + + # 获取传送点坐标 + if "positions" in path_data and path_data["positions"]: + first_pos = path_data["positions"][0] + source_x = format_coord(first_pos["x"]) + source_y = format_coord(first_pos["y"]) + + # 获取目标点坐标 + if "positions" in target_data and target_data["positions"]: + target_pos = target_data["positions"][0] + target_x = format_coord(target_pos["x"]) + target_y = format_coord(target_pos["y"]) # 查找源节点ID + source_id = None + for coord, node_id in teleport_nodes.items(): + if calculate_distance(coord[0], coord[1], source_x, source_y) < 10: # 将阈值从50降低到10 + source_id = node_id + break + + # 查找目标节点ID + target_id = None + for coord, node_id in target_nodes.items(): + if calculate_distance(coord[0], coord[1], target_x, target_y) < 10: # 将阈值从50降低到10 + target_id = node_id + break + + # 如果找到了源节点和目标节点,创建边 + if source_id and target_id: # 添加边 + edge = { + "source": source_id, + "target": target_id, + "route": file_paths[file], + # 保存原始位置信息,用于在排序后更新ID(稍后会删除) + "sourcePosition": { + "x": source_x, + "y": source_y + }, + "targetPosition": { + "x": target_x, + "y": target_y + } + } + new_data["edges"].append(edge) + + # 更新索引 + if str(source_id) not in new_data["indexes"]["edgesBySource"]: + new_data["indexes"]["edgesBySource"][str(source_id)] = [] + new_data["indexes"]["edgesBySource"][str(source_id)].append(target_id) + + if str(target_id) not in new_data["indexes"]["edgesByTarget"]: + new_data["indexes"]["edgesByTarget"][str(target_id)] = [] + new_data["indexes"]["edgesByTarget"][str(target_id)].append(source_id) + + print(f" 创建边: {source_id} -> {target_id}, 路径={file_paths[file]}") + except Exception as e: + print(f" 警告:处理边关系时出错 {file}: {e}") # 检查每个目标点是否至少有一条有向边 + print("\n检查目标点的连通性...") + orphaned_targets = [] + for blossom in new_data["blossoms"]: + target_id = blossom["id"] + + # 检查是否有边指向此目标点 + has_edge = False + for edge in new_data["edges"]: + if edge["target"] == target_id: + has_edge = True + break + + if not has_edge: + orphaned_targets.append(blossom) + print(f" 警告: 目标点 ID={target_id}, 区域={blossom['region']}, 坐标=({blossom['position']['x']}, {blossom['position']['y']}) 没有入边") + + # 处理没有边的目标点 - 尝试使用连续编号的路径 + if orphaned_targets: + print(f"\n尝试为 {len(orphaned_targets)} 个孤立目标点寻找连续路径...") + + # 先按区域分组目标点 + region_targets = {} + for orphan in orphaned_targets: + region = orphan["region"] + if region not in region_targets: + region_targets[region] = [] + region_targets[region].append(orphan) + + # 然后按区域处理 + for region, targets in region_targets.items(): + print(f"\n处理区域 {region} 的 {len(targets)} 个孤立目标点...") + + # 获取该区域的所有边 + region_edges = [] + for edge in new_data["edges"]: + # 找到起点对应的传送点 + source_teleport = None + for teleport in new_data["teleports"]: + if teleport["id"] == edge["source"]: + source_teleport = teleport + break + + if source_teleport and source_teleport["region"] == region: + region_edges.append(edge) + if not region_edges: + print(f" 区域 {region} 没有现有路径,无法连接孤立目标点") + continue + + # 从每条边的路径中提取区域和编号 + route_info = [] + for edge in region_edges: + route = edge["route"] + file_name = os.path.basename(route) + result = parse_region_area_number(file_name) + if len(result) == 5: # 特殊格式 + region_name, region_num, area, route_num, route_sub_num = result + else: # 标准格式 + region_name, region_num, area, route_num = result + route_sub_num = None + + if region_name and region_num and area and route_num: + info = { + "edge": edge, + "region_name": region_name, + "region_num": region_num, + "area": area, + "route_num": route_num, + "file_name": file_name + } + if route_sub_num is not None: + info["route_sub_num"] = route_sub_num + route_info.append(info) + + # 按区域和地区分组 + area_routes = {} + for info in route_info: + key = f"{info['region_name']}{info['region_num']}-{info['area']}" + if key not in area_routes: + area_routes[key] = [] + area_routes[key].append(info) + + # 对每个地区内的路线按编号排序 + for key, routes in area_routes.items(): + routes.sort(key=lambda x: x["route_num"]) + + # 查找区域内每个孤立目标点附近的路径 + for orphan in targets: + print(f" 处理目标点 ID={orphan['id']}, 坐标=({orphan['position']['x']}, {orphan['position']['y']})") + + # 找到最近的传送点 + nearest_teleport = None + min_distance = float('inf') + + for teleport in new_data["teleports"]: + if teleport["region"] == orphan["region"]: + distance = calculate_distance( + teleport["position"]["x"], teleport["position"]["y"], + orphan["position"]["x"], orphan["position"]["y"] + ) + + if distance < min_distance: + min_distance = distance + nearest_teleport = teleport + + if not nearest_teleport: + print(f" 未找到区域 {orphan['region']} 内的传送点") + continue + + # 查找以这个传送点为起点的所有路径 + teleport_routes = [] + for key, routes in area_routes.items(): + for info in routes: + if info["edge"]["source"] == nearest_teleport["id"]: + teleport_routes.append(info) + + if not teleport_routes: + print(f" 未找到以传送点 ID={nearest_teleport['id']} 为起点的路径") + continue + + # 按路线编号排序 + teleport_routes.sort(key=lambda x: x["route_num"]) + + # 找到编号最大的路径 + last_route = teleport_routes[-1] + next_num = last_route["route_num"] + 1 + print(f" 找到传送点 ID={nearest_teleport['id']} 的最后一条路径: {last_route['file_name']}") + + # 检查是否是特殊格式路径 + if "-" in last_route['area']: + # 特殊格式路径(如"清泉镇-4") + area_parts = last_route['area'].split("-") + if len(area_parts) == 2: + print(f" 建议手动创建新路径: {last_route['region_name']}{last_route['region_num']}-{area_parts[0]}-{area_parts[1]}-{next_num}.json") + else: + print(f" 建议手动创建新路径: {last_route['region_name']}{last_route['region_num']}-{last_route['area']}-{next_num}.json") + else: + # 标准格式路径 + print(f" 建议手动创建新路径: {last_route['region_name']}{last_route['region_num']}-{last_route['area']}-{next_num}.json") + + print(f" 从传送点 ({nearest_teleport['position']['x']}, {nearest_teleport['position']['y']}) 到目标点 ({orphan['position']['x']}, {orphan['position']['y']})") + # 按区域排序传送点和地脉花 + print("\n按区域对节点进行排序...") + + # 对传送点按区域排序 + new_data["teleports"] = sorted(new_data["teleports"], key=lambda x: get_region_sort_key(x["region"])) + + # 对地脉花按区域排序 + new_data["blossoms"] = sorted(new_data["blossoms"], key=lambda x: get_region_sort_key(x["region"])) + # 更新排序后的ID(可选) + for i, teleport in enumerate(new_data["teleports"]): + teleport["id"] = i + 1 + + for i, blossom in enumerate(new_data["blossoms"]): + blossom["id"] = i + 1000 + # 更新边的引用 + for edge in new_data["edges"]: + # 查找新的source ID + for teleport in new_data["teleports"]: + if calculate_distance(teleport["position"]["x"], teleport["position"]["y"], + edge["sourcePosition"]["x"], edge["sourcePosition"]["y"]) < 10: + edge["source"] = teleport["id"] + break + + # 查找新的target ID + for blossom in new_data["blossoms"]: + if calculate_distance(blossom["position"]["x"], blossom["position"]["y"], + edge["targetPosition"]["x"], edge["targetPosition"]["y"]) < 10: + edge["target"] = blossom["id"] + break + + # 在更新ID后删除位置信息 + print("\n删除边数据中的位置信息...") + for edge in new_data["edges"]: + if "sourcePosition" in edge: + del edge["sourcePosition"] + if "targetPosition" in edge: + del edge["targetPosition"] + + # 按照target的顺序排列edges + print("\n按照目标节点(target)的顺序排列边...") + new_data["edges"] = sorted(new_data["edges"], key=lambda x: x["target"]) + + # 创建节点到节点的顺序边 + sequential_edges_count = create_sequential_edges(new_data) + + # 重新排序所有边(包括新的顺序边) + print("\n重新排序所有边...") + new_data["edges"] = sorted(new_data["edges"], key=lambda x: (x.get("type", "teleport"), x["target"])) + + # 重建索引 + new_data["indexes"] = { + "edgesBySource": {}, + "edgesByTarget": {} + } + + for edge in new_data["edges"]: + source_id = edge["source"] + target_id = edge["target"] + + if str(source_id) not in new_data["indexes"]["edgesBySource"]: + new_data["indexes"]["edgesBySource"][str(source_id)] = [] + new_data["indexes"]["edgesBySource"][str(source_id)].append(target_id) + + if str(target_id) not in new_data["indexes"]["edgesByTarget"]: + new_data["indexes"]["edgesByTarget"][str(target_id)] = [] + new_data["indexes"]["edgesByTarget"][str(target_id)].append(source_id) + + # 保存新数据结构 + output_file = os.path.join(script_dir, "LeyLineOutcropData.json") + with open(output_file, 'w', encoding='utf-8') as f: + json.dump(new_data, f, ensure_ascii=False, indent=2) + print(f"\n已生成新的数据结构: {output_file}") + print(f"传送点数量: {len(new_data['teleports'])}") + print(f"地脉花数量: {len(new_data['blossoms'])}") + print(f"总节点数量: {len(new_data['teleports']) + len(new_data['blossoms'])}") + print(f"传送点到地脉花边数量: {len([e for e in new_data['edges'] if e.get('type', 'teleport') == 'teleport'])}") + print(f"节点间顺序边数量: {sequential_edges_count}") + print(f"总边数量: {len(new_data['edges'])}") + print(f"区域排序顺序: {', '.join([k for k, v in sorted(REGION_ORDER.items(), key=lambda item: item[1]) if v < 99])}") + # 报告孤立目标点 + remaining_orphans = 0 + orphaned_blossoms = [] + for blossom in new_data["blossoms"]: + target_id = blossom["id"] + has_edge = False + for edge in new_data["edges"]: + if edge["target"] == target_id: + has_edge = True + break + if not has_edge: + remaining_orphans += 1 + orphaned_blossoms.append(blossom) + + if remaining_orphans > 0: + print(f"\n注意: 仍有 {remaining_orphans} 个目标点没有入边") + print("这些目标点按区域排序如下:") + # 按区域分组展示孤立目标点 + orphaned_by_region = {} + for orphan in orphaned_blossoms: + region = orphan["region"] + base_region = re.match(r"^([^0-9]+)", region) + if base_region: + base_region = base_region.group(1) + if base_region not in orphaned_by_region: + orphaned_by_region[base_region] = [] + orphaned_by_region[base_region].append(orphan) + + # 按照指定顺序显示区域 + for region_name, _ in sorted(REGION_ORDER.items(), key=lambda item: item[1]): + if region_name in orphaned_by_region: + print(f"\n {region_name}区域的孤立目标点:") + for orphan in orphaned_by_region[region_name]: + print(f" ID={orphan['id']}, 区域={orphan['region']}, 坐标=({orphan['position']['x']}, {orphan['position']['y']})") + + print("\n请按照之前的建议手动创建连续编号的路径文件") + else: + print("\n✓ 所有目标点都至少有一条入边") + + return new_data + +def create_sequential_edges(new_data): + """创建节点到节点的顺序边,实现正确的分支逻辑 + + 正确的分支规则: + 1. 主路线到分支: 蒙德2-3 → 蒙德2-4-1, 蒙德2-4-2 + 2. 分支到同序号分支: 蒙德2-4-1 → 蒙德2-5-1 (优先) → 蒙德2-5 (备选) → 终点 + 3. 分支到同序号分支: 蒙德2-4-2 → 蒙德2-5-2 (优先) → 蒙德2-5 (备选) → 终点 + 4. 分支内部不连接: 蒙德2-4-1 和 蒙德2-4-2 之间不相互连接 + 5. 主路线到主路线: 当没有分支时的直接连接 + + 基于实际路径文件查找对应的路线 + """ + print("\n创建节点到节点的顺序边...") + + script_dir = os.path.dirname(os.path.abspath(__file__)) + pathing_dir = os.path.join(script_dir, "assets", "pathing") + + # 按基本区域分组地脉花节点(区域名+区域编号,如"蒙德2") + region_groups = {} + for blossom in new_data["blossoms"]: + region = blossom["region"] + parts = region.split("-") + if len(parts) >= 2: + # 提取基本区域名:区域名+区域编号(如"蒙德2") + import re + match = re.match(r'^([^0-9]+)(\d+)', parts[0]) + if match: + region_name = match.group(1) # 如 "蒙德" + region_num = match.group(2) # 如 "2" + base_region = region_name + region_num # 如 "蒙德2" + if base_region not in region_groups: + region_groups[base_region] = [] + region_groups[base_region].append(blossom) + + # 创建地脉花节点的映射:region -> blossom + region_to_blossom = {} + for blossom in new_data["blossoms"]: + region_to_blossom[blossom["region"]] = blossom + + # 收集所有存在的路径文件 + available_routes = {} + for root, _, files in os.walk(pathing_dir): + for file in sorted(files): + if not file.endswith('.json') or 'rerun' in file or 'rerun' in root: + continue + if "target" in root.split(os.path.sep): + continue + + relative_path = os.path.relpath(os.path.join(root, file), script_dir) + relative_path = relative_path.replace("\\", "/") + available_routes[file] = relative_path + + sequential_edges = [] + + # 为每个区域创建顺序边 + for base_region, blossoms in region_groups.items(): + print(f"\n处理区域: {base_region}") + + # 将节点分为主路线和分支路线 + main_routes = {} # {route_num: blossom} + branch_routes = {} # {route_num: {branch_num: blossom}} + + for blossom in blossoms: + region = blossom["region"] + parts = region.split("-") + + if len(parts) == 2: # 主路线格式:"蒙德2-3" + try: + route_num = int(parts[1]) + main_routes[route_num] = blossom + print(f" 主路线: {region} (路线{route_num})") + except ValueError: + print(f" 警告:无法解析主路线编号: {region}") + + elif len(parts) == 3: # 分支路线格式:"蒙德2-4-1" + try: + route_num = int(parts[1]) + branch_num = int(parts[2]) + if route_num not in branch_routes: + branch_routes[route_num] = {} + branch_routes[route_num][branch_num] = blossom + print(f" 分支路线: {region} (路线{route_num}, 分支{branch_num})") + except ValueError: + print(f" 警告:无法解析分支路线编号: {region}") + + print(f" 找到 {len(main_routes)} 个主路线,{len(branch_routes)} 个分支组") + # 辅助函数:查找路径文件 + def find_route_file(source_region, target_region): + # 从目标区域推断文件名 + result = None + print(f" 查找路径文件: {source_region} → {target_region}") + + for blossom in new_data["blossoms"]: + if blossom["region"] == target_region: + # 尝试通过目标区域构造文件名 + parts = target_region.split("-") + print(f" 目标区域部分: {parts}") + + if len(parts) == 2: # 主路线 + # 例如: 蒙德2-3 -> 蒙德2-xxx-3.json + pattern = f"-{parts[1]}.json" + print(f" 主路线模式: {pattern}") + for filename in available_routes.keys(): + if pattern in filename and parts[0] in filename: + result = available_routes[filename] + print(f" 找到匹配文件: {filename} -> {result}") + break + elif len(parts) == 3: # 分支路线 + # 例如: 蒙德2-4-1 -> 蒙德2-xxx-4-1.json + pattern = f"-{parts[1]}-{parts[2]}.json" + print(f" 分支路线模式: {pattern}") + for filename in available_routes.keys(): + if pattern in filename and parts[0] in filename: + result = available_routes[filename] + print(f" 找到匹配文件: {filename} -> {result}") + break + + if not result: + print(f" 警告:未找到匹配的路径文件") + print(f" 可用文件: {list(available_routes.keys())[:10]}...") # 只显示前10个 + break + return result# 1. 创建主路线到分支路线的连接 + for main_route_num, main_blossom in main_routes.items(): + # 找到下一个路线号,看是否有分支 + next_route_num = main_route_num + 1 + + if next_route_num in branch_routes: + # 连接到下一个路线号的所有分支 + for branch_num, branch_blossom in branch_routes[next_route_num].items(): + route_file = find_route_file(main_blossom["region"], branch_blossom["region"]) + + if route_file: + edge = { + "source": main_blossom["id"], + "target": branch_blossom["id"], + "route": route_file + } + sequential_edges.append(edge) + print(f" 主路线到分支: {main_blossom['region']} → {branch_blossom['region']}") + + # 2. 创建分支到下一个分支的连接(同序号优先) + for route_num, branches in branch_routes.items(): + next_route_num = route_num + 1 + + for branch_num, branch_blossom in branches.items(): + # 优先连接到同序号的下一个分支 + target_found = False + + # 第一优先级:同序号分支 (蒙德2-4-1 → 蒙德2-5-1) + if next_route_num in branch_routes and branch_num in branch_routes[next_route_num]: + target_blossom = branch_routes[next_route_num][branch_num] + route_file = find_route_file(branch_blossom["region"], target_blossom["region"]) + + if route_file: + edge = { + "source": branch_blossom["id"], + "target": target_blossom["id"], + "route": route_file + } + sequential_edges.append(edge) + print(f" 分支到同序号分支: {branch_blossom['region']} → {target_blossom['region']}") + target_found = True + + # 第二优先级:主路线 (蒙德2-4-1 → 蒙德2-5) + if not target_found and next_route_num in main_routes: + target_blossom = main_routes[next_route_num] + route_file = find_route_file(branch_blossom["region"], target_blossom["region"]) + + if route_file: + edge = { + "source": branch_blossom["id"], + "target": target_blossom["id"], + "route": route_file + } + sequential_edges.append(edge) + print(f" 分支到主路线: {branch_blossom['region']} → {target_blossom['region']}") + target_found = True + + # 如果没有找到目标,则为路线终点 + if not target_found: + print(f" 分支终点: {branch_blossom['region']} (无下一个目标)") + + # 3. 创建主路线到主路线的连接(当没有分支时) + sorted_main_routes = sorted(main_routes.keys()) + for i in range(len(sorted_main_routes) - 1): + current_route = sorted_main_routes[i] + next_route = sorted_main_routes[i + 1] + + # 只有在下一个路线没有分支时,才创建主路线到主路线的连接 + if next_route not in branch_routes: + source_blossom = main_routes[current_route] + target_blossom = main_routes[next_route] + route_file = find_route_file(source_blossom["region"], target_blossom["region"]) + + if route_file: + edge = { + "source": source_blossom["id"], + "target": target_blossom["id"], + "route": route_file + } + sequential_edges.append(edge) + print(f" 主路线连接: {source_blossom['region']} → {target_blossom['region']}") + + # 将新的顺序边添加到数据中 + new_data["edges"].extend(sequential_edges) + print(f"\n总共创建了 {len(sequential_edges)} 条顺序边") + + return len(sequential_edges) + +def test_filename_parsing(): + """测试文件名解析功能,确保能正确处理各种格式""" + test_files = [ + "蒙德1-风啸山岭-1.json", # 标准格式 + "璃月3-轻策庄-2.json", # 标准格式 + "蒙德2-清泉镇-4-1.json", # 特殊格式(双连字符数字) + "须弥2-须弥城-3-2.json", # 特殊格式 + "纳塔1-区域-5.5.json" # 小数点路线编号 + ] + + print("测试文件名解析结果:") + for filename in test_files: + result = parse_region_area_number(filename) + if len(result) == 5: # 特殊格式 + region_name, region_num, area, route_num, route_sub_num = result + print(f"文件: {filename} (特殊格式)") + print(f" 区域名称: {region_name}") + print(f" 区域编号: {region_num}") + print(f" 地区: {area}") + print(f" 路线编号: {route_num}") + print(f" 路线子编号: {route_sub_num}") + else: # 标准格式 + region_name, region_num, area, route_num = result + print(f"文件: {filename} (标准格式)") + print(f" 区域名称: {region_name}") + print(f" 区域编号: {region_num}") + print(f" 地区: {area}") + print(f" 路线编号: {route_num}") + # 测试格式化逻辑 + if region_name and region_num and route_num: + if len(result) == 5: # 特殊格式 + route_sub_num = result[4] + # 特殊格式显示为: 蒙德2-5-1 (区域名-区域编号-路线编号-路线子编号) + formatted = f"{region_name}{region_num}-{int(route_num)}-{int(route_sub_num)}" + else: # 标准格式 + # 标准格式显示为: 枫丹1-1 (区域名-区域编号-路线编号) + formatted = f"{region_name}{region_num}-{int(route_num)}" + print(f" 格式化区域: {formatted}") + else: + print(f" 解析失败") + print("") + + +if __name__ == "__main__": + # 测试文件名解析 + if len(sys.argv) > 1 and sys.argv[1] == "--test": + test_filename_parsing() + else: + generate_new_data_structure_from_pathing() + diff --git a/repo/js/AutoLeyLineOutcrop/main.js b/repo/js/AutoLeyLineOutcrop/main.js index 500e12f1..09dec817 100644 --- a/repo/js/AutoLeyLineOutcrop/main.js +++ b/repo/js/AutoLeyLineOutcrop/main.js @@ -179,13 +179,72 @@ async function executeMatchingStrategy() { async function loadNodeData() { try { const nodeDataText = await file.readText("LeyLineOutcropData.json"); - return JSON.parse(nodeDataText); + const rawData = JSON.parse(nodeDataText); + + // 适配数据结构:将原始数据转换为代码期望的格式 + return adaptNodeData(rawData); } catch (error) { log.error(`加载节点数据失败: ${error.message}`); throw new Error("无法加载 LeyLineOutcropData.json 文件"); } } +/** + * 适配数据结构:将原始数据转换为代码期望的格式 + * @param {Object} rawData - 原始JSON数据 + * @returns {Object} 适配后的节点数据 + */ +function adaptNodeData(rawData) { + const adaptedData = { + node: [], + indexes: rawData.indexes + }; + + // 添加传送点,设置type为"teleport" + if (rawData.teleports) { + for (const teleport of rawData.teleports) { + adaptedData.node.push({ + ...teleport, + type: "teleport", + next: [], + prev: [] + }); + } + } + + // 添加地脉花节点,设置type为"blossom" + if (rawData.blossoms) { + for (const blossom of rawData.blossoms) { + adaptedData.node.push({ + ...blossom, + type: "blossom", + next: [], + prev: [] + }); + } + } + + // 根据edges构建next和prev关系 + if (rawData.edges) { + for (const edge of rawData.edges) { + const sourceNode = adaptedData.node.find(node => node.id === edge.source); + const targetNode = adaptedData.node.find(node => node.id === edge.target); + + if (sourceNode && targetNode) { + sourceNode.next.push({ + target: edge.target, + route: edge.route + }); + targetNode.prev.push(edge.source); + } + } + } + + log.debug(`适配数据完成:传送点 ${rawData.teleports ? rawData.teleports.length : 0} 个,地脉花 ${rawData.blossoms ? rawData.blossoms.length : 0} 个,边缘 ${rawData.edges ? rawData.edges.length : 0} 个`); + + return adaptedData; +} + /** * 根据位置找到对应的目标节点 * @param {Object} nodeData - 节点数据 @@ -654,7 +713,6 @@ async function adjustViewForReward(boxIconRo, token) { const screenCenterX = 960; const screenCenterY = 540; const maxAngle = 10; // 最大允许偏离角度(度) - for (let i = 0; i < 20; i++) { // 检查是否取消操作 if (token && token.isCancellationRequested) { diff --git a/repo/js/AutoLeyLineOutcrop/orphan_handling.py b/repo/js/AutoLeyLineOutcrop/orphan_handling.py new file mode 100644 index 00000000..0eeaf8f3 --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/orphan_handling.py @@ -0,0 +1,28 @@ + if not region_edges: + print(f" 区域 {region} 没有现有路径,无法连接孤立目标点") + continue + + # 从每条边的路径中提取区域和编号 + route_info = [] + for edge in region_edges: + route = edge["route"] + file_name = os.path.basename(route) + result = parse_region_area_number(file_name) + if len(result) == 5: # 特殊格式 + region_name, region_num, area, route_num, route_sub_num = result + else: # 标准格式 + region_name, region_num, area, route_num = result + route_sub_num = None + + if region_name and region_num and area and route_num: + info = { + "edge": edge, + "region_name": region_name, + "region_num": region_num, + "area": area, + "route_num": route_num, + "file_name": file_name + } + if route_sub_num is not None: + info["route_sub_num"] = route_sub_num + route_info.append(info) diff --git a/repo/js/AutoLeyLineOutcrop/output.txt b/repo/js/AutoLeyLineOutcrop/output.txt new file mode 100644 index 00000000..e5f6f6ed --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/output.txt @@ -0,0 +1,1370 @@ +第一遍:读取路径文件并创建节点... + 创建传送点: ID=1, 区域=枫丹, 坐标=(4146.91, 2606.27) + 创建传送点: ID=2, 区域=枫丹, 坐标=(4375.5, 2280.05) + 创建传送点: ID=3, 区域=枫丹, 坐标=(4984.79, 4462.98) + 创建传送点: ID=4, 区域=枫丹, 坐标=(4498.18, 4710.79) + 创建传送点: ID=5, 区域=枫丹, 坐标=(4624.36, 4951.78) + 创建传送点: ID=6, 区域=枫丹, 坐标=(2873.54, 3512.04) + 创建传送点: ID=7, 区域=枫丹, 坐标=(3032.66, 3732.42) + 创建传送点: ID=8, 区域=枫丹, 坐标=(3917.29, 2576.43) + 创建传送点: ID=9, 区域=枫丹, 坐标=(4749.59, 2636.21) + 创建传送点: ID=10, 区域=枫丹, 坐标=(4689.61, 2429.43) + 创建传送点: ID=11, 区域=枫丹, 坐标=(4626.1, 2182.3) + 创建传送点: ID=12, 区域=璃月, 坐标=(207.48, 1573.01) + 创建传送点: ID=13, 区域=璃月, 坐标=(-321.55, 1473.33) + 创建传送点: ID=14, 区域=璃月, 坐标=(897.84, 583.5) + 创建传送点: ID=15, 区域=璃月, 坐标=(1045.53, 950.63) + 创建传送点: ID=16, 区域=璃月, 坐标=(341.33, 548.08) + 创建传送点: ID=17, 区域=璃月, 坐标=(839.82, 1532.39) + 创建传送点: ID=18, 区域=璃月, 坐标=(489.8, 1435.14) + 创建传送点: ID=19, 区域=璃月, 坐标=(253.05, 1284.9) + 创建传送点: ID=20, 区域=璃月, 坐标=(2257.04, 934.92) + 创建传送点: ID=21, 区域=璃月, 坐标=(1433.37, 1288.0) + 创建传送点: ID=22, 区域=璃月, 坐标=(-164.59, 1182.45) + 创建传送点: ID=23, 区域=璃月, 坐标=(-188.52, 972.43) + 创建传送点: ID=24, 区域=璃月, 坐标=(-57.41, 656.93) + 创建传送点: ID=25, 区域=璃月, 坐标=(26.02, -112.29) + 创建传送点: ID=26, 区域=璃月, 坐标=(173.88, 389.47) + 创建传送点: ID=27, 区域=璃月, 坐标=(710.68, -772.49) + 创建传送点: ID=28, 区域=璃月, 坐标=(978.65, -353.56) + 创建传送点: ID=29, 区域=璃月, 坐标=(611.74, -284.65) + 创建传送点: ID=30, 区域=璃月, 坐标=(837.46, 235.15) + 创建传送点: ID=31, 区域=璃月, 坐标=(876.75, 587.25) + 创建传送点: ID=32, 区域=璃月, 坐标=(1665.91, 386.6) + 创建传送点: ID=33, 区域=璃月, 坐标=(1152.67, 141.57) + 创建传送点: ID=34, 区域=璃月, 坐标=(1389.08, 516.44) + 创建传送点: ID=35, 区域=稻妻, 坐标=(-4217.89, -2397.87) + 创建传送点: ID=36, 区域=稻妻, 坐标=(-4408.91, -2395.34) + 创建传送点: ID=37, 区域=稻妻, 坐标=(-3016.79, -3623.7) + 创建传送点: ID=38, 区域=稻妻, 坐标=(-3233.21, -3534.22) + 创建传送点: ID=39, 区域=稻妻, 坐标=(-3393.16, -3555.99) + 创建传送点: ID=40, 区域=稻妻, 坐标=(-3437.06, -3319.78) + 创建传送点: ID=41, 区域=稻妻, 坐标=(-2224.14, -4004.16) + 创建传送点: ID=42, 区域=稻妻, 坐标=(-1058.01, -3948.66) + 创建传送点: ID=43, 区域=稻妻, 坐标=(-1315.93, -3774.25) + 创建传送点: ID=44, 区域=稻妻, 坐标=(-3891.55, -4389.92) + 创建传送点: ID=45, 区域=稻妻, 坐标=(-3684.76, -4278.4) + 创建传送点: ID=46, 区域=纳塔, 坐标=(7796.08, -1873.18) + 创建传送点: ID=47, 区域=纳塔, 坐标=(7857.47, -1751.25) + 创建传送点: ID=48, 区域=纳塔, 坐标=(8291.35, -2922.46) + 创建传送点: ID=49, 区域=纳塔, 坐标=(8744.65, -3009.56) + 创建传送点: ID=50, 区域=纳塔, 坐标=(8706.46, -1575.02) + 创建传送点: ID=51, 区域=纳塔, 坐标=(8670.84, -1269.72) + 创建传送点: ID=52, 区域=纳塔, 坐标=(8201.95, -2288.75) + 创建传送点: ID=53, 区域=纳塔, 坐标=(8372.19, -2196.26) + 创建传送点: ID=54, 区域=纳塔, 坐标=(9038.74, -2429.33) + 创建传送点: ID=55, 区域=纳塔, 坐标=(9812.76, -2852.58) + 创建传送点: ID=56, 区域=纳塔, 坐标=(9282.7, -2163.58) + 创建传送点: ID=57, 区域=纳塔, 坐标=(9989.5, -1607.82) + 创建传送点: ID=58, 区域=纳塔, 坐标=(9548.24, -1116.54) + 创建传送点: ID=59, 区域=纳塔, 坐标=(9719.22, -851.99) + 创建传送点: ID=60, 区域=纳塔, 坐标=(9839.57, -1290.01) + 创建传送点: ID=61, 区域=蒙德, 坐标=(-1166.84, 2132.83) + 创建传送点: ID=62, 区域=蒙德, 坐标=(-1266.59, 1933.52) + 创建传送点: ID=63, 区域=蒙德, 坐标=(-914.82, 1795.51) + 创建传送点: ID=64, 区域=蒙德, 坐标=(-663.61, 1709.65) + 创建传送点: ID=65, 区域=蒙德, 坐标=(-578.76, 1853.42) + 创建传送点: ID=66, 区域=蒙德, 坐标=(-251.66, 2256.55) + 创建传送点: ID=67, 区域=蒙德, 坐标=(-385.84, 2297.22) + 创建传送点: ID=68, 区域=蒙德, 坐标=(-440.09, 2580.75) + 创建传送点: ID=69, 区域=蒙德, 坐标=(177.18, 2647.07) + 创建传送点: ID=70, 区域=蒙德, 坐标=(265.6, 2915.02) + 创建传送点: ID=71, 区域=蒙德, 坐标=(-1505.87, 2296.26) + 创建传送点: ID=72, 区域=蒙德, 坐标=(-1330.15, 2563.86) + 创建传送点: ID=73, 区域=蒙德, 坐标=(-1273.84, 2721.72) + 创建传送点: ID=74, 区域=蒙德, 坐标=(-1629.44, 2834.36) + 创建传送点: ID=75, 区域=蒙德, 坐标=(-1867.21, 1331.21) + 创建传送点: ID=76, 区域=蒙德, 坐标=(-1432.63, 1464.61) + 创建传送点: ID=77, 区域=须弥, 坐标=(2342.31, -4.68) + 创建传送点: ID=78, 区域=须弥, 坐标=(6615.13, 724.95) + 创建传送点: ID=79, 区域=须弥, 坐标=(6339.59, 738.39) + 创建传送点: ID=80, 区域=须弥, 坐标=(2806.54, -1790.45) + 创建传送点: ID=81, 区域=须弥, 坐标=(2980.23, -1758.59) + 创建传送点: ID=82, 区域=须弥, 坐标=(3199.51, -911.7) + 创建传送点: ID=83, 区域=须弥, 坐标=(3252.87, -591.25) + 创建传送点: ID=84, 区域=须弥, 坐标=(3402.18, -1175.26) + 创建传送点: ID=85, 区域=须弥, 坐标=(3473.06, -1573.53) + 创建传送点: ID=86, 区域=须弥, 坐标=(3639.36, -1416.85) + 创建传送点: ID=87, 区域=须弥, 坐标=(4409.72, -1874.67) + 创建传送点: ID=88, 区域=须弥, 坐标=(4470.72, -2915.3) + 创建传送点: ID=89, 区域=须弥, 坐标=(4790.78, -3182.65) + 创建传送点: ID=90, 区域=须弥, 坐标=(4810.42, -2732.88) + 创建传送点: ID=91, 区域=须弥, 坐标=(5759.42, -1307.6) + 创建传送点: ID=92, 区域=须弥, 坐标=(4592.2, -647.56) + +第二遍:读取target文件并创建目标节点... + 创建目标点: ID=1000, 区域=枫丹1-1, 坐标=(4183.27, 2502.37) + 创建目标点: ID=1001, 区域=枫丹1-2, 坐标=(4190.03, 2426.41) + 创建目标点: ID=1002, 区域=枫丹1-3, 坐标=(4246.28, 2374.05) + 创建目标点: ID=1003, 区域=枫丹1-4, 坐标=(4299.75, 2232.59) + 创建目标点: ID=1004, 区域=枫丹1-5, 坐标=(4402.53, 2253.27) + 创建目标点: ID=1005, 区域=枫丹2-1, 坐标=(4962.82, 4395.81) + 创建目标点: ID=1006, 区域=枫丹2-2, 坐标=(4952.04, 4468.84) + 创建目标点: ID=1007, 区域=枫丹2-3, 坐标=(5043.36, 4479.99) + 创建目标点: ID=1008, 区域=枫丹2-4, 坐标=(5087.02, 4573.27) + 创建目标点: ID=1009, 区域=枫丹3-1, 坐标=(4556.1, 4762.42) + 创建目标点: ID=1010, 区域=枫丹3-2, 坐标=(4517.81, 4866.48) + 创建目标点: ID=1011, 区域=枫丹3-3, 坐标=(4578.63, 4913.28) + 创建目标点: ID=1012, 区域=枫丹3-4, 坐标=(4679.47, 4977.83) + 创建目标点: ID=1013, 区域=枫丹4-1, 坐标=(2932.47, 3583.9) + 创建目标点: ID=1014, 区域=枫丹4-2, 坐标=(3008.4, 3602.59) + 创建目标点: ID=1015, 区域=枫丹4-3, 坐标=(3077.19, 3602.84) + 创建目标点: ID=1016, 区域=枫丹4-4, 坐标=(3091.8, 3654.75) + 创建目标点: ID=1017, 区域=枫丹5-1, 坐标=(4098.63, 2584.16) + 创建目标点: ID=1018, 区域=枫丹5-2, 坐标=(4063.52, 2564.29) + 创建目标点: ID=1019, 区域=枫丹5-3, 坐标=(3999.66, 2613.18) + 创建目标点: ID=1020, 区域=枫丹5-4, 坐标=(3921.35, 2617.81) + 创建目标点: ID=1021, 区域=枫丹6-1, 坐标=(4760.8, 2574.52) + 创建目标点: ID=1022, 区域=枫丹6-2, 坐标=(4653.67, 2531.89) + 创建目标点: ID=1023, 区域=枫丹6-3, 坐标=(4568.49, 2433.23) + 创建目标点: ID=1024, 区域=枫丹6-4, 坐标=(4553.51, 2358.49) + 创建目标点: ID=1025, 区域=枫丹6-5, 坐标=(4607.46, 2316.58) + 创建目标点: ID=1026, 区域=枫丹6-6, 坐标=(4700.14, 2393.35) + 创建目标点: ID=1027, 区域=璃月1-1, 坐标=(73.73, 1496.59) + 创建目标点: ID=1028, 区域=璃月1-2, 坐标=(-12.62, 1566.51) + 创建目标点: ID=1029, 区域=璃月1-3, 坐标=(-81.76, 1534.73) + 创建目标点: ID=1030, 区域=璃月1-4, 坐标=(-28.76, 1417.37) + 创建目标点: ID=1031, 区域=璃月10-1, 坐标=(1046.34, 662.76) + 创建目标点: ID=1032, 区域=璃月10-2, 坐标=(892.5, 748.02) + 创建目标点: ID=1033, 区域=璃月10-3, 坐标=(594.3, 437.83) + 创建目标点: ID=1034, 区域=璃月10-4, 坐标=(683.19, 529.0) + 创建目标点: ID=1035, 区域=璃月10-5, 坐标=(455.4, 546.56) + 创建目标点: ID=1036, 区域=璃月11-1, 坐标=(802.19, 1634.03) + 创建目标点: ID=1037, 区域=璃月11-2, 坐标=(697.31, 1551.84) + 创建目标点: ID=1038, 区域=璃月11-3, 坐标=(646.5, 1421.98) + 创建目标点: ID=1039, 区域=璃月11-4, 坐标=(632.03, 1331.15) + 创建目标点: ID=1040, 区域=璃月11-5, 坐标=(558.31, 1437.82) + 创建目标点: ID=1041, 区域=璃月11-6, 坐标=(285.79, 1457.93) + 创建目标点: ID=1042, 区域=璃月13-1, 坐标=(2254.49, 970.92) + 创建目标点: ID=1043, 区域=璃月13-2, 坐标=(2252.54, 898.21) + 创建目标点: ID=1044, 区域=璃月13-3, 坐标=(2226.91, 863.09) + 创建目标点: ID=1045, 区域=璃月13-4, 坐标=(2028.69, 830.67) + 创建目标点: ID=1046, 区域=璃月14-1, 坐标=(1614.21, 1382.09) + 创建目标点: ID=1047, 区域=璃月14-2, 坐标=(1581.57, 1437.1) + 创建目标点: ID=1048, 区域=璃月14-3, 坐标=(1563.45, 1487.35) + 创建目标点: ID=1049, 区域=璃月14-4, 坐标=(1525.0, 1549.17) + 创建目标点: ID=1050, 区域=璃月2-1, 坐标=(-194.85, 1163.89) + 创建目标点: ID=1051, 区域=璃月2-2, 坐标=(32.81, 1118.31) + 创建目标点: ID=1052, 区域=璃月2-3, 坐标=(-24.14, 931.71) + 创建目标点: ID=1053, 区域=璃月2-4, 坐标=(-10.67, 683.67) + 创建目标点: ID=1054, 区域=璃月3-1, 坐标=(-55.27, 603.84) + 创建目标点: ID=1055, 区域=璃月3-2, 坐标=(139.9, 685.26) + 创建目标点: ID=1056, 区域=璃月3-3, 坐标=(284.12, 620.66) + 创建目标点: ID=1057, 区域=璃月3-4, 坐标=(276.12, 542.51) + 注意: 坐标 (456.0, 546.29) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1058, 区域=璃月3-5, 坐标=(456.0, 546.29) + 创建目标点: ID=1059, 区域=璃月4-1, 坐标=(-7.16, -48.77) + 创建目标点: ID=1060, 区域=璃月4-2, 坐标=(101.14, -2.97) + 创建目标点: ID=1061, 区域=璃月4-3, 坐标=(127.05, 113.87) + 创建目标点: ID=1062, 区域=璃月4-4, 坐标=(146.03, 220.07) + 创建目标点: ID=1063, 区域=璃月4-5, 坐标=(262.65, 357.85) + 注意: 坐标 (276.55, 543.11) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1064, 区域=璃月4-6, 坐标=(276.55, 543.11) + 注意: 坐标 (456.44, 546.35) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (456.44, 546.35) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1065, 区域=璃月4-7, 坐标=(456.44, 546.35) + 创建目标点: ID=1066, 区域=璃月5-1, 坐标=(773.08, -928.68) + 创建目标点: ID=1067, 区域=璃月5-2, 坐标=(885.79, -780.15) + 创建目标点: ID=1068, 区域=璃月5-3, 坐标=(1063.54, -727.34) + 创建目标点: ID=1069, 区域=璃月5-4-1, 坐标=(936.52, -489.9) + 创建目标点: ID=1070, 区域=璃月7-1, 坐标=(824.28, -325.68) + 创建目标点: ID=1071, 区域=璃月7-2, 坐标=(721.94, -106.43) + 创建目标点: ID=1072, 区域=璃月7-3, 坐标=(752.42, 3.88) + 创建目标点: ID=1073, 区域=璃月7-4, 坐标=(815.03, 136.35) + 注意: 坐标 (681.46, 528.76) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1074, 区域=璃月7-5, 坐标=(681.46, 528.76) + 注意: 坐标 (455.4, 546.56) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (455.4, 546.56) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (455.4, 546.56) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1075, 区域=璃月7-6, 坐标=(455.4, 546.56) + 创建目标点: ID=1076, 区域=璃月8-1, 坐标=(1627.15, 303.83) + 创建目标点: ID=1077, 区域=璃月8-2, 坐标=(1333.25, 266.26) + 创建目标点: ID=1078, 区域=璃月8-3, 坐标=(1160.17, 86.75) + 创建目标点: ID=1079, 区域=璃月8-4, 坐标=(972.68, 98.66) + 注意: 坐标 (815.31, 137.31) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1080, 区域=璃月8-5, 坐标=(815.31, 137.31) + 注意: 坐标 (683.33, 529.05) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (683.33, 529.05) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1081, 区域=璃月8-6, 坐标=(683.33, 529.05) + 注意: 坐标 (455.84, 546.39) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (455.84, 546.39) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (455.84, 546.39) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1082, 区域=璃月8-7, 坐标=(455.84, 546.39) + 创建目标点: ID=1083, 区域=璃月9-1, 坐标=(1484.37, 458.69) + 创建目标点: ID=1084, 区域=璃月9-2, 坐标=(1445.77, 577.83) + 创建目标点: ID=1085, 区域=璃月9-3-1, 坐标=(1561.48, 483.03) + 注意: 坐标 (1561.71, 483.58) 与已存在节点 '璃月9-3-1' 区域基本部分相同,视为同一节点 + 创建目标点: ID=1086, 区域=璃月9-4, 坐标=(1686.66, 567.55) + 创建目标点: ID=1087, 区域=稻妻1-1, 坐标=(-4309.58, -2288.5) + 创建目标点: ID=1088, 区域=稻妻1-2, 坐标=(-4401.19, -2226.96) + 创建目标点: ID=1089, 区域=稻妻1-3, 坐标=(-4509.57, -2332.11) + 创建目标点: ID=1090, 区域=稻妻1-4, 坐标=(-4549.96, -2399.98) + 创建目标点: ID=1091, 区域=稻妻2-1, 坐标=(-3007.64, -3515.28) + 创建目标点: ID=1092, 区域=稻妻2-2, 坐标=(-3153.03, -3485.5) + 创建目标点: ID=1093, 区域=稻妻2-3, 坐标=(-3328.99, -3561.28) + 创建目标点: ID=1094, 区域=稻妻2-4, 坐标=(-3429.72, -3419.55) + 创建目标点: ID=1095, 区域=稻妻2-5, 坐标=(-3340.38, -3237.16) + 创建目标点: ID=1096, 区域=稻妻3-1, 坐标=(-2270.07, -4068.21) + 创建目标点: ID=1097, 区域=稻妻3-2, 坐标=(-2280.61, -4171.18) + 创建目标点: ID=1098, 区域=稻妻3-3, 坐标=(-2169.62, -4076.36) + 创建目标点: ID=1099, 区域=稻妻3-4, 坐标=(-2211.44, -4033.62) + 创建目标点: ID=1100, 区域=稻妻4-1, 坐标=(-1120.06, -3962.66) + 创建目标点: ID=1101, 区域=稻妻4-2, 坐标=(-1190.51, -3902.08) + 创建目标点: ID=1102, 区域=稻妻4-3, 坐标=(-1254.7, -3839.91) + 创建目标点: ID=1103, 区域=稻妻4-4, 坐标=(-1322.41, -3815.69) + 创建目标点: ID=1104, 区域=稻妻5-1, 坐标=(-3908.27, -4290.55) + 创建目标点: ID=1105, 区域=稻妻5-2, 坐标=(-3850.61, -4241.9) + 创建目标点: ID=1106, 区域=稻妻5-3, 坐标=(-3763.54, -4259.14) + 创建目标点: ID=1107, 区域=稻妻5-4, 坐标=(-3703.34, -4343.16) + 创建目标点: ID=1108, 区域=稻妻5-5, 坐标=(-3671.61, -4414.03) + 创建目标点: ID=1109, 区域=纳塔1-1, 坐标=(7864.95, -1823.96) + 创建目标点: ID=1110, 区域=纳塔1-2, 坐标=(7945.72, -1744.08) + 创建目标点: ID=1111, 区域=纳塔1-3, 坐标=(7932.2, -1616.37) + 创建目标点: ID=1112, 区域=纳塔1-4, 坐标=(7853.72, -1554.26) + 创建目标点: ID=1113, 区域=纳塔10-1, 坐标=(8361.82, -2993.79) + 创建目标点: ID=1114, 区域=纳塔10-2, 坐标=(8496.07, -3018.4) + 创建目标点: ID=1115, 区域=纳塔10-3, 坐标=(8587.99, -3022.4) + 创建目标点: ID=1116, 区域=纳塔10-4, 坐标=(8879.8, -3059.26) + 创建目标点: ID=1117, 区域=纳塔2-1, 坐标=(8604.22, -1635.22) + 创建目标点: ID=1118, 区域=纳塔2-2, 坐标=(8657.57, -1501.26) + 创建目标点: ID=1119, 区域=纳塔2-3, 坐标=(8733.62, -1528.95) + 创建目标点: ID=1120, 区域=纳塔2-4, 坐标=(8588.9, -1373.62) + 创建目标点: ID=1121, 区域=纳塔3-1, 坐标=(8312.07, -2344.44) + 创建目标点: ID=1122, 区域=纳塔3-2, 坐标=(8429.86, -2328.47) + 创建目标点: ID=1123, 区域=纳塔3-3, 坐标=(8291.29, -2096.67) + 创建目标点: ID=1124, 区域=纳塔3-4, 坐标=(8088.21, -2053.56) + 创建目标点: ID=1125, 区域=纳塔4-1, 坐标=(9028.67, -2342.6) + 创建目标点: ID=1126, 区域=纳塔4-2, 坐标=(9090.71, -2407.11) + 创建目标点: ID=1127, 区域=纳塔5-1, 坐标=(9687.15, -2898.19) + 创建目标点: ID=1128, 区域=纳塔5-2, 坐标=(9754.7, -2904.43) + 创建目标点: ID=1129, 区域=纳塔5-3, 坐标=(9778.7, -2856.31) + 创建目标点: ID=1130, 区域=纳塔6-1, 坐标=(9231.08, -2154.74) + 创建目标点: ID=1131, 区域=纳塔6-2, 坐标=(9110.86, -2222.48) + 创建目标点: ID=1132, 区域=纳塔6-3, 坐标=(8945.55, -2138.43) + 创建目标点: ID=1133, 区域=纳塔6-4, 坐标=(8810.08, -2077.83) + 创建目标点: ID=1134, 区域=纳塔7-1, 坐标=(9999.51, -1570.23) + 创建目标点: ID=1135, 区域=纳塔7-2, 坐标=(9963.8, -1511.61) + 创建目标点: ID=1136, 区域=纳塔7-3, 坐标=(9907.78, -1424.0) + 创建目标点: ID=1137, 区域=纳塔8-1, 坐标=(9636.29, -1038.41) + 创建目标点: ID=1138, 区域=纳塔8-2, 坐标=(9517.92, -1029.8) + 创建目标点: ID=1139, 区域=纳塔8-3, 坐标=(9472.28, -771.8) + 创建目标点: ID=1140, 区域=纳塔9-1, 坐标=(9920.8, -1196.25) + 创建目标点: ID=1141, 区域=纳塔9-2, 坐标=(9888.22, -1046.55) + 创建目标点: ID=1142, 区域=纳塔9-3, 坐标=(9938.82, -933.87) + 创建目标点: ID=1143, 区域=纳塔9-4, 坐标=(9984.24, -876.43) + 创建目标点: ID=1144, 区域=蒙德1-1, 坐标=(-1298.03, 2172.37) + 创建目标点: ID=1145, 区域=蒙德1-2, 坐标=(-1223.18, 2032.04) + 创建目标点: ID=1146, 区域=蒙德1-3, 坐标=(-1113.87, 1971.9) + 创建目标点: ID=1147, 区域=蒙德1-4, 坐标=(-1041.91, 1927.07) + 创建目标点: ID=1148, 区域=蒙德1-5, 坐标=(-895.08, 1833.84) + 创建目标点: ID=1149, 区域=蒙德2-1, 坐标=(-717.83, 1802.77) + 创建目标点: ID=1150, 区域=蒙德2-2, 坐标=(-523.76, 1813.84) + 创建目标点: ID=1151, 区域=蒙德2-3, 坐标=(-420.36, 1998.11) + 创建目标点: ID=1152, 区域=蒙德2-4-1, 坐标=(-347.95, 1902.51) + 创建目标点: ID=1153, 区域=蒙德2-4-2, 坐标=(-319.46, 2156.93) + 注意: 坐标 (-319.46, 2156.93) 与已存在节点 '蒙德2-4-2' 区域基本部分相同,视为同一节点 + 注意: 坐标 (-319.57, 2156.48) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1154, 区域=蒙德2-5-1, 坐标=(-319.57, 2156.48) + 创建目标点: ID=1155, 区域=蒙德3-1, 坐标=(-281.79, 2310.78) + 创建目标点: ID=1156, 区域=蒙德3-2, 坐标=(-205.49, 2429.07) + 创建目标点: ID=1157, 区域=蒙德3-3, 坐标=(-327.03, 2410.43) + 创建目标点: ID=1158, 区域=蒙德3-4, 坐标=(-336.15, 2562.91) + 创建目标点: ID=1159, 区域=蒙德4-1, 坐标=(241.41, 2703.08) + 创建目标点: ID=1160, 区域=蒙德4-2, 坐标=(124.61, 2817.24) + 创建目标点: ID=1161, 区域=蒙德4-3, 坐标=(152.71, 2963.33) + 创建目标点: ID=1162, 区域=蒙德4-4, 坐标=(-27.99, 2919.59) + 创建目标点: ID=1163, 区域=蒙德5-1, 坐标=(-1453.46, 2282.88) + 创建目标点: ID=1164, 区域=蒙德5-2, 坐标=(-1367.78, 2411.31) + 创建目标点: ID=1165, 区域=蒙德5-3, 坐标=(-1474.91, 2520.0) + 创建目标点: ID=1166, 区域=蒙德5-4, 坐标=(-1394.83, 2569.65) + 创建目标点: ID=1167, 区域=蒙德5-5, 坐标=(-1316.21, 2734.67) + 创建目标点: ID=1168, 区域=蒙德6-1, 坐标=(-1512.81, 2774.26) + 创建目标点: ID=1169, 区域=蒙德6-2, 坐标=(-1518.71, 2877.4) + 创建目标点: ID=1170, 区域=蒙德6-3, 坐标=(-1603.95, 2865.65) + 创建目标点: ID=1171, 区域=蒙德6-4, 坐标=(-1710.73, 2983.29) + 创建目标点: ID=1172, 区域=蒙德7-1, 坐标=(-1660.63, 1392.87) + 创建目标点: ID=1173, 区域=蒙德7-2, 坐标=(-1517.07, 1513.97) + 创建目标点: ID=1174, 区域=蒙德7-3, 坐标=(-1331.96, 1560.15) + 创建目标点: ID=1175, 区域=蒙德7-4, 坐标=(-1318.63, 1692.63) + 创建目标点: ID=1176, 区域=蒙德7-5, 坐标=(-1138.22, 1789.79) + 注意: 坐标 (-895.08, 1833.84) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1177, 区域=蒙德7-6, 坐标=(-895.08, 1833.84) + 创建目标点: ID=1178, 区域=须弥1-1, 坐标=(2368.79, -92.11) + 创建目标点: ID=1179, 区域=须弥1-2, 坐标=(2317.29, -115.35) + 创建目标点: ID=1180, 区域=须弥1-3, 坐标=(2212.83, -83.02) + 创建目标点: ID=1181, 区域=须弥1-4, 坐标=(2233.8, -160.88) + 创建目标点: ID=1182, 区域=须弥1-5, 坐标=(2269.0, -251.14) + 创建目标点: ID=1183, 区域=须弥10-1, 坐标=(6501.08, 904.25) + 创建目标点: ID=1184, 区域=须弥10-2, 坐标=(6613.41, 784.42) + 创建目标点: ID=1185, 区域=须弥10-3, 坐标=(6692.66, 625.4) + 创建目标点: ID=1186, 区域=须弥10-4, 坐标=(6280.81, 616.8) + 创建目标点: ID=1187, 区域=须弥2-1, 坐标=(2910.46, -1818.57) + 创建目标点: ID=1188, 区域=须弥2-2, 坐标=(2980.38, -1758.57) + 创建目标点: ID=1189, 区域=须弥2-3, 坐标=(3013.06, -1700.54) + 创建目标点: ID=1190, 区域=须弥2-4, 坐标=(2981.92, -1641.54) + 创建目标点: ID=1191, 区域=须弥2-5, 坐标=(2963.07, -1586.92) + 创建目标点: ID=1192, 区域=须弥3-1, 坐标=(3195.78, -806.97) + 创建目标点: ID=1193, 区域=须弥3-2, 坐标=(3233.51, -740.65) + 创建目标点: ID=1194, 区域=须弥3-3, 坐标=(3324.5, -659.02) + 创建目标点: ID=1195, 区域=须弥3-4, 坐标=(3387.39, -664.21) + 创建目标点: ID=1196, 区域=须弥4-1, 坐标=(3381.91, -1231.97) + 创建目标点: ID=1197, 区域=须弥4-2, 坐标=(3355.82, -1318.18) + 创建目标点: ID=1198, 区域=须弥4-3, 坐标=(3466.17, -1318.08) + 创建目标点: ID=1199, 区域=须弥4-4, 坐标=(3504.37, -1500.13) + 创建目标点: ID=1200, 区域=须弥4-5, 坐标=(3721.99, -1507.71) + 创建目标点: ID=1201, 区域=须弥5-1, 坐标=(4345.77, -1793.67) + 创建目标点: ID=1202, 区域=须弥5-2, 坐标=(4257.86, -1903.31) + 创建目标点: ID=1203, 区域=须弥5-3, 坐标=(4144.29, -2014.19) + 注意: 坐标 (4144.18, -2014.48) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1204, 区域=须弥5-4, 坐标=(4144.18, -2014.48) + 创建目标点: ID=1205, 区域=须弥5-5, 坐标=(4211.01, -2165.65) + 创建目标点: ID=1206, 区域=须弥6-1, 坐标=(4552.75, -2945.07) + 创建目标点: ID=1207, 区域=须弥6-2, 坐标=(4696.5, -3055.9) + 创建目标点: ID=1208, 区域=须弥6-3, 坐标=(4886.54, -2940.45) + 创建目标点: ID=1209, 区域=须弥6-4, 坐标=(4756.03, -2742.32) + 创建目标点: ID=1210, 区域=须弥8-1, 坐标=(5758.76, -1154.57) + 创建目标点: ID=1211, 区域=须弥8-2, 坐标=(5887.09, -1120.65) + 创建目标点: ID=1212, 区域=须弥8-3, 坐标=(5902.11, -1008.25) + 创建目标点: ID=1213, 区域=须弥8-4, 坐标=(5928.09, -922.46) + 创建目标点: ID=1214, 区域=须弥9-1, 坐标=(4555.52, -569.96) + 创建目标点: ID=1215, 区域=须弥9-2, 坐标=(4573.81, -408.86) + 创建目标点: ID=1216, 区域=须弥9-3, 坐标=(4756.13, -221.43) + 创建目标点: ID=1217, 区域=须弥9-4, 坐标=(4862.07, -150.71) + +第三遍:创建边和索引... + 创建边: 1 -> 1000, 路径=assets/pathing/枫丹1-秋分山西侧-1.json + 创建边: 1 -> 1001, 路径=assets/pathing/枫丹1-秋分山西侧-2.json + 创建边: 2 -> 1002, 路径=assets/pathing/枫丹1-秋分山西侧-3.json + 创建边: 2 -> 1003, 路径=assets/pathing/枫丹1-秋分山西侧-4.json + 创建边: 2 -> 1004, 路径=assets/pathing/枫丹1-秋分山西侧-5.json + 创建边: 3 -> 1005, 路径=assets/pathing/枫丹2-芒索斯山东麓-1.json + 创建边: 3 -> 1006, 路径=assets/pathing/枫丹2-芒索斯山东麓-2.json + 创建边: 3 -> 1007, 路径=assets/pathing/枫丹2-芒索斯山东麓-3.json + 创建边: 3 -> 1008, 路径=assets/pathing/枫丹2-芒索斯山东麓-4.json + 创建边: 4 -> 1009, 路径=assets/pathing/枫丹3-新枫丹科学院-1.json + 创建边: 4 -> 1010, 路径=assets/pathing/枫丹3-新枫丹科学院-2.json + 创建边: 5 -> 1011, 路径=assets/pathing/枫丹3-新枫丹科学院-3.json + 创建边: 5 -> 1012, 路径=assets/pathing/枫丹3-新枫丹科学院-4.json + 创建边: 6 -> 1013, 路径=assets/pathing/枫丹4-柔灯港-1.json + 创建边: 7 -> 1014, 路径=assets/pathing/枫丹4-柔灯港-2.json + 创建边: 7 -> 1015, 路径=assets/pathing/枫丹4-柔灯港-3.json + 创建边: 7 -> 1016, 路径=assets/pathing/枫丹4-柔灯港-4.json + 创建边: 1 -> 1017, 路径=assets/pathing/枫丹5-秋分山东侧-1.json + 创建边: 1 -> 1018, 路径=assets/pathing/枫丹5-秋分山东侧-2.json + 创建边: 8 -> 1019, 路径=assets/pathing/枫丹5-秋分山东侧-3.json + 创建边: 8 -> 1020, 路径=assets/pathing/枫丹5-秋分山东侧-4.json + 创建边: 9 -> 1021, 路径=assets/pathing/枫丹6-厄里那斯-1.json + 创建边: 10 -> 1022, 路径=assets/pathing/枫丹6-厄里那斯-2.json + 创建边: 10 -> 1023, 路径=assets/pathing/枫丹6-厄里那斯-3.json + 创建边: 10 -> 1024, 路径=assets/pathing/枫丹6-厄里那斯-4.json + 创建边: 11 -> 1025, 路径=assets/pathing/枫丹6-厄里那斯-5.json + 创建边: 10 -> 1026, 路径=assets/pathing/枫丹6-厄里那斯-6.json + 创建边: 12 -> 1027, 路径=assets/pathing/璃月1-石门-1.json + 创建边: 13 -> 1028, 路径=assets/pathing/璃月1-石门-2.json + 创建边: 14 -> 1031, 路径=assets/pathing/璃月10-绝云间-1.json + 创建边: 15 -> 1032, 路径=assets/pathing/璃月10-绝云间-2.json + 创建边: 16 -> 1033, 路径=assets/pathing/璃月10-绝云间-3.json + 创建边: 16 -> 1075, 路径=assets/pathing/璃月10-绝云间-5.json + 创建边: 17 -> 1036, 路径=assets/pathing/璃月11-轻策庄-1.json + 创建边: 18 -> 1040, 路径=assets/pathing/璃月11-轻策庄-5.json + 创建边: 19 -> 1041, 路径=assets/pathing/璃月11-轻策庄-6.json + 创建边: 20 -> 1042, 路径=assets/pathing/璃月13-悬练山-1.json + 创建边: 20 -> 1043, 路径=assets/pathing/璃月13-悬练山-2.json + 创建边: 21 -> 1046, 路径=assets/pathing/璃月14-药蝶谷-1.json + 创建边: 22 -> 1050, 路径=assets/pathing/璃月2-地中之盐-1.json + 创建边: 22 -> 1051, 路径=assets/pathing/璃月2-地中之盐-2.json + 创建边: 23 -> 1052, 路径=assets/pathing/璃月2-地中之盐-3.json + 创建边: 24 -> 1053, 路径=assets/pathing/璃月2-地中之盐-4.json + 创建边: 24 -> 1054, 路径=assets/pathing/璃月3-瑶光滩-1.json + 创建边: 24 -> 1055, 路径=assets/pathing/璃月3-瑶光滩-2.json + 创建边: 16 -> 1056, 路径=assets/pathing/璃月3-瑶光滩-3.json + 创建边: 16 -> 1057, 路径=assets/pathing/璃月3-瑶光滩-4.json + 创建边: 16 -> 1075, 路径=assets/pathing/璃月3-瑶光滩-5.json + 创建边: 25 -> 1059, 路径=assets/pathing/璃月4-璃月港-1.json + 创建边: 26 -> 1063, 路径=assets/pathing/璃月4-璃月港-5.json + 创建边: 16 -> 1057, 路径=assets/pathing/璃月4-璃月港-6.json + 创建边: 16 -> 1075, 路径=assets/pathing/璃月4-璃月港-7.json + 创建边: 27 -> 1066, 路径=assets/pathing/璃月5-天衡山-1.json + 创建边: 27 -> 1067, 路径=assets/pathing/璃月5-天衡山-2.json + 创建边: 28 -> 1069, 路径=assets/pathing/璃月5-天衡山-4-1.json + 创建边: 28 -> 1070, 路径=assets/pathing/璃月7-遁玉陵-1.json + 创建边: 29 -> 1071, 路径=assets/pathing/璃月7-遁玉陵-2.json + 创建边: 30 -> 1073, 路径=assets/pathing/璃月7-遁玉陵-4.json + 创建边: 31 -> 1034, 路径=assets/pathing/璃月7-遁玉陵-5.json + 创建边: 16 -> 1075, 路径=assets/pathing/璃月7-遁玉陵-6.json + 创建边: 32 -> 1076, 路径=assets/pathing/璃月8-南天门南-1.json + 创建边: 33 -> 1077, 路径=assets/pathing/璃月8-南天门南-2.json + 创建边: 33 -> 1078, 路径=assets/pathing/璃月8-南天门南-3.json + 创建边: 33 -> 1079, 路径=assets/pathing/璃月8-南天门南-4.json + 创建边: 30 -> 1073, 路径=assets/pathing/璃月8-南天门南-5.json + 创建边: 14 -> 1034, 路径=assets/pathing/璃月8-南天门南-6.json + 创建边: 16 -> 1075, 路径=assets/pathing/璃月8-南天门南-7.json + 创建边: 34 -> 1083, 路径=assets/pathing/璃月9-南天门东-1.json + 创建边: 34 -> 1085, 路径=assets/pathing/璃月9-南天门东-3-1.json + 创建边: 34 -> 1085, 路径=assets/pathing/璃月9-南天门东-3-2.json + 创建边: 32 -> 1086, 路径=assets/pathing/璃月9-南天门东-4.json + 创建边: 35 -> 1087, 路径=assets/pathing/稻妻1-鸣神岛-1.json + 创建边: 35 -> 1088, 路径=assets/pathing/稻妻1-鸣神岛-2.json + 创建边: 36 -> 1089, 路径=assets/pathing/稻妻1-鸣神岛-3.json + 创建边: 36 -> 1090, 路径=assets/pathing/稻妻1-鸣神岛-4.json + 创建边: 37 -> 1091, 路径=assets/pathing/稻妻2-踏鞴砂-1.json + 创建边: 38 -> 1092, 路径=assets/pathing/稻妻2-踏鞴砂-2.json + 创建边: 39 -> 1093, 路径=assets/pathing/稻妻2-踏鞴砂-3.json + 创建边: 40 -> 1094, 路径=assets/pathing/稻妻2-踏鞴砂-4.json + 创建边: 40 -> 1095, 路径=assets/pathing/稻妻2-踏鞴砂-5.json + 创建边: 41 -> 1096, 路径=assets/pathing/稻妻3-八酝岛-1.json + 创建边: 41 -> 1098, 路径=assets/pathing/稻妻3-八酝岛-3.json + 创建边: 41 -> 1099, 路径=assets/pathing/稻妻3-八酝岛-4.json + 创建边: 42 -> 1100, 路径=assets/pathing/稻妻4-海祇岛-1.json + 创建边: 43 -> 1103, 路径=assets/pathing/稻妻4-海祇岛-4.json + 创建边: 44 -> 1104, 路径=assets/pathing/稻妻5-清籁岛-1.json + 创建边: 45 -> 1107, 路径=assets/pathing/稻妻5-清籁岛-4.json + 创建边: 46 -> 1109, 路径=assets/pathing/纳塔1-隆崛坡-1.json + 创建边: 47 -> 1110, 路径=assets/pathing/纳塔1-隆崛坡-2.json + 创建边: 47 -> 1111, 路径=assets/pathing/纳塔1-隆崛坡-3.json + 创建边: 48 -> 1113, 路径=assets/pathing/纳塔10-溶水域-1.json + 创建边: 49 -> 1116, 路径=assets/pathing/纳塔10-溶水域-4.json + 创建边: 50 -> 1117, 路径=assets/pathing/纳塔2-硫晶支脉-1.json + 创建边: 50 -> 1118, 路径=assets/pathing/纳塔2-硫晶支脉-2.json + 创建边: 50 -> 1119, 路径=assets/pathing/纳塔2-硫晶支脉-3.json + 创建边: 51 -> 1120, 路径=assets/pathing/纳塔2-硫晶支脉-4.json + 创建边: 52 -> 1121, 路径=assets/pathing/纳塔3-彩石顶-1.json + 创建边: 53 -> 1122, 路径=assets/pathing/纳塔3-彩石顶-2.json + 创建边: 53 -> 1123, 路径=assets/pathing/纳塔3-彩石顶-3.json + 创建边: 54 -> 1125, 路径=assets/pathing/纳塔4-溶水域-1.json + 创建边: 55 -> 1127, 路径=assets/pathing/纳塔5-安饶之野-1.json + 创建边: 55 -> 1128, 路径=assets/pathing/纳塔5-安饶之野-2.json + 创建边: 55 -> 1129, 路径=assets/pathing/纳塔5-安饶之野-3.json + 创建边: 56 -> 1130, 路径=assets/pathing/纳塔6-圣火竞技场-1.json + 创建边: 56 -> 1131, 路径=assets/pathing/纳塔6-圣火竞技场-2.json + 创建边: 57 -> 1134, 路径=assets/pathing/纳塔7-烟谜主-1.json + 创建边: 58 -> 1137, 路径=assets/pathing/纳塔8-花羽会-1.json + 创建边: 58 -> 1138, 路径=assets/pathing/纳塔8-花羽会-2.json + 创建边: 59 -> 1139, 路径=assets/pathing/纳塔8-花羽会-3.json + 创建边: 60 -> 1140, 路径=assets/pathing/纳塔9-翘枝崖-1.json + 创建边: 61 -> 1144, 路径=assets/pathing/蒙德1-风起地-1.json + 创建边: 62 -> 1145, 路径=assets/pathing/蒙德1-风起地-2.json + 创建边: 63 -> 1177, 路径=assets/pathing/蒙德1-风起地-5.json + 创建边: 64 -> 1149, 路径=assets/pathing/蒙德2-清泉镇-1.json + 创建边: 65 -> 1150, 路径=assets/pathing/蒙德2-清泉镇-2.json + 创建边: 66 -> 1153, 路径=assets/pathing/蒙德2-清泉镇-5-1.json + 创建边: 67 -> 1155, 路径=assets/pathing/蒙德3-奔狼领-1.json + 创建边: 68 -> 1158, 路径=assets/pathing/蒙德3-奔狼领-4.json + 创建边: 69 -> 1159, 路径=assets/pathing/蒙德4-风龙废墟-1.json + 创建边: 70 -> 1161, 路径=assets/pathing/蒙德4-风龙废墟-3.json + 创建边: 71 -> 1163, 路径=assets/pathing/蒙德5-千风神殿-1.json + 创建边: 72 -> 1166, 路径=assets/pathing/蒙德5-千风神殿-4.json + 创建边: 73 -> 1167, 路径=assets/pathing/蒙德5-千风神殿-5.json + 创建边: 73 -> 1168, 路径=assets/pathing/蒙德6-望风山地-1.json + 创建边: 74 -> 1170, 路径=assets/pathing/蒙德6-望风山地-3.json + 创建边: 75 -> 1172, 路径=assets/pathing/蒙德7-达达乌帕谷-1.json + 创建边: 76 -> 1173, 路径=assets/pathing/蒙德7-达达乌帕谷-2.json + 创建边: 76 -> 1174, 路径=assets/pathing/蒙德7-达达乌帕谷-3.json + 创建边: 63 -> 1177, 路径=assets/pathing/蒙德7-达达乌帕谷-6.json + 创建边: 77 -> 1178, 路径=assets/pathing/须弥1-无郁稠林-1.json + 创建边: 78 -> 1183, 路径=assets/pathing/须弥10-荼泥黑渊-1.json + 创建边: 78 -> 1184, 路径=assets/pathing/须弥10-荼泥黑渊-2.json + 创建边: 78 -> 1185, 路径=assets/pathing/须弥10-荼泥黑渊-3.json + 创建边: 79 -> 1186, 路径=assets/pathing/须弥10-荼泥黑渊-4.json + 创建边: 80 -> 1187, 路径=assets/pathing/须弥2-奥摩斯港西-1.json + 创建边: 81 -> 1189, 路径=assets/pathing/须弥2-奥摩斯港西-3.json + 创建边: 82 -> 1192, 路径=assets/pathing/须弥3-禅那园-1.json + 创建边: 83 -> 1194, 路径=assets/pathing/须弥3-禅那园-3.json + 创建边: 84 -> 1196, 路径=assets/pathing/须弥4-水天丛林-1.json + 创建边: 85 -> 1199, 路径=assets/pathing/须弥4-水天丛林-4.json + 创建边: 86 -> 1200, 路径=assets/pathing/须弥4-水天丛林-5.json + 创建边: 87 -> 1201, 路径=assets/pathing/须弥5-阿如村-1.json + 创建边: 88 -> 1206, 路径=assets/pathing/须弥6-荼诃落谷-1.json + 创建边: 89 -> 1207, 路径=assets/pathing/须弥6-荼诃落谷-2.json + 创建边: 90 -> 1209, 路径=assets/pathing/须弥6-荼诃落谷-4.json + 创建边: 91 -> 1210, 路径=assets/pathing/须弥8-折胫谷-1.json + 创建边: 92 -> 1214, 路径=assets/pathing/须弥9-镔铁沙丘-1.json + +检查目标点的连通性... + 警告: 目标点 ID=1029, 区域=璃月1-3, 坐标=(-81.76, 1534.73) 没有入边 + 警告: 目标点 ID=1030, 区域=璃月1-4, 坐标=(-28.76, 1417.37) 没有入边 + 警告: 目标点 ID=1035, 区域=璃月10-5, 坐标=(455.4, 546.56) 没有入边 + 警告: 目标点 ID=1037, 区域=璃月11-2, 坐标=(697.31, 1551.84) 没有入边 + 警告: 目标点 ID=1038, 区域=璃月11-3, 坐标=(646.5, 1421.98) 没有入边 + 警告: 目标点 ID=1039, 区域=璃月11-4, 坐标=(632.03, 1331.15) 没有入边 + 警告: 目标点 ID=1044, 区域=璃月13-3, 坐标=(2226.91, 863.09) 没有入边 + 警告: 目标点 ID=1045, 区域=璃月13-4, 坐标=(2028.69, 830.67) 没有入边 + 警告: 目标点 ID=1047, 区域=璃月14-2, 坐标=(1581.57, 1437.1) 没有入边 + 警告: 目标点 ID=1048, 区域=璃月14-3, 坐标=(1563.45, 1487.35) 没有入边 + 警告: 目标点 ID=1049, 区域=璃月14-4, 坐标=(1525.0, 1549.17) 没有入边 + 警告: 目标点 ID=1058, 区域=璃月3-5, 坐标=(456.0, 546.29) 没有入边 + 警告: 目标点 ID=1060, 区域=璃月4-2, 坐标=(101.14, -2.97) 没有入边 + 警告: 目标点 ID=1061, 区域=璃月4-3, 坐标=(127.05, 113.87) 没有入边 + 警告: 目标点 ID=1062, 区域=璃月4-4, 坐标=(146.03, 220.07) 没有入边 + 警告: 目标点 ID=1064, 区域=璃月4-6, 坐标=(276.55, 543.11) 没有入边 + 警告: 目标点 ID=1065, 区域=璃月4-7, 坐标=(456.44, 546.35) 没有入边 + 警告: 目标点 ID=1068, 区域=璃月5-3, 坐标=(1063.54, -727.34) 没有入边 + 警告: 目标点 ID=1072, 区域=璃月7-3, 坐标=(752.42, 3.88) 没有入边 + 警告: 目标点 ID=1074, 区域=璃月7-5, 坐标=(681.46, 528.76) 没有入边 + 警告: 目标点 ID=1080, 区域=璃月8-5, 坐标=(815.31, 137.31) 没有入边 + 警告: 目标点 ID=1081, 区域=璃月8-6, 坐标=(683.33, 529.05) 没有入边 + 警告: 目标点 ID=1082, 区域=璃月8-7, 坐标=(455.84, 546.39) 没有入边 + 警告: 目标点 ID=1084, 区域=璃月9-2, 坐标=(1445.77, 577.83) 没有入边 + 警告: 目标点 ID=1097, 区域=稻妻3-2, 坐标=(-2280.61, -4171.18) 没有入边 + 警告: 目标点 ID=1101, 区域=稻妻4-2, 坐标=(-1190.51, -3902.08) 没有入边 + 警告: 目标点 ID=1102, 区域=稻妻4-3, 坐标=(-1254.7, -3839.91) 没有入边 + 警告: 目标点 ID=1105, 区域=稻妻5-2, 坐标=(-3850.61, -4241.9) 没有入边 + 警告: 目标点 ID=1106, 区域=稻妻5-3, 坐标=(-3763.54, -4259.14) 没有入边 + 警告: 目标点 ID=1108, 区域=稻妻5-5, 坐标=(-3671.61, -4414.03) 没有入边 + 警告: 目标点 ID=1112, 区域=纳塔1-4, 坐标=(7853.72, -1554.26) 没有入边 + 警告: 目标点 ID=1114, 区域=纳塔10-2, 坐标=(8496.07, -3018.4) 没有入边 + 警告: 目标点 ID=1115, 区域=纳塔10-3, 坐标=(8587.99, -3022.4) 没有入边 + 警告: 目标点 ID=1124, 区域=纳塔3-4, 坐标=(8088.21, -2053.56) 没有入边 + 警告: 目标点 ID=1126, 区域=纳塔4-2, 坐标=(9090.71, -2407.11) 没有入边 + 警告: 目标点 ID=1132, 区域=纳塔6-3, 坐标=(8945.55, -2138.43) 没有入边 + 警告: 目标点 ID=1133, 区域=纳塔6-4, 坐标=(8810.08, -2077.83) 没有入边 + 警告: 目标点 ID=1135, 区域=纳塔7-2, 坐标=(9963.8, -1511.61) 没有入边 + 警告: 目标点 ID=1136, 区域=纳塔7-3, 坐标=(9907.78, -1424.0) 没有入边 + 警告: 目标点 ID=1141, 区域=纳塔9-2, 坐标=(9888.22, -1046.55) 没有入边 + 警告: 目标点 ID=1142, 区域=纳塔9-3, 坐标=(9938.82, -933.87) 没有入边 + 警告: 目标点 ID=1143, 区域=纳塔9-4, 坐标=(9984.24, -876.43) 没有入边 + 警告: 目标点 ID=1146, 区域=蒙德1-3, 坐标=(-1113.87, 1971.9) 没有入边 + 警告: 目标点 ID=1147, 区域=蒙德1-4, 坐标=(-1041.91, 1927.07) 没有入边 + 警告: 目标点 ID=1148, 区域=蒙德1-5, 坐标=(-895.08, 1833.84) 没有入边 + 警告: 目标点 ID=1151, 区域=蒙德2-3, 坐标=(-420.36, 1998.11) 没有入边 + 警告: 目标点 ID=1152, 区域=蒙德2-4-1, 坐标=(-347.95, 1902.51) 没有入边 + 警告: 目标点 ID=1154, 区域=蒙德2-5-1, 坐标=(-319.57, 2156.48) 没有入边 + 警告: 目标点 ID=1156, 区域=蒙德3-2, 坐标=(-205.49, 2429.07) 没有入边 + 警告: 目标点 ID=1157, 区域=蒙德3-3, 坐标=(-327.03, 2410.43) 没有入边 + 警告: 目标点 ID=1160, 区域=蒙德4-2, 坐标=(124.61, 2817.24) 没有入边 + 警告: 目标点 ID=1162, 区域=蒙德4-4, 坐标=(-27.99, 2919.59) 没有入边 + 警告: 目标点 ID=1164, 区域=蒙德5-2, 坐标=(-1367.78, 2411.31) 没有入边 + 警告: 目标点 ID=1165, 区域=蒙德5-3, 坐标=(-1474.91, 2520.0) 没有入边 + 警告: 目标点 ID=1169, 区域=蒙德6-2, 坐标=(-1518.71, 2877.4) 没有入边 + 警告: 目标点 ID=1171, 区域=蒙德6-4, 坐标=(-1710.73, 2983.29) 没有入边 + 警告: 目标点 ID=1175, 区域=蒙德7-4, 坐标=(-1318.63, 1692.63) 没有入边 + 警告: 目标点 ID=1176, 区域=蒙德7-5, 坐标=(-1138.22, 1789.79) 没有入边 + 警告: 目标点 ID=1179, 区域=须弥1-2, 坐标=(2317.29, -115.35) 没有入边 + 警告: 目标点 ID=1180, 区域=须弥1-3, 坐标=(2212.83, -83.02) 没有入边 + 警告: 目标点 ID=1181, 区域=须弥1-4, 坐标=(2233.8, -160.88) 没有入边 + 警告: 目标点 ID=1182, 区域=须弥1-5, 坐标=(2269.0, -251.14) 没有入边 + 警告: 目标点 ID=1188, 区域=须弥2-2, 坐标=(2980.38, -1758.57) 没有入边 + 警告: 目标点 ID=1190, 区域=须弥2-4, 坐标=(2981.92, -1641.54) 没有入边 + 警告: 目标点 ID=1191, 区域=须弥2-5, 坐标=(2963.07, -1586.92) 没有入边 + 警告: 目标点 ID=1193, 区域=须弥3-2, 坐标=(3233.51, -740.65) 没有入边 + 警告: 目标点 ID=1195, 区域=须弥3-4, 坐标=(3387.39, -664.21) 没有入边 + 警告: 目标点 ID=1197, 区域=须弥4-2, 坐标=(3355.82, -1318.18) 没有入边 + 警告: 目标点 ID=1198, 区域=须弥4-3, 坐标=(3466.17, -1318.08) 没有入边 + 警告: 目标点 ID=1202, 区域=须弥5-2, 坐标=(4257.86, -1903.31) 没有入边 + 警告: 目标点 ID=1203, 区域=须弥5-3, 坐标=(4144.29, -2014.19) 没有入边 + 警告: 目标点 ID=1204, 区域=须弥5-4, 坐标=(4144.18, -2014.48) 没有入边 + 警告: 目标点 ID=1205, 区域=须弥5-5, 坐标=(4211.01, -2165.65) 没有入边 + 警告: 目标点 ID=1208, 区域=须弥6-3, 坐标=(4886.54, -2940.45) 没有入边 + 警告: 目标点 ID=1211, 区域=须弥8-2, 坐标=(5887.09, -1120.65) 没有入边 + 警告: 目标点 ID=1212, 区域=须弥8-3, 坐标=(5902.11, -1008.25) 没有入边 + 警告: 目标点 ID=1213, 区域=须弥8-4, 坐标=(5928.09, -922.46) 没有入边 + 警告: 目标点 ID=1215, 区域=须弥9-2, 坐标=(4573.81, -408.86) 没有入边 + 警告: 目标点 ID=1216, 区域=须弥9-3, 坐标=(4756.13, -221.43) 没有入边 + 警告: 目标点 ID=1217, 区域=须弥9-4, 坐标=(4862.07, -150.71) 没有入边 + +尝试为 80 个孤立目标点寻找连续路径... + +处理区域 璃月1-3 的 1 个孤立目标点... + 区域 璃月1-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月1-4 的 1 个孤立目标点... + 区域 璃月1-4 没有现有路径,无法连接孤立目标点 + +处理区域 璃月10-5 的 1 个孤立目标点... + 区域 璃月10-5 没有现有路径,无法连接孤立目标点 + +处理区域 璃月11-2 的 1 个孤立目标点... + 区域 璃月11-2 没有现有路径,无法连接孤立目标点 + +处理区域 璃月11-3 的 1 个孤立目标点... + 区域 璃月11-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月11-4 的 1 个孤立目标点... + 区域 璃月11-4 没有现有路径,无法连接孤立目标点 + +处理区域 璃月13-3 的 1 个孤立目标点... + 区域 璃月13-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月13-4 的 1 个孤立目标点... + 区域 璃月13-4 没有现有路径,无法连接孤立目标点 + +处理区域 璃月14-2 的 1 个孤立目标点... + 区域 璃月14-2 没有现有路径,无法连接孤立目标点 + +处理区域 璃月14-3 的 1 个孤立目标点... + 区域 璃月14-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月14-4 的 1 个孤立目标点... + 区域 璃月14-4 没有现有路径,无法连接孤立目标点 + +处理区域 璃月3-5 的 1 个孤立目标点... + 区域 璃月3-5 没有现有路径,无法连接孤立目标点 + +处理区域 璃月4-2 的 1 个孤立目标点... + 区域 璃月4-2 没有现有路径,无法连接孤立目标点 + +处理区域 璃月4-3 的 1 个孤立目标点... + 区域 璃月4-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月4-4 的 1 个孤立目标点... + 区域 璃月4-4 没有现有路径,无法连接孤立目标点 + +处理区域 璃月4-6 的 1 个孤立目标点... + 区域 璃月4-6 没有现有路径,无法连接孤立目标点 + +处理区域 璃月4-7 的 1 个孤立目标点... + 区域 璃月4-7 没有现有路径,无法连接孤立目标点 + +处理区域 璃月5-3 的 1 个孤立目标点... + 区域 璃月5-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月7-3 的 1 个孤立目标点... + 区域 璃月7-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月7-5 的 1 个孤立目标点... + 区域 璃月7-5 没有现有路径,无法连接孤立目标点 + +处理区域 璃月8-5 的 1 个孤立目标点... + 区域 璃月8-5 没有现有路径,无法连接孤立目标点 + +处理区域 璃月8-6 的 1 个孤立目标点... + 区域 璃月8-6 没有现有路径,无法连接孤立目标点 + +处理区域 璃月8-7 的 1 个孤立目标点... + 区域 璃月8-7 没有现有路径,无法连接孤立目标点 + +处理区域 璃月9-2 的 1 个孤立目标点... + 区域 璃月9-2 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻3-2 的 1 个孤立目标点... + 区域 稻妻3-2 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻4-2 的 1 个孤立目标点... + 区域 稻妻4-2 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻4-3 的 1 个孤立目标点... + 区域 稻妻4-3 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻5-2 的 1 个孤立目标点... + 区域 稻妻5-2 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻5-3 的 1 个孤立目标点... + 区域 稻妻5-3 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻5-5 的 1 个孤立目标点... + 区域 稻妻5-5 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔1-4 的 1 个孤立目标点... + 区域 纳塔1-4 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔10-2 的 1 个孤立目标点... + 区域 纳塔10-2 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔10-3 的 1 个孤立目标点... + 区域 纳塔10-3 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔3-4 的 1 个孤立目标点... + 区域 纳塔3-4 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔4-2 的 1 个孤立目标点... + 区域 纳塔4-2 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔6-3 的 1 个孤立目标点... + 区域 纳塔6-3 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔6-4 的 1 个孤立目标点... + 区域 纳塔6-4 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔7-2 的 1 个孤立目标点... + 区域 纳塔7-2 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔7-3 的 1 个孤立目标点... + 区域 纳塔7-3 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔9-2 的 1 个孤立目标点... + 区域 纳塔9-2 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔9-3 的 1 个孤立目标点... + 区域 纳塔9-3 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔9-4 的 1 个孤立目标点... + 区域 纳塔9-4 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德1-3 的 1 个孤立目标点... + 区域 蒙德1-3 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德1-4 的 1 个孤立目标点... + 区域 蒙德1-4 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德1-5 的 1 个孤立目标点... + 区域 蒙德1-5 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德2-3 的 1 个孤立目标点... + 区域 蒙德2-3 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德2-4-1 的 1 个孤立目标点... + 区域 蒙德2-4-1 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德2-5-1 的 1 个孤立目标点... + 区域 蒙德2-5-1 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德3-2 的 1 个孤立目标点... + 区域 蒙德3-2 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德3-3 的 1 个孤立目标点... + 区域 蒙德3-3 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德4-2 的 1 个孤立目标点... + 区域 蒙德4-2 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德4-4 的 1 个孤立目标点... + 区域 蒙德4-4 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德5-2 的 1 个孤立目标点... + 区域 蒙德5-2 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德5-3 的 1 个孤立目标点... + 区域 蒙德5-3 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德6-2 的 1 个孤立目标点... + 区域 蒙德6-2 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德6-4 的 1 个孤立目标点... + 区域 蒙德6-4 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德7-4 的 1 个孤立目标点... + 区域 蒙德7-4 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德7-5 的 1 个孤立目标点... + 区域 蒙德7-5 没有现有路径,无法连接孤立目标点 + +处理区域 须弥1-2 的 1 个孤立目标点... + 区域 须弥1-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥1-3 的 1 个孤立目标点... + 区域 须弥1-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥1-4 的 1 个孤立目标点... + 区域 须弥1-4 没有现有路径,无法连接孤立目标点 + +处理区域 须弥1-5 的 1 个孤立目标点... + 区域 须弥1-5 没有现有路径,无法连接孤立目标点 + +处理区域 须弥2-2 的 1 个孤立目标点... + 区域 须弥2-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥2-4 的 1 个孤立目标点... + 区域 须弥2-4 没有现有路径,无法连接孤立目标点 + +处理区域 须弥2-5 的 1 个孤立目标点... + 区域 须弥2-5 没有现有路径,无法连接孤立目标点 + +处理区域 须弥3-2 的 1 个孤立目标点... + 区域 须弥3-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥3-4 的 1 个孤立目标点... + 区域 须弥3-4 没有现有路径,无法连接孤立目标点 + +处理区域 须弥4-2 的 1 个孤立目标点... + 区域 须弥4-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥4-3 的 1 个孤立目标点... + 区域 须弥4-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥5-2 的 1 个孤立目标点... + 区域 须弥5-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥5-3 的 1 个孤立目标点... + 区域 须弥5-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥5-4 的 1 个孤立目标点... + 区域 须弥5-4 没有现有路径,无法连接孤立目标点 + +处理区域 须弥5-5 的 1 个孤立目标点... + 区域 须弥5-5 没有现有路径,无法连接孤立目标点 + +处理区域 须弥6-3 的 1 个孤立目标点... + 区域 须弥6-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥8-2 的 1 个孤立目标点... + 区域 须弥8-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥8-3 的 1 个孤立目标点... + 区域 须弥8-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥8-4 的 1 个孤立目标点... + 区域 须弥8-4 没有现有路径,无法连接孤立目标点 + +处理区域 须弥9-2 的 1 个孤立目标点... + 区域 须弥9-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥9-3 的 1 个孤立目标点... + 区域 须弥9-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥9-4 的 1 个孤立目标点... + 区域 须弥9-4 没有现有路径,无法连接孤立目标点 + +按区域对节点进行排序... + +删除边数据中的位置信息... + +按照目标节点(target)的顺序排列边... + +创建节点到节点的顺序边... + +处理区域: 蒙德1 + 主路线: 蒙德1-1 (路线1) + 主路线: 蒙德1-2 (路线2) + 主路线: 蒙德1-3 (路线3) + 主路线: 蒙德1-4 (路线4) + 主路线: 蒙德1-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 蒙德1-1 → 蒙德1-2 + 主路线连接: 蒙德1-2 → 蒙德1-3 + 主路线连接: 蒙德1-3 → 蒙德1-4 + 主路线连接: 蒙德1-4 → 蒙德1-5 + +处理区域: 蒙德2 + 主路线: 蒙德2-1 (路线1) + 主路线: 蒙德2-2 (路线2) + 主路线: 蒙德2-3 (路线3) + 分支路线: 蒙德2-4-1 (路线4, 分支1) + 分支路线: 蒙德2-4-2 (路线4, 分支2) + 分支路线: 蒙德2-5-1 (路线5, 分支1) + 找到 3 个主路线,2 个分支组 + 主路线到分支: 蒙德2-3 → 蒙德2-4-1 + 主路线到分支: 蒙德2-3 → 蒙德2-5-1 + 分支内部连接: 蒙德2-4-1 → 蒙德2-4-2 + 分支到分支: 蒙德2-4-2 → 蒙德2-5-1 + 主路线连接: 蒙德2-1 → 蒙德2-2 + 主路线连接: 蒙德2-2 → 蒙德2-3 + +处理区域: 蒙德3 + 主路线: 蒙德3-1 (路线1) + 主路线: 蒙德3-2 (路线2) + 主路线: 蒙德3-3 (路线3) + 主路线: 蒙德3-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 蒙德3-1 → 蒙德3-2 + 主路线连接: 蒙德3-2 → 蒙德3-3 + 主路线连接: 蒙德3-3 → 蒙德3-4 + +处理区域: 蒙德4 + 主路线: 蒙德4-1 (路线1) + 主路线: 蒙德4-2 (路线2) + 主路线: 蒙德4-3 (路线3) + 主路线: 蒙德4-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 蒙德4-1 → 蒙德4-2 + 主路线连接: 蒙德4-2 → 蒙德4-3 + 主路线连接: 蒙德4-3 → 蒙德4-4 + +处理区域: 蒙德5 + 主路线: 蒙德5-1 (路线1) + 主路线: 蒙德5-2 (路线2) + 主路线: 蒙德5-3 (路线3) + 主路线: 蒙德5-4 (路线4) + 主路线: 蒙德5-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 蒙德5-1 → 蒙德5-2 + 主路线连接: 蒙德5-2 → 蒙德5-3 + 主路线连接: 蒙德5-3 → 蒙德5-4 + 主路线连接: 蒙德5-4 → 蒙德5-5 + +处理区域: 蒙德6 + 主路线: 蒙德6-1 (路线1) + 主路线: 蒙德6-2 (路线2) + 主路线: 蒙德6-3 (路线3) + 主路线: 蒙德6-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 蒙德6-1 → 蒙德6-2 + 主路线连接: 蒙德6-2 → 蒙德6-3 + 主路线连接: 蒙德6-3 → 蒙德6-4 + +处理区域: 蒙德7 + 主路线: 蒙德7-1 (路线1) + 主路线: 蒙德7-2 (路线2) + 主路线: 蒙德7-3 (路线3) + 主路线: 蒙德7-4 (路线4) + 主路线: 蒙德7-5 (路线5) + 主路线: 蒙德7-6 (路线6) + 找到 6 个主路线,0 个分支组 + 主路线连接: 蒙德7-1 → 蒙德7-2 + 主路线连接: 蒙德7-2 → 蒙德7-3 + 主路线连接: 蒙德7-3 → 蒙德7-4 + 主路线连接: 蒙德7-4 → 蒙德7-5 + 主路线连接: 蒙德7-5 → 蒙德7-6 + +处理区域: 璃月1 + 主路线: 璃月1-1 (路线1) + 主路线: 璃月1-2 (路线2) + 主路线: 璃月1-3 (路线3) + 主路线: 璃月1-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 璃月1-1 → 璃月1-2 + 主路线连接: 璃月1-2 → 璃月1-3 + 主路线连接: 璃月1-3 → 璃月1-4 + +处理区域: 璃月10 + 主路线: 璃月10-1 (路线1) + 主路线: 璃月10-2 (路线2) + 主路线: 璃月10-3 (路线3) + 主路线: 璃月10-4 (路线4) + 主路线: 璃月10-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 璃月10-1 → 璃月10-2 + 主路线连接: 璃月10-2 → 璃月10-3 + 主路线连接: 璃月10-3 → 璃月10-4 + 主路线连接: 璃月10-4 → 璃月10-5 + +处理区域: 璃月11 + 主路线: 璃月11-1 (路线1) + 主路线: 璃月11-2 (路线2) + 主路线: 璃月11-3 (路线3) + 主路线: 璃月11-4 (路线4) + 主路线: 璃月11-5 (路线5) + 主路线: 璃月11-6 (路线6) + 找到 6 个主路线,0 个分支组 + 主路线连接: 璃月11-1 → 璃月11-2 + 主路线连接: 璃月11-2 → 璃月11-3 + 主路线连接: 璃月11-3 → 璃月11-4 + 主路线连接: 璃月11-4 → 璃月11-5 + 主路线连接: 璃月11-5 → 璃月11-6 + +处理区域: 璃月13 + 主路线: 璃月13-1 (路线1) + 主路线: 璃月13-2 (路线2) + 主路线: 璃月13-3 (路线3) + 主路线: 璃月13-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 璃月13-1 → 璃月13-2 + 主路线连接: 璃月13-2 → 璃月13-3 + 主路线连接: 璃月13-3 → 璃月13-4 + +处理区域: 璃月14 + 主路线: 璃月14-1 (路线1) + 主路线: 璃月14-2 (路线2) + 主路线: 璃月14-3 (路线3) + 主路线: 璃月14-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 璃月14-1 → 璃月14-2 + 主路线连接: 璃月14-2 → 璃月14-3 + 主路线连接: 璃月14-3 → 璃月14-4 + +处理区域: 璃月2 + 主路线: 璃月2-1 (路线1) + 主路线: 璃月2-2 (路线2) + 主路线: 璃月2-3 (路线3) + 主路线: 璃月2-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 璃月2-1 → 璃月2-2 + 主路线连接: 璃月2-2 → 璃月2-3 + 主路线连接: 璃月2-3 → 璃月2-4 + +处理区域: 璃月3 + 主路线: 璃月3-1 (路线1) + 主路线: 璃月3-2 (路线2) + 主路线: 璃月3-3 (路线3) + 主路线: 璃月3-4 (路线4) + 主路线: 璃月3-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 璃月3-1 → 璃月3-2 + 主路线连接: 璃月3-2 → 璃月3-3 + 主路线连接: 璃月3-3 → 璃月3-4 + 主路线连接: 璃月3-4 → 璃月3-5 + +处理区域: 璃月4 + 主路线: 璃月4-1 (路线1) + 主路线: 璃月4-2 (路线2) + 主路线: 璃月4-3 (路线3) + 主路线: 璃月4-4 (路线4) + 主路线: 璃月4-5 (路线5) + 主路线: 璃月4-6 (路线6) + 主路线: 璃月4-7 (路线7) + 找到 7 个主路线,0 个分支组 + 主路线连接: 璃月4-1 → 璃月4-2 + 主路线连接: 璃月4-2 → 璃月4-3 + 主路线连接: 璃月4-3 → 璃月4-4 + 主路线连接: 璃月4-4 → 璃月4-5 + 主路线连接: 璃月4-5 → 璃月4-6 + 主路线连接: 璃月4-6 → 璃月4-7 + +处理区域: 璃月5 + 主路线: 璃月5-1 (路线1) + 主路线: 璃月5-2 (路线2) + 主路线: 璃月5-3 (路线3) + 分支路线: 璃月5-4-1 (路线4, 分支1) + 找到 3 个主路线,1 个分支组 + 主路线到分支: 璃月5-3 → 璃月5-4-1 + 主路线连接: 璃月5-1 → 璃月5-2 + 主路线连接: 璃月5-2 → 璃月5-3 + +处理区域: 璃月7 + 主路线: 璃月7-1 (路线1) + 主路线: 璃月7-2 (路线2) + 主路线: 璃月7-3 (路线3) + 主路线: 璃月7-4 (路线4) + 主路线: 璃月7-5 (路线5) + 主路线: 璃月7-6 (路线6) + 找到 6 个主路线,0 个分支组 + 主路线连接: 璃月7-1 → 璃月7-2 + 主路线连接: 璃月7-2 → 璃月7-3 + 主路线连接: 璃月7-3 → 璃月7-4 + 主路线连接: 璃月7-4 → 璃月7-5 + 主路线连接: 璃月7-5 → 璃月7-6 + +处理区域: 璃月8 + 主路线: 璃月8-1 (路线1) + 主路线: 璃月8-2 (路线2) + 主路线: 璃月8-3 (路线3) + 主路线: 璃月8-4 (路线4) + 主路线: 璃月8-5 (路线5) + 主路线: 璃月8-6 (路线6) + 主路线: 璃月8-7 (路线7) + 找到 7 个主路线,0 个分支组 + 主路线连接: 璃月8-1 → 璃月8-2 + 主路线连接: 璃月8-2 → 璃月8-3 + 主路线连接: 璃月8-3 → 璃月8-4 + 主路线连接: 璃月8-4 → 璃月8-5 + 主路线连接: 璃月8-5 → 璃月8-6 + 主路线连接: 璃月8-6 → 璃月8-7 + +处理区域: 璃月9 + 主路线: 璃月9-1 (路线1) + 主路线: 璃月9-2 (路线2) + 分支路线: 璃月9-3-1 (路线3, 分支1) + 主路线: 璃月9-4 (路线4) + 找到 3 个主路线,1 个分支组 + 主路线到分支: 璃月9-2 → 璃月9-3-1 + 分支到主路线: 璃月9-3-1 → 璃月9-4 + 主路线连接: 璃月9-1 → 璃月9-2 + 主路线连接: 璃月9-2 → 璃月9-4 + +处理区域: 稻妻1 + 主路线: 稻妻1-1 (路线1) + 主路线: 稻妻1-2 (路线2) + 主路线: 稻妻1-3 (路线3) + 主路线: 稻妻1-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 稻妻1-1 → 稻妻1-2 + 主路线连接: 稻妻1-2 → 稻妻1-3 + 主路线连接: 稻妻1-3 → 稻妻1-4 + +处理区域: 稻妻2 + 主路线: 稻妻2-1 (路线1) + 主路线: 稻妻2-2 (路线2) + 主路线: 稻妻2-3 (路线3) + 主路线: 稻妻2-4 (路线4) + 主路线: 稻妻2-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 稻妻2-1 → 稻妻2-2 + 主路线连接: 稻妻2-2 → 稻妻2-3 + 主路线连接: 稻妻2-3 → 稻妻2-4 + 主路线连接: 稻妻2-4 → 稻妻2-5 + +处理区域: 稻妻3 + 主路线: 稻妻3-1 (路线1) + 主路线: 稻妻3-2 (路线2) + 主路线: 稻妻3-3 (路线3) + 主路线: 稻妻3-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 稻妻3-1 → 稻妻3-2 + 主路线连接: 稻妻3-2 → 稻妻3-3 + 主路线连接: 稻妻3-3 → 稻妻3-4 + +处理区域: 稻妻4 + 主路线: 稻妻4-1 (路线1) + 主路线: 稻妻4-2 (路线2) + 主路线: 稻妻4-3 (路线3) + 主路线: 稻妻4-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 稻妻4-1 → 稻妻4-2 + 主路线连接: 稻妻4-2 → 稻妻4-3 + 主路线连接: 稻妻4-3 → 稻妻4-4 + +处理区域: 稻妻5 + 主路线: 稻妻5-1 (路线1) + 主路线: 稻妻5-2 (路线2) + 主路线: 稻妻5-3 (路线3) + 主路线: 稻妻5-4 (路线4) + 主路线: 稻妻5-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 稻妻5-1 → 稻妻5-2 + 主路线连接: 稻妻5-2 → 稻妻5-3 + 主路线连接: 稻妻5-3 → 稻妻5-4 + 主路线连接: 稻妻5-4 → 稻妻5-5 + +处理区域: 须弥1 + 主路线: 须弥1-1 (路线1) + 主路线: 须弥1-2 (路线2) + 主路线: 须弥1-3 (路线3) + 主路线: 须弥1-4 (路线4) + 主路线: 须弥1-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 须弥1-1 → 须弥1-2 + 主路线连接: 须弥1-2 → 须弥1-3 + 主路线连接: 须弥1-3 → 须弥1-4 + 主路线连接: 须弥1-4 → 须弥1-5 + +处理区域: 须弥10 + 主路线: 须弥10-1 (路线1) + 主路线: 须弥10-2 (路线2) + 主路线: 须弥10-3 (路线3) + 主路线: 须弥10-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 须弥10-1 → 须弥10-2 + 主路线连接: 须弥10-2 → 须弥10-3 + 主路线连接: 须弥10-3 → 须弥10-4 + +处理区域: 须弥2 + 主路线: 须弥2-1 (路线1) + 主路线: 须弥2-2 (路线2) + 主路线: 须弥2-3 (路线3) + 主路线: 须弥2-4 (路线4) + 主路线: 须弥2-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 须弥2-1 → 须弥2-2 + 主路线连接: 须弥2-2 → 须弥2-3 + 主路线连接: 须弥2-3 → 须弥2-4 + 主路线连接: 须弥2-4 → 须弥2-5 + +处理区域: 须弥3 + 主路线: 须弥3-1 (路线1) + 主路线: 须弥3-2 (路线2) + 主路线: 须弥3-3 (路线3) + 主路线: 须弥3-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 须弥3-1 → 须弥3-2 + 主路线连接: 须弥3-2 → 须弥3-3 + 主路线连接: 须弥3-3 → 须弥3-4 + +处理区域: 须弥4 + 主路线: 须弥4-1 (路线1) + 主路线: 须弥4-2 (路线2) + 主路线: 须弥4-3 (路线3) + 主路线: 须弥4-4 (路线4) + 主路线: 须弥4-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 须弥4-1 → 须弥4-2 + 主路线连接: 须弥4-2 → 须弥4-3 + 主路线连接: 须弥4-3 → 须弥4-4 + 主路线连接: 须弥4-4 → 须弥4-5 + +处理区域: 须弥5 + 主路线: 须弥5-1 (路线1) + 主路线: 须弥5-2 (路线2) + 主路线: 须弥5-3 (路线3) + 主路线: 须弥5-4 (路线4) + 主路线: 须弥5-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 须弥5-1 → 须弥5-2 + 主路线连接: 须弥5-2 → 须弥5-3 + 主路线连接: 须弥5-3 → 须弥5-4 + 主路线连接: 须弥5-4 → 须弥5-5 + +处理区域: 须弥6 + 主路线: 须弥6-1 (路线1) + 主路线: 须弥6-2 (路线2) + 主路线: 须弥6-3 (路线3) + 主路线: 须弥6-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 须弥6-1 → 须弥6-2 + 主路线连接: 须弥6-2 → 须弥6-3 + 主路线连接: 须弥6-3 → 须弥6-4 + +处理区域: 须弥8 + 主路线: 须弥8-1 (路线1) + 主路线: 须弥8-2 (路线2) + 主路线: 须弥8-3 (路线3) + 主路线: 须弥8-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 须弥8-1 → 须弥8-2 + 主路线连接: 须弥8-2 → 须弥8-3 + 主路线连接: 须弥8-3 → 须弥8-4 + +处理区域: 须弥9 + 主路线: 须弥9-1 (路线1) + 主路线: 须弥9-2 (路线2) + 主路线: 须弥9-3 (路线3) + 主路线: 须弥9-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 须弥9-1 → 须弥9-2 + 主路线连接: 须弥9-2 → 须弥9-3 + 主路线连接: 须弥9-3 → 须弥9-4 + +处理区域: 枫丹1 + 主路线: 枫丹1-1 (路线1) + 主路线: 枫丹1-2 (路线2) + 主路线: 枫丹1-3 (路线3) + 主路线: 枫丹1-4 (路线4) + 主路线: 枫丹1-5 (路线5) + 找到 5 个主路线,0 个分支组 + 主路线连接: 枫丹1-1 → 枫丹1-2 + 主路线连接: 枫丹1-2 → 枫丹1-3 + 主路线连接: 枫丹1-3 → 枫丹1-4 + 主路线连接: 枫丹1-4 → 枫丹1-5 + +处理区域: 枫丹2 + 主路线: 枫丹2-1 (路线1) + 主路线: 枫丹2-2 (路线2) + 主路线: 枫丹2-3 (路线3) + 主路线: 枫丹2-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 枫丹2-1 → 枫丹2-2 + 主路线连接: 枫丹2-2 → 枫丹2-3 + 主路线连接: 枫丹2-3 → 枫丹2-4 + +处理区域: 枫丹3 + 主路线: 枫丹3-1 (路线1) + 主路线: 枫丹3-2 (路线2) + 主路线: 枫丹3-3 (路线3) + 主路线: 枫丹3-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 枫丹3-1 → 枫丹3-2 + 主路线连接: 枫丹3-2 → 枫丹3-3 + 主路线连接: 枫丹3-3 → 枫丹3-4 + +处理区域: 枫丹4 + 主路线: 枫丹4-1 (路线1) + 主路线: 枫丹4-2 (路线2) + 主路线: 枫丹4-3 (路线3) + 主路线: 枫丹4-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 枫丹4-1 → 枫丹4-2 + 主路线连接: 枫丹4-2 → 枫丹4-3 + 主路线连接: 枫丹4-3 → 枫丹4-4 + +处理区域: 枫丹5 + 主路线: 枫丹5-1 (路线1) + 主路线: 枫丹5-2 (路线2) + 主路线: 枫丹5-3 (路线3) + 主路线: 枫丹5-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 枫丹5-1 → 枫丹5-2 + 主路线连接: 枫丹5-2 → 枫丹5-3 + 主路线连接: 枫丹5-3 → 枫丹5-4 + +处理区域: 枫丹6 + 主路线: 枫丹6-1 (路线1) + 主路线: 枫丹6-2 (路线2) + 主路线: 枫丹6-3 (路线3) + 主路线: 枫丹6-4 (路线4) + 主路线: 枫丹6-5 (路线5) + 主路线: 枫丹6-6 (路线6) + 找到 6 个主路线,0 个分支组 + 主路线连接: 枫丹6-1 → 枫丹6-2 + 主路线连接: 枫丹6-2 → 枫丹6-3 + 主路线连接: 枫丹6-3 → 枫丹6-4 + 主路线连接: 枫丹6-4 → 枫丹6-5 + 主路线连接: 枫丹6-5 → 枫丹6-6 + +处理区域: 纳塔1 + 主路线: 纳塔1-1 (路线1) + 主路线: 纳塔1-2 (路线2) + 主路线: 纳塔1-3 (路线3) + 主路线: 纳塔1-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 纳塔1-1 → 纳塔1-2 + 主路线连接: 纳塔1-2 → 纳塔1-3 + 主路线连接: 纳塔1-3 → 纳塔1-4 + +处理区域: 纳塔10 + 主路线: 纳塔10-1 (路线1) + 主路线: 纳塔10-2 (路线2) + 主路线: 纳塔10-3 (路线3) + 主路线: 纳塔10-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 纳塔10-1 → 纳塔10-2 + 主路线连接: 纳塔10-2 → 纳塔10-3 + 主路线连接: 纳塔10-3 → 纳塔10-4 + +处理区域: 纳塔2 + 主路线: 纳塔2-1 (路线1) + 主路线: 纳塔2-2 (路线2) + 主路线: 纳塔2-3 (路线3) + 主路线: 纳塔2-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 纳塔2-1 → 纳塔2-2 + 主路线连接: 纳塔2-2 → 纳塔2-3 + 主路线连接: 纳塔2-3 → 纳塔2-4 + +处理区域: 纳塔3 + 主路线: 纳塔3-1 (路线1) + 主路线: 纳塔3-2 (路线2) + 主路线: 纳塔3-3 (路线3) + 主路线: 纳塔3-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 纳塔3-1 → 纳塔3-2 + 主路线连接: 纳塔3-2 → 纳塔3-3 + 主路线连接: 纳塔3-3 → 纳塔3-4 + +处理区域: 纳塔4 + 主路线: 纳塔4-1 (路线1) + 主路线: 纳塔4-2 (路线2) + 找到 2 个主路线,0 个分支组 + 主路线连接: 纳塔4-1 → 纳塔4-2 + +处理区域: 纳塔5 + 主路线: 纳塔5-1 (路线1) + 主路线: 纳塔5-2 (路线2) + 主路线: 纳塔5-3 (路线3) + 找到 3 个主路线,0 个分支组 + 主路线连接: 纳塔5-1 → 纳塔5-2 + 主路线连接: 纳塔5-2 → 纳塔5-3 + +处理区域: 纳塔6 + 主路线: 纳塔6-1 (路线1) + 主路线: 纳塔6-2 (路线2) + 主路线: 纳塔6-3 (路线3) + 主路线: 纳塔6-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 纳塔6-1 → 纳塔6-2 + 主路线连接: 纳塔6-2 → 纳塔6-3 + 主路线连接: 纳塔6-3 → 纳塔6-4 + +处理区域: 纳塔7 + 主路线: 纳塔7-1 (路线1) + 主路线: 纳塔7-2 (路线2) + 主路线: 纳塔7-3 (路线3) + 找到 3 个主路线,0 个分支组 + 主路线连接: 纳塔7-1 → 纳塔7-2 + 主路线连接: 纳塔7-2 → 纳塔7-3 + +处理区域: 纳塔8 + 主路线: 纳塔8-1 (路线1) + 主路线: 纳塔8-2 (路线2) + 主路线: 纳塔8-3 (路线3) + 找到 3 个主路线,0 个分支组 + 主路线连接: 纳塔8-1 → 纳塔8-2 + 主路线连接: 纳塔8-2 → 纳塔8-3 + +处理区域: 纳塔9 + 主路线: 纳塔9-1 (路线1) + 主路线: 纳塔9-2 (路线2) + 主路线: 纳塔9-3 (路线3) + 主路线: 纳塔9-4 (路线4) + 找到 4 个主路线,0 个分支组 + 主路线连接: 纳塔9-1 → 纳塔9-2 + 主路线连接: 纳塔9-2 → 纳塔9-3 + 主路线连接: 纳塔9-3 → 纳塔9-4 + +总共创建了 171 条顺序边 + +重新排序所有边... + +已生成新的数据结构: C:\Users\root\Documents\BetterGI\bettergi-scripts-list\repo\js\AutoLeyLineOutcrop\LeyLineOutcropData.json +传送点数量: 92 +地脉花数量: 218 +总节点数量: 310 +传送点到地脉花边数量: 318 +节点间顺序边数量: 171 +总边数量: 318 +区域排序顺序: 蒙德, 璃月, 稻妻, 须弥, 枫丹, 纳塔 +Traceback (most recent call last): + File "C:\Users\root\Documents\BetterGI\bettergi-scripts-list\repo\js\AutoLeyLineOutcrop\generate_data_format.py", line 883, in + generate_new_data_structure_from_pathing() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "C:\Users\root\Documents\BetterGI\bettergi-scripts-list\repo\js\AutoLeyLineOutcrop\generate_data_format.py", line 597, in generate_new_data_structure_from_pathing + print("\n\u2713 所有目标点都至少有一条入边") + ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +UnicodeEncodeError: 'gbk' codec can't encode character '\u2713' in position 2: illegal multibyte sequence diff --git a/repo/js/AutoLeyLineOutcrop/output_new.txt b/repo/js/AutoLeyLineOutcrop/output_new.txt new file mode 100644 index 00000000..bf0f450f --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/output_new.txt @@ -0,0 +1,1001 @@ +第一遍:读取路径文件并创建节点... + 创建传送点: ID=1, 区域=枫丹, 坐标=(4146.91, 2606.27) + 创建传送点: ID=2, 区域=枫丹, 坐标=(4375.5, 2280.05) + 创建传送点: ID=3, 区域=枫丹, 坐标=(4984.79, 4462.98) + 创建传送点: ID=4, 区域=枫丹, 坐标=(4498.18, 4710.79) + 创建传送点: ID=5, 区域=枫丹, 坐标=(4624.36, 4951.78) + 创建传送点: ID=6, 区域=枫丹, 坐标=(2873.54, 3512.04) + 创建传送点: ID=7, 区域=枫丹, 坐标=(3032.66, 3732.42) + 创建传送点: ID=8, 区域=枫丹, 坐标=(3917.29, 2576.43) + 创建传送点: ID=9, 区域=枫丹, 坐标=(4749.59, 2636.21) + 创建传送点: ID=10, 区域=枫丹, 坐标=(4689.61, 2429.43) + 创建传送点: ID=11, 区域=枫丹, 坐标=(4626.1, 2182.3) + 创建传送点: ID=12, 区域=璃月, 坐标=(207.48, 1573.01) + 创建传送点: ID=13, 区域=璃月, 坐标=(-321.55, 1473.33) + 创建传送点: ID=14, 区域=璃月, 坐标=(897.84, 583.5) + 创建传送点: ID=15, 区域=璃月, 坐标=(1045.53, 950.63) + 创建传送点: ID=16, 区域=璃月, 坐标=(341.33, 548.08) + 创建传送点: ID=17, 区域=璃月, 坐标=(839.82, 1532.39) + 创建传送点: ID=18, 区域=璃月, 坐标=(489.8, 1435.14) + 创建传送点: ID=19, 区域=璃月, 坐标=(253.05, 1284.9) + 创建传送点: ID=20, 区域=璃月, 坐标=(2257.04, 934.92) + 创建传送点: ID=21, 区域=璃月, 坐标=(1433.37, 1288.0) + 创建传送点: ID=22, 区域=璃月, 坐标=(-164.59, 1182.45) + 创建传送点: ID=23, 区域=璃月, 坐标=(-188.52, 972.43) + 创建传送点: ID=24, 区域=璃月, 坐标=(-57.41, 656.93) + 创建传送点: ID=25, 区域=璃月, 坐标=(26.02, -112.29) + 创建传送点: ID=26, 区域=璃月, 坐标=(173.88, 389.47) + 创建传送点: ID=27, 区域=璃月, 坐标=(710.68, -772.49) + 创建传送点: ID=28, 区域=璃月, 坐标=(978.65, -353.56) + 创建传送点: ID=29, 区域=璃月, 坐标=(611.74, -284.65) + 创建传送点: ID=30, 区域=璃月, 坐标=(837.46, 235.15) + 创建传送点: ID=31, 区域=璃月, 坐标=(876.75, 587.25) + 创建传送点: ID=32, 区域=璃月, 坐标=(1665.91, 386.6) + 创建传送点: ID=33, 区域=璃月, 坐标=(1152.67, 141.57) + 创建传送点: ID=34, 区域=璃月, 坐标=(1389.08, 516.44) + 创建传送点: ID=35, 区域=稻妻, 坐标=(-4217.89, -2397.87) + 创建传送点: ID=36, 区域=稻妻, 坐标=(-4408.91, -2395.34) + 创建传送点: ID=37, 区域=稻妻, 坐标=(-3016.79, -3623.7) + 创建传送点: ID=38, 区域=稻妻, 坐标=(-3233.21, -3534.22) + 创建传送点: ID=39, 区域=稻妻, 坐标=(-3393.16, -3555.99) + 创建传送点: ID=40, 区域=稻妻, 坐标=(-3437.06, -3319.78) + 创建传送点: ID=41, 区域=稻妻, 坐标=(-2224.14, -4004.16) + 创建传送点: ID=42, 区域=稻妻, 坐标=(-1058.01, -3948.66) + 创建传送点: ID=43, 区域=稻妻, 坐标=(-1315.93, -3774.25) + 创建传送点: ID=44, 区域=稻妻, 坐标=(-3891.55, -4389.92) + 创建传送点: ID=45, 区域=稻妻, 坐标=(-3684.76, -4278.4) + 创建传送点: ID=46, 区域=纳塔, 坐标=(7796.08, -1873.18) + 创建传送点: ID=47, 区域=纳塔, 坐标=(7857.47, -1751.25) + 创建传送点: ID=48, 区域=纳塔, 坐标=(8291.35, -2922.46) + 创建传送点: ID=49, 区域=纳塔, 坐标=(8744.65, -3009.56) + 创建传送点: ID=50, 区域=纳塔, 坐标=(8706.46, -1575.02) + 创建传送点: ID=51, 区域=纳塔, 坐标=(8670.84, -1269.72) + 创建传送点: ID=52, 区域=纳塔, 坐标=(8201.95, -2288.75) + 创建传送点: ID=53, 区域=纳塔, 坐标=(8372.19, -2196.26) + 创建传送点: ID=54, 区域=纳塔, 坐标=(9038.74, -2429.33) + 创建传送点: ID=55, 区域=纳塔, 坐标=(9812.76, -2852.58) + 创建传送点: ID=56, 区域=纳塔, 坐标=(9282.7, -2163.58) + 创建传送点: ID=57, 区域=纳塔, 坐标=(9989.5, -1607.82) + 创建传送点: ID=58, 区域=纳塔, 坐标=(9548.24, -1116.54) + 创建传送点: ID=59, 区域=纳塔, 坐标=(9719.22, -851.99) + 创建传送点: ID=60, 区域=纳塔, 坐标=(9839.57, -1290.01) + 创建传送点: ID=61, 区域=蒙德, 坐标=(-1166.84, 2132.83) + 创建传送点: ID=62, 区域=蒙德, 坐标=(-1266.59, 1933.52) + 创建传送点: ID=63, 区域=蒙德, 坐标=(-914.82, 1795.51) + 创建传送点: ID=64, 区域=蒙德, 坐标=(-663.61, 1709.65) + 创建传送点: ID=65, 区域=蒙德, 坐标=(-578.76, 1853.42) + 创建传送点: ID=66, 区域=蒙德, 坐标=(-251.66, 2256.55) + 创建传送点: ID=67, 区域=蒙德, 坐标=(-385.84, 2297.22) + 创建传送点: ID=68, 区域=蒙德, 坐标=(-440.09, 2580.75) + 创建传送点: ID=69, 区域=蒙德, 坐标=(177.18, 2647.07) + 创建传送点: ID=70, 区域=蒙德, 坐标=(265.6, 2915.02) + 创建传送点: ID=71, 区域=蒙德, 坐标=(-1505.87, 2296.26) + 创建传送点: ID=72, 区域=蒙德, 坐标=(-1330.15, 2563.86) + 创建传送点: ID=73, 区域=蒙德, 坐标=(-1273.84, 2721.72) + 创建传送点: ID=74, 区域=蒙德, 坐标=(-1629.44, 2834.36) + 创建传送点: ID=75, 区域=蒙德, 坐标=(-1867.21, 1331.21) + 创建传送点: ID=76, 区域=蒙德, 坐标=(-1432.63, 1464.61) + 创建传送点: ID=77, 区域=须弥, 坐标=(2342.31, -4.68) + 创建传送点: ID=78, 区域=须弥, 坐标=(6615.13, 724.95) + 创建传送点: ID=79, 区域=须弥, 坐标=(6339.59, 738.39) + 创建传送点: ID=80, 区域=须弥, 坐标=(2806.54, -1790.45) + 创建传送点: ID=81, 区域=须弥, 坐标=(2980.23, -1758.59) + 创建传送点: ID=82, 区域=须弥, 坐标=(3199.51, -911.7) + 创建传送点: ID=83, 区域=须弥, 坐标=(3252.87, -591.25) + 创建传送点: ID=84, 区域=须弥, 坐标=(3402.18, -1175.26) + 创建传送点: ID=85, 区域=须弥, 坐标=(3473.06, -1573.53) + 创建传送点: ID=86, 区域=须弥, 坐标=(3639.36, -1416.85) + 创建传送点: ID=87, 区域=须弥, 坐标=(4409.72, -1874.67) + 创建传送点: ID=88, 区域=须弥, 坐标=(4470.72, -2915.3) + 创建传送点: ID=89, 区域=须弥, 坐标=(4790.78, -3182.65) + 创建传送点: ID=90, 区域=须弥, 坐标=(4810.42, -2732.88) + 创建传送点: ID=91, 区域=须弥, 坐标=(5759.42, -1307.6) + 创建传送点: ID=92, 区域=须弥, 坐标=(4592.2, -647.56) + +第二遍:读取target文件并创建目标节点... + 创建目标点: ID=1000, 区域=枫丹1-1, 坐标=(4183.27, 2502.37) + 创建目标点: ID=1001, 区域=枫丹1-2, 坐标=(4190.03, 2426.41) + 创建目标点: ID=1002, 区域=枫丹1-3, 坐标=(4246.28, 2374.05) + 创建目标点: ID=1003, 区域=枫丹1-4, 坐标=(4299.75, 2232.59) + 创建目标点: ID=1004, 区域=枫丹1-5, 坐标=(4402.53, 2253.27) + 创建目标点: ID=1005, 区域=枫丹2-1, 坐标=(4962.82, 4395.81) + 创建目标点: ID=1006, 区域=枫丹2-2, 坐标=(4952.04, 4468.84) + 创建目标点: ID=1007, 区域=枫丹2-3, 坐标=(5043.36, 4479.99) + 创建目标点: ID=1008, 区域=枫丹2-4, 坐标=(5087.02, 4573.27) + 创建目标点: ID=1009, 区域=枫丹3-1, 坐标=(4556.1, 4762.42) + 创建目标点: ID=1010, 区域=枫丹3-2, 坐标=(4517.81, 4866.48) + 创建目标点: ID=1011, 区域=枫丹3-3, 坐标=(4578.63, 4913.28) + 创建目标点: ID=1012, 区域=枫丹3-4, 坐标=(4679.47, 4977.83) + 创建目标点: ID=1013, 区域=枫丹4-1, 坐标=(2932.47, 3583.9) + 创建目标点: ID=1014, 区域=枫丹4-2, 坐标=(3008.4, 3602.59) + 创建目标点: ID=1015, 区域=枫丹4-3, 坐标=(3077.19, 3602.84) + 创建目标点: ID=1016, 区域=枫丹4-4, 坐标=(3091.8, 3654.75) + 创建目标点: ID=1017, 区域=枫丹5-1, 坐标=(4098.63, 2584.16) + 创建目标点: ID=1018, 区域=枫丹5-2, 坐标=(4063.52, 2564.29) + 创建目标点: ID=1019, 区域=枫丹5-3, 坐标=(3999.66, 2613.18) + 创建目标点: ID=1020, 区域=枫丹5-4, 坐标=(3921.35, 2617.81) + 创建目标点: ID=1021, 区域=枫丹6-1, 坐标=(4760.8, 2574.52) + 创建目标点: ID=1022, 区域=枫丹6-2, 坐标=(4653.67, 2531.89) + 创建目标点: ID=1023, 区域=枫丹6-3, 坐标=(4568.49, 2433.23) + 创建目标点: ID=1024, 区域=枫丹6-4, 坐标=(4553.51, 2358.49) + 创建目标点: ID=1025, 区域=枫丹6-5, 坐标=(4607.46, 2316.58) + 创建目标点: ID=1026, 区域=枫丹6-6, 坐标=(4700.14, 2393.35) + 创建目标点: ID=1027, 区域=璃月1-1, 坐标=(73.73, 1496.59) + 创建目标点: ID=1028, 区域=璃月1-2, 坐标=(-12.62, 1566.51) + 创建目标点: ID=1029, 区域=璃月1-3, 坐标=(-81.76, 1534.73) + 创建目标点: ID=1030, 区域=璃月1-4, 坐标=(-28.76, 1417.37) + 创建目标点: ID=1031, 区域=璃月10-1, 坐标=(1046.34, 662.76) + 创建目标点: ID=1032, 区域=璃月10-2, 坐标=(892.5, 748.02) + 创建目标点: ID=1033, 区域=璃月10-3, 坐标=(594.3, 437.83) + 创建目标点: ID=1034, 区域=璃月10-4, 坐标=(683.19, 529.0) + 创建目标点: ID=1035, 区域=璃月10-5, 坐标=(455.4, 546.56) + 创建目标点: ID=1036, 区域=璃月11-1, 坐标=(802.19, 1634.03) + 创建目标点: ID=1037, 区域=璃月11-2, 坐标=(697.31, 1551.84) + 创建目标点: ID=1038, 区域=璃月11-3, 坐标=(646.5, 1421.98) + 创建目标点: ID=1039, 区域=璃月11-4, 坐标=(632.03, 1331.15) + 创建目标点: ID=1040, 区域=璃月11-5, 坐标=(558.31, 1437.82) + 创建目标点: ID=1041, 区域=璃月11-6, 坐标=(285.79, 1457.93) + 创建目标点: ID=1042, 区域=璃月13-1, 坐标=(2254.49, 970.92) + 创建目标点: ID=1043, 区域=璃月13-2, 坐标=(2252.54, 898.21) + 创建目标点: ID=1044, 区域=璃月13-3, 坐标=(2226.91, 863.09) + 创建目标点: ID=1045, 区域=璃月13-4, 坐标=(2028.69, 830.67) + 创建目标点: ID=1046, 区域=璃月14-1, 坐标=(1614.21, 1382.09) + 创建目标点: ID=1047, 区域=璃月14-2, 坐标=(1581.57, 1437.1) + 创建目标点: ID=1048, 区域=璃月14-3, 坐标=(1563.45, 1487.35) + 创建目标点: ID=1049, 区域=璃月14-4, 坐标=(1525.0, 1549.17) + 创建目标点: ID=1050, 区域=璃月2-1, 坐标=(-194.85, 1163.89) + 创建目标点: ID=1051, 区域=璃月2-2, 坐标=(32.81, 1118.31) + 创建目标点: ID=1052, 区域=璃月2-3, 坐标=(-24.14, 931.71) + 创建目标点: ID=1053, 区域=璃月2-4, 坐标=(-10.67, 683.67) + 创建目标点: ID=1054, 区域=璃月3-1, 坐标=(-55.27, 603.84) + 创建目标点: ID=1055, 区域=璃月3-2, 坐标=(139.9, 685.26) + 创建目标点: ID=1056, 区域=璃月3-3, 坐标=(284.12, 620.66) + 创建目标点: ID=1057, 区域=璃月3-4, 坐标=(276.12, 542.51) + 注意: 坐标 (456.0, 546.29) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1058, 区域=璃月3-5, 坐标=(456.0, 546.29) + 创建目标点: ID=1059, 区域=璃月4-1, 坐标=(-7.16, -48.77) + 创建目标点: ID=1060, 区域=璃月4-2, 坐标=(101.14, -2.97) + 创建目标点: ID=1061, 区域=璃月4-3, 坐标=(127.05, 113.87) + 创建目标点: ID=1062, 区域=璃月4-4, 坐标=(146.03, 220.07) + 创建目标点: ID=1063, 区域=璃月4-5, 坐标=(262.65, 357.85) + 注意: 坐标 (276.55, 543.11) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1064, 区域=璃月4-6, 坐标=(276.55, 543.11) + 注意: 坐标 (456.44, 546.35) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (456.44, 546.35) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1065, 区域=璃月4-7, 坐标=(456.44, 546.35) + 创建目标点: ID=1066, 区域=璃月5-1, 坐标=(773.08, -928.68) + 创建目标点: ID=1067, 区域=璃月5-2, 坐标=(885.79, -780.15) + 创建目标点: ID=1068, 区域=璃月5-3, 坐标=(1063.54, -727.34) + 创建目标点: ID=1069, 区域=璃月5-4-1, 坐标=(936.52, -489.9) + 创建目标点: ID=1070, 区域=璃月7-1, 坐标=(824.28, -325.68) + 创建目标点: ID=1071, 区域=璃月7-2, 坐标=(721.94, -106.43) + 创建目标点: ID=1072, 区域=璃月7-3, 坐标=(752.42, 3.88) + 创建目标点: ID=1073, 区域=璃月7-4, 坐标=(815.03, 136.35) + 注意: 坐标 (681.46, 528.76) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1074, 区域=璃月7-5, 坐标=(681.46, 528.76) + 注意: 坐标 (455.4, 546.56) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (455.4, 546.56) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (455.4, 546.56) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1075, 区域=璃月7-6, 坐标=(455.4, 546.56) + 创建目标点: ID=1076, 区域=璃月8-1, 坐标=(1627.15, 303.83) + 创建目标点: ID=1077, 区域=璃月8-2, 坐标=(1333.25, 266.26) + 创建目标点: ID=1078, 区域=璃月8-3, 坐标=(1160.17, 86.75) + 创建目标点: ID=1079, 区域=璃月8-4, 坐标=(972.68, 98.66) + 注意: 坐标 (815.31, 137.31) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1080, 区域=璃月8-5, 坐标=(815.31, 137.31) + 注意: 坐标 (683.33, 529.05) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (683.33, 529.05) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1081, 区域=璃月8-6, 坐标=(683.33, 529.05) + 注意: 坐标 (455.84, 546.39) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (455.84, 546.39) 附近有另一个区域的节点,但将创建新节点 + 注意: 坐标 (455.84, 546.39) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1082, 区域=璃月8-7, 坐标=(455.84, 546.39) + 创建目标点: ID=1083, 区域=璃月9-1, 坐标=(1484.37, 458.69) + 创建目标点: ID=1084, 区域=璃月9-2, 坐标=(1445.77, 577.83) + 创建目标点: ID=1085, 区域=璃月9-3-1, 坐标=(1561.48, 483.03) + 注意: 坐标 (1561.71, 483.58) 与已存在节点 '璃月9-3-1' 区域基本部分相同,视为同一节点 + 创建目标点: ID=1086, 区域=璃月9-4, 坐标=(1686.66, 567.55) + 创建目标点: ID=1087, 区域=稻妻1-1, 坐标=(-4309.58, -2288.5) + 创建目标点: ID=1088, 区域=稻妻1-2, 坐标=(-4401.19, -2226.96) + 创建目标点: ID=1089, 区域=稻妻1-3, 坐标=(-4509.57, -2332.11) + 创建目标点: ID=1090, 区域=稻妻1-4, 坐标=(-4549.96, -2399.98) + 创建目标点: ID=1091, 区域=稻妻2-1, 坐标=(-3007.64, -3515.28) + 创建目标点: ID=1092, 区域=稻妻2-2, 坐标=(-3153.03, -3485.5) + 创建目标点: ID=1093, 区域=稻妻2-3, 坐标=(-3328.99, -3561.28) + 创建目标点: ID=1094, 区域=稻妻2-4, 坐标=(-3429.72, -3419.55) + 创建目标点: ID=1095, 区域=稻妻2-5, 坐标=(-3340.38, -3237.16) + 创建目标点: ID=1096, 区域=稻妻3-1, 坐标=(-2270.07, -4068.21) + 创建目标点: ID=1097, 区域=稻妻3-2, 坐标=(-2280.61, -4171.18) + 创建目标点: ID=1098, 区域=稻妻3-3, 坐标=(-2169.62, -4076.36) + 创建目标点: ID=1099, 区域=稻妻3-4, 坐标=(-2211.44, -4033.62) + 创建目标点: ID=1100, 区域=稻妻4-1, 坐标=(-1120.06, -3962.66) + 创建目标点: ID=1101, 区域=稻妻4-2, 坐标=(-1190.51, -3902.08) + 创建目标点: ID=1102, 区域=稻妻4-3, 坐标=(-1254.7, -3839.91) + 创建目标点: ID=1103, 区域=稻妻4-4, 坐标=(-1322.41, -3815.69) + 创建目标点: ID=1104, 区域=稻妻5-1, 坐标=(-3908.27, -4290.55) + 创建目标点: ID=1105, 区域=稻妻5-2, 坐标=(-3850.61, -4241.9) + 创建目标点: ID=1106, 区域=稻妻5-3, 坐标=(-3763.54, -4259.14) + 创建目标点: ID=1107, 区域=稻妻5-4, 坐标=(-3703.34, -4343.16) + 创建目标点: ID=1108, 区域=稻妻5-5, 坐标=(-3671.61, -4414.03) + 创建目标点: ID=1109, 区域=纳塔1-1, 坐标=(7864.95, -1823.96) + 创建目标点: ID=1110, 区域=纳塔1-2, 坐标=(7945.72, -1744.08) + 创建目标点: ID=1111, 区域=纳塔1-3, 坐标=(7932.2, -1616.37) + 创建目标点: ID=1112, 区域=纳塔1-4, 坐标=(7853.72, -1554.26) + 创建目标点: ID=1113, 区域=纳塔10-1, 坐标=(8361.82, -2993.79) + 创建目标点: ID=1114, 区域=纳塔10-2, 坐标=(8496.07, -3018.4) + 创建目标点: ID=1115, 区域=纳塔10-3, 坐标=(8587.99, -3022.4) + 创建目标点: ID=1116, 区域=纳塔10-4, 坐标=(8879.8, -3059.26) + 创建目标点: ID=1117, 区域=纳塔2-1, 坐标=(8604.22, -1635.22) + 创建目标点: ID=1118, 区域=纳塔2-2, 坐标=(8657.57, -1501.26) + 创建目标点: ID=1119, 区域=纳塔2-3, 坐标=(8733.62, -1528.95) + 创建目标点: ID=1120, 区域=纳塔2-4, 坐标=(8588.9, -1373.62) + 创建目标点: ID=1121, 区域=纳塔3-1, 坐标=(8312.07, -2344.44) + 创建目标点: ID=1122, 区域=纳塔3-2, 坐标=(8429.86, -2328.47) + 创建目标点: ID=1123, 区域=纳塔3-3, 坐标=(8291.29, -2096.67) + 创建目标点: ID=1124, 区域=纳塔3-4, 坐标=(8088.21, -2053.56) + 创建目标点: ID=1125, 区域=纳塔4-1, 坐标=(9028.67, -2342.6) + 创建目标点: ID=1126, 区域=纳塔4-2, 坐标=(9090.71, -2407.11) + 创建目标点: ID=1127, 区域=纳塔5-1, 坐标=(9687.15, -2898.19) + 创建目标点: ID=1128, 区域=纳塔5-2, 坐标=(9754.7, -2904.43) + 创建目标点: ID=1129, 区域=纳塔5-3, 坐标=(9778.7, -2856.31) + 创建目标点: ID=1130, 区域=纳塔6-1, 坐标=(9231.08, -2154.74) + 创建目标点: ID=1131, 区域=纳塔6-2, 坐标=(9110.86, -2222.48) + 创建目标点: ID=1132, 区域=纳塔6-3, 坐标=(8945.55, -2138.43) + 创建目标点: ID=1133, 区域=纳塔6-4, 坐标=(8810.08, -2077.83) + 创建目标点: ID=1134, 区域=纳塔7-1, 坐标=(9999.51, -1570.23) + 创建目标点: ID=1135, 区域=纳塔7-2, 坐标=(9963.8, -1511.61) + 创建目标点: ID=1136, 区域=纳塔7-3, 坐标=(9907.78, -1424.0) + 创建目标点: ID=1137, 区域=纳塔8-1, 坐标=(9636.29, -1038.41) + 创建目标点: ID=1138, 区域=纳塔8-2, 坐标=(9517.92, -1029.8) + 创建目标点: ID=1139, 区域=纳塔8-3, 坐标=(9472.28, -771.8) + 创建目标点: ID=1140, 区域=纳塔9-1, 坐标=(9920.8, -1196.25) + 创建目标点: ID=1141, 区域=纳塔9-2, 坐标=(9888.22, -1046.55) + 创建目标点: ID=1142, 区域=纳塔9-3, 坐标=(9938.82, -933.87) + 创建目标点: ID=1143, 区域=纳塔9-4, 坐标=(9984.24, -876.43) + 创建目标点: ID=1144, 区域=蒙德1-1, 坐标=(-1298.03, 2172.37) + 创建目标点: ID=1145, 区域=蒙德1-2, 坐标=(-1223.18, 2032.04) + 创建目标点: ID=1146, 区域=蒙德1-3, 坐标=(-1113.87, 1971.9) + 创建目标点: ID=1147, 区域=蒙德1-4, 坐标=(-1041.91, 1927.07) + 创建目标点: ID=1148, 区域=蒙德1-5, 坐标=(-895.08, 1833.84) + 创建目标点: ID=1149, 区域=蒙德2-1, 坐标=(-717.83, 1802.77) + 创建目标点: ID=1150, 区域=蒙德2-2, 坐标=(-523.76, 1813.84) + 创建目标点: ID=1151, 区域=蒙德2-3, 坐标=(-420.36, 1998.11) + 创建目标点: ID=1152, 区域=蒙德2-4-1, 坐标=(-347.95, 1902.51) + 创建目标点: ID=1153, 区域=蒙德2-4-2, 坐标=(-319.46, 2156.93) + 注意: 坐标 (-319.46, 2156.93) 与已存在节点 '蒙德2-4-2' 区域基本部分相同,视为同一节点 + 注意: 坐标 (-319.57, 2156.48) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1154, 区域=蒙德2-5-1, 坐标=(-319.57, 2156.48) + 创建目标点: ID=1155, 区域=蒙德3-1, 坐标=(-281.79, 2310.78) + 创建目标点: ID=1156, 区域=蒙德3-2, 坐标=(-205.49, 2429.07) + 创建目标点: ID=1157, 区域=蒙德3-3, 坐标=(-327.03, 2410.43) + 创建目标点: ID=1158, 区域=蒙德3-4, 坐标=(-336.15, 2562.91) + 创建目标点: ID=1159, 区域=蒙德4-1, 坐标=(241.41, 2703.08) + 创建目标点: ID=1160, 区域=蒙德4-2, 坐标=(124.61, 2817.24) + 创建目标点: ID=1161, 区域=蒙德4-3, 坐标=(152.71, 2963.33) + 创建目标点: ID=1162, 区域=蒙德4-4, 坐标=(-27.99, 2919.59) + 创建目标点: ID=1163, 区域=蒙德5-1, 坐标=(-1453.46, 2282.88) + 创建目标点: ID=1164, 区域=蒙德5-2, 坐标=(-1367.78, 2411.31) + 创建目标点: ID=1165, 区域=蒙德5-3, 坐标=(-1474.91, 2520.0) + 创建目标点: ID=1166, 区域=蒙德5-4, 坐标=(-1394.83, 2569.65) + 创建目标点: ID=1167, 区域=蒙德5-5, 坐标=(-1316.21, 2734.67) + 创建目标点: ID=1168, 区域=蒙德6-1, 坐标=(-1512.81, 2774.26) + 创建目标点: ID=1169, 区域=蒙德6-2, 坐标=(-1518.71, 2877.4) + 创建目标点: ID=1170, 区域=蒙德6-3, 坐标=(-1603.95, 2865.65) + 创建目标点: ID=1171, 区域=蒙德6-4, 坐标=(-1710.73, 2983.29) + 创建目标点: ID=1172, 区域=蒙德7-1, 坐标=(-1660.63, 1392.87) + 创建目标点: ID=1173, 区域=蒙德7-2, 坐标=(-1517.07, 1513.97) + 创建目标点: ID=1174, 区域=蒙德7-3, 坐标=(-1331.96, 1560.15) + 创建目标点: ID=1175, 区域=蒙德7-4, 坐标=(-1318.63, 1692.63) + 创建目标点: ID=1176, 区域=蒙德7-5, 坐标=(-1138.22, 1789.79) + 注意: 坐标 (-895.08, 1833.84) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1177, 区域=蒙德7-6, 坐标=(-895.08, 1833.84) + 创建目标点: ID=1178, 区域=须弥1-1, 坐标=(2368.79, -92.11) + 创建目标点: ID=1179, 区域=须弥1-2, 坐标=(2317.29, -115.35) + 创建目标点: ID=1180, 区域=须弥1-3, 坐标=(2212.83, -83.02) + 创建目标点: ID=1181, 区域=须弥1-4, 坐标=(2233.8, -160.88) + 创建目标点: ID=1182, 区域=须弥1-5, 坐标=(2269.0, -251.14) + 创建目标点: ID=1183, 区域=须弥10-1, 坐标=(6501.08, 904.25) + 创建目标点: ID=1184, 区域=须弥10-2, 坐标=(6613.41, 784.42) + 创建目标点: ID=1185, 区域=须弥10-3, 坐标=(6692.66, 625.4) + 创建目标点: ID=1186, 区域=须弥10-4, 坐标=(6280.81, 616.8) + 创建目标点: ID=1187, 区域=须弥2-1, 坐标=(2910.46, -1818.57) + 创建目标点: ID=1188, 区域=须弥2-2, 坐标=(2980.38, -1758.57) + 创建目标点: ID=1189, 区域=须弥2-3, 坐标=(3013.06, -1700.54) + 创建目标点: ID=1190, 区域=须弥2-4, 坐标=(2981.92, -1641.54) + 创建目标点: ID=1191, 区域=须弥2-5, 坐标=(2963.07, -1586.92) + 创建目标点: ID=1192, 区域=须弥3-1, 坐标=(3195.78, -806.97) + 创建目标点: ID=1193, 区域=须弥3-2, 坐标=(3233.51, -740.65) + 创建目标点: ID=1194, 区域=须弥3-3, 坐标=(3324.5, -659.02) + 创建目标点: ID=1195, 区域=须弥3-4, 坐标=(3387.39, -664.21) + 创建目标点: ID=1196, 区域=须弥4-1, 坐标=(3381.91, -1231.97) + 创建目标点: ID=1197, 区域=须弥4-2, 坐标=(3355.82, -1318.18) + 创建目标点: ID=1198, 区域=须弥4-3, 坐标=(3466.17, -1318.08) + 创建目标点: ID=1199, 区域=须弥4-4, 坐标=(3504.37, -1500.13) + 创建目标点: ID=1200, 区域=须弥4-5, 坐标=(3721.99, -1507.71) + 创建目标点: ID=1201, 区域=须弥5-1, 坐标=(4345.77, -1793.67) + 创建目标点: ID=1202, 区域=须弥5-2, 坐标=(4257.86, -1903.31) + 创建目标点: ID=1203, 区域=须弥5-3, 坐标=(4144.29, -2014.19) + 注意: 坐标 (4144.18, -2014.48) 附近有另一个区域的节点,但将创建新节点 + 创建目标点: ID=1204, 区域=须弥5-4, 坐标=(4144.18, -2014.48) + 创建目标点: ID=1205, 区域=须弥5-5, 坐标=(4211.01, -2165.65) + 创建目标点: ID=1206, 区域=须弥6-1, 坐标=(4552.75, -2945.07) + 创建目标点: ID=1207, 区域=须弥6-2, 坐标=(4696.5, -3055.9) + 创建目标点: ID=1208, 区域=须弥6-3, 坐标=(4886.54, -2940.45) + 创建目标点: ID=1209, 区域=须弥6-4, 坐标=(4756.03, -2742.32) + 创建目标点: ID=1210, 区域=须弥8-1, 坐标=(5758.76, -1154.57) + 创建目标点: ID=1211, 区域=须弥8-2, 坐标=(5887.09, -1120.65) + 创建目标点: ID=1212, 区域=须弥8-3, 坐标=(5902.11, -1008.25) + 创建目标点: ID=1213, 区域=须弥8-4, 坐标=(5928.09, -922.46) + 创建目标点: ID=1214, 区域=须弥9-1, 坐标=(4555.52, -569.96) + 创建目标点: ID=1215, 区域=须弥9-2, 坐标=(4573.81, -408.86) + 创建目标点: ID=1216, 区域=须弥9-3, 坐标=(4756.13, -221.43) + 创建目标点: ID=1217, 区域=须弥9-4, 坐标=(4862.07, -150.71) + +第三遍:创建边和索引... + 创建边: 1 -> 1000, 路径=assets/pathing/枫丹1-秋分山西侧-1.json + 创建边: 1 -> 1001, 路径=assets/pathing/枫丹1-秋分山西侧-2.json + 创建边: 2 -> 1002, 路径=assets/pathing/枫丹1-秋分山西侧-3.json + 创建边: 2 -> 1003, 路径=assets/pathing/枫丹1-秋分山西侧-4.json + 创建边: 2 -> 1004, 路径=assets/pathing/枫丹1-秋分山西侧-5.json + 创建边: 3 -> 1005, 路径=assets/pathing/枫丹2-芒索斯山东麓-1.json + 创建边: 3 -> 1006, 路径=assets/pathing/枫丹2-芒索斯山东麓-2.json + 创建边: 3 -> 1007, 路径=assets/pathing/枫丹2-芒索斯山东麓-3.json + 创建边: 3 -> 1008, 路径=assets/pathing/枫丹2-芒索斯山东麓-4.json + 创建边: 4 -> 1009, 路径=assets/pathing/枫丹3-新枫丹科学院-1.json + 创建边: 4 -> 1010, 路径=assets/pathing/枫丹3-新枫丹科学院-2.json + 创建边: 5 -> 1011, 路径=assets/pathing/枫丹3-新枫丹科学院-3.json + 创建边: 5 -> 1012, 路径=assets/pathing/枫丹3-新枫丹科学院-4.json + 创建边: 6 -> 1013, 路径=assets/pathing/枫丹4-柔灯港-1.json + 创建边: 7 -> 1014, 路径=assets/pathing/枫丹4-柔灯港-2.json + 创建边: 7 -> 1015, 路径=assets/pathing/枫丹4-柔灯港-3.json + 创建边: 7 -> 1016, 路径=assets/pathing/枫丹4-柔灯港-4.json + 创建边: 1 -> 1017, 路径=assets/pathing/枫丹5-秋分山东侧-1.json + 创建边: 1 -> 1018, 路径=assets/pathing/枫丹5-秋分山东侧-2.json + 创建边: 8 -> 1019, 路径=assets/pathing/枫丹5-秋分山东侧-3.json + 创建边: 8 -> 1020, 路径=assets/pathing/枫丹5-秋分山东侧-4.json + 创建边: 9 -> 1021, 路径=assets/pathing/枫丹6-厄里那斯-1.json + 创建边: 10 -> 1022, 路径=assets/pathing/枫丹6-厄里那斯-2.json + 创建边: 10 -> 1023, 路径=assets/pathing/枫丹6-厄里那斯-3.json + 创建边: 10 -> 1024, 路径=assets/pathing/枫丹6-厄里那斯-4.json + 创建边: 11 -> 1025, 路径=assets/pathing/枫丹6-厄里那斯-5.json + 创建边: 10 -> 1026, 路径=assets/pathing/枫丹6-厄里那斯-6.json + 创建边: 12 -> 1027, 路径=assets/pathing/璃月1-石门-1.json + 创建边: 13 -> 1028, 路径=assets/pathing/璃月1-石门-2.json + 创建边: 14 -> 1031, 路径=assets/pathing/璃月10-绝云间-1.json + 创建边: 15 -> 1032, 路径=assets/pathing/璃月10-绝云间-2.json + 创建边: 16 -> 1033, 路径=assets/pathing/璃月10-绝云间-3.json + 创建边: 16 -> 1075, 路径=assets/pathing/璃月10-绝云间-5.json + 创建边: 17 -> 1036, 路径=assets/pathing/璃月11-轻策庄-1.json + 创建边: 18 -> 1040, 路径=assets/pathing/璃月11-轻策庄-5.json + 创建边: 19 -> 1041, 路径=assets/pathing/璃月11-轻策庄-6.json + 创建边: 20 -> 1042, 路径=assets/pathing/璃月13-悬练山-1.json + 创建边: 20 -> 1043, 路径=assets/pathing/璃月13-悬练山-2.json + 创建边: 21 -> 1046, 路径=assets/pathing/璃月14-药蝶谷-1.json + 创建边: 22 -> 1050, 路径=assets/pathing/璃月2-地中之盐-1.json + 创建边: 22 -> 1051, 路径=assets/pathing/璃月2-地中之盐-2.json + 创建边: 23 -> 1052, 路径=assets/pathing/璃月2-地中之盐-3.json + 创建边: 24 -> 1053, 路径=assets/pathing/璃月2-地中之盐-4.json + 创建边: 24 -> 1054, 路径=assets/pathing/璃月3-瑶光滩-1.json + 创建边: 24 -> 1055, 路径=assets/pathing/璃月3-瑶光滩-2.json + 创建边: 16 -> 1056, 路径=assets/pathing/璃月3-瑶光滩-3.json + 创建边: 16 -> 1057, 路径=assets/pathing/璃月3-瑶光滩-4.json + 创建边: 16 -> 1075, 路径=assets/pathing/璃月3-瑶光滩-5.json + 创建边: 25 -> 1059, 路径=assets/pathing/璃月4-璃月港-1.json + 创建边: 26 -> 1063, 路径=assets/pathing/璃月4-璃月港-5.json + 创建边: 16 -> 1057, 路径=assets/pathing/璃月4-璃月港-6.json + 创建边: 16 -> 1075, 路径=assets/pathing/璃月4-璃月港-7.json + 创建边: 27 -> 1066, 路径=assets/pathing/璃月5-天衡山-1.json + 创建边: 27 -> 1067, 路径=assets/pathing/璃月5-天衡山-2.json + 创建边: 28 -> 1069, 路径=assets/pathing/璃月5-天衡山-4-1.json + 创建边: 28 -> 1070, 路径=assets/pathing/璃月7-遁玉陵-1.json + 创建边: 29 -> 1071, 路径=assets/pathing/璃月7-遁玉陵-2.json + 创建边: 30 -> 1073, 路径=assets/pathing/璃月7-遁玉陵-4.json + 创建边: 31 -> 1034, 路径=assets/pathing/璃月7-遁玉陵-5.json + 创建边: 16 -> 1075, 路径=assets/pathing/璃月7-遁玉陵-6.json + 创建边: 32 -> 1076, 路径=assets/pathing/璃月8-南天门南-1.json + 创建边: 33 -> 1077, 路径=assets/pathing/璃月8-南天门南-2.json + 创建边: 33 -> 1078, 路径=assets/pathing/璃月8-南天门南-3.json + 创建边: 33 -> 1079, 路径=assets/pathing/璃月8-南天门南-4.json + 创建边: 30 -> 1073, 路径=assets/pathing/璃月8-南天门南-5.json + 创建边: 14 -> 1034, 路径=assets/pathing/璃月8-南天门南-6.json + 创建边: 16 -> 1075, 路径=assets/pathing/璃月8-南天门南-7.json + 创建边: 34 -> 1083, 路径=assets/pathing/璃月9-南天门东-1.json + 创建边: 34 -> 1085, 路径=assets/pathing/璃月9-南天门东-3-1.json + 创建边: 34 -> 1085, 路径=assets/pathing/璃月9-南天门东-3-2.json + 创建边: 32 -> 1086, 路径=assets/pathing/璃月9-南天门东-4.json + 创建边: 35 -> 1087, 路径=assets/pathing/稻妻1-鸣神岛-1.json + 创建边: 35 -> 1088, 路径=assets/pathing/稻妻1-鸣神岛-2.json + 创建边: 36 -> 1089, 路径=assets/pathing/稻妻1-鸣神岛-3.json + 创建边: 36 -> 1090, 路径=assets/pathing/稻妻1-鸣神岛-4.json + 创建边: 37 -> 1091, 路径=assets/pathing/稻妻2-踏鞴砂-1.json + 创建边: 38 -> 1092, 路径=assets/pathing/稻妻2-踏鞴砂-2.json + 创建边: 39 -> 1093, 路径=assets/pathing/稻妻2-踏鞴砂-3.json + 创建边: 40 -> 1094, 路径=assets/pathing/稻妻2-踏鞴砂-4.json + 创建边: 40 -> 1095, 路径=assets/pathing/稻妻2-踏鞴砂-5.json + 创建边: 41 -> 1096, 路径=assets/pathing/稻妻3-八酝岛-1.json + 创建边: 41 -> 1098, 路径=assets/pathing/稻妻3-八酝岛-3.json + 创建边: 41 -> 1099, 路径=assets/pathing/稻妻3-八酝岛-4.json + 创建边: 42 -> 1100, 路径=assets/pathing/稻妻4-海祇岛-1.json + 创建边: 43 -> 1103, 路径=assets/pathing/稻妻4-海祇岛-4.json + 创建边: 44 -> 1104, 路径=assets/pathing/稻妻5-清籁岛-1.json + 创建边: 45 -> 1107, 路径=assets/pathing/稻妻5-清籁岛-4.json + 创建边: 46 -> 1109, 路径=assets/pathing/纳塔1-隆崛坡-1.json + 创建边: 47 -> 1110, 路径=assets/pathing/纳塔1-隆崛坡-2.json + 创建边: 47 -> 1111, 路径=assets/pathing/纳塔1-隆崛坡-3.json + 创建边: 48 -> 1113, 路径=assets/pathing/纳塔10-溶水域-1.json + 创建边: 49 -> 1116, 路径=assets/pathing/纳塔10-溶水域-4.json + 创建边: 50 -> 1117, 路径=assets/pathing/纳塔2-硫晶支脉-1.json + 创建边: 50 -> 1118, 路径=assets/pathing/纳塔2-硫晶支脉-2.json + 创建边: 50 -> 1119, 路径=assets/pathing/纳塔2-硫晶支脉-3.json + 创建边: 51 -> 1120, 路径=assets/pathing/纳塔2-硫晶支脉-4.json + 创建边: 52 -> 1121, 路径=assets/pathing/纳塔3-彩石顶-1.json + 创建边: 53 -> 1122, 路径=assets/pathing/纳塔3-彩石顶-2.json + 创建边: 53 -> 1123, 路径=assets/pathing/纳塔3-彩石顶-3.json + 创建边: 54 -> 1125, 路径=assets/pathing/纳塔4-溶水域-1.json + 创建边: 55 -> 1127, 路径=assets/pathing/纳塔5-安饶之野-1.json + 创建边: 55 -> 1128, 路径=assets/pathing/纳塔5-安饶之野-2.json + 创建边: 55 -> 1129, 路径=assets/pathing/纳塔5-安饶之野-3.json + 创建边: 56 -> 1130, 路径=assets/pathing/纳塔6-圣火竞技场-1.json + 创建边: 56 -> 1131, 路径=assets/pathing/纳塔6-圣火竞技场-2.json + 创建边: 57 -> 1134, 路径=assets/pathing/纳塔7-烟谜主-1.json + 创建边: 58 -> 1137, 路径=assets/pathing/纳塔8-花羽会-1.json + 创建边: 58 -> 1138, 路径=assets/pathing/纳塔8-花羽会-2.json + 创建边: 59 -> 1139, 路径=assets/pathing/纳塔8-花羽会-3.json + 创建边: 60 -> 1140, 路径=assets/pathing/纳塔9-翘枝崖-1.json + 创建边: 61 -> 1144, 路径=assets/pathing/蒙德1-风起地-1.json + 创建边: 62 -> 1145, 路径=assets/pathing/蒙德1-风起地-2.json + 创建边: 63 -> 1177, 路径=assets/pathing/蒙德1-风起地-5.json + 创建边: 64 -> 1149, 路径=assets/pathing/蒙德2-清泉镇-1.json + 创建边: 65 -> 1150, 路径=assets/pathing/蒙德2-清泉镇-2.json + 创建边: 66 -> 1153, 路径=assets/pathing/蒙德2-清泉镇-5-1.json + 创建边: 67 -> 1155, 路径=assets/pathing/蒙德3-奔狼领-1.json + 创建边: 68 -> 1158, 路径=assets/pathing/蒙德3-奔狼领-4.json + 创建边: 69 -> 1159, 路径=assets/pathing/蒙德4-风龙废墟-1.json + 创建边: 70 -> 1161, 路径=assets/pathing/蒙德4-风龙废墟-3.json + 创建边: 71 -> 1163, 路径=assets/pathing/蒙德5-千风神殿-1.json + 创建边: 72 -> 1166, 路径=assets/pathing/蒙德5-千风神殿-4.json + 创建边: 73 -> 1167, 路径=assets/pathing/蒙德5-千风神殿-5.json + 创建边: 73 -> 1168, 路径=assets/pathing/蒙德6-望风山地-1.json + 创建边: 74 -> 1170, 路径=assets/pathing/蒙德6-望风山地-3.json + 创建边: 75 -> 1172, 路径=assets/pathing/蒙德7-达达乌帕谷-1.json + 创建边: 76 -> 1173, 路径=assets/pathing/蒙德7-达达乌帕谷-2.json + 创建边: 76 -> 1174, 路径=assets/pathing/蒙德7-达达乌帕谷-3.json + 创建边: 63 -> 1177, 路径=assets/pathing/蒙德7-达达乌帕谷-6.json + 创建边: 77 -> 1178, 路径=assets/pathing/须弥1-无郁稠林-1.json + 创建边: 78 -> 1183, 路径=assets/pathing/须弥10-荼泥黑渊-1.json + 创建边: 78 -> 1184, 路径=assets/pathing/须弥10-荼泥黑渊-2.json + 创建边: 78 -> 1185, 路径=assets/pathing/须弥10-荼泥黑渊-3.json + 创建边: 79 -> 1186, 路径=assets/pathing/须弥10-荼泥黑渊-4.json + 创建边: 80 -> 1187, 路径=assets/pathing/须弥2-奥摩斯港西-1.json + 创建边: 81 -> 1189, 路径=assets/pathing/须弥2-奥摩斯港西-3.json + 创建边: 82 -> 1192, 路径=assets/pathing/须弥3-禅那园-1.json + 创建边: 83 -> 1194, 路径=assets/pathing/须弥3-禅那园-3.json + 创建边: 84 -> 1196, 路径=assets/pathing/须弥4-水天丛林-1.json + 创建边: 85 -> 1199, 路径=assets/pathing/须弥4-水天丛林-4.json + 创建边: 86 -> 1200, 路径=assets/pathing/须弥4-水天丛林-5.json + 创建边: 87 -> 1201, 路径=assets/pathing/须弥5-阿如村-1.json + 创建边: 88 -> 1206, 路径=assets/pathing/须弥6-荼诃落谷-1.json + 创建边: 89 -> 1207, 路径=assets/pathing/须弥6-荼诃落谷-2.json + 创建边: 90 -> 1209, 路径=assets/pathing/须弥6-荼诃落谷-4.json + 创建边: 91 -> 1210, 路径=assets/pathing/须弥8-折胫谷-1.json + 创建边: 92 -> 1214, 路径=assets/pathing/须弥9-镔铁沙丘-1.json + +检查目标点的连通性... + 警告: 目标点 ID=1029, 区域=璃月1-3, 坐标=(-81.76, 1534.73) 没有入边 + 警告: 目标点 ID=1030, 区域=璃月1-4, 坐标=(-28.76, 1417.37) 没有入边 + 警告: 目标点 ID=1035, 区域=璃月10-5, 坐标=(455.4, 546.56) 没有入边 + 警告: 目标点 ID=1037, 区域=璃月11-2, 坐标=(697.31, 1551.84) 没有入边 + 警告: 目标点 ID=1038, 区域=璃月11-3, 坐标=(646.5, 1421.98) 没有入边 + 警告: 目标点 ID=1039, 区域=璃月11-4, 坐标=(632.03, 1331.15) 没有入边 + 警告: 目标点 ID=1044, 区域=璃月13-3, 坐标=(2226.91, 863.09) 没有入边 + 警告: 目标点 ID=1045, 区域=璃月13-4, 坐标=(2028.69, 830.67) 没有入边 + 警告: 目标点 ID=1047, 区域=璃月14-2, 坐标=(1581.57, 1437.1) 没有入边 + 警告: 目标点 ID=1048, 区域=璃月14-3, 坐标=(1563.45, 1487.35) 没有入边 + 警告: 目标点 ID=1049, 区域=璃月14-4, 坐标=(1525.0, 1549.17) 没有入边 + 警告: 目标点 ID=1058, 区域=璃月3-5, 坐标=(456.0, 546.29) 没有入边 + 警告: 目标点 ID=1060, 区域=璃月4-2, 坐标=(101.14, -2.97) 没有入边 + 警告: 目标点 ID=1061, 区域=璃月4-3, 坐标=(127.05, 113.87) 没有入边 + 警告: 目标点 ID=1062, 区域=璃月4-4, 坐标=(146.03, 220.07) 没有入边 + 警告: 目标点 ID=1064, 区域=璃月4-6, 坐标=(276.55, 543.11) 没有入边 + 警告: 目标点 ID=1065, 区域=璃月4-7, 坐标=(456.44, 546.35) 没有入边 + 警告: 目标点 ID=1068, 区域=璃月5-3, 坐标=(1063.54, -727.34) 没有入边 + 警告: 目标点 ID=1072, 区域=璃月7-3, 坐标=(752.42, 3.88) 没有入边 + 警告: 目标点 ID=1074, 区域=璃月7-5, 坐标=(681.46, 528.76) 没有入边 + 警告: 目标点 ID=1080, 区域=璃月8-5, 坐标=(815.31, 137.31) 没有入边 + 警告: 目标点 ID=1081, 区域=璃月8-6, 坐标=(683.33, 529.05) 没有入边 + 警告: 目标点 ID=1082, 区域=璃月8-7, 坐标=(455.84, 546.39) 没有入边 + 警告: 目标点 ID=1084, 区域=璃月9-2, 坐标=(1445.77, 577.83) 没有入边 + 警告: 目标点 ID=1097, 区域=稻妻3-2, 坐标=(-2280.61, -4171.18) 没有入边 + 警告: 目标点 ID=1101, 区域=稻妻4-2, 坐标=(-1190.51, -3902.08) 没有入边 + 警告: 目标点 ID=1102, 区域=稻妻4-3, 坐标=(-1254.7, -3839.91) 没有入边 + 警告: 目标点 ID=1105, 区域=稻妻5-2, 坐标=(-3850.61, -4241.9) 没有入边 + 警告: 目标点 ID=1106, 区域=稻妻5-3, 坐标=(-3763.54, -4259.14) 没有入边 + 警告: 目标点 ID=1108, 区域=稻妻5-5, 坐标=(-3671.61, -4414.03) 没有入边 + 警告: 目标点 ID=1112, 区域=纳塔1-4, 坐标=(7853.72, -1554.26) 没有入边 + 警告: 目标点 ID=1114, 区域=纳塔10-2, 坐标=(8496.07, -3018.4) 没有入边 + 警告: 目标点 ID=1115, 区域=纳塔10-3, 坐标=(8587.99, -3022.4) 没有入边 + 警告: 目标点 ID=1124, 区域=纳塔3-4, 坐标=(8088.21, -2053.56) 没有入边 + 警告: 目标点 ID=1126, 区域=纳塔4-2, 坐标=(9090.71, -2407.11) 没有入边 + 警告: 目标点 ID=1132, 区域=纳塔6-3, 坐标=(8945.55, -2138.43) 没有入边 + 警告: 目标点 ID=1133, 区域=纳塔6-4, 坐标=(8810.08, -2077.83) 没有入边 + 警告: 目标点 ID=1135, 区域=纳塔7-2, 坐标=(9963.8, -1511.61) 没有入边 + 警告: 目标点 ID=1136, 区域=纳塔7-3, 坐标=(9907.78, -1424.0) 没有入边 + 警告: 目标点 ID=1141, 区域=纳塔9-2, 坐标=(9888.22, -1046.55) 没有入边 + 警告: 目标点 ID=1142, 区域=纳塔9-3, 坐标=(9938.82, -933.87) 没有入边 + 警告: 目标点 ID=1143, 区域=纳塔9-4, 坐标=(9984.24, -876.43) 没有入边 + 警告: 目标点 ID=1146, 区域=蒙德1-3, 坐标=(-1113.87, 1971.9) 没有入边 + 警告: 目标点 ID=1147, 区域=蒙德1-4, 坐标=(-1041.91, 1927.07) 没有入边 + 警告: 目标点 ID=1148, 区域=蒙德1-5, 坐标=(-895.08, 1833.84) 没有入边 + 警告: 目标点 ID=1151, 区域=蒙德2-3, 坐标=(-420.36, 1998.11) 没有入边 + 警告: 目标点 ID=1152, 区域=蒙德2-4-1, 坐标=(-347.95, 1902.51) 没有入边 + 警告: 目标点 ID=1154, 区域=蒙德2-5-1, 坐标=(-319.57, 2156.48) 没有入边 + 警告: 目标点 ID=1156, 区域=蒙德3-2, 坐标=(-205.49, 2429.07) 没有入边 + 警告: 目标点 ID=1157, 区域=蒙德3-3, 坐标=(-327.03, 2410.43) 没有入边 + 警告: 目标点 ID=1160, 区域=蒙德4-2, 坐标=(124.61, 2817.24) 没有入边 + 警告: 目标点 ID=1162, 区域=蒙德4-4, 坐标=(-27.99, 2919.59) 没有入边 + 警告: 目标点 ID=1164, 区域=蒙德5-2, 坐标=(-1367.78, 2411.31) 没有入边 + 警告: 目标点 ID=1165, 区域=蒙德5-3, 坐标=(-1474.91, 2520.0) 没有入边 + 警告: 目标点 ID=1169, 区域=蒙德6-2, 坐标=(-1518.71, 2877.4) 没有入边 + 警告: 目标点 ID=1171, 区域=蒙德6-4, 坐标=(-1710.73, 2983.29) 没有入边 + 警告: 目标点 ID=1175, 区域=蒙德7-4, 坐标=(-1318.63, 1692.63) 没有入边 + 警告: 目标点 ID=1176, 区域=蒙德7-5, 坐标=(-1138.22, 1789.79) 没有入边 + 警告: 目标点 ID=1179, 区域=须弥1-2, 坐标=(2317.29, -115.35) 没有入边 + 警告: 目标点 ID=1180, 区域=须弥1-3, 坐标=(2212.83, -83.02) 没有入边 + 警告: 目标点 ID=1181, 区域=须弥1-4, 坐标=(2233.8, -160.88) 没有入边 + 警告: 目标点 ID=1182, 区域=须弥1-5, 坐标=(2269.0, -251.14) 没有入边 + 警告: 目标点 ID=1188, 区域=须弥2-2, 坐标=(2980.38, -1758.57) 没有入边 + 警告: 目标点 ID=1190, 区域=须弥2-4, 坐标=(2981.92, -1641.54) 没有入边 + 警告: 目标点 ID=1191, 区域=须弥2-5, 坐标=(2963.07, -1586.92) 没有入边 + 警告: 目标点 ID=1193, 区域=须弥3-2, 坐标=(3233.51, -740.65) 没有入边 + 警告: 目标点 ID=1195, 区域=须弥3-4, 坐标=(3387.39, -664.21) 没有入边 + 警告: 目标点 ID=1197, 区域=须弥4-2, 坐标=(3355.82, -1318.18) 没有入边 + 警告: 目标点 ID=1198, 区域=须弥4-3, 坐标=(3466.17, -1318.08) 没有入边 + 警告: 目标点 ID=1202, 区域=须弥5-2, 坐标=(4257.86, -1903.31) 没有入边 + 警告: 目标点 ID=1203, 区域=须弥5-3, 坐标=(4144.29, -2014.19) 没有入边 + 警告: 目标点 ID=1204, 区域=须弥5-4, 坐标=(4144.18, -2014.48) 没有入边 + 警告: 目标点 ID=1205, 区域=须弥5-5, 坐标=(4211.01, -2165.65) 没有入边 + 警告: 目标点 ID=1208, 区域=须弥6-3, 坐标=(4886.54, -2940.45) 没有入边 + 警告: 目标点 ID=1211, 区域=须弥8-2, 坐标=(5887.09, -1120.65) 没有入边 + 警告: 目标点 ID=1212, 区域=须弥8-3, 坐标=(5902.11, -1008.25) 没有入边 + 警告: 目标点 ID=1213, 区域=须弥8-4, 坐标=(5928.09, -922.46) 没有入边 + 警告: 目标点 ID=1215, 区域=须弥9-2, 坐标=(4573.81, -408.86) 没有入边 + 警告: 目标点 ID=1216, 区域=须弥9-3, 坐标=(4756.13, -221.43) 没有入边 + 警告: 目标点 ID=1217, 区域=须弥9-4, 坐标=(4862.07, -150.71) 没有入边 + +尝试为 80 个孤立目标点寻找连续路径... + +处理区域 璃月1-3 的 1 个孤立目标点... + 区域 璃月1-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月1-4 的 1 个孤立目标点... + 区域 璃月1-4 没有现有路径,无法连接孤立目标点 + +处理区域 璃月10-5 的 1 个孤立目标点... + 区域 璃月10-5 没有现有路径,无法连接孤立目标点 + +处理区域 璃月11-2 的 1 个孤立目标点... + 区域 璃月11-2 没有现有路径,无法连接孤立目标点 + +处理区域 璃月11-3 的 1 个孤立目标点... + 区域 璃月11-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月11-4 的 1 个孤立目标点... + 区域 璃月11-4 没有现有路径,无法连接孤立目标点 + +处理区域 璃月13-3 的 1 个孤立目标点... + 区域 璃月13-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月13-4 的 1 个孤立目标点... + 区域 璃月13-4 没有现有路径,无法连接孤立目标点 + +处理区域 璃月14-2 的 1 个孤立目标点... + 区域 璃月14-2 没有现有路径,无法连接孤立目标点 + +处理区域 璃月14-3 的 1 个孤立目标点... + 区域 璃月14-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月14-4 的 1 个孤立目标点... + 区域 璃月14-4 没有现有路径,无法连接孤立目标点 + +处理区域 璃月3-5 的 1 个孤立目标点... + 区域 璃月3-5 没有现有路径,无法连接孤立目标点 + +处理区域 璃月4-2 的 1 个孤立目标点... + 区域 璃月4-2 没有现有路径,无法连接孤立目标点 + +处理区域 璃月4-3 的 1 个孤立目标点... + 区域 璃月4-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月4-4 的 1 个孤立目标点... + 区域 璃月4-4 没有现有路径,无法连接孤立目标点 + +处理区域 璃月4-6 的 1 个孤立目标点... + 区域 璃月4-6 没有现有路径,无法连接孤立目标点 + +处理区域 璃月4-7 的 1 个孤立目标点... + 区域 璃月4-7 没有现有路径,无法连接孤立目标点 + +处理区域 璃月5-3 的 1 个孤立目标点... + 区域 璃月5-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月7-3 的 1 个孤立目标点... + 区域 璃月7-3 没有现有路径,无法连接孤立目标点 + +处理区域 璃月7-5 的 1 个孤立目标点... + 区域 璃月7-5 没有现有路径,无法连接孤立目标点 + +处理区域 璃月8-5 的 1 个孤立目标点... + 区域 璃月8-5 没有现有路径,无法连接孤立目标点 + +处理区域 璃月8-6 的 1 个孤立目标点... + 区域 璃月8-6 没有现有路径,无法连接孤立目标点 + +处理区域 璃月8-7 的 1 个孤立目标点... + 区域 璃月8-7 没有现有路径,无法连接孤立目标点 + +处理区域 璃月9-2 的 1 个孤立目标点... + 区域 璃月9-2 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻3-2 的 1 个孤立目标点... + 区域 稻妻3-2 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻4-2 的 1 个孤立目标点... + 区域 稻妻4-2 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻4-3 的 1 个孤立目标点... + 区域 稻妻4-3 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻5-2 的 1 个孤立目标点... + 区域 稻妻5-2 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻5-3 的 1 个孤立目标点... + 区域 稻妻5-3 没有现有路径,无法连接孤立目标点 + +处理区域 稻妻5-5 的 1 个孤立目标点... + 区域 稻妻5-5 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔1-4 的 1 个孤立目标点... + 区域 纳塔1-4 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔10-2 的 1 个孤立目标点... + 区域 纳塔10-2 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔10-3 的 1 个孤立目标点... + 区域 纳塔10-3 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔3-4 的 1 个孤立目标点... + 区域 纳塔3-4 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔4-2 的 1 个孤立目标点... + 区域 纳塔4-2 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔6-3 的 1 个孤立目标点... + 区域 纳塔6-3 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔6-4 的 1 个孤立目标点... + 区域 纳塔6-4 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔7-2 的 1 个孤立目标点... + 区域 纳塔7-2 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔7-3 的 1 个孤立目标点... + 区域 纳塔7-3 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔9-2 的 1 个孤立目标点... + 区域 纳塔9-2 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔9-3 的 1 个孤立目标点... + 区域 纳塔9-3 没有现有路径,无法连接孤立目标点 + +处理区域 纳塔9-4 的 1 个孤立目标点... + 区域 纳塔9-4 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德1-3 的 1 个孤立目标点... + 区域 蒙德1-3 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德1-4 的 1 个孤立目标点... + 区域 蒙德1-4 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德1-5 的 1 个孤立目标点... + 区域 蒙德1-5 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德2-3 的 1 个孤立目标点... + 区域 蒙德2-3 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德2-4-1 的 1 个孤立目标点... + 区域 蒙德2-4-1 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德2-5-1 的 1 个孤立目标点... + 区域 蒙德2-5-1 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德3-2 的 1 个孤立目标点... + 区域 蒙德3-2 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德3-3 的 1 个孤立目标点... + 区域 蒙德3-3 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德4-2 的 1 个孤立目标点... + 区域 蒙德4-2 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德4-4 的 1 个孤立目标点... + 区域 蒙德4-4 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德5-2 的 1 个孤立目标点... + 区域 蒙德5-2 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德5-3 的 1 个孤立目标点... + 区域 蒙德5-3 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德6-2 的 1 个孤立目标点... + 区域 蒙德6-2 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德6-4 的 1 个孤立目标点... + 区域 蒙德6-4 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德7-4 的 1 个孤立目标点... + 区域 蒙德7-4 没有现有路径,无法连接孤立目标点 + +处理区域 蒙德7-5 的 1 个孤立目标点... + 区域 蒙德7-5 没有现有路径,无法连接孤立目标点 + +处理区域 须弥1-2 的 1 个孤立目标点... + 区域 须弥1-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥1-3 的 1 个孤立目标点... + 区域 须弥1-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥1-4 的 1 个孤立目标点... + 区域 须弥1-4 没有现有路径,无法连接孤立目标点 + +处理区域 须弥1-5 的 1 个孤立目标点... + 区域 须弥1-5 没有现有路径,无法连接孤立目标点 + +处理区域 须弥2-2 的 1 个孤立目标点... + 区域 须弥2-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥2-4 的 1 个孤立目标点... + 区域 须弥2-4 没有现有路径,无法连接孤立目标点 + +处理区域 须弥2-5 的 1 个孤立目标点... + 区域 须弥2-5 没有现有路径,无法连接孤立目标点 + +处理区域 须弥3-2 的 1 个孤立目标点... + 区域 须弥3-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥3-4 的 1 个孤立目标点... + 区域 须弥3-4 没有现有路径,无法连接孤立目标点 + +处理区域 须弥4-2 的 1 个孤立目标点... + 区域 须弥4-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥4-3 的 1 个孤立目标点... + 区域 须弥4-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥5-2 的 1 个孤立目标点... + 区域 须弥5-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥5-3 的 1 个孤立目标点... + 区域 须弥5-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥5-4 的 1 个孤立目标点... + 区域 须弥5-4 没有现有路径,无法连接孤立目标点 + +处理区域 须弥5-5 的 1 个孤立目标点... + 区域 须弥5-5 没有现有路径,无法连接孤立目标点 + +处理区域 须弥6-3 的 1 个孤立目标点... + 区域 须弥6-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥8-2 的 1 个孤立目标点... + 区域 须弥8-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥8-3 的 1 个孤立目标点... + 区域 须弥8-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥8-4 的 1 个孤立目标点... + 区域 须弥8-4 没有现有路径,无法连接孤立目标点 + +处理区域 须弥9-2 的 1 个孤立目标点... + 区域 须弥9-2 没有现有路径,无法连接孤立目标点 + +处理区域 须弥9-3 的 1 个孤立目标点... + 区域 须弥9-3 没有现有路径,无法连接孤立目标点 + +处理区域 须弥9-4 的 1 个孤立目标点... + 区域 须弥9-4 没有现有路径,无法连接孤立目标点 + +按区域对节点进行排序... + +删除边数据中的位置信息... + +按照目标节点(target)的顺序排列边... + +创建节点到节点的顺序边... + 创建顺序边: 枫丹1-1 → 枫丹1-2, 路径=assets/pathing/枫丹1-秋分山西侧-2.json + 创建顺序边: 枫丹1-2 → 枫丹1-3, 路径=assets/pathing/枫丹1-秋分山西侧-3.json + 创建顺序边: 枫丹1-3 → 枫丹1-4, 路径=assets/pathing/枫丹1-秋分山西侧-4.json + 创建顺序边: 枫丹1-4 → 枫丹1-5, 路径=assets/pathing/枫丹1-秋分山西侧-5.json + 创建顺序边: 枫丹2-1 → 枫丹2-2, 路径=assets/pathing/枫丹2-芒索斯山东麓-2.json + 创建顺序边: 枫丹2-2 → 枫丹2-3, 路径=assets/pathing/枫丹2-芒索斯山东麓-3.json + 创建顺序边: 枫丹2-3 → 枫丹2-4, 路径=assets/pathing/枫丹2-芒索斯山东麓-4.json + 创建顺序边: 枫丹3-1 → 枫丹3-2, 路径=assets/pathing/枫丹3-新枫丹科学院-2.json + 创建顺序边: 枫丹3-2 → 枫丹3-3, 路径=assets/pathing/枫丹3-新枫丹科学院-3.json + 创建顺序边: 枫丹3-3 → 枫丹3-4, 路径=assets/pathing/枫丹3-新枫丹科学院-4.json + 创建顺序边: 枫丹4-1 → 枫丹4-2, 路径=assets/pathing/枫丹4-柔灯港-2.json + 创建顺序边: 枫丹4-2 → 枫丹4-3, 路径=assets/pathing/枫丹4-柔灯港-3.json + 创建顺序边: 枫丹4-3 → 枫丹4-4, 路径=assets/pathing/枫丹4-柔灯港-4.json + 创建顺序边: 枫丹5-1 → 枫丹5-2, 路径=assets/pathing/枫丹5-秋分山东侧-2.json + 创建顺序边: 枫丹5-2 → 枫丹5-3, 路径=assets/pathing/枫丹5-秋分山东侧-3.json + 创建顺序边: 枫丹5-3 → 枫丹5-4, 路径=assets/pathing/枫丹5-秋分山东侧-4.json + 创建顺序边: 枫丹6-1 → 枫丹6-2, 路径=assets/pathing/枫丹6-厄里那斯-2.json + 创建顺序边: 枫丹6-2 → 枫丹6-3, 路径=assets/pathing/枫丹6-厄里那斯-3.json + 创建顺序边: 枫丹6-3 → 枫丹6-4, 路径=assets/pathing/枫丹6-厄里那斯-4.json + 创建顺序边: 枫丹6-4 → 枫丹6-5, 路径=assets/pathing/枫丹6-厄里那斯-5.json + 创建顺序边: 枫丹6-5 → 枫丹6-6, 路径=assets/pathing/枫丹6-厄里那斯-6.json + 创建顺序边: 璃月1-1 → 璃月1-2, 路径=assets/pathing/璃月1-石门-2.json + 创建顺序边: 璃月1-2 → 璃月1-3, 路径=assets/pathing/璃月1-石门-3.json + 创建顺序边: 璃月1-3 → 璃月1-4, 路径=assets/pathing/璃月1-石门-4.json + 创建顺序边: 璃月10-1 → 璃月10-2, 路径=assets/pathing/璃月10-绝云间-2.json + 创建顺序边: 璃月10-2 → 璃月10-3, 路径=assets/pathing/璃月10-绝云间-3.json + 创建顺序边: 璃月10-3 → 璃月10-4, 路径=assets/pathing/璃月10-绝云间-4.json + 创建顺序边: 璃月10-4 → 璃月10-5, 路径=assets/pathing/璃月10-绝云间-5.json + 创建顺序边: 璃月11-1 → 璃月11-2, 路径=assets/pathing/璃月11-轻策庄-2.json + 创建顺序边: 璃月11-2 → 璃月11-3, 路径=assets/pathing/璃月11-轻策庄-3.json + 创建顺序边: 璃月11-3 → 璃月11-4, 路径=assets/pathing/璃月11-轻策庄-4.json + 创建顺序边: 璃月11-4 → 璃月11-5, 路径=assets/pathing/璃月11-轻策庄-5.json + 创建顺序边: 璃月11-5 → 璃月11-6, 路径=assets/pathing/璃月11-轻策庄-6.json + 创建顺序边: 璃月13-1 → 璃月13-2, 路径=assets/pathing/璃月13-悬练山-2.json + 创建顺序边: 璃月13-2 → 璃月13-3, 路径=assets/pathing/璃月13-悬练山-3.json + 创建顺序边: 璃月13-3 → 璃月13-4, 路径=assets/pathing/璃月13-悬练山-4.json + 创建顺序边: 璃月14-1 → 璃月14-2, 路径=assets/pathing/璃月14-药蝶谷-2.json + 创建顺序边: 璃月14-2 → 璃月14-3, 路径=assets/pathing/璃月14-药蝶谷-3.json + 创建顺序边: 璃月14-3 → 璃月14-4, 路径=assets/pathing/璃月14-药蝶谷-4.json + 创建顺序边: 璃月2-1 → 璃月2-2, 路径=assets/pathing/璃月2-地中之盐-2.json + 创建顺序边: 璃月2-2 → 璃月2-3, 路径=assets/pathing/璃月2-地中之盐-3.json + 创建顺序边: 璃月2-3 → 璃月2-4, 路径=assets/pathing/璃月2-地中之盐-4.json + 创建顺序边: 璃月3-1 → 璃月3-2, 路径=assets/pathing/璃月3-瑶光滩-2.json + 创建顺序边: 璃月3-2 → 璃月3-3, 路径=assets/pathing/璃月3-瑶光滩-3.json + 创建顺序边: 璃月3-3 → 璃月3-4, 路径=assets/pathing/璃月3-瑶光滩-4.json + 创建顺序边: 璃月3-4 → 璃月3-5, 路径=assets/pathing/璃月3-瑶光滩-5.json + 创建顺序边: 璃月4-1 → 璃月4-2, 路径=assets/pathing/璃月4-璃月港-2.json + 创建顺序边: 璃月4-2 → 璃月4-3, 路径=assets/pathing/璃月4-璃月港-3.json + 创建顺序边: 璃月4-3 → 璃月4-4, 路径=assets/pathing/璃月4-璃月港-4.json + 创建顺序边: 璃月4-4 → 璃月4-5, 路径=assets/pathing/璃月4-璃月港-5.json + 创建顺序边: 璃月4-5 → 璃月4-6, 路径=assets/pathing/璃月4-璃月港-6.json + 创建顺序边: 璃月4-6 → 璃月4-7, 路径=assets/pathing/璃月4-璃月港-7.json + 创建顺序边: 璃月5-1 → 璃月5-2, 路径=assets/pathing/璃月5-天衡山-2.json + 创建顺序边: 璃月5-2 → 璃月5-3, 路径=assets/pathing/璃月5-天衡山-3.json + 创建顺序边: 璃月5-3 → 璃月5-4-1, 路径=assets/pathing/璃月5-天衡山-4-1.json + 创建顺序边: 璃月7-1 → 璃月7-2, 路径=assets/pathing/璃月7-遁玉陵-2.json + 创建顺序边: 璃月7-2 → 璃月7-3, 路径=assets/pathing/璃月7-遁玉陵-3.json + 创建顺序边: 璃月7-3 → 璃月7-4, 路径=assets/pathing/璃月7-遁玉陵-4.json + 创建顺序边: 璃月7-4 → 璃月7-5, 路径=assets/pathing/璃月7-遁玉陵-5.json + 创建顺序边: 璃月7-5 → 璃月7-6, 路径=assets/pathing/璃月7-遁玉陵-6.json + 创建顺序边: 璃月8-1 → 璃月8-2, 路径=assets/pathing/璃月8-南天门南-2.json + 创建顺序边: 璃月8-2 → 璃月8-3, 路径=assets/pathing/璃月8-南天门南-3.json + 创建顺序边: 璃月8-3 → 璃月8-4, 路径=assets/pathing/璃月8-南天门南-4.json + 创建顺序边: 璃月8-4 → 璃月8-5, 路径=assets/pathing/璃月8-南天门南-5.json + 创建顺序边: 璃月8-5 → 璃月8-6, 路径=assets/pathing/璃月8-南天门南-6.json + 创建顺序边: 璃月8-6 → 璃月8-7, 路径=assets/pathing/璃月8-南天门南-7.json + 创建顺序边: 璃月9-1 → 璃月9-2, 路径=assets/pathing/璃月9-南天门东-2.json + 创建顺序边: 璃月9-2 → 璃月9-3-1, 路径=assets/pathing/璃月9-南天门东-3-1.json + 创建顺序边: 稻妻1-1 → 稻妻1-2, 路径=assets/pathing/稻妻1-鸣神岛-2.json + 创建顺序边: 稻妻1-2 → 稻妻1-3, 路径=assets/pathing/稻妻1-鸣神岛-3.json + 创建顺序边: 稻妻1-3 → 稻妻1-4, 路径=assets/pathing/稻妻1-鸣神岛-4.json + 创建顺序边: 稻妻2-1 → 稻妻2-2, 路径=assets/pathing/稻妻2-踏鞴砂-2.json + 创建顺序边: 稻妻2-2 → 稻妻2-3, 路径=assets/pathing/稻妻2-踏鞴砂-3.json + 创建顺序边: 稻妻2-3 → 稻妻2-4, 路径=assets/pathing/稻妻2-踏鞴砂-4.json + 创建顺序边: 稻妻2-4 → 稻妻2-5, 路径=assets/pathing/稻妻2-踏鞴砂-5.json + 创建顺序边: 稻妻3-1 → 稻妻3-2, 路径=assets/pathing/稻妻3-八酝岛-2.json + 创建顺序边: 稻妻3-2 → 稻妻3-3, 路径=assets/pathing/稻妻3-八酝岛-3.json + 创建顺序边: 稻妻3-3 → 稻妻3-4, 路径=assets/pathing/稻妻3-八酝岛-4.json + 创建顺序边: 稻妻4-1 → 稻妻4-2, 路径=assets/pathing/稻妻4-海祇岛-2.json + 创建顺序边: 稻妻4-2 → 稻妻4-3, 路径=assets/pathing/稻妻4-海祇岛-3.json + 创建顺序边: 稻妻4-3 → 稻妻4-4, 路径=assets/pathing/稻妻4-海祇岛-4.json + 创建顺序边: 稻妻5-1 → 稻妻5-2, 路径=assets/pathing/稻妻5-清籁岛-2.json + 创建顺序边: 稻妻5-2 → 稻妻5-3, 路径=assets/pathing/稻妻5-清籁岛-3.json + 创建顺序边: 稻妻5-3 → 稻妻5-4, 路径=assets/pathing/稻妻5-清籁岛-4.json + 创建顺序边: 稻妻5-4 → 稻妻5-5, 路径=assets/pathing/稻妻5-清籁岛-5.json + 创建顺序边: 纳塔1-1 → 纳塔1-2, 路径=assets/pathing/纳塔1-隆崛坡-2.json + 创建顺序边: 纳塔1-2 → 纳塔1-3, 路径=assets/pathing/纳塔1-隆崛坡-3.json + 创建顺序边: 纳塔1-3 → 纳塔1-4, 路径=assets/pathing/纳塔1-隆崛坡-4.json + 创建顺序边: 纳塔10-1 → 纳塔10-2, 路径=assets/pathing/纳塔10-溶水域-2.json + 创建顺序边: 纳塔10-2 → 纳塔10-3, 路径=assets/pathing/纳塔10-溶水域-3.json + 创建顺序边: 纳塔10-3 → 纳塔10-4, 路径=assets/pathing/纳塔10-溶水域-4.json + 创建顺序边: 纳塔2-1 → 纳塔2-2, 路径=assets/pathing/纳塔2-硫晶支脉-2.json + 创建顺序边: 纳塔2-2 → 纳塔2-3, 路径=assets/pathing/纳塔2-硫晶支脉-3.json + 创建顺序边: 纳塔2-3 → 纳塔2-4, 路径=assets/pathing/纳塔2-硫晶支脉-4.json + 创建顺序边: 纳塔3-1 → 纳塔3-2, 路径=assets/pathing/纳塔3-彩石顶-2.json + 创建顺序边: 纳塔3-2 → 纳塔3-3, 路径=assets/pathing/纳塔3-彩石顶-3.json + 创建顺序边: 纳塔3-3 → 纳塔3-4, 路径=assets/pathing/纳塔3-彩石顶-4.json + 创建顺序边: 纳塔4-1 → 纳塔4-2, 路径=assets/pathing/纳塔4-溶水域-2.json + 创建顺序边: 纳塔5-1 → 纳塔5-2, 路径=assets/pathing/纳塔5-安饶之野-2.json + 创建顺序边: 纳塔5-2 → 纳塔5-3, 路径=assets/pathing/纳塔5-安饶之野-3.json + 创建顺序边: 纳塔6-1 → 纳塔6-2, 路径=assets/pathing/纳塔6-圣火竞技场-2.json + 创建顺序边: 纳塔6-2 → 纳塔6-3, 路径=assets/pathing/纳塔6-圣火竞技场-3.json + 创建顺序边: 纳塔6-3 → 纳塔6-4, 路径=assets/pathing/纳塔6-圣火竞技场-4.json + 创建顺序边: 纳塔7-1 → 纳塔7-2, 路径=assets/pathing/纳塔7-烟谜主-2.json + 创建顺序边: 纳塔7-2 → 纳塔7-3, 路径=assets/pathing/纳塔7-烟谜主-3.json + 创建顺序边: 纳塔8-1 → 纳塔8-2, 路径=assets/pathing/纳塔8-花羽会-2.json + 创建顺序边: 纳塔8-2 → 纳塔8-3, 路径=assets/pathing/纳塔8-花羽会-3.json + 创建顺序边: 纳塔9-1 → 纳塔9-2, 路径=assets/pathing/纳塔9-翘枝崖-2.json + 创建顺序边: 纳塔9-2 → 纳塔9-3, 路径=assets/pathing/纳塔9-翘枝崖-3.json + 创建顺序边: 纳塔9-3 → 纳塔9-4, 路径=assets/pathing/纳塔9-翘枝崖-4.json + 创建顺序边: 蒙德1-1 → 蒙德1-2, 路径=assets/pathing/蒙德1-风起地-2.json + 创建顺序边: 蒙德1-2 → 蒙德1-3, 路径=assets/pathing/蒙德1-风起地-3.json + 创建顺序边: 蒙德1-3 → 蒙德1-4, 路径=assets/pathing/蒙德1-风起地-4.json + 创建顺序边: 蒙德1-4 → 蒙德1-5, 路径=assets/pathing/蒙德1-风起地-5.json + 创建顺序边: 蒙德2-1 → 蒙德2-2, 路径=assets/pathing/蒙德2-清泉镇-2.json + 创建顺序边: 蒙德2-2 → 蒙德2-3, 路径=assets/pathing/蒙德2-清泉镇-3.json + 创建顺序边: 蒙德2-3 → 蒙德2-4-1, 路径=assets/pathing/蒙德2-清泉镇-4-1.json + 创建顺序边: 蒙德2-4-1 → 蒙德2-4-2, 路径=assets/pathing/蒙德2-清泉镇-4-2.json + 创建顺序边: 蒙德3-1 → 蒙德3-2, 路径=assets/pathing/蒙德3-奔狼领-2.json + 创建顺序边: 蒙德3-2 → 蒙德3-3, 路径=assets/pathing/蒙德3-奔狼领-3.json + 创建顺序边: 蒙德3-3 → 蒙德3-4, 路径=assets/pathing/蒙德3-奔狼领-4.json + 创建顺序边: 蒙德4-1 → 蒙德4-2, 路径=assets/pathing/蒙德4-风龙废墟-2.json + 创建顺序边: 蒙德4-2 → 蒙德4-3, 路径=assets/pathing/蒙德4-风龙废墟-3.json + 创建顺序边: 蒙德4-3 → 蒙德4-4, 路径=assets/pathing/蒙德4-风龙废墟-4.json + 创建顺序边: 蒙德5-1 → 蒙德5-2, 路径=assets/pathing/蒙德5-千风神殿-2.json + 创建顺序边: 蒙德5-2 → 蒙德5-3, 路径=assets/pathing/蒙德5-千风神殿-3.json + 创建顺序边: 蒙德5-3 → 蒙德5-4, 路径=assets/pathing/蒙德5-千风神殿-4.json + 创建顺序边: 蒙德5-4 → 蒙德5-5, 路径=assets/pathing/蒙德5-千风神殿-5.json + 创建顺序边: 蒙德6-1 → 蒙德6-2, 路径=assets/pathing/蒙德6-望风山地-2.json + 创建顺序边: 蒙德6-2 → 蒙德6-3, 路径=assets/pathing/蒙德6-望风山地-3.json + 创建顺序边: 蒙德6-3 → 蒙德6-4, 路径=assets/pathing/蒙德6-望风山地-4.json + 创建顺序边: 蒙德7-1 → 蒙德7-2, 路径=assets/pathing/蒙德7-达达乌帕谷-2.json + 创建顺序边: 蒙德7-2 → 蒙德7-3, 路径=assets/pathing/蒙德7-达达乌帕谷-3.json + 创建顺序边: 蒙德7-3 → 蒙德7-4, 路径=assets/pathing/蒙德7-达达乌帕谷-4.json + 创建顺序边: 蒙德7-4 → 蒙德7-5, 路径=assets/pathing/蒙德7-达达乌帕谷-5.json + 创建顺序边: 蒙德7-5 → 蒙德7-6, 路径=assets/pathing/蒙德7-达达乌帕谷-6.json + 创建顺序边: 须弥1-1 → 须弥1-2, 路径=assets/pathing/须弥1-无郁稠林-2.json + 创建顺序边: 须弥1-2 → 须弥1-3, 路径=assets/pathing/须弥1-无郁稠林-3.json + 创建顺序边: 须弥1-3 → 须弥1-4, 路径=assets/pathing/须弥1-无郁稠林-4.json + 创建顺序边: 须弥1-4 → 须弥1-5, 路径=assets/pathing/须弥1-无郁稠林-5.json + 创建顺序边: 须弥10-1 → 须弥10-2, 路径=assets/pathing/须弥10-荼泥黑渊-2.json + 创建顺序边: 须弥10-2 → 须弥10-3, 路径=assets/pathing/须弥10-荼泥黑渊-3.json + 创建顺序边: 须弥10-3 → 须弥10-4, 路径=assets/pathing/须弥10-荼泥黑渊-4.json + 创建顺序边: 须弥2-1 → 须弥2-2, 路径=assets/pathing/须弥2-奥摩斯港西-2.json + 创建顺序边: 须弥2-2 → 须弥2-3, 路径=assets/pathing/须弥2-奥摩斯港西-3.json + 创建顺序边: 须弥2-3 → 须弥2-4, 路径=assets/pathing/须弥2-奥摩斯港西-4.json + 创建顺序边: 须弥2-4 → 须弥2-5, 路径=assets/pathing/须弥2-奥摩斯港西-5.json + 创建顺序边: 须弥3-1 → 须弥3-2, 路径=assets/pathing/须弥3-禅那园-2.json + 创建顺序边: 须弥3-2 → 须弥3-3, 路径=assets/pathing/须弥3-禅那园-3.json + 创建顺序边: 须弥3-3 → 须弥3-4, 路径=assets/pathing/须弥3-禅那园-4.json + 创建顺序边: 须弥4-1 → 须弥4-2, 路径=assets/pathing/须弥4-水天丛林-2.json + 创建顺序边: 须弥4-2 → 须弥4-3, 路径=assets/pathing/须弥4-水天丛林-3.json + 创建顺序边: 须弥4-3 → 须弥4-4, 路径=assets/pathing/须弥4-水天丛林-4.json + 创建顺序边: 须弥4-4 → 须弥4-5, 路径=assets/pathing/须弥4-水天丛林-5.json + 创建顺序边: 须弥5-1 → 须弥5-2, 路径=assets/pathing/须弥5-阿如村-2.json + 创建顺序边: 须弥5-2 → 须弥5-3, 路径=assets/pathing/须弥5-阿如村-3.json + 创建顺序边: 须弥5-3 → 须弥5-4, 路径=assets/pathing/须弥5-阿如村-4.json + 创建顺序边: 须弥5-4 → 须弥5-5, 路径=assets/pathing/须弥5-阿如村-5.json + 创建顺序边: 须弥6-1 → 须弥6-2, 路径=assets/pathing/须弥6-荼诃落谷-2.json + 创建顺序边: 须弥6-2 → 须弥6-3, 路径=assets/pathing/须弥6-荼诃落谷-3.json + 创建顺序边: 须弥6-3 → 须弥6-4, 路径=assets/pathing/须弥6-荼诃落谷-4.json + 创建顺序边: 须弥8-1 → 须弥8-2, 路径=assets/pathing/须弥8-折胫谷-2.json + 创建顺序边: 须弥8-2 → 须弥8-3, 路径=assets/pathing/须弥8-折胫谷-3.json + 创建顺序边: 须弥8-3 → 须弥8-4, 路径=assets/pathing/须弥8-折胫谷-4.json + 创建顺序边: 须弥9-1 → 须弥9-2, 路径=assets/pathing/须弥9-镔铁沙丘-2.json + 创建顺序边: 须弥9-2 → 须弥9-3, 路径=assets/pathing/须弥9-镔铁沙丘-3.json + 创建顺序边: 须弥9-3 → 须弥9-4, 路径=assets/pathing/须弥9-镔铁沙丘-4.json + +总共创建了 167 条顺序边 + +重新排序所有边... + +已生成新的数据结构: C:\Users\root\Documents\BetterGI\bettergi-scripts-list\repo\js\AutoLeyLineOutcrop\LeyLineOutcropData.json +传送点数量: 92 +地脉花数量: 218 +总节点数量: 310 +传送点到地脉花边数量: 314 +节点间顺序边数量: 167 +总边数量: 314 +区域排序顺序: 蒙德, 璃月, 稻妻, 须弥, 枫丹, 纳塔 + +注意: 仍有 1 个目标点没有入边 +这些目标点按区域排序如下: + + 蒙德区域的孤立目标点: + ID=1010, 区域=蒙德2-5-1, 坐标=(-319.57, 2156.48) + +请按照之前的建议手动创建连续编号的路径文件 diff --git a/repo/js/AutoLeyLineOutcrop/settings.json b/repo/js/AutoLeyLineOutcrop/settings.json index 5334d523..3d75b315 100644 --- a/repo/js/AutoLeyLineOutcrop/settings.json +++ b/repo/js/AutoLeyLineOutcrop/settings.json @@ -53,6 +53,18 @@ "name": "isNotification", "type": "checkbox", "label": "通过BGI通知系统发送详细通知" - } + }, + [ + { + "name": "isRecognizeResin", + "type": "checkbox", + "label": "树脂耗尽模式\n开启后脚本会在树脂耗尽时停止运行【开发中】" + }, + { + "name": "isGoToSynthesizer", + "type": "select", + "label": "是否前往合成台合成浓缩树脂\n 体力大于40时自动合成浓缩树脂【开发中】" + } +] ] \ No newline at end of file diff --git a/repo/js/AutoLeyLineOutcrop/test_filename_parsing.py b/repo/js/AutoLeyLineOutcrop/test_filename_parsing.py new file mode 100644 index 00000000..422c2dbf --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/test_filename_parsing.py @@ -0,0 +1,58 @@ +def test_filename_parsing(): + """测试文件名解析功能,确保能正确处理各种格式""" + test_files = [ + "蒙德1-风啸山岭-1.json", # 标准格式 + "璃月3-轻策庄-2.json", # 标准格式 + "蒙德2-清泉镇-4-1.json", # 特殊格式(双连字符数字) + "须弥2-须弥城-3-2.json", # 特殊格式 + "纳塔1-区域-5.5.json" # 小数点路线编号 + ] + + print("测试文件名解析结果:") + for filename in test_files: + result = parse_region_area_number(filename) + if len(result) == 5: # 特殊格式 + region_name, region_num, area, route_num, route_sub_num = result + print(f"文件: {filename} (特殊格式)") + print(f" 区域名称: {region_name}") + print(f" 区域编号: {region_num}") + print(f" 地区: {area}") + print(f" 路线编号: {route_num}") + print(f" 路线子编号: {route_sub_num}") + else: # 标准格式 + region_name, region_num, area, route_num = result + print(f"文件: {filename} (标准格式)") + print(f" 区域名称: {region_name}") + print(f" 区域编号: {region_num}") + print(f" 地区: {area}") + print(f" 路线编号: {route_num}") + + # 测试格式化逻辑 + if region_name and region_num and route_num: + if len(result) == 5: # 特殊格式 + route_sub_num = result[4] + if area and "-" in area: + # 特殊格式 + area_parts = area.split("-") + if len(area_parts) == 2: + formatted = f"{region_name}{region_num}-{area_parts[1]}-{int(route_num)}-{int(route_sub_num)}" + else: + formatted = f"{region_name}{region_num}-{area}-{int(route_num)}-{int(route_sub_num)}" + else: + # 非预期情况,但仍处理 + formatted = f"{region_name}{region_num}-{area}-{int(route_num)}-{int(route_sub_num)}" + else: # 标准格式 + if area and "-" in area: + # 特殊格式 + area_parts = area.split("-") + if len(area_parts) == 2: + formatted = f"{region_name}{region_num}-{area_parts[1]}-{int(route_num)}" + else: + formatted = f"{region_name}{region_num}-{int(route_num)}" + else: + # 标准格式 + formatted = f"{region_name}{region_num}-{int(route_num)}" + print(f" 格式化区域: {formatted}") + else: + print(f" 解析失败") + print("") diff --git a/repo/js/AutoLeyLineOutcrop/test_parsing.py b/repo/js/AutoLeyLineOutcrop/test_parsing.py new file mode 100644 index 00000000..422c2dbf --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/test_parsing.py @@ -0,0 +1,58 @@ +def test_filename_parsing(): + """测试文件名解析功能,确保能正确处理各种格式""" + test_files = [ + "蒙德1-风啸山岭-1.json", # 标准格式 + "璃月3-轻策庄-2.json", # 标准格式 + "蒙德2-清泉镇-4-1.json", # 特殊格式(双连字符数字) + "须弥2-须弥城-3-2.json", # 特殊格式 + "纳塔1-区域-5.5.json" # 小数点路线编号 + ] + + print("测试文件名解析结果:") + for filename in test_files: + result = parse_region_area_number(filename) + if len(result) == 5: # 特殊格式 + region_name, region_num, area, route_num, route_sub_num = result + print(f"文件: {filename} (特殊格式)") + print(f" 区域名称: {region_name}") + print(f" 区域编号: {region_num}") + print(f" 地区: {area}") + print(f" 路线编号: {route_num}") + print(f" 路线子编号: {route_sub_num}") + else: # 标准格式 + region_name, region_num, area, route_num = result + print(f"文件: {filename} (标准格式)") + print(f" 区域名称: {region_name}") + print(f" 区域编号: {region_num}") + print(f" 地区: {area}") + print(f" 路线编号: {route_num}") + + # 测试格式化逻辑 + if region_name and region_num and route_num: + if len(result) == 5: # 特殊格式 + route_sub_num = result[4] + if area and "-" in area: + # 特殊格式 + area_parts = area.split("-") + if len(area_parts) == 2: + formatted = f"{region_name}{region_num}-{area_parts[1]}-{int(route_num)}-{int(route_sub_num)}" + else: + formatted = f"{region_name}{region_num}-{area}-{int(route_num)}-{int(route_sub_num)}" + else: + # 非预期情况,但仍处理 + formatted = f"{region_name}{region_num}-{area}-{int(route_num)}-{int(route_sub_num)}" + else: # 标准格式 + if area and "-" in area: + # 特殊格式 + area_parts = area.split("-") + if len(area_parts) == 2: + formatted = f"{region_name}{region_num}-{area_parts[1]}-{int(route_num)}" + else: + formatted = f"{region_name}{region_num}-{int(route_num)}" + else: + # 标准格式 + formatted = f"{region_name}{region_num}-{int(route_num)}" + print(f" 格式化区域: {formatted}") + else: + print(f" 解析失败") + print("") diff --git a/repo/js/AutoLeyLineOutcrop/utils/executePathsUsingNewNodeData.js b/repo/js/AutoLeyLineOutcrop/utils/executePathsUsingNewNodeData.js new file mode 100644 index 00000000..e69de29b diff --git a/repo/js/AutoLeyLineOutcrop/utils/executePathsUsingNodeData.js b/repo/js/AutoLeyLineOutcrop/utils/executePathsUsingNodeData.js index c861352b..24da1497 100644 --- a/repo/js/AutoLeyLineOutcrop/utils/executePathsUsingNodeData.js +++ b/repo/js/AutoLeyLineOutcrop/utils/executePathsUsingNodeData.js @@ -39,8 +39,7 @@ async function (position) { let currentNode = targetNode; while (currentNode.next && currentRunTimes < settings.timesValue) { - if (currentNode.next.length === 1) { - // 获取下一个节点的ID 和 路径,并在节点数据中找到下一个节点 + if (currentNode.next.length === 1) { // 获取下一个节点的ID 和 路径,并在节点数据中找到下一个节点 const nextNodeId = currentNode.next[0].target; const nextRoute = currentNode.next[0].route; const nextNode = nodeData.node.find(node => node.id === nextNodeId); @@ -59,14 +58,11 @@ async function (position) { currentRunTimes++; - log.info(`完成节点 ID ${nextNodeId}, 已执行 ${currentRunTimes}/${settings.timesValue} 次`); - - // 更新当前节点为下一个节点,继续检查 + log.info(`完成节点 ID ${nextNodeId}, 已执行 ${currentRunTimes}/${settings.timesValue} 次`); // 更新当前节点为下一个节点,继续检查 currentNode = nextNode; currentNodePosition = { x: nextNode.position.x, y: nextNode.position.y }; - } - else if (currentNode.next.length > 1) { - // 如果存在分支路线,先打开大地图判断下一个地脉花的位置,根据下一个地脉花的位置选择路线 + } else if (currentNode.next.length > 1) { + // 如果存在分支路线,先打开大地图判断下一个地脉花的位置,然后结合顺序边缘数据选择最优路线 log.info("检测到多个分支路线,开始查找下一个地脉花位置"); // 备份当前地脉花坐标 @@ -89,47 +85,92 @@ async function (position) { log.info(`找到下一个地脉花,位置: (${leyLineX}, ${leyLineY})`); - // 计算每个分支节点到地脉花的距离,选择最近的路径 - let closestRoute = null; - let closestDistance = Infinity; - let closestNodeId = null; + // 优先使用顺序边缘数据来选择路径,如果没有则回退到距离计算 + const sequentialEdges = nodeData.indexes?.edgesBySource; + let selectedRoute = null; + let selectedNodeId = null; - for (const nextRoute of currentNode.next) { - const nextNodeId = nextRoute.target; - const nextNode = nodeData.node.find(node => node.id === nextNodeId); + if (sequentialEdges) { + const currentNodeIdStr = currentNode.id.toString(); + const nextTargetIds = sequentialEdges[currentNodeIdStr]; - if (!nextNode) continue; + if (nextTargetIds && nextTargetIds.length > 0) { + const nextTargetId = nextTargetIds[0]; + log.info(`从顺序边缘数据中找到推荐的下一个目标节点ID: ${nextTargetId}`); - const distance = calculate2DDistance( - leyLineX, leyLineY, - nextNode.position.x, nextNode.position.y - ); - - log.info(`路线到地脉花距离: ID ${nextNodeId}, 距离: ${distance.toFixed(2)}`); - - if (distance < closestDistance) { - closestDistance = distance; - closestRoute = nextRoute.route; - closestNodeId = nextNodeId; + // 在当前节点的分支中查找通向推荐目标节点的路径 + for (const nextRoute of currentNode.next) { + const nextNodeId = nextRoute.target; + + // 检查这个路径是否通向推荐的目标节点(直接匹配或通过后续路径) + if (nextNodeId === nextTargetId) { + selectedRoute = nextRoute.route; + selectedNodeId = nextNodeId; + log.info(`使用顺序边缘数据:找到直接路径到推荐节点ID: ${nextTargetId}`); + break; + } else { + // 检查这个中间节点是否能通向推荐的目标节点 + const intermediateNodeIdStr = nextNodeId.toString(); + const intermediateNextTargets = sequentialEdges[intermediateNodeIdStr]; + + if (intermediateNextTargets && intermediateNextTargets.includes(nextTargetId)) { + selectedRoute = nextRoute.route; + selectedNodeId = nextNodeId; + log.info(`使用顺序边缘数据:找到通过中间节点ID ${nextNodeId} 到达推荐节点ID ${nextTargetId} 的路径`); + break; + } + } + } } } - if (!closestRoute) { + // 如果顺序边缘数据没有找到合适的路径,回退到距离计算 + if (!selectedRoute) { + log.info("顺序边缘数据未找到合适路径,使用距离计算方法选择路径"); + + let closestDistance = Infinity; for (const nextRoute of currentNode.next) { + const nextNodeId = nextRoute.target; + const nextNode = nodeData.node.find(node => node.id === nextNodeId); + + if (!nextNode) continue; + + const distance = calculate2DDistance( + leyLineX, leyLineY, + nextNode.position.x, nextNode.position.y + ); + + log.info(`路线到地脉花距离: ID ${nextNodeId}, 距离: ${distance.toFixed(2)}`); + + if (distance < closestDistance) { + closestDistance = distance; + selectedRoute = nextRoute.route; + selectedNodeId = nextNodeId; + } + } + } + + if (!selectedRoute) { log.error("无法找到合适的路线,终止执行"); // 恢复原始坐标 leyLineX = currentLeyLineX; leyLineY = currentLeyLineY; return; + } const nextNode = nodeData.node.find(node => node.id === selectedNodeId); + if (!nextNode) { + log.error(`未找到节点ID ${selectedNodeId},终止执行`); + // 恢复原始坐标 + leyLineX = currentLeyLineX; + leyLineY = currentLeyLineY; + return; } - const nextNode = nodeData.node.find(node => node.id === closestNodeId); - log.info(`选择最近的路线: ${closestRoute}, 目标节点ID: ${closestNodeId}。`); + log.info(`选择路线: ${selectedRoute}, 目标节点ID: ${selectedNodeId}`); // 创建路径对象并执行 const pathObject = { startNode: currentNode, targetNode: nextNode, - routes: [closestRoute] + routes: [selectedRoute] }; await executePath(pathObject); diff --git a/repo/js/AutoLeyLineOutcrop/utils/executePathsUsingSeparatedNodeData.js b/repo/js/AutoLeyLineOutcrop/utils/executePathsUsingSeparatedNodeData.js new file mode 100644 index 00000000..e69de29b diff --git a/repo/js/AutoLeyLineOutcrop/utils/recognitionResin.js b/repo/js/AutoLeyLineOutcrop/utils/recognitionResin.js new file mode 100644 index 00000000..e63163cb --- /dev/null +++ b/repo/js/AutoLeyLineOutcrop/utils/recognitionResin.js @@ -0,0 +1,149 @@ +/* + 代码迁移中,还未完成适配 +*/ + + +const CondensedRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("RecognitionObject/Condensed Resin.png")); +const FragileRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("RecognitionObject/Fragile Resin.png")); +const TemporaryRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("RecognitionObject/5.png")); +CondensedRo.threshold = 0.70; +CondensedRo.Use3Channels = true; +FragileRo.threshold = 0.70; +FragileRo.Use3Channels = true; + +this.recognitionResin = +async function() { + let totalRunNum = 0; + await genshin.returnMainUi(); + await sleep(2000); + keyPress("m"); + await sleep(2000); + + let captureRegion = captureGameRegion(); + let resList = captureRegion.findMulti(RecognitionObject.ocr(1043, 5, 300, 100)); + let IsOver = false + + for (let i = 0; i < resList.count; i++) { + let resStamina = resList[i]; + log.info(`第 ${i + 1} 个结果: ${resStamina.text}`); + await sleep(2000); + + // 提取/前面的数字 + const rawText = resStamina.text; + const splitResult = rawText.split('/'); // 用/分割字符串 + + // 确保分割后得到两部分且第一部分是有效数字 + if (splitResult.length >= 1) { + const staminaValue = parseInt(splitResult[0]); // 只取第一部分 + + if (!isNaN(staminaValue)) { + log.info(`提取的体力值: ${staminaValue}`); + + if (staminaValue >= 40) { + IsOver = true; + } + break; + } else { + log.warn("无效的数字格式"); + } + } else { + log.warn("未找到/分隔符"); + } + + await sleep(2000) + await genshin.returnMainUi(); + keyPress("b"); + await sleep(2000); + click(1245, 50); + await sleep(2000); + + // 浓缩树脂识别 + let Condensed = captureGameRegion().find(CondensedRo); + let Isfive = false; + if (Condensed.isExist()) { + log.info("识别到浓缩树脂"); + let CondensedX = Math.round(Condensed.x + Condensed.width / 2 - 20) + let Condensedy = Math.round(Condensed.y + Condensed.height / 2 + 60) + log.info(`点击坐标: (${CondensedX}, ${Condensedy})`); + + let captureRegion = captureGameRegion(); + let Condensedres = captureRegion.findMulti(RecognitionObject.ocr(CondensedX, Condensedy, 50, 50)); + for (let i = 0; i < Condensedres.count; i++) { + let resCondensed = Condensedres[i]; + log.info(`浓缩树脂: ${resCondensed.text}`); + await sleep(2000); + if (resCondensed.text == 5) { + Isfive = true; + log.info("浓缩树脂已满") + await sleep(2000); + + } + } + } + // 脆弱树脂识别 + let Fragile = captureGameRegion().find(FragileRo); + if (Fragile.isExist()) { + log.info("识别到脆弱树脂"); + + let FragileX = Math.round(Fragile.x + Fragile.width / 2 - 20) + let Fragiley = Math.round(Fragile.y + Fragile.height / 2 + 60) + + let captureRegion = captureGameRegion(); + let Fragileres = captureRegion.findMulti(RecognitionObject.ocr(FragileX, Fragiley, 50, 50)); + + if (Fragileres.count === 0) { + log.error("OCR识别失败:未能识别到脆弱树脂数量"); + } else { + for (let i = 0; i < Fragileres.count; i++) { + let resFragile = Fragileres[i]; + if (resFragile.text && resFragile.text.trim() !== "") { + log.info("脆弱树脂数量: " + resFragile.text); + } else { + log.warn("OCR识别结果为空或无效"); + } + } + } + } else { + log.info("未识别到脆弱树脂"); + await sleep(2000); + } + // 须臾树脂识别 + let Temporary = captureGameRegion().find(TemporaryRo); + if (Temporary.isExist()) { + log.info("识别到须臾树脂"); + + let TemporaryX = Math.round(Temporary.x + Temporary.width / 2 - 20) + let Temporaryy = Math.round(Temporary.y + Temporary.height / 2 + 40) + log.info(`点击坐标: (${TemporaryX}, ${Temporaryy})`); + + let captureRegion = captureGameRegion(); + let Temporaryres = captureRegion.findMulti(RecognitionObject.ocr(TemporaryX, Temporaryy, 50, 50)); + } else { + log.info("未识别到脆弱树脂"); + } + + if (Temporaryres.count === 0) { + log.error("OCR识别失败:未能识别到须臾树脂数量"); + } else { + for (let i = 0; i < Temporaryres.count; i++) { + let resTemporary = Temporaryres[i]; + if (resTemporary.text && resTemporary.text.trim() !== "") { + log.info("须臾树脂数量: " + resTemporary.text); + } else { + log.warn("OCR识别结果为空或无效"); + } + await sleep(2000); + } + } + + + // 尝试调用任务 + + + if (IsOver && Isfive == true) { + log.info("需要前往合成台"); // 输出 true + } else { + log.info("不需要前往合成台"); + } + } +} \ No newline at end of file