From 10d06c3487f9b2f9176d97f15acaff6acc230e69 Mon Sep 17 00:00:00 2001 From: DarkFlameMaster <1004452714@qq.com> Date: Tue, 20 Jan 2026 14:21:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5AutoCommission=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20(#2746)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DarkFlameMaster --- .../报答神明的方式/蒙德城/process.json | 2 +- .../艾伯特先生别再冲了一/蒙德城/process.json | 95 ------- .../蒙德城/艾伯特先生别再冲了-蒙德城-1.json | 71 ----- .../蒙德城/艾伯特先生别再冲了-蒙德城-2.json | 53 ---- .../蒙德城/艾伯特先生别再冲了-蒙德城-3.json | 170 ------------ .../蒙德城/艾伯特先生别再冲了-蒙德城-4.json | 53 ---- .../蒙德城/艾伯特先生别再冲了-蒙德城-5.json | 53 ---- .../蒙德城/艾伯特先生别再冲了-蒙德城-6.json | 215 ---------------- .../蒙德城/process.json | 95 ------- .../蒙德城/艾伯特先生别再冲了-蒙德城-1.json | 71 ----- .../蒙德城/艾伯特先生别再冲了-蒙德城-2.json | 53 ---- .../蒙德城/艾伯特先生别再冲了-蒙德城-3.json | 170 ------------ .../蒙德城/艾伯特先生别再冲了-蒙德城-4.json | 53 ---- .../蒙德城/艾伯特先生别再冲了-蒙德城-5.json | 53 ---- .../蒙德城/艾伯特先生别再冲了-蒙德城-6.json | 215 ---------------- .../艾琳未来的骑士一/蒙德城/process.json | 7 - .../蒙德城/艾琳,未来的骑士-1.json | 59 ----- .../蒙德城/艾琳,未来的骑士-2.json | 49 ---- .../蒙德城/艾琳,未来的骑士-3.json | 49 ---- .../蒙德城/艾琳,未来的骑士-4.json | 49 ---- .../蒙德城/艾琳,未来的骑士-5.json | 76 ------ .../{风起地 => 苍风高地}/process.json | 0 .../{风起地 => 苍风高地}/语言交流-1.json | 0 .../{风起地 => 苍风高地}/语言交流-2.json | 0 .../{风起地 => 苍风高地}/语言交流-3.json | 0 .../{风起地 => 苍风高地}/语言交流-4.json | 0 .../{风起地 => 苍风高地}/语言交流-5.json | 0 repo/js/AutoCommission/constants.js | 6 + repo/js/AutoCommission/lib/checkVersion.js | 2 +- repo/js/AutoCommission/lib/commission-data.js | 109 ++++++-- .../lib/commission-recognition.js | 242 +++++++++++++++++- repo/js/AutoCommission/lib/core.js | 3 + repo/js/AutoCommission/lib/steps/auto-task.js | 7 +- repo/js/AutoCommission/manifest.json | 10 +- 34 files changed, 360 insertions(+), 1730 deletions(-) delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/process.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-1.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-2.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-3.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-4.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-5.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-6.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/process.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-1.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-2.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-3.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-4.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-5.json delete mode 100644 repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-6.json delete mode 100644 repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/process.json delete mode 100644 repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-1.json delete mode 100644 repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-2.json delete mode 100644 repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-3.json delete mode 100644 repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-4.json delete mode 100644 repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-5.json rename repo/js/AutoCommission/assets/process/语言交流/{风起地 => 苍风高地}/process.json (100%) rename repo/js/AutoCommission/assets/process/语言交流/{风起地 => 苍风高地}/语言交流-1.json (100%) rename repo/js/AutoCommission/assets/process/语言交流/{风起地 => 苍风高地}/语言交流-2.json (100%) rename repo/js/AutoCommission/assets/process/语言交流/{风起地 => 苍风高地}/语言交流-3.json (100%) rename repo/js/AutoCommission/assets/process/语言交流/{风起地 => 苍风高地}/语言交流-4.json (100%) rename repo/js/AutoCommission/assets/process/语言交流/{风起地 => 苍风高地}/语言交流-5.json (100%) diff --git a/repo/js/AutoCommission/assets/process/报答神明的方式/蒙德城/process.json b/repo/js/AutoCommission/assets/process/报答神明的方式/蒙德城/process.json index 302c1f86c..802a5c50d 100644 --- a/repo/js/AutoCommission/assets/process/报答神明的方式/蒙德城/process.json +++ b/repo/js/AutoCommission/assets/process/报答神明的方式/蒙德城/process.json @@ -62,7 +62,7 @@ "type": "地址检测", "data": [-1265, 1929], "note": "检测风起地是否需要清理七天神像", - "run": "风起地七天神像process.json" + "run": "风起地process.json" }, { diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/process.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/process.json deleted file mode 100644 index ffd96550d..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/process.json +++ /dev/null @@ -1,95 +0,0 @@ -[ - { - "type": "地图追踪", - "data": "艾伯特先生别再冲了-蒙德城-1.json", - "note": "" - }, - { - "type": "对话", - "data": { - "skipCount": 5, - "npcWhiteList": ["维多利亚"] - }, - "note": "" - }, - { - "type": "地图追踪", - "data": "艾伯特先生别再冲了-蒙德城-2.json", - "note": "" - }, - { - "type": "对话", - "data": { - "skipCount": 5, - "npcWhiteList": ["艾伯特"] - }, - "note": "" - }, - { - "type": "切换队伍", - "data": "元素采集", - "note": "执行切换队伍步骤" - }, - { - "type": "地图追踪", - "data": "艾伯特先生别再冲了-蒙德城-3.json", - "note": "" - }, - { - "type": "委托描述检测", - "data": { - "description": "清扫落叶", - "executeFile": "艾伯特先生别再冲了-蒙德城-6.json", - "runType": "path", - "useKeyword": true - }, - "note": "检测委托描述并执行清扫落叶" - }, - { - "type": "切换队伍", - "data": "战斗", - "note": "执行切换队伍步骤" - }, - { - "type": "地图追踪", - "data": "艾伯特先生别再冲了-蒙德城-4.json", - "note": "" - }, - { - "type": "对话", - "data": { - "skipCount": 5, - "npcWhiteList": ["艾伯特"] - }, - "note": "" - }, - { - "type": "地图追踪", - "data": "艾伯特先生别再冲了-蒙德城-5.json", - "note": "" - }, - { - "type": "对话", - "data": { - "skipCount": 5, - "npcWhiteList": ["进入教堂"] - }, - "note": "" - }, - { - "type": "追踪委托", - "data": { - "npc": "维多利亚", - "iconType": "Question" - }, - "note": "" - }, - { - "type": "对话", - "data": { - "skipCount": 5, - "npcWhiteList": ["维多利亚"] - }, - "note": "" - } -] \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-1.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-1.json deleted file mode 100644 index 9109fc52f..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-1.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1756135028272, - "map_match_method": "", - "map_name": "Teyvat", - "name": "去教堂门口找维多利亚修女", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "walk", - "type": "teleport", - "x": -748.560546875, - "y": 2263.119140625 - }, - { - "action": "stop_flying", - "action_params": "", - "id": 2, - "move_mode": "fly", - "type": "path", - "x": -727.984375, - "y": 2312.0478515625 - }, - { - "action": "", - "action_params": "", - "id": 3, - "move_mode": "walk", - "type": "path", - "x": -721.197265625, - "y": 2327.32080078125 - }, - { - "action": "", - "action_params": "", - "id": 4, - "move_mode": "walk", - "type": "path", - "x": -687.515625, - "y": 2344.42333984375 - }, - { - "action": "", - "action_params": "", - "id": 5, - "move_mode": "walk", - "type": "target", - "x": -688.4921875, - "y": 2353.576416015625 - }, - { - "action": "", - "action_params": "", - "id": 6, - "move_mode": "walk", - "type": "orientation", - "x": -685.056640625, - "y": 2354.952880859375 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-2.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-2.json deleted file mode 100644 index fe4efa0db..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-2.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1758258707948, - "map_match_method": "", - "map_name": "Teyvat", - "name": "艾伯特先生别再冲了-蒙德城-2", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "walk", - "type": "path", - "x": -688.806640625, - "y": 2353.15771484375 - }, - { - "action": "", - "action_params": "", - "id": 2, - "move_mode": "walk", - "type": "target", - "x": -696.71484375, - "y": 2366.522705078125 - }, - { - "action": "", - "action_params": "", - "id": 3, - "move_mode": "dash", - "type": "path", - "x": -664.80859375, - "y": 2382.34765625 - }, - { - "action": "", - "action_params": "", - "id": 4, - "move_mode": "walk", - "type": "target", - "x": -660.89453125, - "y": 2384.533935546875 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-3.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-3.json deleted file mode 100644 index fe31cf382..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-3.json +++ /dev/null @@ -1,170 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1758261019966, - "map_match_method": "", - "map_name": "Teyvat", - "name": "艾伯特先生别再冲了-蒙德城-3", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "dash", - "type": "path", - "x": -665.1265189580845, - "y": 2382.37428868638 - }, - { - "action": "", - "action_params": "", - "id": 2, - "move_mode": "walk", - "type": "target", - "x": -697.2578125, - "y": 2366.885986328125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 3, - "move_mode": "walk", - "type": "target", - "x": -700.21484375, - "y": 2372.72607421875 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 4, - "move_mode": "walk", - "type": "target", - "x": -707.03125, - "y": 2374.20361328125 - }, - { - "action": "", - "action_params": "", - "id": 5, - "move_mode": "walk", - "type": "path", - "x": -711.880859375, - "y": 2371.072509765625 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 6, - "move_mode": "walk", - "type": "target", - "x": -710.29296875, - "y": 2367.266845703125 - }, - { - "action": "", - "action_params": "", - "id": 7, - "move_mode": "fly", - "type": "path", - "x": -703.228515625, - "y": 2373.84716796875 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 8, - "move_mode": "walk", - "type": "target", - "x": -705.970703125, - "y": 2370.54638671875 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 9, - "move_mode": "walk", - "type": "target", - "x": -706.783203125, - "y": 2368.520751953125 - }, - { - "action": "", - "action_params": "", - "id": 10, - "move_mode": "walk", - "type": "path", - "x": -698.349609375, - "y": 2369.087158203125 - }, - { - "action": "", - "action_params": "", - "id": 11, - "move_mode": "walk", - "type": "path", - "x": -681.40625, - "y": 2332.7080078125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 12, - "move_mode": "walk", - "type": "target", - "x": -683.158203125, - "y": 2327.98779296875 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 13, - "move_mode": "walk", - "type": "target", - "x": -682.73828125, - "y": 2325.82861328125 - }, - { - "action": "", - "action_params": "", - "id": 14, - "move_mode": "walk", - "type": "path", - "x": -683.306640625, - "y": 2332.47705078125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 15, - "move_mode": "walk", - "type": "target", - "x": -686.97265625, - "y": 2330.0859375 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 16, - "move_mode": "walk", - "type": "target", - "x": -689.826171875, - "y": 2330.083251953125 - }, - { - "action": "", - "action_params": "", - "id": 17, - "move_mode": "walk", - "type": "path", - "x": -682.0390625, - "y": 2333.88671875 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-4.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-4.json deleted file mode 100644 index 1df9d8d2b..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-4.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1756140662657, - "map_match_method": "", - "map_name": "Teyvat", - "name": "回去找艾伯特", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "walk", - "type": "target", - "x": -681.67578125, - "y": 2333.349365234375 - }, - { - "action": "", - "action_params": "", - "id": 2, - "move_mode": "walk", - "type": "path", - "x": -698.7734375, - "y": 2368.9599609375 - }, - { - "action": "", - "action_params": "", - "id": 3, - "move_mode": "walk", - "type": "path", - "x": -680.21875, - "y": 2373.94287109375 - }, - { - "action": "", - "action_params": "", - "id": 4, - "move_mode": "walk", - "type": "path", - "x": -660.9609375, - "y": 2384.700439453125 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-5.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-5.json deleted file mode 100644 index cb4a8bea2..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-5.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1756140703361, - "map_match_method": "", - "map_name": "Teyvat", - "name": "艾伯特位置去教堂门口", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "walk", - "type": "path", - "x": -661.86328125, - "y": 2384.534423828125 - }, - { - "action": "", - "action_params": "", - "id": 2, - "move_mode": "walk", - "type": "path", - "x": -697.96875, - "y": 2366.020751953125 - }, - { - "action": "", - "action_params": "", - "id": 3, - "move_mode": "walk", - "type": "path", - "x": -690.896484375, - "y": 2351.48193359375 - }, - { - "action": "", - "action_params": "", - "id": 4, - "move_mode": "walk", - "type": "path", - "x": -685.25, - "y": 2354.908447265625 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-6.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-6.json deleted file mode 100644 index 6e2a481b6..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一/蒙德城/艾伯特先生别再冲了-蒙德城-6.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1758259593218, - "map_match_method": "", - "map_name": "Teyvat", - "name": "艾伯特先生别再冲了-蒙德城-6", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "walk", - "type": "teleport", - "x": -749.439453125, - "y": 2263.06689453125 - }, - { - "action": "", - "action_params": "", - "id": 2, - "move_mode": "fly", - "type": "path", - "x": -747.837890625, - "y": 2264.47998046875 - }, - { - "action": "stop_flying", - "action_params": "", - "id": 3, - "move_mode": "fly", - "type": "path", - "x": -717.5390625, - "y": 2290.454833984375 - }, - { - "action": "", - "action_params": "", - "id": 4, - "move_mode": "dash", - "type": "path", - "x": -713.13671875, - "y": 2297.3486328125 - }, - { - "action": "", - "action_params": "", - "id": 5, - "move_mode": "dash", - "type": "path", - "x": -710.916015625, - "y": 2343.29052734375 - }, - { - "action": "", - "action_params": "", - "id": 6, - "move_mode": "walk", - "type": "path", - "x": -697.873046875, - "y": 2362.03955078125 - }, - { - "action": "", - "action_params": "", - "id": 7, - "move_mode": "walk", - "type": "target", - "x": -697.2578125, - "y": 2366.885986328125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 8, - "move_mode": "walk", - "type": "target", - "x": -700.21484375, - "y": 2372.72607421875 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 9, - "move_mode": "walk", - "type": "target", - "x": -707.03125, - "y": 2374.20361328125 - }, - { - "action": "", - "action_params": "", - "id": 10, - "move_mode": "walk", - "type": "path", - "x": -711.880859375, - "y": 2371.072509765625 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 11, - "move_mode": "walk", - "type": "target", - "x": -710.29296875, - "y": 2367.266845703125 - }, - { - "action": "", - "action_params": "", - "id": 12, - "move_mode": "fly", - "type": "path", - "x": -703.228515625, - "y": 2373.84716796875 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 13, - "move_mode": "walk", - "type": "target", - "x": -705.970703125, - "y": 2370.54638671875 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 14, - "move_mode": "walk", - "type": "target", - "x": -706.783203125, - "y": 2368.520751953125 - }, - { - "action": "", - "action_params": "", - "id": 15, - "move_mode": "walk", - "type": "path", - "x": -698.349609375, - "y": 2369.087158203125 - }, - { - "action": "", - "action_params": "", - "id": 16, - "move_mode": "walk", - "type": "path", - "x": -681.40625, - "y": 2332.7080078125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 17, - "move_mode": "walk", - "type": "target", - "x": -683.158203125, - "y": 2327.98779296875 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 18, - "move_mode": "walk", - "type": "target", - "x": -682.73828125, - "y": 2325.82861328125 - }, - { - "action": "", - "action_params": "", - "id": 19, - "move_mode": "walk", - "type": "path", - "x": -683.306640625, - "y": 2332.47705078125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 20, - "move_mode": "walk", - "type": "target", - "x": -686.97265625, - "y": 2330.0859375 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 21, - "move_mode": "walk", - "type": "target", - "x": -689.826171875, - "y": 2330.083251953125 - }, - { - "action": "", - "action_params": "", - "id": 22, - "move_mode": "walk", - "type": "path", - "x": -682.0390625, - "y": 2333.88671875 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/process.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/process.json deleted file mode 100644 index ffd96550d..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/process.json +++ /dev/null @@ -1,95 +0,0 @@ -[ - { - "type": "地图追踪", - "data": "艾伯特先生别再冲了-蒙德城-1.json", - "note": "" - }, - { - "type": "对话", - "data": { - "skipCount": 5, - "npcWhiteList": ["维多利亚"] - }, - "note": "" - }, - { - "type": "地图追踪", - "data": "艾伯特先生别再冲了-蒙德城-2.json", - "note": "" - }, - { - "type": "对话", - "data": { - "skipCount": 5, - "npcWhiteList": ["艾伯特"] - }, - "note": "" - }, - { - "type": "切换队伍", - "data": "元素采集", - "note": "执行切换队伍步骤" - }, - { - "type": "地图追踪", - "data": "艾伯特先生别再冲了-蒙德城-3.json", - "note": "" - }, - { - "type": "委托描述检测", - "data": { - "description": "清扫落叶", - "executeFile": "艾伯特先生别再冲了-蒙德城-6.json", - "runType": "path", - "useKeyword": true - }, - "note": "检测委托描述并执行清扫落叶" - }, - { - "type": "切换队伍", - "data": "战斗", - "note": "执行切换队伍步骤" - }, - { - "type": "地图追踪", - "data": "艾伯特先生别再冲了-蒙德城-4.json", - "note": "" - }, - { - "type": "对话", - "data": { - "skipCount": 5, - "npcWhiteList": ["艾伯特"] - }, - "note": "" - }, - { - "type": "地图追踪", - "data": "艾伯特先生别再冲了-蒙德城-5.json", - "note": "" - }, - { - "type": "对话", - "data": { - "skipCount": 5, - "npcWhiteList": ["进入教堂"] - }, - "note": "" - }, - { - "type": "追踪委托", - "data": { - "npc": "维多利亚", - "iconType": "Question" - }, - "note": "" - }, - { - "type": "对话", - "data": { - "skipCount": 5, - "npcWhiteList": ["维多利亚"] - }, - "note": "" - } -] \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-1.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-1.json deleted file mode 100644 index 9109fc52f..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-1.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1756135028272, - "map_match_method": "", - "map_name": "Teyvat", - "name": "去教堂门口找维多利亚修女", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "walk", - "type": "teleport", - "x": -748.560546875, - "y": 2263.119140625 - }, - { - "action": "stop_flying", - "action_params": "", - "id": 2, - "move_mode": "fly", - "type": "path", - "x": -727.984375, - "y": 2312.0478515625 - }, - { - "action": "", - "action_params": "", - "id": 3, - "move_mode": "walk", - "type": "path", - "x": -721.197265625, - "y": 2327.32080078125 - }, - { - "action": "", - "action_params": "", - "id": 4, - "move_mode": "walk", - "type": "path", - "x": -687.515625, - "y": 2344.42333984375 - }, - { - "action": "", - "action_params": "", - "id": 5, - "move_mode": "walk", - "type": "target", - "x": -688.4921875, - "y": 2353.576416015625 - }, - { - "action": "", - "action_params": "", - "id": 6, - "move_mode": "walk", - "type": "orientation", - "x": -685.056640625, - "y": 2354.952880859375 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-2.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-2.json deleted file mode 100644 index fe4efa0db..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-2.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1758258707948, - "map_match_method": "", - "map_name": "Teyvat", - "name": "艾伯特先生别再冲了-蒙德城-2", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "walk", - "type": "path", - "x": -688.806640625, - "y": 2353.15771484375 - }, - { - "action": "", - "action_params": "", - "id": 2, - "move_mode": "walk", - "type": "target", - "x": -696.71484375, - "y": 2366.522705078125 - }, - { - "action": "", - "action_params": "", - "id": 3, - "move_mode": "dash", - "type": "path", - "x": -664.80859375, - "y": 2382.34765625 - }, - { - "action": "", - "action_params": "", - "id": 4, - "move_mode": "walk", - "type": "target", - "x": -660.89453125, - "y": 2384.533935546875 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-3.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-3.json deleted file mode 100644 index fe31cf382..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-3.json +++ /dev/null @@ -1,170 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1758261019966, - "map_match_method": "", - "map_name": "Teyvat", - "name": "艾伯特先生别再冲了-蒙德城-3", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "dash", - "type": "path", - "x": -665.1265189580845, - "y": 2382.37428868638 - }, - { - "action": "", - "action_params": "", - "id": 2, - "move_mode": "walk", - "type": "target", - "x": -697.2578125, - "y": 2366.885986328125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 3, - "move_mode": "walk", - "type": "target", - "x": -700.21484375, - "y": 2372.72607421875 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 4, - "move_mode": "walk", - "type": "target", - "x": -707.03125, - "y": 2374.20361328125 - }, - { - "action": "", - "action_params": "", - "id": 5, - "move_mode": "walk", - "type": "path", - "x": -711.880859375, - "y": 2371.072509765625 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 6, - "move_mode": "walk", - "type": "target", - "x": -710.29296875, - "y": 2367.266845703125 - }, - { - "action": "", - "action_params": "", - "id": 7, - "move_mode": "fly", - "type": "path", - "x": -703.228515625, - "y": 2373.84716796875 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 8, - "move_mode": "walk", - "type": "target", - "x": -705.970703125, - "y": 2370.54638671875 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 9, - "move_mode": "walk", - "type": "target", - "x": -706.783203125, - "y": 2368.520751953125 - }, - { - "action": "", - "action_params": "", - "id": 10, - "move_mode": "walk", - "type": "path", - "x": -698.349609375, - "y": 2369.087158203125 - }, - { - "action": "", - "action_params": "", - "id": 11, - "move_mode": "walk", - "type": "path", - "x": -681.40625, - "y": 2332.7080078125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 12, - "move_mode": "walk", - "type": "target", - "x": -683.158203125, - "y": 2327.98779296875 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 13, - "move_mode": "walk", - "type": "target", - "x": -682.73828125, - "y": 2325.82861328125 - }, - { - "action": "", - "action_params": "", - "id": 14, - "move_mode": "walk", - "type": "path", - "x": -683.306640625, - "y": 2332.47705078125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 15, - "move_mode": "walk", - "type": "target", - "x": -686.97265625, - "y": 2330.0859375 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 16, - "move_mode": "walk", - "type": "target", - "x": -689.826171875, - "y": 2330.083251953125 - }, - { - "action": "", - "action_params": "", - "id": 17, - "move_mode": "walk", - "type": "path", - "x": -682.0390625, - "y": 2333.88671875 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-4.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-4.json deleted file mode 100644 index 1df9d8d2b..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-4.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1756140662657, - "map_match_method": "", - "map_name": "Teyvat", - "name": "回去找艾伯特", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "walk", - "type": "target", - "x": -681.67578125, - "y": 2333.349365234375 - }, - { - "action": "", - "action_params": "", - "id": 2, - "move_mode": "walk", - "type": "path", - "x": -698.7734375, - "y": 2368.9599609375 - }, - { - "action": "", - "action_params": "", - "id": 3, - "move_mode": "walk", - "type": "path", - "x": -680.21875, - "y": 2373.94287109375 - }, - { - "action": "", - "action_params": "", - "id": 4, - "move_mode": "walk", - "type": "path", - "x": -660.9609375, - "y": 2384.700439453125 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-5.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-5.json deleted file mode 100644 index cb4a8bea2..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-5.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1756140703361, - "map_match_method": "", - "map_name": "Teyvat", - "name": "艾伯特位置去教堂门口", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "walk", - "type": "path", - "x": -661.86328125, - "y": 2384.534423828125 - }, - { - "action": "", - "action_params": "", - "id": 2, - "move_mode": "walk", - "type": "path", - "x": -697.96875, - "y": 2366.020751953125 - }, - { - "action": "", - "action_params": "", - "id": 3, - "move_mode": "walk", - "type": "path", - "x": -690.896484375, - "y": 2351.48193359375 - }, - { - "action": "", - "action_params": "", - "id": 4, - "move_mode": "walk", - "type": "path", - "x": -685.25, - "y": 2354.908447265625 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-6.json b/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-6.json deleted file mode 100644 index 6e2a481b6..000000000 --- a/repo/js/AutoCommission/assets/process/艾伯特先生别再冲了一一/蒙德城/艾伯特先生别再冲了-蒙德城-6.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "info": { - "authors": [], - "bgi_version": "0.45.0", - "description": "", - "enable_monster_loot_split": false, - "last_modified_time": 1758259593218, - "map_match_method": "", - "map_name": "Teyvat", - "name": "艾伯特先生别再冲了-蒙德城-6", - "tags": [], - "type": "collect", - "version": "1.0" - }, - "positions": [ - { - "action": "", - "action_params": "", - "id": 1, - "move_mode": "walk", - "type": "teleport", - "x": -749.439453125, - "y": 2263.06689453125 - }, - { - "action": "", - "action_params": "", - "id": 2, - "move_mode": "fly", - "type": "path", - "x": -747.837890625, - "y": 2264.47998046875 - }, - { - "action": "stop_flying", - "action_params": "", - "id": 3, - "move_mode": "fly", - "type": "path", - "x": -717.5390625, - "y": 2290.454833984375 - }, - { - "action": "", - "action_params": "", - "id": 4, - "move_mode": "dash", - "type": "path", - "x": -713.13671875, - "y": 2297.3486328125 - }, - { - "action": "", - "action_params": "", - "id": 5, - "move_mode": "dash", - "type": "path", - "x": -710.916015625, - "y": 2343.29052734375 - }, - { - "action": "", - "action_params": "", - "id": 6, - "move_mode": "walk", - "type": "path", - "x": -697.873046875, - "y": 2362.03955078125 - }, - { - "action": "", - "action_params": "", - "id": 7, - "move_mode": "walk", - "type": "target", - "x": -697.2578125, - "y": 2366.885986328125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 8, - "move_mode": "walk", - "type": "target", - "x": -700.21484375, - "y": 2372.72607421875 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 9, - "move_mode": "walk", - "type": "target", - "x": -707.03125, - "y": 2374.20361328125 - }, - { - "action": "", - "action_params": "", - "id": 10, - "move_mode": "walk", - "type": "path", - "x": -711.880859375, - "y": 2371.072509765625 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 11, - "move_mode": "walk", - "type": "target", - "x": -710.29296875, - "y": 2367.266845703125 - }, - { - "action": "", - "action_params": "", - "id": 12, - "move_mode": "fly", - "type": "path", - "x": -703.228515625, - "y": 2373.84716796875 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 13, - "move_mode": "walk", - "type": "target", - "x": -705.970703125, - "y": 2370.54638671875 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 14, - "move_mode": "walk", - "type": "target", - "x": -706.783203125, - "y": 2368.520751953125 - }, - { - "action": "", - "action_params": "", - "id": 15, - "move_mode": "walk", - "type": "path", - "x": -698.349609375, - "y": 2369.087158203125 - }, - { - "action": "", - "action_params": "", - "id": 16, - "move_mode": "walk", - "type": "path", - "x": -681.40625, - "y": 2332.7080078125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 17, - "move_mode": "walk", - "type": "target", - "x": -683.158203125, - "y": 2327.98779296875 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 18, - "move_mode": "walk", - "type": "target", - "x": -682.73828125, - "y": 2325.82861328125 - }, - { - "action": "", - "action_params": "", - "id": 19, - "move_mode": "walk", - "type": "path", - "x": -683.306640625, - "y": 2332.47705078125 - }, - { - "action": "anemo_collect", - "action_params": "", - "id": 20, - "move_mode": "walk", - "type": "target", - "x": -686.97265625, - "y": 2330.0859375 - }, - { - "action": "pyro_collect", - "action_params": "", - "id": 21, - "move_mode": "walk", - "type": "target", - "x": -689.826171875, - "y": 2330.083251953125 - }, - { - "action": "", - "action_params": "", - "id": 22, - "move_mode": "walk", - "type": "path", - "x": -682.0390625, - "y": 2333.88671875 - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/process.json b/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/process.json deleted file mode 100644 index 46b2081cd..000000000 --- a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/process.json +++ /dev/null @@ -1,7 +0,0 @@ -艾琳,未来的骑士-1.json -F -艾琳,未来的骑士-2.json -艾琳,未来的骑士-3.json -艾琳,未来的骑士-4.json -艾琳,未来的骑士-5.json -F \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-1.json b/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-1.json deleted file mode 100644 index c64e20d3c..000000000 --- a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-1.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "info": { - "name": "艾琳,未来的骑士-1", - "type": "collect", - "author": "云闲vsv", - "version": "1.0", - "description": "艾琳,未来的骑士-1", - "map_name": "Teyvat", - "bgi_version": "0.45.0", - "update_time":20250615 - }, - "positions": [ - { - "id": 1, - "action": "", - "move_mode": "walk", - "type": "teleport", - "x": -749.513671875, - "y": 2263.146484375, - "action_params": "" - }, - { - "id": 2, - "x": -747.12890625, - "y": 2262.235595703125, - "type": "path", - "move_mode": "walk", - "action": "", - "action_params": "" - }, - { - "id": 3, - "x": -740.51953125, - "y": 2260.38525390625, - "type": "path", - "move_mode": "fly", - "action": "", - "action_params": "" - }, - { - "id": 4, - "x": -738.279296875, - "y": 2264.16845703125, - "type": "target", - "move_mode": "fly", - "action": "stop_flying", - "action_params": "" - }, - { - "id": 5, - "x": -730.9306640625, - "y": 2267.73046875, - "type": "target", - "move_mode": "walk", - "action": "", - "action_params": "" - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-2.json b/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-2.json deleted file mode 100644 index e720fa8ba..000000000 --- a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-2.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "info": { - "name": "艾琳,未来的骑士-1", - "type": "collect", - "author": "云闲vsv", - "version": "1.0", - "description": "艾琳,未来的骑士-1", - "map_name": "Teyvat", - "bgi_version": "0.45.0" - }, - "positions": [ - { - "id": 1, - "action": "", - "move_mode": "walk", - "type": "teleport", - "x": -749.513671875, - "y": 2263.146484375, - "action_params": "" - }, - { - "id": 2, - "x": -747.12890625, - "y": 2262.235595703125, - "type": "path", - "move_mode": "walk", - "action": "", - "action_params": "" - }, - { - "id": 3, - "x": -740.51953125, - "y": 2260.38525390625, - "type": "path", - "move_mode": "fly", - "action": "", - "action_params": "" - }, - { - "id": 4, - "x": -738.279296875, - "y": 2264.16845703125, - "type": "target", - "move_mode": "fly", - "action": "stop_flying", - "action_params": "" - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-3.json b/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-3.json deleted file mode 100644 index d1db196ef..000000000 --- a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-3.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "info": { - "name": "艾琳,未来的骑士-3", - "type": "collect", - "author": "云闲vsv", - "version": "1.0", - "description": "艾琳,未来的骑士-3", - "map_name": "Teyvat", - "bgi_version": "0.45.0" - }, - "positions": [ - { - "id": 1, - "action": "", - "move_mode": "walk", - "type": "teleport", - "x": -749.513671875, - "y": 2263.146484375, - "action_params": "" - }, - { - "id": 2, - "x": -747.12890625, - "y": 2262.235595703125, - "type": "path", - "move_mode": "walk", - "action": "", - "action_params": "" - }, - { - "id": 3, - "x": -740.51953125, - "y": 2260.38525390625, - "type": "path", - "move_mode": "fly", - "action": "", - "action_params": "" - }, - { - "id": 4, - "x": -734.431640625, - "y": 2264.39208984375, - "type": "target", - "move_mode": "fly", - "action": "stop_flying", - "action_params": "300" - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-4.json b/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-4.json deleted file mode 100644 index 893a884c3..000000000 --- a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-4.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "info": { - "name": "艾琳,未来的骑士-4", - "type": "collect", - "author": "云闲vsv", - "version": "1.0", - "description": "艾琳,未来的骑士-4", - "map_name": "Teyvat", - "bgi_version": "0.45.0" - }, - "positions": [ - { - "id": 1, - "action": "", - "move_mode": "walk", - "type": "teleport", - "x": -749.513671875, - "y": 2263.146484375, - "action_params": "" - }, - { - "id": 2, - "x": -747.12890625, - "y": 2262.235595703125, - "type": "path", - "move_mode": "walk", - "action": "", - "action_params": "" - }, - { - "id": 3, - "x": -740.51953125, - "y": 2260.38525390625, - "type": "path", - "move_mode": "fly", - "action": "", - "action_params": "" - }, - { - "id": 4, - "x": -737.0185546875, - "y": 2263.715087890625, - "type": "target", - "move_mode": "fly", - "action": "stop_flying", - "action_params": "200" - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-5.json b/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-5.json deleted file mode 100644 index 5b2651633..000000000 --- a/repo/js/AutoCommission/assets/process/艾琳未来的骑士一/蒙德城/艾琳,未来的骑士-5.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "info": { - "name": "艾琳,未来的骑士-5", - "type": "collect", - "author": "云闲vsv", - "version": "1.0", - "description": "艾琳,未来的骑士-5", - "map_name": "Teyvat", - "bgi_version": "0.45.0" - }, - "positions": [ - { - "id": 1, - "x": -733.5673828125, - "y": 2264.910888671875, - "type": "path", - "move_mode": "walk", - "action": "combat_script", - "action_params": "钟离 wait(12),e(hold)," - }, - { - "id": 2, - "x": -734.591796875, - "y": 2262.66064453125, - "action": "combat_script", - "move_mode": "walk", - "action_params": "钟离 wait(12),e(hold),", - "type": "target" - }, - { - "id": 3, - "x": -734.591796875, - "y": 2262.66064453125, - "action": "combat_script", - "move_mode": "walk", - "action_params": "attack,keypress(1),wait(0.3),keypress(Q),wait(2.1),e(hold),", - "type": "target" - }, - { - "id": 4, - "x": -734.591796875, - "y": 2262.66064453125, - "action": "combat_script", - "move_mode": "walk", - "action_params": "attack,keypress(2),wait(0.3),keypress(Q),wait(2.1),e(hold),", - "type": "target" - }, - { - "id": 5, - "x": -734.591796875, - "y": 2262.66064453125, - "action": "combat_script", - "move_mode": "walk", - "action_params": "attack,keypress(3),wait(0.3),keypress(Q),wait(2.1),e(hold),", - "type": "target" - }, - { - "id": 6, - "x": -734.591796875, - "y": 2262.66064453125, - "action": "combat_script", - "move_mode": "walk", - "action_params": "attack,keypress(4),wait(0.3),keypress(Q),wait(2.1),e(hold),", - "type": "target" - }, - { - "id": 7, - "x": -731.0205078125, - "y": 2267.665771484375, - "action": "", - "move_mode": "walk", - "action_params": "", - "type": "target" - } - ] -} \ No newline at end of file diff --git a/repo/js/AutoCommission/assets/process/语言交流/风起地/process.json b/repo/js/AutoCommission/assets/process/语言交流/苍风高地/process.json similarity index 100% rename from repo/js/AutoCommission/assets/process/语言交流/风起地/process.json rename to repo/js/AutoCommission/assets/process/语言交流/苍风高地/process.json diff --git a/repo/js/AutoCommission/assets/process/语言交流/风起地/语言交流-1.json b/repo/js/AutoCommission/assets/process/语言交流/苍风高地/语言交流-1.json similarity index 100% rename from repo/js/AutoCommission/assets/process/语言交流/风起地/语言交流-1.json rename to repo/js/AutoCommission/assets/process/语言交流/苍风高地/语言交流-1.json diff --git a/repo/js/AutoCommission/assets/process/语言交流/风起地/语言交流-2.json b/repo/js/AutoCommission/assets/process/语言交流/苍风高地/语言交流-2.json similarity index 100% rename from repo/js/AutoCommission/assets/process/语言交流/风起地/语言交流-2.json rename to repo/js/AutoCommission/assets/process/语言交流/苍风高地/语言交流-2.json diff --git a/repo/js/AutoCommission/assets/process/语言交流/风起地/语言交流-3.json b/repo/js/AutoCommission/assets/process/语言交流/苍风高地/语言交流-3.json similarity index 100% rename from repo/js/AutoCommission/assets/process/语言交流/风起地/语言交流-3.json rename to repo/js/AutoCommission/assets/process/语言交流/苍风高地/语言交流-3.json diff --git a/repo/js/AutoCommission/assets/process/语言交流/风起地/语言交流-4.json b/repo/js/AutoCommission/assets/process/语言交流/苍风高地/语言交流-4.json similarity index 100% rename from repo/js/AutoCommission/assets/process/语言交流/风起地/语言交流-4.json rename to repo/js/AutoCommission/assets/process/语言交流/苍风高地/语言交流-4.json diff --git a/repo/js/AutoCommission/assets/process/语言交流/风起地/语言交流-5.json b/repo/js/AutoCommission/assets/process/语言交流/苍风高地/语言交流-5.json similarity index 100% rename from repo/js/AutoCommission/assets/process/语言交流/风起地/语言交流-5.json rename to repo/js/AutoCommission/assets/process/语言交流/苍风高地/语言交流-5.json diff --git a/repo/js/AutoCommission/constants.js b/repo/js/AutoCommission/constants.js index cd528d73c..aa64c114b 100644 --- a/repo/js/AutoCommission/constants.js +++ b/repo/js/AutoCommission/constants.js @@ -133,4 +133,10 @@ var Constants = { COMMISSION_COMPLETE_OCR_Y: 165, COMMISSION_COMPLETE_OCR_WIDTH: 170, // 1050 - 880 COMMISSION_COMPLETE_OCR_HEIGHT: 45, // 210 - 165 + + // 委托名称跟地点标准化匹配阈值(用 OCR结果 与 现有字符列表 对比,超过阈值则认为匹配) + MATCH_THRESHOLD: { + COMISSIONS_NAME: 0.6, + LOCATION: 0.6, + } }; diff --git a/repo/js/AutoCommission/lib/checkVersion.js b/repo/js/AutoCommission/lib/checkVersion.js index 1fa4cb388..95f793b6c 100644 --- a/repo/js/AutoCommission/lib/checkVersion.js +++ b/repo/js/AutoCommission/lib/checkVersion.js @@ -66,4 +66,4 @@ var printVersion = async function () { } await sleep(5000); } -} +} \ No newline at end of file diff --git a/repo/js/AutoCommission/lib/commission-data.js b/repo/js/AutoCommission/lib/commission-data.js index 509ec0f8e..0eeb87cea 100644 --- a/repo/js/AutoCommission/lib/commission-data.js +++ b/repo/js/AutoCommission/lib/commission-data.js @@ -92,29 +92,108 @@ var CommissionData = { return CommissionData.supportedCommissions; }, + // 检查时间戳是否为今天(以凌晨四点为分界) + isToday: function(timestampString) { + try { + const timestamp = new Date(timestampString); + const now = new Date(); + + // 计算今天凌晨四点的时间 + const today = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 4, 0, 0); + + // 如果当前时间还没到今天四点,则以昨天四点为分界 + if (now < today) { + today.setDate(today.getDate() - 1); + } + + // 检查时间戳是否在今天四点之后 + return timestamp >= today; + } catch (error) { + log.error("检查时间戳时出错: {error}", error.message); + return false; + } + }, + // 保存委托数据到文件 saveCommissionsData: async function(commissionsTable) { try { log.info("保存委托数据到文件..."); - - // 创建JSON格式的委托数据 - var commissionsData = { - timestamp: new Date().toISOString(), - commissions: commissionsTable, - }; - - // 保存到文件 + var outputPath = Constants.OUTPUT_DIR + "/commissions_data.json"; + var shouldUpdateExisting = false; + var existingData = null; + + // 尝试读取现有文件 try { - var jsonResult = file.writeTextSync( - outputPath, - JSON.stringify(commissionsData, null, 2) - ); - if (jsonResult) { - log.info("委托数据已保存到: {path}", outputPath); + var existingContent = file.readTextSync(outputPath); + existingData = JSON.parse(existingContent); + + // 检查条件:timestamp是今天,且commissions有4个元素 + if (existingData && existingData.timestamp && existingData.commissions && + existingData.commissions.length === 4 && commissionsTable.length === 4 && + this.isToday(existingData.timestamp)) { + + // 提取现有和新的委托名称列表 + const existingNames = existingData.commissions.map(c => c.name).sort(); + const newNames = commissionsTable.map(c => c.name).sort(); + + // 检查名称是否完全匹配 + const namesMatch = existingNames.every((name, index) => name === newNames[index]); + + if (namesMatch) { + log.info("检测到相同的委托列表,只更新已完成状态"); + shouldUpdateExisting = true; + } else { + log.info("委托名称不完全匹配,执行完整保存"); + } } else { - log.error("保存委托数据失败"); + // 输出条件不成立的原因 + let reason = ""; + if (!existingData) reason = "没有现有数据"; + else if (!existingData.timestamp) reason = "缺少时间戳"; + else if (!existingData.commissions) reason = "缺少委托列表"; + else if (existingData.commissions.length !== 4) reason = `现有委托数量不是4个(实际:${existingData.commissions.length})`; + else if (commissionsTable.length !== 4) reason = `新委托数量不是4个(实际:${commissionsTable.length})`; + else if (!this.isToday(existingData.timestamp)) reason = "时间戳不是今天"; + log.info(`执行完整保存:${reason}`); } + } catch (error) { + log.error("无法读取现有委托数据{error}",error.message); + } + + var commissionsData; + + if (shouldUpdateExisting && existingData) { + // 只更新location为已完成的状态 + for (var i = 0; i < existingData.commissions.length; i++) { + const existingCommission = existingData.commissions[i]; + const newCommission = commissionsTable.find(c => c.name === existingCommission.name); + + if (newCommission && newCommission.location === "已完成") { + existingCommission.location = "已完成"; + existingCommission.type = newCommission.type; + existingCommission.supported = newCommission.supported; + // 保留其他原有字段 + } + } + + // 更新时间戳 + existingData.timestamp = new Date().toISOString(); + commissionsData = existingData; + } else { + // 创建新的JSON格式的委托数据 + commissionsData = { + timestamp: new Date().toISOString(), + commissions: commissionsTable, + }; + } + + // 保存到文件 + try { + file.writeTextSync(outputPath, JSON.stringify(commissionsData, null, 2)); + + log.info("委托数据保存结束"); + } catch (jsonError) { log.error("保存委托数据失败: {error}", jsonError.message); } diff --git a/repo/js/AutoCommission/lib/commission-recognition.js b/repo/js/AutoCommission/lib/commission-recognition.js index a02842b93..190015130 100644 --- a/repo/js/AutoCommission/lib/commission-recognition.js +++ b/repo/js/AutoCommission/lib/commission-recognition.js @@ -1,4 +1,210 @@ -// 原神每日委托自动执行脚本 - 委托功能识别模块 +// 原神每日委托自动执行脚本 - 委托识别模块 +// 编辑距离算法,用于计算字符串相似度 +function levenshteinDistance(str1, str2) { + const m = str1.length; + const n = str2.length; + const dp = Array(m + 1).fill(null).map(() => Array(n + 1).fill(0)); + + for (let i = 0; i <= m; i++) dp[i][0] = i; + for (let j = 0; j <= n; j++) dp[0][j] = j; + + for (let i = 1; i <= m; i++) { + for (let j = 1; j <= n; j++) { + const cost = str1[i - 1] === str2[j - 1] ? 0 : 1; + dp[i][j] = Math.min( + dp[i - 1][j] + 1, + dp[i][j - 1] + 1, + dp[i - 1][j - 1] + cost + ); + } + } + + return dp[m][n]; +} + +// 获取最接近的匹配项(带阈值) +function getClosestMatch(target, candidates, threshold = Constants.MATCH_THRESHOLD.DEFAULT) { + if (!candidates || candidates.length === 0) return null; + + let closest = candidates[0]; + let minDistance = levenshteinDistance(target, closest); + let maxSimilarity = calculateSimilarity(target, closest); + + for (let i = 1; i < candidates.length; i++) { + const distance = levenshteinDistance(target, candidates[i]); + const similarity = calculateSimilarity(target, candidates[i]); + + if (similarity > maxSimilarity) { + maxSimilarity = similarity; + minDistance = distance; + closest = candidates[i]; + } + } + + // 检查相似度是否达到阈值 + if (maxSimilarity < threshold) { + return null; + } + + return closest; +} + +// 计算字符串相似度 +function calculateSimilarity(str1, str2) { + const distance = levenshteinDistance(str1, str2); + const maxLength = Math.max(str1.length, str2.length); + return maxLength === 0 ? 1 : 1 - (distance / maxLength); +} + +var CommissionStandardizer = { + // 标准化列表 + standardizationLists: { + fight: {}, + talk: {} + }, + + // 初始化标准化列表 + initialize: function() { + log.info("初始化委托标准化列表..."); + + try { + // 初始化战斗委托标准化列表 + this.standardizationLists.fight = this.buildFightStandardizationList(); + + // 初始化对话委托标准化列表 + this.standardizationLists.talk = this.buildTalkStandardizationList(); + + log.info("委托标准化列表初始化完成"); + log.debug("战斗委托标准化列表: {count} 个委托", Object.keys(this.standardizationLists.fight).length); + log.debug("对话委托标准化列表: {count} 个委托", Object.keys(this.standardizationLists.talk).length); + log.debug("standardizationLists的值:{x}",JSON.stringify(this.standardizationLists)) + } catch (error) { + log.error("初始化标准化列表时出错: {error}", error.message); + } + }, + + // 构建战斗委托标准化列表 + buildFightStandardizationList: function() { + const fightList = {}; + + try { + // 读取assets目录下除process外的所有文件夹 + const assetsPath = "assets"; + const items = Array.from(file.readPathSync(assetsPath)); + + // 过滤出文件夹且不是process + const folders = items.filter(item => { + return file.isFolder(item) && !item.includes("process"); + }); + + // 遍历每个战斗委托文件夹 + for (const folderPath of folders) { + // 从完整路径中提取文件夹名称 + const folderName = folderPath.replace(assetsPath + "/", "").replace(assetsPath + "\\", ""); + const files = Array.from(file.readPathSync(folderPath)); + + // 过滤出json文件 + const jsonFiles = files.filter(file => file.endsWith(".json")); + + // 提取文件名(不包含路径和.json后缀),并去除-1 -2等数字后缀 + const cleanFileNames = jsonFiles.map(filePath => { + // 从完整路径中提取文件名 + const fileName = filePath.split("/").pop().split("\\").pop(); + // 去除-1 -2等数字后缀和.json后缀 + return fileName.replace(/-(\d+)?\.json$/, ""); + }); + + fightList[folderName] = cleanFileNames; + } + } catch (error) { + log.error("构建战斗委托标准化列表时出错: {error}", error.message); + } + + return fightList; + }, + + // 构建对话委托标准化列表 + buildTalkStandardizationList: function() { + const talkList = {}; + + try { + // 读取assets/process目录下的所有文件夹 + const processPath = "assets/process"; + const items = Array.from(file.readPathSync(processPath)); + + // 过滤出文件夹 + const folders = items.filter(item => { + return file.isFolder(item); + }); + + // 遍历每个对话委托文件夹 + for (const folderPath of folders) { + // 从完整路径中提取文件夹名称 + const folderName = folderPath.split("/").pop().split("\\").pop(); + const subItems = Array.from(file.readPathSync(folderPath)); + + // 过滤出子文件夹 + const subFolders = subItems.filter(subItem => { + return file.isFolder(subItem); + }); + + // 从完整路径中提取子文件夹名称 + const cleanSubFolders = subFolders.map(subFolderPath => { + // 从完整路径中提取最后一级文件夹名称 + return subFolderPath.split("/").pop().split("\\").pop(); + }); + + talkList[folderName] = cleanSubFolders; + } + } catch (error) { + log.error("构建对话委托标准化列表时出错: {error}", error.message); + } + + return talkList; + }, + + // 标准化委托名称 + standardizeCommissionName: function(rawName) { + // 从所有标准化列表中查找最接近的名称 + const allNames = [ + ...Object.keys(this.standardizationLists.fight), + ...Object.keys(this.standardizationLists.talk) + ]; + + return getClosestMatch(rawName, allNames, Constants.MATCH_THRESHOLD.COMISSIONS_NAME); + }, + + // 标准化委托地点 + standardizeCommissionLocation: function(commissionName, rawLocation) { + // 根据委托类型选择对应的标准化列表 + let candidates = []; + + if (this.standardizationLists.fight[commissionName]) { + // 战斗委托 + candidates = this.standardizationLists.fight[commissionName]; + } else if (this.standardizationLists.talk[commissionName]) { + // 对话委托 + candidates = this.standardizationLists.talk[commissionName]; + } + + if (candidates.length === 0) { + log.warn("没有找到委托 {name} 的标准化地点列表", commissionName); + return rawLocation; + } + + // 获取最接近的地点 + const closestLocation = getClosestMatch(rawLocation, candidates, Constants.MATCH_THRESHOLD.LOCATION); + + if (closestLocation) { + log.info("标准化地点: {raw} -> {standard}", rawLocation, closestLocation); + return closestLocation; + } else { + log.info("地点相似度未达阈值,保持原地点: {raw}", rawLocation); + return rawLocation; + } + } +}; + var CommissionRecognition = { // 识别委托地点 recognizeCommissionLocation: async function() { @@ -110,6 +316,15 @@ var CommissionRecognition = { if (text && text.length >= Constants.MIN_TEXT_LENGTH) { log.info('第{index}个委托: "{text}"', regionIndex + 1, text); + // 标准化委托名称 + var standardizedName = CommissionStandardizer.standardizeCommissionName(text); + if (standardizedName && standardizedName !== text) { + log.info('委托名称标准化: "{raw}" -> "{standard}"', text, standardizedName); + text = standardizedName; + } else { + log.debug('委托名称相似度未达阈值,保持原名称: "{raw}"', text); + } + // 检查委托类型 var isFightCommission = supportedCommissions.fight.includes(text); var isTalkCommission = supportedCommissions.talk.includes(text); @@ -207,6 +422,14 @@ var CommissionRecognition = { log.info("委托国家: {status}", detailStatus); commission.country = detailStatus; var location = await CommissionRecognition.recognizeCommissionLocation(); + + // 标准化委托地点 + var standardizedLocation = CommissionStandardizer.standardizeCommissionLocation(commission.name, location); + if (standardizedLocation && standardizedLocation !== location) { + log.info('委托地点标准化: "{raw}" -> "{standard}"', location, standardizedLocation); + location = standardizedLocation; + } + commission.location = location; log.info( "委托 {name} 的地点: {location}", @@ -298,6 +521,15 @@ var CommissionRecognition = { if (text && text.length >= Constants.MIN_TEXT_LENGTH) { log.info('第4个委托: "{text}"', text); + // 标准化委托名称 + var standardizedName = CommissionStandardizer.standardizeCommissionName(text); + if (standardizedName && standardizedName !== text) { + log.info('委托名称标准化: "{raw}" -> "{standard}"', text, standardizedName); + text = standardizedName; + } else { + log.info('委托名称相似度未达阈值,保持原名称: "{raw}"', text); + } + // 检查委托类型 var isFightCommission = supportedCommissions.fight.includes(text); var isTalkCommission = supportedCommissions.talk.includes(text); @@ -386,6 +618,14 @@ var CommissionRecognition = { // 识别委托地点 var location = await CommissionRecognition.recognizeCommissionLocation(); + + // 标准化委托地点 + var standardizedLocation = CommissionStandardizer.standardizeCommissionLocation(fourthCommission.name, location); + if (standardizedLocation && standardizedLocation !== location) { + log.info('委托地点标准化: "{raw}" -> "{standard}"', location, standardizedLocation); + location = standardizedLocation; + } + fourthCommission.location = location; log.info( "委托 {name} 的地点: {location}", diff --git a/repo/js/AutoCommission/lib/core.js b/repo/js/AutoCommission/lib/core.js index e84177327..4eab4bfc4 100644 --- a/repo/js/AutoCommission/lib/core.js +++ b/repo/js/AutoCommission/lib/core.js @@ -33,6 +33,9 @@ var Core = { // 加载支持的委托列表 var supportedCommissions = await CommissionData.loadSupportedCommissions(); + + // OCR名称校正初始化 + CommissionStandardizer.initialize(); log.info( "支持的战斗委托: {count} 个", diff --git a/repo/js/AutoCommission/lib/steps/auto-task.js b/repo/js/AutoCommission/lib/steps/auto-task.js index 7b7f5fdb8..987e1bdb2 100644 --- a/repo/js/AutoCommission/lib/steps/auto-task.js +++ b/repo/js/AutoCommission/lib/steps/auto-task.js @@ -21,7 +21,12 @@ return false; } - if (config && typeof config === "object") { + // 如果taskType是AutoSkip,只使用无配置的构造函数 + // 然后再根据config判断调用AutoPick时是否传参 + if (taskType === "AutoSkip") { + log.info("启用自动剧情", taskType); + dispatcher.addTimer(new RealtimeTimer(taskType)); + } else if (config && typeof config === "object") { log.info("启用自动任务: {type},配置: {config}", taskType, JSON.stringify(config)); dispatcher.addTimer(new RealtimeTimer(taskType, config)); } else { diff --git a/repo/js/AutoCommission/manifest.json b/repo/js/AutoCommission/manifest.json index 726499375..507c60edf 100644 --- a/repo/js/AutoCommission/manifest.json +++ b/repo/js/AutoCommission/manifest.json @@ -1,8 +1,14 @@ { "manifest_version": 1, "name": "(对话+成就)全自动蒙德地区每日委托", - "version": "0.98.14", - "tags": ["委托","对话","战斗","成就","历练点"], + "version": "0.98.15", + "tags": [ + "委托", + "对话", + "战斗", + "成就", + "历练点" + ], "description": "自动完成每日委托、自动识别委托内容、自动追踪战斗委托、自动完成对话委托、自动获得到隐藏成就。使用前请阅读README.md获取详细说明和常见问题解答。目前项目急需人手,有意者可加群。感谢云闲vsv & 换苏伟u & 小鹰划船不用桨 & 塔台 & 未知_ 的共同开发", "authors": [ {