JS脚本:AutoFishingTeyvat【更新】、JS脚本:AutoPathingLoader-MultiUser【修复】、地图追踪:澄晶实【新增】、JS脚本: 提瓦特自动饵料机【新增】 (#2654)
* 新增了澄晶实地图追踪,任意角色均可 * 优化了已知问题 1. 解决了校对码容易误识别的问题 2. 尽量避免发送消息发不出去的情况 * 多项改动 1. 新增远古圣山点位,全部点位已齐全 2. 更新并修复了鱼类信息和点位信息 3. 优化了settings的UI布局 4. 细化了伪造日志的内容 5. 优化了部分代码 * 自动修复 JSON 格式和版本号 [ci skip] * 修复 * 优化OCR识别率 * fix * JS钓鱼的辅助脚本 * 自动修复 JSON 格式和版本号 [ci skip] * fix * fix @this-Fish 给custom_identifier那里简化了一下,你看看有问题没 * fix * fix * 更新readme * 新增三个垂钓点 --------- Co-authored-by: GitHub Actions Bot <actions@github.com>
24
repo/js/AutoFishingTeyvat-Bait/README.md
Normal file
@@ -0,0 +1,24 @@
|
||||
脚本名称:提瓦特自动饵料机
|
||||
|
||||
功能描述:提瓦特自动钓鱼(全流程+自选)的附属脚本,用于全自动获取鱼饵
|
||||
|
||||
## 核心功能
|
||||
|
||||
~~1. 自动收集和制作合成鱼饵所需的材料~~
|
||||
2. 自动合成设定的鱼饵,可通过背包识别达到指定数量
|
||||
3. 可选择合成台位置
|
||||
4. 可自行配置鱼饵原材料余量相关的设置
|
||||
~~5. 可通过NPC购买原料(可选)~~
|
||||
|
||||
## 注意事项 **该脚本处于测试阶段,可能出现OCR误差导致的问题**
|
||||
|
||||
1. 请确保所选的鱼饵配方已经学习(如果勾选```其他功能```中的```优化OCR(建议启用)```)
|
||||
2. 请确保鱼饵的原材料数量充足
|
||||
~~2. 自动获取的原料有限,在单次原材料CD周期内,通过地图追踪来收集原料合成的饵料数量建议**小于500**~~
|
||||
~~3. 小麦目前只能通过购买获取(暂不支持通过调查点获取)~~
|
||||
~~4. 如果选择了购买原料,需要保证对应的商人可用(确保已经进行过前置对话,可以直接进入商店)~~
|
||||
|
||||
## 其它
|
||||
|
||||
脚本反馈群(推荐):BetterGI v7群(1029539994)
|
||||
脚本反馈邮箱:hijiwos@hotmail.com
|
||||
BIN
repo/js/AutoFishingTeyvat-Bait/assets/Exit.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
repo/js/AutoFishingTeyvat-Bait/assets/F.png
Normal file
|
After Width: | Height: | Size: 425 B |
58
repo/js/AutoFishingTeyvat-Bait/assets/npc/挪德卡莱-杂货店.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768110813248,
|
||||
"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": 9458.0341796875,
|
||||
"y": 1660.66552734375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 9449.81640625,
|
||||
"y": 1649.8583984375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9441.4072265625,
|
||||
"y": 1641.27392578125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": 9449.595703125,
|
||||
"y": 1638.40771484375
|
||||
}
|
||||
]
|
||||
}
|
||||
76
repo/js/AutoFishingTeyvat-Bait/assets/npc/挪德卡莱-餐馆.json
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768112052510,
|
||||
"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": 9458.0341796875,
|
||||
"y": 1660.66552734375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9465.1923828125,
|
||||
"y": 1657.12353515625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9465.857421875,
|
||||
"y": 1626.4423828125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9442.0224609375,
|
||||
"y": 1614.4873046875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9437.3974609375,
|
||||
"y": 1599.068359375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 6,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 9451.8095703125,
|
||||
"y": 1606.18115234375
|
||||
}
|
||||
]
|
||||
}
|
||||
76
repo/js/AutoFishingTeyvat-Bait/assets/npc/枫丹-杂货店.json
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768110681001,
|
||||
"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": 4509.001953125,
|
||||
"y": 3630.5986328125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 4488.6044921875,
|
||||
"y": 3625.522705078125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 4457.5849609375,
|
||||
"y": 3596.621826171875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 4452.30859375,
|
||||
"y": 3570.415771484375
|
||||
},
|
||||
{
|
||||
"action": "stop_flying",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 4476.505859375,
|
||||
"y": 3556.928466796875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 6,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 4470.21484375,
|
||||
"y": 3559.9794921875
|
||||
}
|
||||
]
|
||||
}
|
||||
1
repo/js/AutoFishingTeyvat-Bait/assets/npc/枫丹-餐馆-GCM.json
Normal file
@@ -0,0 +1 @@
|
||||
{"macroEvents":[{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":1250},{"type":3,"mouseX":-3,"mouseY":-2,"time":2651},{"type":3,"mouseX":-15,"mouseY":-4,"time":2682},{"type":3,"mouseX":-11,"mouseY":-1,"time":2714},{"type":3,"mouseX":-12,"mouseY":0,"time":2745},{"type":3,"mouseX":-17,"mouseY":0,"time":2776},{"type":3,"mouseX":-22,"mouseY":0,"time":2807},{"type":3,"mouseX":-24,"mouseY":0,"time":2839},{"type":3,"mouseX":-24,"mouseY":0,"time":2870},{"type":3,"mouseX":-20,"mouseY":0,"time":2901},{"type":3,"mouseX":-16,"mouseY":0,"time":2932},{"type":3,"mouseX":-29,"mouseY":0,"time":2964},{"type":3,"mouseX":-22,"mouseY":0,"time":2995},{"type":3,"mouseX":-18,"mouseY":0,"time":3026},{"type":3,"mouseX":-19,"mouseY":0,"time":3057},{"type":3,"mouseX":-13,"mouseY":0,"time":3089},{"type":3,"mouseX":-13,"mouseY":0,"time":3120},{"type":3,"mouseX":-14,"mouseY":0,"time":3151},{"type":3,"mouseX":-14,"mouseY":-1,"time":3182},{"type":3,"mouseX":-8,"mouseY":0,"time":3214},{"type":3,"mouseX":-8,"mouseY":0,"time":3245},{"type":3,"mouseX":-7,"mouseY":0,"time":3276},{"type":3,"mouseX":-3,"mouseY":0,"time":3307},{"type":3,"mouseX":-6,"mouseY":1,"time":3339},{"type":3,"mouseX":-7,"mouseY":0,"time":3370},{"type":3,"mouseX":-7,"mouseY":0,"time":3401},{"type":3,"mouseX":-6,"mouseY":0,"time":3432},{"type":3,"mouseX":-4,"mouseY":0,"time":3464},{"type":3,"mouseX":-4,"mouseY":0,"time":3495},{"type":3,"mouseX":-4,"mouseY":0,"time":3526},{"type":3,"mouseX":-4,"mouseY":0,"time":3557},{"type":3,"mouseX":-5,"mouseY":0,"time":3589},{"type":3,"mouseX":-3,"mouseY":0,"time":3620},{"type":3,"mouseX":-3,"mouseY":0,"time":3745},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":7000}],"info":{"name":"","description":"","x":0,"y":0,"width":1920,"height":1080,"recordDpi":1.25}}
|
||||
49
repo/js/AutoFishingTeyvat-Bait/assets/npc/枫丹-餐馆.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "GCM",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768202433668,
|
||||
"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": 4645.5244140625,
|
||||
"y": 3467.85791015625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 4630.716796875,
|
||||
"y": 3455.758544921875
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(1),keypress(f)",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 4637.1005859375,
|
||||
"y": 3449.37060546875
|
||||
}
|
||||
]
|
||||
}
|
||||
40
repo/js/AutoFishingTeyvat-Bait/assets/npc/璃月-杂货店.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768110184162,
|
||||
"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": 267.9453125,
|
||||
"y": -665.11962890625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": 257.09765625,
|
||||
"y": -682.64013671875
|
||||
}
|
||||
]
|
||||
}
|
||||
67
repo/js/AutoFishingTeyvat-Bait/assets/npc/璃月-餐馆.json
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768110245250,
|
||||
"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": 267.9453125,
|
||||
"y": -665.11962890625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 234.3349609375,
|
||||
"y": -662.765625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 232.0498046875,
|
||||
"y": -667.93212890625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 231.26953125,
|
||||
"y": -671.8984375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 227.7578125,
|
||||
"y": -671.4951171875
|
||||
}
|
||||
]
|
||||
}
|
||||
40
repo/js/AutoFishingTeyvat-Bait/assets/npc/稻妻-杂货店.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768110280474,
|
||||
"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": -4402.544921875,
|
||||
"y": -3052.9765625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": -4403.53515625,
|
||||
"y": -3071.873046875
|
||||
}
|
||||
]
|
||||
}
|
||||
49
repo/js/AutoFishingTeyvat-Bait/assets/npc/稻妻-餐馆.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768110316801,
|
||||
"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": -4402.544921875,
|
||||
"y": -3052.9765625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": -4413.2890625,
|
||||
"y": -3078.0234375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": -4424.4921875,
|
||||
"y": -3080.904296875
|
||||
}
|
||||
]
|
||||
}
|
||||
49
repo/js/AutoFishingTeyvat-Bait/assets/npc/纳塔-杂货店.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768110741778,
|
||||
"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": 9060.5400390625,
|
||||
"y": -1847.5087890625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9091.1748046875,
|
||||
"y": -1852.68896484375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 9091.259765625,
|
||||
"y": -1855.701171875
|
||||
}
|
||||
]
|
||||
}
|
||||
67
repo/js/AutoFishingTeyvat-Bait/assets/npc/纳塔-餐馆.json
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768112128446,
|
||||
"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": 9060.5400390625,
|
||||
"y": -1847.5087890625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9097.1318359375,
|
||||
"y": -1853.87255859375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9119.736328125,
|
||||
"y": -1877.31591796875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 9106.6796875,
|
||||
"y": -1885.41943359375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 9108.181640625,
|
||||
"y": -1874.44140625
|
||||
}
|
||||
]
|
||||
}
|
||||
49
repo/js/AutoFishingTeyvat-Bait/assets/npc/蒙德-杂货店.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768110143377,
|
||||
"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": -867.68359375,
|
||||
"y": 2281.3779296875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": -890.798828125,
|
||||
"y": 2258.972412109375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": -895.05859375,
|
||||
"y": 2264.6123046875
|
||||
}
|
||||
]
|
||||
}
|
||||
39
repo/js/AutoFishingTeyvat-Bait/assets/npc/蒙德-锅.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "蒙德-锅",
|
||||
"type": "collect",
|
||||
"author": "提瓦特钓鱼玳师",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"bgi_version": "0.42.3"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": -867.6669921875,
|
||||
"y": 2281.359619140625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": -887.74609375,
|
||||
"y": 2259.37158203125,
|
||||
"action": "",
|
||||
"move_mode": "run",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": -884.6875,
|
||||
"y": 2243.4833984375,
|
||||
"type": "target",
|
||||
"move_mode": "walk",
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(1),keypress(f)"
|
||||
}
|
||||
]
|
||||
}
|
||||
49
repo/js/AutoFishingTeyvat-Bait/assets/npc/蒙德-餐馆.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768110100722,
|
||||
"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": -867.68359375,
|
||||
"y": 2281.3779296875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": -890.798828125,
|
||||
"y": 2258.972412109375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": -888.4453125,
|
||||
"y": 2241.251953125
|
||||
}
|
||||
]
|
||||
}
|
||||
67
repo/js/AutoFishingTeyvat-Bait/assets/npc/须弥-杂货店.json
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768110440521,
|
||||
"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": 2786.9990234375,
|
||||
"y": -503.1044921875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 2786.5751953125,
|
||||
"y": -487.19482421875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 2770.955078125,
|
||||
"y": -474.021484375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 2765.5888671875,
|
||||
"y": -456.40234375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": 2778.025390625,
|
||||
"y": -430.5654296875
|
||||
}
|
||||
]
|
||||
}
|
||||
1
repo/js/AutoFishingTeyvat-Bait/assets/npc/须弥-餐馆-GCM.json
Normal file
@@ -0,0 +1 @@
|
||||
{"macroEvents":[{"type":3,"mouseX":-9,"mouseY":0,"time":1339},{"type":3,"mouseX":-16,"mouseY":1,"time":1370},{"type":3,"mouseX":-17,"mouseY":0,"time":1401},{"type":3,"mouseX":-10,"mouseY":0,"time":1433},{"type":3,"mouseX":-8,"mouseY":0,"time":1464},{"type":3,"mouseX":-8,"mouseY":-1,"time":1495},{"type":3,"mouseX":-12,"mouseY":-1,"time":1526},{"type":3,"mouseX":-13,"mouseY":0,"time":1558},{"type":3,"mouseX":-13,"mouseY":0,"time":1589},{"type":3,"mouseX":-6,"mouseY":0,"time":1620},{"type":3,"mouseX":-10,"mouseY":0,"time":1651},{"type":3,"mouseX":-8,"mouseY":0,"time":1683},{"type":3,"mouseX":-4,"mouseY":0,"time":1714},{"type":3,"mouseX":-6,"mouseY":0,"time":1745},{"type":3,"mouseX":-8,"mouseY":-1,"time":1776},{"type":3,"mouseX":-2,"mouseY":0,"time":1808},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":2016},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":4172},{"type":3,"mouseX":6,"mouseY":-1,"time":4714},{"type":3,"mouseX":13,"mouseY":2,"time":4745},{"type":3,"mouseX":20,"mouseY":3,"time":4776},{"type":3,"mouseX":28,"mouseY":2,"time":4808},{"type":3,"mouseX":34,"mouseY":3,"time":4839},{"type":3,"mouseX":37,"mouseY":4,"time":4870},{"type":3,"mouseX":39,"mouseY":3,"time":4901},{"type":3,"mouseX":45,"mouseY":3,"time":4933},{"type":3,"mouseX":46,"mouseY":4,"time":4964},{"type":3,"mouseX":33,"mouseY":2,"time":4995},{"type":3,"mouseX":41,"mouseY":3,"time":5026},{"type":3,"mouseX":39,"mouseY":3,"time":5058},{"type":3,"mouseX":36,"mouseY":1,"time":5089},{"type":3,"mouseX":37,"mouseY":2,"time":5120},{"type":3,"mouseX":36,"mouseY":4,"time":5151},{"type":3,"mouseX":40,"mouseY":4,"time":5183},{"type":3,"mouseX":40,"mouseY":4,"time":5214},{"type":3,"mouseX":30,"mouseY":3,"time":5245},{"type":3,"mouseX":40,"mouseY":4,"time":5276},{"type":3,"mouseX":43,"mouseY":4,"time":5308},{"type":3,"mouseX":39,"mouseY":3,"time":5339},{"type":3,"mouseX":35,"mouseY":2,"time":5370},{"type":3,"mouseX":28,"mouseY":0,"time":5401},{"type":3,"mouseX":20,"mouseY":0,"time":5433},{"type":3,"mouseX":11,"mouseY":0,"time":5464},{"type":3,"mouseX":9,"mouseY":0,"time":5495},{"type":3,"mouseX":11,"mouseY":0,"time":5526},{"type":3,"mouseX":13,"mouseY":1,"time":5558},{"type":3,"mouseX":19,"mouseY":2,"time":5589},{"type":3,"mouseX":10,"mouseY":0,"time":5620},{"type":0,"keyCode":87,"mouseX":0,"mouseY":0,"time":6000},{"type":1,"keyCode":87,"mouseX":0,"mouseY":0,"time":8110}],"info":{"name":"","description":"","x":0,"y":0,"width":1920,"height":1080,"recordDpi":1.25}}
|
||||
49
repo/js/AutoFishingTeyvat-Bait/assets/npc/须弥-餐馆.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "GCM",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768202342717,
|
||||
"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": 2786.9990234375,
|
||||
"y": -503.1044921875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 2795.779296875,
|
||||
"y": -492.0908203125
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(1),keypress(f)",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 2807.658203125,
|
||||
"y": -485.568359375
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
repo/js/AutoFishingTeyvat-Bait/assets/slide_bar_main_down.png
Normal file
|
After Width: | Height: | Size: 215 B |
BIN
repo/js/AutoFishingTeyvat-Bait/assets/slide_bar_main_up.png
Normal file
|
After Width: | Height: | Size: 219 B |
58
repo/js/AutoFishingTeyvat-Bait/assets/timaeus/挪德卡莱.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768109661987,
|
||||
"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": 9458.03515625,
|
||||
"y": 1660.6650390625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 9450.2890625,
|
||||
"y": 1652.7412109375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9438.224609375,
|
||||
"y": 1633.86181640625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 9439.15234375,
|
||||
"y": 1630.451171875
|
||||
}
|
||||
]
|
||||
}
|
||||
40
repo/js/AutoFishingTeyvat-Bait/assets/timaeus/枫丹.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768109544763,
|
||||
"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": 4509.001953125,
|
||||
"y": 3630.5986328125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": 4480.392578125,
|
||||
"y": 3627.619140625
|
||||
}
|
||||
]
|
||||
}
|
||||
49
repo/js/AutoFishingTeyvat-Bait/assets/timaeus/璃月.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768109280308,
|
||||
"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": 267.9453125,
|
||||
"y": -665.11962890625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 264.060546875,
|
||||
"y": -658.76171875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 267.115234375,
|
||||
"y": -653.3427734375
|
||||
}
|
||||
]
|
||||
}
|
||||
49
repo/js/AutoFishingTeyvat-Bait/assets/timaeus/稻妻.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768109317124,
|
||||
"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": -4402.544921875,
|
||||
"y": -3052.9765625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": -4417.25,
|
||||
"y": -3081.08203125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": -4432.759765625,
|
||||
"y": -3092.818359375
|
||||
}
|
||||
]
|
||||
}
|
||||
49
repo/js/AutoFishingTeyvat-Bait/assets/timaeus/纳塔.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768109600187,
|
||||
"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": 9060.5400390625,
|
||||
"y": -1847.5087890625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9082.689453125,
|
||||
"y": -1850.669921875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": 9095.2099609375,
|
||||
"y": -1857.32861328125
|
||||
}
|
||||
]
|
||||
}
|
||||
49
repo/js/AutoFishingTeyvat-Bait/assets/timaeus/蒙德.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768109232861,
|
||||
"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": -867.68359375,
|
||||
"y": 2281.378173828125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": -884.982421875,
|
||||
"y": 2261.303466796875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": -889.53125,
|
||||
"y": 2265.453857421875
|
||||
}
|
||||
]
|
||||
}
|
||||
67
repo/js/AutoFishingTeyvat-Bait/assets/timaeus/须弥.json
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768109501652,
|
||||
"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": 2694.0859375,
|
||||
"y": -416.4287109375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 2716.341796875,
|
||||
"y": -424.84765625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 2741.5234375,
|
||||
"y": -436.37548828125
|
||||
},
|
||||
{
|
||||
"action": "stop_flying",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 2765.7587890625,
|
||||
"y": -444.34716796875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "run",
|
||||
"type": "target",
|
||||
"x": 2749.7314453125,
|
||||
"y": -428.375
|
||||
}
|
||||
]
|
||||
}
|
||||
966
repo/js/AutoFishingTeyvat-Bait/main.js
Normal file
@@ -0,0 +1,966 @@
|
||||
(async function () { // 鱼饵合成上限[]、鱼饵原料数不为2时可能出错[]、NPC的CD记录[]
|
||||
|
||||
const bait_list = ["果酿饵", "赤糜饵", "蠕虫假饵", "飞蝇假饵", "甘露饵", "酸桔饵", "维护机关频闪诱饵", "澄晶果粒饵", "温火饵", "槲梭饵", "清白饵"]
|
||||
const material_msg = {
|
||||
"风缠": {"花鳉": 20, "蓝染花鳉": 20, "鸩棘鱼": 20, "流纹茶蝶鱼": 20},
|
||||
"愿者": {"花鳉": 20, "甜甜花鳉": 20, "斗棘鱼": 20, "流纹褐蝶鱼": 20},
|
||||
"鸣川鹈饲": {"花鳉": 20, "琉璃花鳉": 20, "肺棘鱼": 20, "流纹京紫蝶鱼": 20},
|
||||
"盘缘": {"花鳉": 20, "真果角鲀": 20, "暮云角鲀": 20, "吹沙角鲀": 20},
|
||||
"穿浪斗枪": {"维护机关·初始能力型": 20, "维护机关·水域清理者": 20, "维护机关·态势控制者": 20, "海涛斧枪鱼": 20},
|
||||
"长犀圆鸟和扁鱼": {"炽岩斗士急流鱼": 20, "拟似燃素独角鱼": 20, "青浪翻车鲀": 20, "晚霞翻车鲀": 20},
|
||||
"谧晖白枝": {"无奇巨斧鱼": 20, "素素凶凶鲨": 20, "蓝昼明眼鱼": 20, "夜色明眼鱼": 20},
|
||||
"渔获": {"雷鸣仙": 6, "金赤假龙": 20, "锖假龙": 20},
|
||||
"赤穗酒枡": {"雷鸣仙": 12, "炮鲀": 40, "苦炮鲀": 40},
|
||||
"竭泽": {"沉波蜜桃": 4, "青金斧枪鱼": 16, "翡玉斧枪鱼": 16},
|
||||
"原海鱼油": {"沉波蜜桃": 8, "青金斧枪鱼": 32, "翡玉斧枪鱼": 32},
|
||||
"灰河渡手": {"维护机关·白金典藏型": 4, "波波心羽鲈": 10, "烘烘心羽鲈": 10, "海涛斧枪鱼": 12},
|
||||
"马腾斯万能护养剂": {"维护机关·白金典藏型": 8, "波波心羽鲈": 20, "烘烘心羽鲈": 20, "海涛斧枪鱼": 24}
|
||||
}
|
||||
const fish_msg = { // [DEBUG] 从AEscoffier_main补充数据
|
||||
"花鳉": {"bait": "果酿饵", "num": 0},
|
||||
"波波心羽鲈": {"bait": "酸桔饵", "num": 0},
|
||||
"烘烘心羽鲈": {"bait": "酸桔饵", "num": 0},
|
||||
"维护机关·水域清理者": {"bait": "维护机关频闪诱饵", "num": 0},
|
||||
"维护机关·态势控制者": {"bait": "维护机关频闪诱饵", "num": 0},
|
||||
"维护机关·澄金领队型": {"bait": "维护机关频闪诱饵", "num": 0},
|
||||
"海涛斧枪鱼": {"bait": "甘露饵", "num": 0},
|
||||
"维护机关·初始能力型": {"bait": "维护机关频闪诱饵", "num": 0},
|
||||
"维护机关·白金典藏型": {"bait": "维护机关频闪诱饵", "num": 0},
|
||||
"吹沙角鲀": {"bait": "甘露饵", "num": 0},
|
||||
"甜甜花鳉": {"bait": "果酿饵", "num": 0},
|
||||
"擒霞客": {"bait": "果酿饵", "num": 0},
|
||||
"水晶宴": {"bait": "果酿饵", "num": 0},
|
||||
"斗棘鱼": {"bait": "赤糜饵", "num": 0},
|
||||
"炮鲀": {"bait": "飞蝇假饵", "num": 0},
|
||||
"流纹褐蝶鱼": {"bait": "蠕虫假饵", "num": 0},
|
||||
"锖假龙": {"bait": "飞蝇假饵", "num": 0},
|
||||
"金赤假龙": {"bait": "飞蝇假饵", "num": 0},
|
||||
"玉玉心羽鲈": {"bait": "酸桔饵", "num": 0},
|
||||
"赤魔王": {"bait": "赤糜饵", "num": 0},
|
||||
"长生仙": {"bait": "蠕虫假饵", "num": 0},
|
||||
"苦炮鲀": {"bait": "飞蝇假饵", "num": 0},
|
||||
"肺棘鱼": {"bait": "赤糜饵", "num": 0},
|
||||
"流纹京紫蝶鱼": {"bait": "蠕虫假饵", "num": 0},
|
||||
"琉璃花鳉": {"bait": "果酿饵", "num": 0},
|
||||
"伪装鲨鲨独角鱼": {"bait": "澄晶果粒饵", "num": 0},
|
||||
"繁花斗士急流鱼": {"bait": "澄晶果粒饵", "num": 0},
|
||||
"深潜斗士急流鱼": {"bait": "澄晶果粒饵", "num": 0},
|
||||
"晚霞翻车鲀": {"bait": "澄晶果粒饵", "num": 0},
|
||||
"青浪翻车鲀": {"bait": "澄晶果粒饵", "num": 0},
|
||||
"拟似燃素独角鱼": {"bait": "温火饵", "num": 0},
|
||||
"炽岩斗士急流鱼": {"bait": "温火饵", "num": 0},
|
||||
"蓝染花鳉": {"bait": "果酿饵", "num": 0},
|
||||
"鸩棘鱼": {"bait": "赤糜饵", "num": 0},
|
||||
"流纹茶蝶鱼": {"bait": "蠕虫假饵", "num": 0},
|
||||
"雪中君": {"bait": "赤糜饵", "num": 0},
|
||||
"真果角鲀": {"bait": "甘露饵", "num": 0},
|
||||
"青金斧枪鱼": {"bait": "甘露饵", "num": 0},
|
||||
"暮云角鲀": {"bait": "甘露饵", "num": 0},
|
||||
"翡玉斧枪鱼": {"bait": "甘露饵", "num": 0},
|
||||
"沉波蜜桃": {"bait": "甘露饵", "num": 0},
|
||||
"雷鸣仙": {"bait": "蠕虫假饵", "num": 0},
|
||||
"佛玛洛鳐": {"bait": "飞蝇假饵", "num": 0},
|
||||
"迪芙妲鳐": {"bait": "飞蝇假饵", "num": 0},
|
||||
"秘源机关·巡戒使": {"bait": "温火饵", "num": 0},
|
||||
"蓝昼明眼鱼": {"bait": "清白饵", "num": 0},
|
||||
"夜色明眼鱼": {"bait": "清白饵", "num": 0},
|
||||
"无奇巨斧鱼": {"bait": "槲梭饵", "num": 0},
|
||||
"素素凶凶鲨": {"bait": "清白饵", "num": 0},
|
||||
"炽铁巨斧鱼": {"bait": "槲梭饵", "num": 0},
|
||||
"虹光凶凶鲨": {"bait": "清白饵", "num": 0},
|
||||
"冷冽巨斧鱼": {"bait": "槲梭饵", "num": 0}
|
||||
}
|
||||
const bait_msg = {
|
||||
"果酿饵": ["日落果", "小麦"],
|
||||
"赤糜饵": ["血斛", "禽肉"],
|
||||
"蠕虫假饵": ["史莱姆凝液", "树莓"],
|
||||
"飞蝇假饵": ["绯樱绣球", "马尾"],
|
||||
"甘露饵": ["香辛果", "须弥蔷薇"],
|
||||
"酸桔饵": ["泡泡桔", "小麦"],
|
||||
"维护机关频闪诱饵": ["茉洁草", "铁块"],
|
||||
"澄晶果粒饵": ["澄晶实", "颗粒果"],
|
||||
"温火饵": ["烬芯花", "小麦"],
|
||||
"槲梭饵": ["夏槲果", "面粉"],
|
||||
"清白饵": ["白灵果", "薄荷"]
|
||||
}
|
||||
const ingredient = { // 加工产品
|
||||
"面粉": {"material": {"小麦": 1}, "time": 1},
|
||||
"兽肉": {"material": {"冷鲜肉": 1}, "time": 2},
|
||||
"鱼肉": {"material": fish_msg, "time": 2}, // 暂不考虑加工鱼肉,两个值均不定
|
||||
"神秘的肉加工产物": {"material": {"神秘的肉": 1}, "time": 1},
|
||||
"奶油": {"material": {"牛奶": 1}, "time": 3},
|
||||
"熏禽肉": {"material": {"禽肉": 3, "盐": 1}, "time": 5},
|
||||
"黄油": {"material": {"牛奶": 2}, "time": 5},
|
||||
"火腿": {"material": {"兽肉": 2, "盐": 1}, "time": 5},
|
||||
"糖": {"material": {"甜甜花": 2}, "time": 3},
|
||||
"香辛料": {"material": {"香辛果": 2}, "time": 1},
|
||||
"蟹黄": {"material": {"螃蟹": 4}, "time": 20},
|
||||
"果酱": {"material": {"日落果": 3, "树莓": 2, "糖": 1}, "time": 10},
|
||||
"奶酪": {"material": {"牛奶": 3}, "time": 10},
|
||||
"培根": {"material": {"兽肉": 2, "盐": 2}, "time": 15},
|
||||
"香肠": {"material": {"兽肉": 3}, "time": 20}
|
||||
}
|
||||
const accelerator_msg = {
|
||||
"铁块": 20,
|
||||
"白铁块": 40,
|
||||
"水晶块": 60,
|
||||
"魔晶块": 60,
|
||||
"星银矿石": 40,
|
||||
"紫晶块": 60,
|
||||
"萃凝晶": 60,
|
||||
"虹滴晶": 60
|
||||
}
|
||||
|
||||
/**
|
||||
* 简洁易用的OCR函数
|
||||
* @param x
|
||||
* @param y
|
||||
* @param w
|
||||
* @param h
|
||||
* @param multi 是否使用FindMulti
|
||||
* @returns {Promise<void>} 返回对应的OCR对象
|
||||
*/
|
||||
async function Ocr(x, y, w, h, multi = false) {
|
||||
let OcrRo = RecognitionObject.Ocr(x, y, w, h);
|
||||
let gameRegion = captureGameRegion();
|
||||
if (multi) {
|
||||
let ocrResult = gameRegion.FindMulti(OcrRo);
|
||||
gameRegion.dispose();
|
||||
if (ocrResult.count !== 0) {
|
||||
let resultList = [];
|
||||
for (let i = 0; i < ocrResult.count; i++) {
|
||||
resultList.push(ocrResult[i]);
|
||||
}
|
||||
return resultList;
|
||||
} else {
|
||||
log.debug(`FindMulti为空: (${x}, ${y}, ${w}, ${h})`);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
let ocrResult = gameRegion.Find(OcrRo);
|
||||
gameRegion.dispose();
|
||||
if (ocrResult.isExist()) {
|
||||
return ocrResult;
|
||||
} else {
|
||||
log.debug(`Find为空: (${x}, ${y}, ${w}, ${h})`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 对话并进入NPC商店,需要确保与NPC对话的F图标存在
|
||||
* 餐馆NPC、杂货店NPC、合成台、合成台NPC均可使用(适用于按F进入对话后一直按F进入界面的所有可交互对象)
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
async function enter_store() {
|
||||
let imageFRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/F.png"));
|
||||
let imageExitRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/Exit.png"));
|
||||
let location_flag = false;
|
||||
|
||||
for (let i = 0; i < 3; i++) {
|
||||
await sleep(500);
|
||||
let gameRegion = captureGameRegion();
|
||||
if (gameRegion.Find(imageFRo).isExist()) {
|
||||
gameRegion.dispose();
|
||||
keyPress("F");
|
||||
log.debug("找到并按下F");
|
||||
await sleep(1000);
|
||||
location_flag = true;
|
||||
break;
|
||||
}
|
||||
gameRegion.dispose();
|
||||
}
|
||||
if (location_flag) {
|
||||
while (!(captureGameRegion().Find(imageExitRo).isExist())) { // [DEBUG] 可能陷入死循环?
|
||||
await sleep(500);
|
||||
keyPress("F");
|
||||
log.debug("按F直到进入商店界面");
|
||||
}
|
||||
log.info("已进入商店界面");
|
||||
await sleep(500);
|
||||
return true;
|
||||
} else {
|
||||
log.error("未找到对话按钮");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 在当前页面选购商品(餐馆、杂货店等商人NPC),购买完成后停留在商店界面
|
||||
* @param {string} name - 名称
|
||||
* @param {number} num - 数量
|
||||
* @param {boolean} detect - 启用摩拉检测
|
||||
* @returns {Promise<number|boolean>}
|
||||
* - 成功时返回实际购买成功的商品数量(可能与实际数目不符[如果OCR兜底失败])
|
||||
* - 失败时返回 false(如不存在、售罄、资金不足[还没做]或其他错误)
|
||||
*/
|
||||
async function select_goods(name, num, detect = false) { // [DEBUG] 暂未设置摩拉不足的情况
|
||||
let barUpRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/slide_bar_main_up.png"), 1270, 112, 13, 831);
|
||||
let barDownRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/slide_bar_main_down.png"), 1270, 112, 13, 831);
|
||||
barUpRo.threshold = 0.8;
|
||||
barDownRo.threshold = 0.8;
|
||||
|
||||
// 确保滑块位于顶端
|
||||
while (true) {
|
||||
let gameRegion = captureGameRegion();
|
||||
let barUpSite = gameRegion.Find(barUpRo);
|
||||
if (barUpSite) {
|
||||
if (barUpSite.y >= 125) {
|
||||
click(1276, 125);
|
||||
await sleep(200);
|
||||
log.debug(`尝试将滑块调至顶端,当前位置: ${barUpSite.y}`);
|
||||
} else {
|
||||
log.debug(`滑块已位于顶端: ${barUpSite.y}`);
|
||||
break
|
||||
}
|
||||
} else {
|
||||
log.error("未找到滑块: Up");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
while (true) {
|
||||
let gameRegion = captureGameRegion();
|
||||
let ocrList = await Ocr(115, 89, 1142, 856, true); // 左侧列表区域
|
||||
let barDownSite = gameRegion.Find(barDownRo);
|
||||
gameRegion.dispose();
|
||||
if (ocrList) {
|
||||
for (let i = 0; i < ocrList.length; i++) {
|
||||
if (ocrList[i].text.includes(name)) { // 找到name
|
||||
let real_num = 0;
|
||||
ocrList[i].Click();
|
||||
await sleep(500);
|
||||
let buy_btn = await Ocr(1631, 993, 150, 50); // 右下购买按钮
|
||||
|
||||
if (buy_btn) {
|
||||
buy_btn.Click();
|
||||
await sleep(500);
|
||||
let available_num = await Ocr(1190, 588, 81, 27); // 最大可选数量
|
||||
if (available_num) {
|
||||
let max_num = parseInt(available_num.text, 10);
|
||||
|
||||
if (max_num < num) { // 拉满
|
||||
click(1185, 601); // 点击滑条最大值(736-1186)
|
||||
await sleep(500);
|
||||
if (detect) { // 检测摩拉是否充足
|
||||
let mora_ocr = Ocr(1609, 28, 162, 40);
|
||||
let cost_ocr = Ocr(961,682, 95, 32);
|
||||
if (cost_ocr && mora_ocr) {
|
||||
let cost = parseInt(cost_ocr, 10);
|
||||
let mora = parseInt(mora_ocr, 10);
|
||||
if (cost > mora) {
|
||||
log.error(`剩余摩拉不足: 需求(${cost})拥有(${mora})`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
click(1181, 780); // 点击购买
|
||||
await sleep(500);
|
||||
click(1555, 827); // 点击空白区域
|
||||
await sleep(500);
|
||||
real_num = max_num;
|
||||
} else { // 百分比选择数量(有误差,使用OCR修正)
|
||||
click(736 + Math.floor(450 * num / max_num), 601);
|
||||
await sleep(100);
|
||||
let current_num = await Ocr(904, 527, 115, 54); // 已选的数量
|
||||
if (current_num) { // [DEBUG]若false则可能有些许误差
|
||||
current_num = parseInt(current_num.text, 10);
|
||||
log.debug(`OCR识别的当前已选数量(需求: ${num}): ${current_num}`);
|
||||
if (current_num > num) {
|
||||
for (let k = 0; k < current_num - num; k++) { // -
|
||||
log.debug("-1");
|
||||
click(628, 602);
|
||||
await sleep(50);
|
||||
}
|
||||
|
||||
} else if (current_num < num) {
|
||||
for (let k = 0; k < num - current_num; k++) { // +
|
||||
log.debug("+1");
|
||||
click(1292, 602);
|
||||
await sleep(50);
|
||||
}
|
||||
}
|
||||
}
|
||||
await sleep(500);
|
||||
if (detect) { // 检测摩拉是否充足
|
||||
let mora_ocr = Ocr(1609, 28, 162, 40);
|
||||
let cost_ocr = Ocr(961,682, 95, 32);
|
||||
if (cost_ocr && mora_ocr) {
|
||||
let cost = parseInt(cost_ocr, 10);
|
||||
let mora = parseInt(mora_ocr, 10);
|
||||
if (cost > mora) {
|
||||
log.error(`剩余摩拉不足: 需求(${cost})拥有(${mora})`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
click(1181, 780); // 点击购买
|
||||
await sleep(500);
|
||||
click(1555, 827); // 点击空白区域
|
||||
await sleep(500);
|
||||
real_num = num;
|
||||
}
|
||||
return real_num;
|
||||
} else {
|
||||
log.error(`未识别到 ${name} 的剩余数量`);
|
||||
keyPress("Escape");
|
||||
await sleep(500);
|
||||
}
|
||||
} else {
|
||||
log.info(`${name} 已售罄`);
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
if (barDownSite.isExist()) { // [DEBUG] 以下重复代码段应当优化
|
||||
if (barDownSite.y <= 920) {
|
||||
click(1276, barDownSite.y + 15);
|
||||
log.debug(`将滑块向下调一格,当前位置: ${barDownSite.y}`);
|
||||
await sleep(200);
|
||||
} else {
|
||||
log.warn(`已经滑动到底部: y(${barDownSite.y})`); // [DEBUG] 滑动到底部未找到
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
log.error("未找到滑块: Down");
|
||||
return false;
|
||||
}
|
||||
} else if (barDownSite.isExist()) {
|
||||
if (barDownSite.y <= 920) {
|
||||
click(1276, barDownSite.y + 15);
|
||||
await sleep(200);
|
||||
} else {
|
||||
log.warn(`已经滑动到底部: y(${barDownSite.y}),未找到 ${name}`); // [DEBUG] 滑动到底部未找到
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
log.error(`OCR为空,且未找到滑块: Down`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 供 findClosestMatch 调用
|
||||
*/
|
||||
async function levenshteinDistance(a, b) {
|
||||
const matrix = [];
|
||||
for (let i = 0; i <= b.length; i++) {
|
||||
matrix[i] = [i];
|
||||
}
|
||||
for (let j = 0; j <= a.length; j++) {
|
||||
matrix[0][j] = j;
|
||||
}
|
||||
for (let i = 1; i <= b.length; i++) {
|
||||
for (let j = 1; j <= a.length; j++) {
|
||||
if (b.charAt(i - 1) === a.charAt(j - 1)) {
|
||||
matrix[i][j] = matrix[i - 1][j - 1];
|
||||
} else {
|
||||
matrix[i][j] = Math.min(
|
||||
matrix[i - 1][j - 1] + 1, // 替换
|
||||
matrix[i][j - 1] + 1, // 插入
|
||||
matrix[i - 1][j] + 1 // 删除
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
return matrix[b.length][a.length];
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* 查找最相似的字符串(用于查找鱼饵,最大限度避免OCR偏差导致的异常)
|
||||
*
|
||||
* @param target 目标字符串
|
||||
* @param candidates 字符串数组
|
||||
* @returns {null}
|
||||
*/
|
||||
async function findClosestMatch(target, candidates) {
|
||||
let closest = null;
|
||||
let minDistance = Infinity;
|
||||
for (const candidate of candidates) {
|
||||
const distance = await levenshteinDistance(target, candidate);
|
||||
if (distance < minDistance) {
|
||||
minDistance = distance;
|
||||
closest = candidate;
|
||||
}
|
||||
}
|
||||
return closest;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按照原神物品名长度显示裁剪字符串[主物品显示界面适用](用于OCR)
|
||||
* @param string 原字符串
|
||||
* @returns {Promise<*|string>} 处理后的字符串
|
||||
*/
|
||||
async function deal_string(string) {
|
||||
if (string.length <= 6) {
|
||||
return string; // 如果字符串长度是6位或以下,原形返回
|
||||
} else {
|
||||
return string.substring(0, 5) + '..'; // 如果字符串长度超过6位,保留前5位并加上'..'
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 在当前合成台页面找到鱼饵,并读取当前鱼饵数量和原材料数量
|
||||
* @param {string} name - 鱼饵名称
|
||||
* @returns {Promise<number[]|boolean>}
|
||||
* - 成功时返回鱼饵和对应的原材料数组,长度为3
|
||||
* - 失败时返回 false
|
||||
*/
|
||||
async function get_bait_material_num(name) {
|
||||
let shelter_option = await Ocr(165, 1001, 289, 32); // 筛选器文本
|
||||
|
||||
if (shelter_option) {
|
||||
if (shelter_option.text !== "鱼饵") {
|
||||
await sleep(500);
|
||||
shelter_option.Click(); // 继续测试:没奏效?
|
||||
await sleep(500);
|
||||
|
||||
let ocrList = await Ocr(17, 93, 748, 893, true); // 左侧区域文本
|
||||
|
||||
if (ocrList.length !== 0) {
|
||||
let flag = true;
|
||||
for (let i = 0; i < ocrList.length; i++) {
|
||||
if (ocrList[i].text.includes("鱼饵")) {
|
||||
flag = false;
|
||||
ocrList[i].Click();
|
||||
await sleep(500);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
log.error("未找到筛选项:鱼饵");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
log.error(`OCR错误,未识别到筛选文本`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.error(`OCR错误,未识别到筛选文本`);
|
||||
return false;
|
||||
}
|
||||
|
||||
let ocrList = await Ocr(44, 171, 704, 807, true); // 左侧物品区域
|
||||
|
||||
if (ocrList.length !== 0) {
|
||||
if (settings.use_levenshteinDistance) {
|
||||
let menu_bait_list = [];
|
||||
for (let i = 0; i < ocrList.length; i++) {
|
||||
menu_bait_list.push(ocrList[i].text);
|
||||
}
|
||||
let closest_match = await findClosestMatch(await deal_string(name), menu_bait_list);
|
||||
|
||||
ocrList[menu_bait_list.indexOf(closest_match)].Click();
|
||||
await sleep(500);
|
||||
} else {
|
||||
let flag = true;
|
||||
for (let i = 0; i < ocrList.length; i++) {
|
||||
if (ocrList[i].text.includes(await deal_string(name))) {
|
||||
flag = false;
|
||||
ocrList[i].Click();
|
||||
await sleep(500);
|
||||
break
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
log.error(`未找到鱼饵 ${name},建议在JS脚本配置启用OCR优化`);
|
||||
log.info(`鱼饵: ${name} 已跳过`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.error(`OCR错误,未识别到鱼饵文本`);
|
||||
return false;
|
||||
}
|
||||
|
||||
// 记录两种原料的当前数量
|
||||
let material_num = [-1, -1];
|
||||
for (let k = 0; k < 2; k++) {
|
||||
click(k === 0 ? 1080: 1216, 874); // 点击原料1、2
|
||||
await sleep(500);
|
||||
let ocr_area = await Ocr(881, 763, 158, 267, true); // 中间 "当前拥有xxx" 部分区域
|
||||
if (ocr_area.length !== 0) {
|
||||
let refer_y;
|
||||
for (let i = 0; i < ocr_area.length; i++) {
|
||||
if (ocr_area[i].text.includes("当前拥有")) {
|
||||
refer_y = ocr_area[i].y;
|
||||
|
||||
for (let j = 0; j < ocr_area.length; j++) {
|
||||
let string = ocr_area[j].text.replace(/\D/g, '');
|
||||
if (string && ocr_area[j].y > refer_y - 12 && ocr_area[j].y < refer_y + 12) { // 纯数字且y坐标范围合理
|
||||
material_num[k === 0 ? 0: 1] = parseInt(string, 10);
|
||||
log.info(`识别到 ${name} 的原料${k === 0 ? 1: 2}(${bait_msg[name][k === 0 ? 0: 1]})数量: ${material_num[k === 0 ? 0: 1]}`);
|
||||
click(1480, 974); // 点击空白处返回
|
||||
await sleep(500);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (material_num[k === 0 ? 0: 1] !== -1) break;
|
||||
}
|
||||
if (material_num[k === 0 ? 0: 1] === -1) {
|
||||
log.error(`OCR错误,未定位到原料${k ===0 ? 1: 2}数量`);
|
||||
click(1480, 974); // 点击空白处返回
|
||||
await sleep(500);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
log.error(`OCR错误,未识别到原料${k === 0 ? 1: 2}文本`);
|
||||
click(1480, 974); // 点击空白处返回
|
||||
await sleep(500);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 获取鱼饵数量
|
||||
click(1346, 399); // 点击鱼饵图标
|
||||
await sleep(500);
|
||||
let bait_num = -1;
|
||||
let ocr_area = await Ocr(881, 763, 158, 267, true); // 中间 "当前拥有xxx" 部分区域
|
||||
if (ocr_area.length !== 0) {
|
||||
let refer_y;
|
||||
for (let i = 0; i < ocr_area.length; i++) {
|
||||
if (ocr_area[i].text.includes("当前拥有")) {
|
||||
refer_y = ocr_area[i].y;
|
||||
|
||||
for (let j = 0; j < ocr_area.length; j++) {
|
||||
let string = ocr_area[j].text.replace(/\D/g, '');
|
||||
if (string && ocr_area[j].y > refer_y - 12 && ocr_area[j].y < refer_y + 12) { // 纯数字且y坐标范围合理
|
||||
let bait_num = parseInt(string, 10);
|
||||
log.info(`识别到 ${name} 的数量: ${bait_num}`);
|
||||
click(1480, 974); // 点击空白处返回
|
||||
await sleep(500);
|
||||
return [bait_num, material_num[0], material_num[1]]; // return
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bait_num !== -1) break;
|
||||
}
|
||||
if (bait_num === -1) {
|
||||
log.error(`OCR错误,未定位到鱼饵 ${name} 数量`);
|
||||
click(1480, 974); // 点击空白处返回
|
||||
await sleep(500);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
log.error(`OCR错误,未识别到鱼饵 ${name} 文本`);
|
||||
click(1480, 974); // 点击空白处返回
|
||||
await sleep(500);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 在当前合成台页面找到并合成鱼饵,合成完成后停留在合成界面 [DEBUG]如果以后鱼饵种类大于20种则需要加入滑块策略
|
||||
* @param {string} name - 名称
|
||||
* @param {number} num - 数量
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
async function make_bait(name, num) {
|
||||
if (num === 0) return true;
|
||||
let shelter_option = await Ocr(165, 1001, 289, 32); // 筛选器文本
|
||||
|
||||
if (shelter_option) {
|
||||
if (shelter_option.text !== "鱼饵") {
|
||||
shelter_option.Click();
|
||||
await sleep(500);
|
||||
|
||||
let ocrList = await Ocr(17, 93, 748, 893, true); // 左侧区域文本
|
||||
|
||||
if (ocrList.length !== 0) {
|
||||
let flag = true;
|
||||
for (let i = 0; i < ocrList.length; i++) {
|
||||
if (ocrList[i].text.includes("鱼饵")) {
|
||||
flag = false;
|
||||
ocrList[i].Click();
|
||||
await sleep(500);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
log.error("未找到筛选项:鱼饵");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
log.error(`OCR错误,未识别到筛选文本`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.error(`OCR错误,未识别到筛选文本`);
|
||||
return false;
|
||||
}
|
||||
|
||||
let ocrList = await Ocr(44, 171, 704, 807, true); // 左侧物品区域
|
||||
|
||||
if (ocrList.length !== 0) {
|
||||
if (settings.use_levenshteinDistance) {
|
||||
let menu_bait_list = [];
|
||||
for (let i = 0; i < ocrList.length; i++) {
|
||||
menu_bait_list.push(ocrList[i].text);
|
||||
}
|
||||
let closest_match = await findClosestMatch(await deal_string(name), menu_bait_list);
|
||||
|
||||
ocrList[menu_bait_list.indexOf(closest_match)].Click();
|
||||
await sleep(500);
|
||||
} else {
|
||||
let flag = true;
|
||||
for (let i = 0; i < ocrList.length; i++) {
|
||||
if (ocrList[i].text.includes(await deal_string(name))) {
|
||||
flag = false;
|
||||
ocrList[i].Click();
|
||||
await sleep(500);
|
||||
break
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
log.error(`未找到鱼饵 ${name},建议在JS脚本配置启用OCR优化`);
|
||||
log.info(`鱼饵: ${name} 已跳过`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.error(`OCR错误,未识别到鱼饵文本`);
|
||||
return false;
|
||||
}
|
||||
|
||||
// 记录两种原料的当前数量
|
||||
let material_num = [-1, -1];
|
||||
for (let k = 0; k < 2; k++) {
|
||||
click(k === 0 ? 1080: 1216, 874); // 点击原料1、2
|
||||
await sleep(500);
|
||||
let ocr_area = await Ocr(881, 763, 158, 267, true); // 中间 "当前拥有xxx" 部分区域
|
||||
if (ocr_area.length !== 0) {
|
||||
let refer_y;
|
||||
for (let i = 0; i < ocr_area.length; i++) {
|
||||
if (ocr_area[i].text.includes("当前拥有")) {
|
||||
refer_y = ocr_area[i].y;
|
||||
|
||||
for (let j = 0; j < ocr_area.length; j++) {
|
||||
let string = ocr_area[j].text.replace(/\D/g, '');
|
||||
if (string && ocr_area[j].y > refer_y - 12 && ocr_area[j].y < refer_y + 12) { // 纯数字且y坐标范围合理
|
||||
material_num[k === 0 ? 0: 1] = parseInt(string, 10);
|
||||
log.info(`识别到 ${name} 的原料${k === 0 ? 1: 2}(${bait_msg[name][k === 0 ? 0: 1]})数量: ${material_num[k === 0 ? 0: 1]}`);
|
||||
click(1480, 974); // 点击空白处返回
|
||||
await sleep(500);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (material_num[k === 0 ? 0: 1] !== -1) break;
|
||||
}
|
||||
if (material_num[k === 0 ? 0: 1] === -1) {
|
||||
log.error(`OCR错误,未定位到原料${k ===0 ? 1: 2}数量`);
|
||||
click(1480, 974); // 点击空白处返回
|
||||
await sleep(500);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
log.error(`OCR错误,未识别到原料${k === 0 ? 1: 2}文本`);
|
||||
click(1480, 974); // 点击空白处返回
|
||||
await sleep(500);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (material_num[0] - num < parseInt(settings.material_num, 10) || material_num[1] - num < parseInt(settings.material_num, 10)) {
|
||||
log.warn(`二次检查生效: 合成后剩余原料数过低(<${parseInt(settings.material_num, 10)}),本次合成跳过`);
|
||||
return true;
|
||||
}
|
||||
// 选择鱼饵数量并合成
|
||||
let max_num = material_num[0] < material_num[1] ? material_num[0]: material_num[1];
|
||||
click(1166 + Math.floor(359 * num < max_num ? num: max_num / max_num), 671);
|
||||
await sleep(100);
|
||||
let current_num = await Ocr(1264, 617, 158, 30); // 已选的合成次数文本区域
|
||||
if (current_num && max_num > num) { // [DEBUG]若false则可能有些许误差
|
||||
current_num = parseInt(current_num.text.replace(/\D/g, ''), 10);
|
||||
if (current_num > num) {
|
||||
for (let i = 0; i < current_num - num; i++) { // -
|
||||
log.debug("-1");
|
||||
click(1075, 671);
|
||||
await sleep(50);
|
||||
}
|
||||
} else if (current_num < num) {
|
||||
for (let i = 0; i < num - current_num; i++) { // +
|
||||
log.debug("+1");
|
||||
click(1612, 671);
|
||||
await sleep(50);
|
||||
}
|
||||
}
|
||||
}
|
||||
await sleep(500);
|
||||
|
||||
click(1757, 1017); // 点击合成
|
||||
await sleep(500);
|
||||
click(1171, 756); // 点击确认
|
||||
await sleep(2000); // 合成动画
|
||||
click(1555, 827); // 点击空白区域
|
||||
await sleep(500);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算各种数值,各鱼饵实际合成次数,各原料的实际需求量,计算摩拉消耗和实际消耗(食材加工计算)
|
||||
* @returns {Promise<Object>}
|
||||
*/
|
||||
async function calculate_values() {
|
||||
let bait_dic = {};
|
||||
|
||||
// 获取要合成的鱼饵种类和数量(此处的数量为原始数量,后续判断是否需要更改)
|
||||
if (Array.from(settings.material_select).length !== 0) {
|
||||
let material_select = Array.from(settings.material_select);
|
||||
for (let i = 0; i < material_select.length; i++) {
|
||||
for (let j = 0; j < Object.keys(material_msg).length; j++) {
|
||||
if (material_select[i].includes(Object.keys(material_msg)[j])) {
|
||||
let fish_dic = material_msg[Object.keys(material_msg)[j]];
|
||||
for (const [f_name, f_num] of Object.entries(fish_dic)) {
|
||||
if (Object.keys(bait_dic).includes(f_name)) {
|
||||
bait_dic[f_name][0] += f_num;
|
||||
} else {
|
||||
bait_dic[f_name] = [f_num, 0, 0];
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (Array.from(settings.bait_select).length !== 0) { // [DEBUG] parseInt可能的报错未处理
|
||||
let bait_select = Array.from(settings.bait_select);
|
||||
let bait_num = settings.bait_num.split(" ");
|
||||
if (bait_num.length === 1) {
|
||||
bait_num = parseInt(bait_num[0], 10);
|
||||
for (let i = 0; i < bait_select.length; i++) {
|
||||
bait_dic[bait_select[i]] = [bait_num, 0, 0];
|
||||
}
|
||||
} else if (bait_num.length > 1 && bait_select.length === bait_num.length) {
|
||||
for (let i = 0; i < bait_select.length; i++) {
|
||||
bait_dic[bait_select[i]] = [parseInt(bait_num[i], 10), 0, 0];
|
||||
}
|
||||
} else {
|
||||
log.error("鱼饵数量设置有误");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 获取当前的鱼饵和原料数据
|
||||
let current_bait_dic = {}; // 供计算实际鱼饵需求数量和记录原料变化
|
||||
await go_and_interact("合成台"); // 进入合成台界面
|
||||
for (let i = 0; i < Object.keys(bait_dic).length; i++) {
|
||||
let num_list = await get_bait_material_num(Object.keys(bait_dic)[i]);
|
||||
if (num_list) {
|
||||
current_bait_dic[Object.keys(bait_dic)[i]] = num_list;
|
||||
} else {
|
||||
log.error(`鱼饵(${Object.keys(bait_dic)[i]})数据获取错误`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 计算实际鱼饵需求数量
|
||||
if (settings.select_method === "合成的鱼饵数量(设置200则合成200个)") {
|
||||
log.info(`选择的合成模式: ${settings.select_method}`);
|
||||
} else if (settings.select_method === "期望的鱼饵数量(设置200则合成到200个)") {
|
||||
log.info(`选择的合成模式: ${settings.select_method}`);
|
||||
|
||||
for (let i = 0; i < Object.keys(bait_dic).length; i++) {
|
||||
let b_name = Object.keys(bait_dic)[i];
|
||||
let exp_bait_num = bait_dic[b_name][0];
|
||||
let cur_bait_num = current_bait_dic[b_name][0];
|
||||
if (exp_bait_num >= cur_bait_num) {
|
||||
log.info(`实际需合成的鱼饵(${b_name})数: ${exp_bait_num - cur_bait_num},期望(${exp_bait_num})、已有(${cur_bait_num})`);
|
||||
bait_dic[b_name][0] = exp_bait_num - cur_bait_num;
|
||||
} else {
|
||||
log.info(`鱼饵(${b_name})的数量已达标: 期望(${exp_bait_num})、已有(${cur_bait_num})`);
|
||||
bait_dic[b_name][0] = 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 留空
|
||||
}
|
||||
|
||||
// 计算合成鱼饵需求的原料数量(鱼饵数除以10,最后向上取整)
|
||||
let material_dic = {}; // 存储原料需求数量(并非兑换材料)
|
||||
for (const [b_name, b_msg] of Object.entries(bait_dic)) {
|
||||
for (let i = 0; i < bait_msg[b_name].length; i++) {
|
||||
let material_name = bait_msg[b_name][i]; // 原料名
|
||||
|
||||
if (Object.keys(material_dic).includes(material_name)) {
|
||||
material_dic[material_name] += b_msg[0] / 10;
|
||||
} else {
|
||||
material_dic[material_name] = b_msg[0] / 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const [m_name, m_num] of Object.entries(material_dic)) { // 向上取整
|
||||
material_dic[m_name] = Math.ceil(material_dic[m_name]);
|
||||
}
|
||||
|
||||
// 根据鱼饵需求的原料量计算实际的原料需求量
|
||||
let critical_value = parseInt(settings.material_num, 10); // [DEBUG] 没加检测(懒得加了
|
||||
let current_material_dic = {}; // 存储账号张当前已有的对应原料量
|
||||
for (const[b_name, b_msg] of Object.entries(current_bait_dic)) {
|
||||
for (let i = 0; i < bait_msg[b_name].length; i++) {
|
||||
if (!(Object.keys(current_material_dic).includes(bait_msg[b_name][i]))) {
|
||||
current_material_dic[bait_msg[b_name][i]] = b_msg[i + 1]; //
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const [m_name, m_num] of Object.entries(material_dic)) {
|
||||
if (m_num + critical_value <= current_material_dic[m_name]) {
|
||||
material_dic[m_name] = 0; // 保底+合成所需小于已有数量,将实际所需设为0
|
||||
} else {
|
||||
material_dic[m_name] = m_num + critical_value - current_material_dic[m_name]; // 计算实际所需
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
"exp_bait_dic": bait_dic, // x: [x, 0, 0]
|
||||
"cur_bait_dic": current_bait_dic, // x: [x, x, x]
|
||||
"material_dic": material_dic // x: x
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 跑到指定位置并交互进入界面
|
||||
* @param type 类型
|
||||
* @param area 国家
|
||||
* @returns {Promise<boolean>} 是否成功进入
|
||||
*/
|
||||
async function go_and_interact(type, area = "蒙德") {
|
||||
// 返回主界面
|
||||
genshin.returnMainUi();
|
||||
|
||||
if (type === "合成台") {
|
||||
await sleep(500);
|
||||
await pathingScript.runFile(`assets/timaeus/${settings.timaeus_select}.json`);
|
||||
await sleep(500);
|
||||
} else if (type === "餐馆" || type === "杂货店" || type === "锅") {
|
||||
const path_json = JSON.parse((file.readTextSync(`assets/npc/${area}-${type}.json`)));
|
||||
await sleep(500);
|
||||
await pathingScript.run(JSON.stringify(path_json));
|
||||
await sleep(500);
|
||||
if (path_json["info"]["description"].includes("GCM")) {
|
||||
// 等待到返回主界面
|
||||
genshin.returnMainUi();
|
||||
await sleep(500);
|
||||
await keyMouseScript.runFile(`assets/npc/${area}-${type}-GCM.json`);
|
||||
await sleep(500);
|
||||
}
|
||||
}
|
||||
|
||||
return await enter_store();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* 调整加工食材到指定数量(1-999)后点击确定
|
||||
*
|
||||
* @param num 加工食材数量
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function set_ingredient_num(num) {
|
||||
click(961, 454); // 选中输入框
|
||||
await sleep(200);
|
||||
inputText(`${num}`);
|
||||
|
||||
await sleep(500);
|
||||
await click(1190, 760); // 确认
|
||||
await sleep(200);
|
||||
}
|
||||
|
||||
/**
|
||||
* 在烹饪/食材加工界面开始,自动收集并实现单个食材加工
|
||||
* @param name 要加工的物品名称
|
||||
* @param num 要加工的食材数量,为0时仅收集
|
||||
* @param accelerator 使用矿石加速
|
||||
* @returns {Promise<number|boolean>} 实际加工的数量
|
||||
*/
|
||||
async function ingredient_process(name, num, accelerator = []) {
|
||||
await sleep(500);
|
||||
click(1008, 48); // 点击食材加工图标
|
||||
await sleep(500);
|
||||
|
||||
let claim_all = await Ocr(198, 1003, 118, 31);
|
||||
if (claim_all && claim_all.text === "全部领取") {
|
||||
claim_all.Click(); // 全部领取
|
||||
await sleep(500);
|
||||
click(1569, 864); // 点击空白处
|
||||
await sleep(500);
|
||||
}
|
||||
|
||||
// 找到 name (制作中也能找到)
|
||||
let flag = false;
|
||||
for (let y = 0; y < 3; y++) {
|
||||
for (let x = 0; x < 8; x++) {
|
||||
click(178 + 147 * x, 197 + 175 * y);
|
||||
await sleep(300);
|
||||
|
||||
let item_name = await Ocr(1334, 129, 440, 40);
|
||||
if (item_name && item_name.text.includes(name)) {
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (flag) break;
|
||||
}
|
||||
|
||||
// 点击 制作
|
||||
click(1687, 1016);
|
||||
await sleep(500);
|
||||
let check_ocr = await Ocr(901, 524, 118, 31);
|
||||
if (check_ocr && check_ocr.text === "队列已满") {
|
||||
log.info(`食材加工(${name}): 队列已满...`);
|
||||
return 0;
|
||||
}
|
||||
|
||||
let max_num_ocr = await Ocr(1226, 578, 44, 24);
|
||||
let max_num = -1;
|
||||
if (max_num_ocr) {
|
||||
let string = max_num_ocr.text.replace(/\D/g, '');
|
||||
if (string) {
|
||||
max_num = parseInt(string, 10);
|
||||
}
|
||||
}
|
||||
if (max_num === -1) {
|
||||
log.warn(`食材加工(${name})制作界面未检测到最大值文本,可能是数字过小`);
|
||||
keyPress("Escape");
|
||||
await sleep(500);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (num < max_num) {
|
||||
await set_ingredient_num(num);
|
||||
return num;
|
||||
} else {
|
||||
await set_ingredient_num(max_num);
|
||||
return max_num;
|
||||
}
|
||||
}
|
||||
|
||||
async function main() {
|
||||
/**
|
||||
* {
|
||||
* "exp_bait_dic": bait_dic, // x: [x, 0, 0]
|
||||
* "cur_bait_dic": current_bait_dic, // x: [x, x, x]
|
||||
* "material_dic": material_dic // x: x
|
||||
* }
|
||||
*/
|
||||
let data = await calculate_values();
|
||||
await go_and_interact("合成台");
|
||||
for (const[b_name, b_msg] of Object.entries(data["exp_bait_dic"])) {
|
||||
log.info(`开始合成: ${b_name} - ${b_msg[0]}个`);
|
||||
await make_bait(b_name, Math.ceil(b_msg[0] / 10));
|
||||
}
|
||||
|
||||
// log.info(`${await get_bait_material_num("维护机关频闪诱饵")}`)
|
||||
// await make_bait("维护机关频闪诱饵", 10);
|
||||
// await enter_store();
|
||||
// await select_goods("小麦", 67);
|
||||
}
|
||||
|
||||
await main();
|
||||
})();
|
||||
15
repo/js/AutoFishingTeyvat-Bait/manifest.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"name": "提瓦特自动饵料机[测试版]",
|
||||
"version": "1.0.0",
|
||||
"bgi_version": "0.55.0",
|
||||
"description": "全自动合成鱼饵(支持自动获取原料)",
|
||||
"authors": [
|
||||
{
|
||||
"name": "提瓦特钓鱼玳师",
|
||||
"links": "https://github.com/Hijiwos"
|
||||
}
|
||||
],
|
||||
"settings_ui": "settings.json",
|
||||
"main": "main.js"
|
||||
}
|
||||
165
repo/js/AutoFishingTeyvat-Bait/settings.json
Normal file
@@ -0,0 +1,165 @@
|
||||
[
|
||||
{
|
||||
"name": "show_info_title_1",
|
||||
"type": "input-text",
|
||||
"label": "[合成鱼饵]----------------------合成和原料----------------------",
|
||||
"default": "⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬"
|
||||
},
|
||||
{
|
||||
"name": "bait_select",
|
||||
"type": "multi-checkbox",
|
||||
"label": "选择鱼饵种类",
|
||||
"options": ["果酿饵", "酸桔饵", "维护机关频闪诱饵", "甘露饵", "赤糜饵", "飞蝇假饵", "蠕虫假饵", "澄晶果粒饵", "温火饵", "槲梭饵", "清白饵"]
|
||||
},
|
||||
{
|
||||
"name": "select_method",
|
||||
"type": "select",
|
||||
"label": "选择鱼饵数量的衡量方式\n该计算方式同样影响根据兑换物品合成鱼饵的模式",
|
||||
"options": [
|
||||
"期望的鱼饵数量(设置200则合成到200个)",
|
||||
"合成的鱼饵数量(设置200则合成200个)"
|
||||
|
||||
],
|
||||
"default": "期望的鱼饵数量(设置200则合成到200个)"
|
||||
},
|
||||
{
|
||||
"name": "bait_num",
|
||||
"type": "input-text",
|
||||
"label": "输入数量\n(使用单个空格隔开,只填一个则全部沿用该数量)",
|
||||
"default": "200"
|
||||
},
|
||||
{
|
||||
"name": "material_num",
|
||||
"type": "input-text",
|
||||
"label": "合成鱼饵后最低保留的原料数量(所有材料的最低余量一致)",
|
||||
"default": "200"
|
||||
},
|
||||
{
|
||||
"name": "use_pathing",
|
||||
"type": "checkbox",
|
||||
"label": "使用地图追踪补全不足的原料[暂不可用]",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"type":"separator"
|
||||
},
|
||||
{
|
||||
"type":"separator"
|
||||
},
|
||||
{
|
||||
"name": "show_info_title_2",
|
||||
"type": "input-text",
|
||||
"label": "[地图追踪]---------------------合成台和商人---------------------",
|
||||
"default": "⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬"
|
||||
},
|
||||
{
|
||||
"name": "timaeus_select",
|
||||
"type": "select",
|
||||
"label": "选择合成台",
|
||||
"options": [
|
||||
"蒙德",
|
||||
"璃月",
|
||||
"稻妻",
|
||||
"须弥",
|
||||
"枫丹",
|
||||
"纳塔",
|
||||
"挪德卡莱"
|
||||
],
|
||||
"default": "枫丹"
|
||||
},
|
||||
{
|
||||
"name": "use_mora",
|
||||
"type": "checkbox",
|
||||
"label": "使用摩拉购买原材料(主要涉及小麦、面粉)[暂不可用]",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"name": "use_process",
|
||||
"type": "checkbox",
|
||||
"label": "使用食材加工获取原材料(主要涉及面粉)[暂不可用]",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"name": "process_priority",
|
||||
"type": "select",
|
||||
"label": "加工和购买的优先级(对应方式启用后生效)[暂不可用]",
|
||||
"options": [
|
||||
"加工>购买",
|
||||
"购买>加工",
|
||||
"只购买",
|
||||
"只加工"
|
||||
],
|
||||
"default": "加工>购买"
|
||||
},
|
||||
{
|
||||
"name": "mora_budget",
|
||||
"type": "input-text",
|
||||
"label": "预算(最多使用多少摩拉)[暂不可用]\n购买600小麦的原价为60000",
|
||||
"default": "60000"
|
||||
},
|
||||
{
|
||||
"name": "discount_select",
|
||||
"type": "multi-checkbox",
|
||||
"label": "选择已获得折扣的区域(用于计算预算,折扣为9折)[暂不可用]",
|
||||
"options": ["蒙德", "璃月", "稻妻", "须弥", "枫丹", "纳塔", "挪德卡莱"]
|
||||
},
|
||||
{
|
||||
"type":"separator"
|
||||
},
|
||||
{
|
||||
"type":"separator"
|
||||
},
|
||||
{
|
||||
"name": "show_info_title_3",
|
||||
"type": "input-text",
|
||||
"label": "[特殊需求]-----------------------其他功能-----------------------",
|
||||
"default": "⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬"
|
||||
},
|
||||
{
|
||||
"name": "material_select",
|
||||
"type": "multi-checkbox",
|
||||
"label": "根据要兑换的物品合成所需的鱼饵(精炼材料默认为4个)\n此处选择后通过[选择鱼饵种类]选择的鱼类将失效",
|
||||
"options": [
|
||||
"⚓风缠⚓(蒙德钓竿)",
|
||||
"⚓愿者⚓(璃月钓竿)",
|
||||
"⚓鸣川鹈饲⚓(稻妻钓竿)",
|
||||
"⚓盘缘⚓(须弥钓竿)",
|
||||
"⚓穿浪斗枪⚓(枫丹钓竿)",
|
||||
"⚓长犀圆鸟和扁鱼⚓(纳塔钓竿)",
|
||||
"⚓谧晖白枝⚓(挪德卡莱钓竿)",
|
||||
"⚔渔获⚔(稻妻武器)",
|
||||
"✞赤穗酒枡✞(稻妻精炼材料)",
|
||||
"⚔竭泽⚔(须弥武器)",
|
||||
"✞原海鱼油✞(须弥精练材料)",
|
||||
"⚔灰河渡手⚔(枫丹武器)",
|
||||
"✞马腾斯万能护养剂✞(枫丹精练材料)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "use_levenshteinDistance",
|
||||
"type": "checkbox",
|
||||
"label": "优化OCR(建议启用)\n勾选后可以避免出现多类别识别相关的报错",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "accelerator_select",
|
||||
"type": "multi-checkbox",
|
||||
"label": "使用矿石加速食材加工[暂不可用]\n选择用于加速食材加工的矿石(不选或用尽则等待)\n注: 即便选择了加速,也只会在最后合成前使用矿石加速",
|
||||
"options": [
|
||||
"铁块: -20s",
|
||||
"白铁块: -40s",
|
||||
"水晶块: -60s",
|
||||
"魔晶块: -60s",
|
||||
"星银矿石: -40s",
|
||||
"紫晶块: -60s",
|
||||
"萃凝晶: -60s",
|
||||
"虹滴晶: -60s"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "accelerator_remain",
|
||||
"type": "input-text",
|
||||
"label": "用于加速的矿石至少保留多少个(启用矿石加速后生效)",
|
||||
"default": "500"
|
||||
}
|
||||
]
|
||||
@@ -13,7 +13,7 @@
|
||||
7. 支持自定义钓鱼超时时间
|
||||
8. 支持设置定时关闭(最多24小时)
|
||||
9. 4点自动领取月卡(可选)
|
||||
10. 自动记录垂钓点冷却时间(多人模式自动关闭)
|
||||
10. 自动记录垂钓点冷却时间(多人模式则记录房主的CD)
|
||||
11. 启用自动拾取(可选)
|
||||
|
||||
## 注意事项
|
||||
@@ -23,10 +23,10 @@
|
||||
3. 同时选择鱼类和鱼饵的情况下按照以下逻辑选择路线: 所有被选的鱼类会被加入任务列表,如果选择的鱼饵中某个鱼饵不是已选的任何一个鱼类的对应的鱼饵,那么这个鱼饵对应的所有鱼类将被添加到任务列表
|
||||
4. 部分钓鱼点为路径追踪+键鼠脚本(GCM)的混合模式,可能会出现因键鼠脚本误差卡死的情况,如果出现这种情况,请在JS脚本设置禁用键鼠路线来禁用所有包含键鼠脚本的钓鱼点
|
||||
5. 请确保```F2```不被占用(用于打开**多人游戏**窗口),否则会影响多人模式检测,导致CD记录出现误差
|
||||
6. 远古圣山点位暂不支持
|
||||
7. 支持鹤观点位自动使用小道具「奇特的羽毛」,提供两种使用小道具的方法
|
||||
6. 支持鹤观点位自动使用小道具「奇特的羽毛」,提供两种使用小道具的方法
|
||||
|
||||
## 其它
|
||||
|
||||
脚本反馈群(推荐):BetterGI v7群(1029539994)
|
||||
|
||||
脚本反馈邮箱:hijiwos@hotmail.com
|
||||
BIN
repo/js/AutoFishingTeyvat/assets/1P.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
repo/js/AutoFishingTeyvat/assets/Exit.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768791625113,
|
||||
"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": 10043.1875,
|
||||
"y": 5938.0673828125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 10021.193359375,
|
||||
"y": 5947.9990234375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 10014.96484375,
|
||||
"y": 5960.52978515625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 10066.197265625,
|
||||
"y": 6020.537109375
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 10102.96875,
|
||||
"y": 6019.38916015625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 6,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 10140.962890625,
|
||||
"y": 6026.20703125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 7,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 10145.77734375,
|
||||
"y": 6020.8837890625
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 8,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 10143.6171875,
|
||||
"y": 6016.19580078125
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768791378848,
|
||||
"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": 9492.001953125,
|
||||
"y": 5526.0830078125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9424.1484375,
|
||||
"y": 5521.88671875
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 9420.625,
|
||||
"y": 5526.373046875
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768791235489,
|
||||
"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": 9637.7734375,
|
||||
"y": 4976.1689453125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 9616.47265625,
|
||||
"y": 4993.7705078125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 9616.515625,
|
||||
"y": 4972.326171875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 9500.498046875,
|
||||
"y": 4945.158203125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "swim",
|
||||
"type": "path",
|
||||
"x": 9462.9326171875,
|
||||
"y": 4938.2626953125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 6,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 9393.3984375,
|
||||
"y": 4996.67236328125
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 7,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 9403.97265625,
|
||||
"y": 5012.14599609375
|
||||
}
|
||||
]
|
||||
}
|
||||
154
repo/js/AutoFishingTeyvat/assets/pathing/远古圣山-垂钓点-分流识海.json
Normal file
@@ -0,0 +1,154 @@
|
||||
{
|
||||
"config": {
|
||||
"realtime_triggers": {
|
||||
"AutoPick": true
|
||||
}
|
||||
},
|
||||
"farming_info": {
|
||||
"allow_farming_count": false,
|
||||
"duration_seconds": 0,
|
||||
"elite_details": "",
|
||||
"elite_mob_count": 0,
|
||||
"normal_mob_count": 0,
|
||||
"primary_target": "",
|
||||
"total_mora": 0
|
||||
},
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"items": [],
|
||||
"last_modified_time": 1767958854733,
|
||||
"map_match_method": "TemplateMatch",
|
||||
"map_name": "AncientSacredMountain",
|
||||
"name": "远古圣山-垂钓点-分流识海-炽岩斗士急流鱼_秘源机关·巡戒使-温火饵-普通",
|
||||
"order": 0,
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": ""
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"id": 1,
|
||||
"move_mode": "walk",
|
||||
"point_ext_params": {
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"misidentification": {
|
||||
"arrival_time": 0,
|
||||
"handling_mode": "previousDetectedPoint",
|
||||
"type": [
|
||||
"unrecognized"
|
||||
]
|
||||
}
|
||||
},
|
||||
"type": "teleport",
|
||||
"x": 185.4827880859375,
|
||||
"y": -43.462890625
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"point_ext_params": {
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"misidentification": {
|
||||
"arrival_time": 0,
|
||||
"handling_mode": "previousDetectedPoint",
|
||||
"type": [
|
||||
"unrecognized"
|
||||
]
|
||||
}
|
||||
},
|
||||
"type": "path",
|
||||
"x": 208.844970703125,
|
||||
"y": -19.76904296875
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"point_ext_params": {
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"misidentification": {
|
||||
"arrival_time": 0,
|
||||
"handling_mode": "previousDetectedPoint",
|
||||
"type": [
|
||||
"unrecognized"
|
||||
]
|
||||
}
|
||||
},
|
||||
"type": "path",
|
||||
"x": 220.3687744140625,
|
||||
"y": -2.805908203125
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "keypress(space),wait(3.5),attack(0.1),wait(3)",
|
||||
"id": 4,
|
||||
"move_mode": "fly",
|
||||
"point_ext_params": {
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"misidentification": {
|
||||
"arrival_time": 0,
|
||||
"handling_mode": "previousDetectedPoint",
|
||||
"type": [
|
||||
"unrecognized"
|
||||
]
|
||||
}
|
||||
},
|
||||
"type": "path",
|
||||
"x": 250.4083251953125,
|
||||
"y": 55.0343017578125
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"id": 5,
|
||||
"move_mode": "walk",
|
||||
"point_ext_params": {
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"misidentification": {
|
||||
"arrival_time": 0,
|
||||
"handling_mode": "previousDetectedPoint",
|
||||
"type": [
|
||||
"unrecognized"
|
||||
]
|
||||
}
|
||||
},
|
||||
"type": "target",
|
||||
"x": 254.2086181640625,
|
||||
"y": 49.870361328125
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 6,
|
||||
"move_mode": "walk",
|
||||
"point_ext_params": {
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"misidentification": {
|
||||
"arrival_time": 0,
|
||||
"handling_mode": "previousDetectedPoint",
|
||||
"type": [
|
||||
"unrecognized"
|
||||
]
|
||||
}
|
||||
},
|
||||
"type": "target",
|
||||
"x": 246.414814453125,
|
||||
"y": 51.7835693359375
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
repo/js/AutoFishingTeyvat/assets/single.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
@@ -1,6 +1,6 @@
|
||||
(async function () { // CD读写仍有优化空间
|
||||
(async function () { // CD计算仍有优化空间、多人模式非房主记录的CD无法确定时间
|
||||
|
||||
const area_list = ['蒙德', '璃月', '稻妻', '须弥', '枫丹', '纳塔', '至冬', '挪德卡莱', '层岩巨渊·地下矿区', '渊下宫']
|
||||
const area_list = ['蒙德', '璃月', '稻妻', '须弥', '枫丹', '纳塔', '至冬', '挪德卡莱', '层岩巨渊·地下矿区', '渊下宫', '远古圣山']
|
||||
const fish_list = ['花鳉', '波波心羽鲈', '烘烘心羽鲈', '维护机关·水域清理者', '维护机关·态势控制者', '维护机关·澄金领队型', '海涛斧枪鱼', '维护机关·初始能力型', '维护机关·白金典藏型', '吹沙角鲀', '甜甜花鳉', '擒霞客', '水晶宴', '斗棘鱼', '炮鲀', '流纹褐蝶鱼', '锖假龙', '金赤假龙', '玉玉心羽鲈', '赤魔王', '长生仙', '苦炮鲀', '肺棘鱼', '流纹京紫蝶鱼', '琉璃花鳉', '伪装鲨鲨独角鱼', '繁花斗士急流鱼', '深潜斗士急流鱼', '晚霞翻车鲀', '青浪翻车鲀', '拟似燃素独角鱼', '炽岩斗士急流鱼', '蓝染花鳉', '鸩棘鱼', '流纹茶蝶鱼', '雪中君', '真果角鲀', '青金斧枪鱼', '暮云角鲀', '翡玉斧枪鱼', '沉波蜜桃', '雷鸣仙', '佛玛洛鳐', '迪芙妲鳐', '秘源机关·巡戒使', '蓝昼明眼鱼', '冷冽巨斧鱼', '夜色明眼鱼', '炽铁巨斧鱼', '虹光凶凶鲨', '无奇巨斧鱼', '素素凶凶鲨']
|
||||
const bait_list = ['果酿饵', '酸桔饵', '维护机关频闪诱饵', '甘露饵', '赤糜饵', '飞蝇假饵', '蠕虫假饵', '澄晶果粒饵', '温火饵', '槲梭饵', '清白饵']
|
||||
const material_msg = {
|
||||
@@ -10,89 +10,89 @@
|
||||
"盘缘": ["花鳉", "真果角鲀", "暮云角鲀", "吹沙角鲀"],
|
||||
"穿浪斗枪": ["维护机关·初始能力型", "维护机关·水域清理者", "维护机关·态势控制者", "海涛斧枪鱼"],
|
||||
"长犀圆鸟和扁鱼": ["炽岩斗士急流鱼", "拟似燃素独角鱼", "青浪翻车鲀", "晚霞翻车鲀"],
|
||||
"谧晖白枝": ["无奇巨斧鱼", "素素凶凶鲨", "蓝昼明眼鱼", "夜色明眼鱼"],
|
||||
"渔获": ["雷鸣仙", "金赤假龙", "锖假龙"],
|
||||
"赤穗酒枡": ["雷鸣仙", "炮鲀", "苦炮鲀"],
|
||||
"竭泽": ["沉波蜜桃", "青金斧枪鱼", "翡玉斧枪鱼"],
|
||||
"原海鱼油": ["沉波蜜桃", "青金斧枪鱼", "翡玉斧枪鱼"],
|
||||
"灰河渡手": ["维护机关·白金典藏型", "波波心羽鲈", "烘烘心羽鲈", "海涛斧枪鱼"],
|
||||
"马腾斯万能护养剂": ["维护机关·白金典藏型", "波波心羽鲈", "烘烘心羽鲈", "海涛斧枪鱼"],
|
||||
"谧晖白枝": ["无奇巨斧鱼", "素素凶凶鲨", "蓝昼明眼鱼", "夜色明眼鱼"]
|
||||
"马腾斯万能护养剂": ["维护机关·白金典藏型", "波波心羽鲈", "烘烘心羽鲈", "海涛斧枪鱼"]
|
||||
}
|
||||
const time_msg = {
|
||||
'白天': ['烘烘心羽鲈', '维护机关·水域清理者', '吹沙角鲀', '水晶宴', '流纹褐蝶鱼', '赤魔王', '长生仙', '流纹京紫蝶鱼', '深潜斗士急流鱼', '青浪翻车鲀', '流纹茶蝶鱼', '真果角鲀', '沉波蜜桃', '蓝昼明眼鱼', '冷冽巨斧鱼'],
|
||||
'夜晚': ['波波心羽鲈', '维护机关·态势控制者', '维护机关·白金典藏型', '擒霞客', '斗棘鱼', '肺棘鱼', '繁花斗士急流鱼', '晚霞翻车鲀', '鸩棘鱼', '雪中君', '暮云角鲀', '雷鸣仙', '夜色明眼鱼', '炽铁巨斧鱼', '虹光凶凶鲨'],
|
||||
'全天': ['花鳉', '维护机关·澄金领队型', '海涛斧枪鱼', '维护机关·初始能力型', '甜甜花鳉', '炮鲀', '锖假龙', '金赤假龙', '玉玉心羽鲈', '苦炮鲀', '琉璃花鳉', '伪装鲨鲨独角鱼', '拟似燃素独角鱼', '炽岩斗士急流鱼', '蓝染花鳉', '青金斧枪鱼', '翡玉斧枪鱼', '佛玛洛鳐', '迪芙妲鳐', '秘源机关·巡戒使', '无奇巨斧鱼', '素素凶凶鲨']
|
||||
}
|
||||
const fish_msg = { // 可能有误,需要检查
|
||||
'花鳉': {'bait': '果酿饵', 'time': '全天'},
|
||||
'波波心羽鲈': {'bait': '酸桔饵', 'time': '夜晚'},
|
||||
'烘烘心羽鲈': {'bait': '酸桔饵', 'time': '白天'},
|
||||
'维护机关·水域清理者': {'bait': '维护机关频闪诱饵', 'time': '白天'},
|
||||
'维护机关·态势控制者': {'bait': '维护机关频闪诱饵', 'time': '夜晚'},
|
||||
'维护机关·澄金领队型': {'bait': '维护机关频闪诱饵', 'time': '全天'},
|
||||
'海涛斧枪鱼': {'bait': '甘露饵', 'time': '全天'},
|
||||
'维护机关·初始能力型': {'bait': '维护机关频闪诱饵', 'time': '全天'},
|
||||
'维护机关·白金典藏型': {'bait': '维护机关频闪诱饵', 'time': '夜晚'},
|
||||
'吹沙角鲀': {'bait': '甘露饵', 'time': '白天'},
|
||||
'甜甜花鳉': {'bait': '果酿饵', 'time': '全天'},
|
||||
'擒霞客': {'bait': '果酿饵', 'time': '夜晚'},
|
||||
'水晶宴': {'bait': '果酿饵', 'time': '白天'},
|
||||
'斗棘鱼': {'bait': '赤糜饵', 'time': '夜晚'},
|
||||
'炮鲀': {'bait': '飞蝇假饵', 'time': '全天'},
|
||||
'流纹褐蝶鱼': {'bait': '蠕虫假饵', 'time': '白天'},
|
||||
'锖假龙': {'bait': '飞蝇假饵', 'time': '全天'},
|
||||
'金赤假龙': {'bait': '飞蝇假饵', 'time': '全天'},
|
||||
'玉玉心羽鲈': {'bait': '酸桔饵', 'time': '全天'},
|
||||
'赤魔王': {'bait': '赤糜饵', 'time': '白天'},
|
||||
'长生仙': {'bait': '蠕虫假饵', 'time': '白天'},
|
||||
'苦炮鲀': {'bait': '飞蝇假饵', 'time': '全天'},
|
||||
'肺棘鱼': {'bait': '赤糜饵', 'time': '夜晚'},
|
||||
'流纹京紫蝶鱼': {'bait': '蠕虫假饵', 'time': '白天'},
|
||||
'琉璃花鳉': {'bait': '果酿饵', 'time': '全天'},
|
||||
'伪装鲨鲨独角鱼': {'bait': '澄晶果粒饵', 'time': '全天'},
|
||||
'繁花斗士急流鱼': {'bait': '澄晶果粒饵', 'time': '夜晚'},
|
||||
'深潜斗士急流鱼': {'bait': '澄晶果粒饵', 'time': '白天'},
|
||||
'晚霞翻车鲀': {'bait': '澄晶果粒饵', 'time': '夜晚'},
|
||||
'青浪翻车鲀': {'bait': '澄晶果粒饵', 'time': '白天'},
|
||||
'拟似燃素独角鱼': {'bait': '温火饵', 'time': '全天'},
|
||||
'炽岩斗士急流鱼': {'bait': '温火饵', 'time': '全天'},
|
||||
'蓝染花鳉': {'bait': '果酿饵', 'time': '全天'},
|
||||
'鸩棘鱼': {'bait': '赤糜饵', 'time': '夜晚'},
|
||||
'流纹茶蝶鱼': {'bait': '蠕虫假饵', 'time': '白天'},
|
||||
'雪中君': {'bait': '赤糜饵', 'time': '夜晚'},
|
||||
'真果角鲀': {'bait': '甘露饵', 'time': '白天'},
|
||||
'青金斧枪鱼': {'bait': '甘露饵', 'time': '全天'},
|
||||
'暮云角鲀': {'bait': '甘露饵', 'time': '夜晚'},
|
||||
'翡玉斧枪鱼': {'bait': '甘露饵', 'time': '全天'},
|
||||
'沉波蜜桃': {'bait': '甘露饵', 'time': '白天'},
|
||||
'雷鸣仙': {'bait': '蠕虫假饵', 'time': '夜晚'},
|
||||
'佛玛洛鳐': {'bait': '飞蝇假饵', 'time': '全天'},
|
||||
'迪芙妲鳐': {'bait': '飞蝇假饵', 'time': '全天'},
|
||||
'秘源机关·巡戒使': {'bait': '温火饵', 'time': '全天'},
|
||||
'蓝昼明眼鱼': {'bait': '清白饵', 'time': '白天'},
|
||||
'夜色明眼鱼': {'bait': '清白饵', 'time': '夜晚'},
|
||||
'无奇巨斧鱼': {'bait': '槲梭饵', 'time': '全天'},
|
||||
'素素凶凶鲨': {'bait': '清白饵', 'time': '全天'},
|
||||
'炽铁巨斧鱼': {'bait': '槲梭饵', 'time': '夜晚'},
|
||||
'虹光凶凶鲨': {'bait': '清白饵', 'time': '夜晚'},
|
||||
'冷冽巨斧鱼': {'bait': '槲梭饵', 'time': '白天'}
|
||||
const fish_msg = {
|
||||
'花鳉': {'bait': '果酿饵', 'time': '全天', 'BigFishType': 'medaka'},
|
||||
'琉璃花鳉': {'bait': '果酿饵', 'time': '全天', 'BigFishType': 'medaka'},
|
||||
'甜甜花鳉': {'bait': '果酿饵', 'time': '全天', 'BigFishType': 'medaka'},
|
||||
'蓝染花鳉': {'bait': '果酿饵', 'time': '全天', 'BigFishType': 'medaka'},
|
||||
'擒霞客': {'bait': '果酿饵', 'time': '夜晚', 'BigFishType': 'large_medaka'},
|
||||
'水晶宴': {'bait': '果酿饵', 'time': '白天', 'BigFishType': 'large_medaka'},
|
||||
'肺棘鱼': {'bait': '赤糜饵', 'time': '夜晚', 'BigFishType': 'stickleback'},
|
||||
'斗棘鱼': {'bait': '赤糜饵', 'time': '夜晚', 'BigFishType': 'stickleback'},
|
||||
'鸩棘鱼': {'bait': '赤糜饵', 'time': '夜晚', 'BigFishType': 'stickleback'},
|
||||
'赤魔王': {'bait': '赤糜饵', 'time': '白天', 'BigFishType': 'stickleback'},
|
||||
'雪中君': {'bait': '赤糜饵', 'time': '夜晚', 'BigFishType': 'stickleback'},
|
||||
'金赤假龙': {'bait': '飞蝇假饵', 'time': '全天', 'BigFishType': 'koi'},
|
||||
'锖假龙': {'bait': '飞蝇假饵', 'time': '全天', 'BigFishType': 'koi'},
|
||||
'流纹褐蝶鱼': {'bait': '蠕虫假饵', 'time': '白天', 'BigFishType': 'butterflyfish'},
|
||||
'流纹茶蝶鱼': {'bait': '蠕虫假饵', 'time': '白天', 'BigFishType': 'butterflyfish'},
|
||||
'流纹京紫蝶鱼': {'bait': '蠕虫假饵', 'time': '白天', 'BigFishType': 'butterflyfish'},
|
||||
'长生仙': {'bait': '蠕虫假饵', 'time': '白天', 'BigFishType': 'butterflyfish'},
|
||||
'雷鸣仙': {'bait': '蠕虫假饵', 'time': '夜晚', 'BigFishType': 'butterflyfish'},
|
||||
'炮鲀': {'bait': '飞蝇假饵', 'time': '全天', 'BigFishType': 'pufferfish'},
|
||||
'苦炮鲀': {'bait': '飞蝇假饵', 'time': '全天', 'BigFishType': 'pufferfish'},
|
||||
'佛玛洛鳐': {'bait': '飞蝇假饵', 'time': '全天', 'BigFishType': 'ray'},
|
||||
'迪芙妲鳐': {'bait': '飞蝇假饵', 'time': '全天', 'BigFishType': 'ray'},
|
||||
'吹沙角鲀': {'bait': '甘露饵', 'time': '白天', 'BigFishType': 'angler'},
|
||||
'暮云角鲀': {'bait': '甘露饵', 'time': '夜晚', 'BigFishType': 'angler'},
|
||||
'真果角鲀': {'bait': '甘露饵', 'time': '白天', 'BigFishType': 'angler'},
|
||||
'沉波蜜桃': {'bait': '甘露饵', 'time': '白天', 'BigFishType': 'angler'},
|
||||
'翡玉斧枪鱼': {'bait': '甘露饵', 'time': '全天', 'BigFishType': 'axe_marlin'},
|
||||
'青金斧枪鱼': {'bait': '甘露饵', 'time': '全天', 'BigFishType': 'axe_marlin'},
|
||||
'海涛斧枪鱼': {'bait': '甘露饵', 'time': '全天', 'BigFishType': 'axe_marlin'},
|
||||
'烘烘心羽鲈': {'bait': '酸桔饵', 'time': '白天', 'BigFishType': 'heartfeather_bass'},
|
||||
'波波心羽鲈': {'bait': '酸桔饵', 'time': '夜晚', 'BigFishType': 'heartfeather_bass'},
|
||||
'玉玉心羽鲈': {'bait': '酸桔饵', 'time': '全天', 'BigFishType': 'heartfeather_bass'},
|
||||
'维护机关·初始能力型': {'bait': '维护机关频闪诱饵', 'time': '全天', 'BigFishType': 'maintenance_mek'},
|
||||
'维护机关·态势控制者': {'bait': '维护机关频闪诱饵', 'time': '夜晚', 'BigFishType': 'maintenance_mek'},
|
||||
'维护机关·水域清理者': {'bait': '维护机关频闪诱饵', 'time': '白天', 'BigFishType': 'maintenance_mek'},
|
||||
'维护机关·澄金领队型': {'bait': '维护机关频闪诱饵', 'time': '全天', 'BigFishType': 'maintenance_mek'},
|
||||
'维护机关·白金典藏型': {'bait': '维护机关频闪诱饵', 'time': '夜晚', 'BigFishType': 'maintenance_mek'},
|
||||
'伪装鲨鲨独角鱼': {'bait': '澄晶果粒饵', 'time': '全天', 'BigFishType': 'unihornfish'},
|
||||
'青浪翻车鲀': {'bait': '澄晶果粒饵', 'time': '白天', 'BigFishType': 'sunfish'},
|
||||
'晚霞翻车鲀': {'bait': '澄晶果粒饵', 'time': '夜晚', 'BigFishType': 'sunfish'},
|
||||
'繁花斗士急流鱼': {'bait': '澄晶果粒饵', 'time': '夜晚', 'BigFishType': 'rapidfish'},
|
||||
'深潜斗士急流鱼': {'bait': '澄晶果粒饵', 'time': '白天', 'BigFishType': 'rapidfish'},
|
||||
'拟似燃素独角鱼': {'bait': '温火饵', 'time': '全天', 'BigFishType': 'phony_unihornfish'},
|
||||
'炽岩斗士急流鱼': {'bait': '温火饵', 'time': '全天', 'BigFishType': 'magma_rapidfish'},
|
||||
'秘源机关·巡戒使': {'bait': '温火饵', 'time': '全天', 'BigFishType': 'secret_source'},
|
||||
'无奇巨斧鱼': {'bait': '槲梭饵', 'time': '全天', 'BigFishType': 'axehead'},
|
||||
'冷冽巨斧鱼': {'bait': '槲梭饵', 'time': '白天', 'BigFishType': 'axehead'},
|
||||
'炽铁巨斧鱼': {'bait': '槲梭饵', 'time': '夜晚', 'BigFishType': 'axehead'},
|
||||
'素素凶凶鲨': {'bait': '清白饵', 'time': '全天', 'BigFishType': 'mauler_shark'},
|
||||
'虹光凶凶鲨': {'bait': '清白饵', 'time': '夜晚', 'BigFishType': 'mauler_shark'},
|
||||
'蓝昼明眼鱼': {'bait': '清白饵', 'time': '白天', 'BigFishType': 'crystal_eye'},
|
||||
'夜色明眼鱼': {'bait': '清白饵', 'time': '夜晚', 'BigFishType': 'crystal_eye'}
|
||||
}
|
||||
const path_pathing = [
|
||||
'枫丹-垂钓点-伊黎耶林区幽林雾道西南-花鳉_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者_维护机关·澄金领队型-果酿饵_酸橘饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-伊黎耶林区柔灯港西北-海涛斧枪鱼_波波心羽鲈_维护机关·水域清理者_维护机关·澄金领队型-甘露饵_酸橘饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-伊黎耶林区幽林雾道西南-花鳉_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者_维护机关·澄金领队型-果酿饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-伊黎耶林区柔灯港西北-海涛斧枪鱼_波波心羽鲈_维护机关·水域清理者_维护机关·澄金领队型-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-枫丹动能工程科学研究院区中央实验室遗址南-花鳉_海涛斧枪鱼_波波心羽鲈_维护机关·初始能力型_维护机关·水域清理者-果酿饵_甘露饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-枫丹廷区茉洁站西南-海涛斧枪鱼_烘烘心羽鲈_维护机关·初始能力型_维护机关·态势控制者-甘露饵_酸橘饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-枫丹廷区枫丹廷东北-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者-甘露饵_酸橘饵_维护机关频闪诱饵-GCM',
|
||||
'枫丹-垂钓点-枫丹廷区茉洁站西南-海涛斧枪鱼_烘烘心羽鲈_维护机关·初始能力型_维护机关·态势控制者-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-枫丹廷区枫丹廷东北-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者-甘露饵_酸桔饵_维护机关频闪诱饵-GCM',
|
||||
'枫丹-垂钓点-枫丹廷区枫丹廷南-花鳉_海涛斧枪鱼_维护机关·水域清理者_维护机关·态势控制者-果酿饵_甘露饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-白露区白淞镇西南-花鳉_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·白金典藏型-果酿饵_酸橘饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-白露区白淞镇西南-花鳉_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·白金典藏型-果酿饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-翡黎区芒索斯山东麓东-海涛斧枪鱼_烘烘心羽鲈_维护机关·初始能力型_维护机关·态势控制者-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-苍晶区厄里那斯东-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·初始能力型-甘露饵_酸橘饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-苍晶区厄里那斯东北-吹沙角鲀_波波心羽鲈_维护机关·初始能力型_维护机关·水域清理者_维护机关·态势控制者-甘露饵_酸橘饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-苍晶区海露港北-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者-甘露饵_酸橘饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-莫尔泰区卡布狄斯堡遗迹南-花鳉_波波心羽鲈_烘烘心羽鲈_维护机关·态势控制者_维护机关·澄金领队型-果酿饵_酸橘饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-莫尔泰区欧庇克莱歌剧院南-海涛斧枪鱼_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者_维护机关·澄金领队型-甘露饵_酸橘饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-诺思托伊区佩特莉可镇南-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·初始能力型_维护机关·水域清理者_维护机关·态势控制者_维护机关·澄金领队型-甘露饵_酸橘饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-枫丹廷区欧庇克莱歌剧院西-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·初始能力型-甘露饵_酸橘饵_维护机关频闪诱饵-GCM',
|
||||
'枫丹-垂钓点-苍晶区厄里那斯东-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·初始能力型-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-苍晶区厄里那斯东北-吹沙角鲀_波波心羽鲈_维护机关·初始能力型_维护机关·水域清理者_维护机关·态势控制者-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-苍晶区海露港北-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-莫尔泰区卡布狄斯堡遗迹南-花鳉_波波心羽鲈_烘烘心羽鲈_维护机关·态势控制者_维护机关·澄金领队型-果酿饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-莫尔泰区欧庇克莱歌剧院南-海涛斧枪鱼_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者_维护机关·澄金领队型-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-诺思托伊区佩特莉可镇南-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·初始能力型_维护机关·水域清理者_维护机关·态势控制者_维护机关·澄金领队型-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
|
||||
'枫丹-垂钓点-枫丹廷区欧庇克莱歌剧院西-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·初始能力型-甘露饵_酸桔饵_维护机关频闪诱饵-GCM',
|
||||
'璃月-垂钓点-云来海璃月港东南-甜甜花鳉_擒霞客_水晶宴_斗棘鱼_炮鲀-果酿饵_赤糜饵_飞蝇假饵-普通',
|
||||
'璃月-垂钓点-沉玉谷·上谷古树茶坡-花鳉_斗棘鱼_流纹褐蝶鱼_锖假龙_金赤假龙_玉玉心羽鲈-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵_酸桔饵-普通',
|
||||
'璃月-垂钓点-沉玉谷·上谷古树茶坡东-花鳉_擒霞客_水晶宴_斗棘鱼_锖假龙_玉玉心羽鲈-果酿饵_赤糜饵_飞蝇假饵_酸桔饵-普通',
|
||||
@@ -139,10 +139,10 @@
|
||||
'纳塔-垂钓点-悠悠度假村彩彩崖北-花鳉_繁花斗士急流鱼_青浪翻车鲀_伪装鲨鲨独角鱼-果酿饵_澄晶果粒饵-普通',
|
||||
'纳塔-垂钓点-悠悠度假村呼呼丘西南-繁花斗士急流鱼_深潜斗士急流鱼_晚霞翻车鲀_伪装鲨鲨独角鱼-澄晶果粒饵-普通',
|
||||
'纳塔-垂钓点-悠悠度假村悠悠集市西南-花鳉_深潜斗士急流鱼_青浪翻车鲀_晚霞翻车鲀-果酿饵_澄晶果粒饵-普通',
|
||||
// '远古圣山-垂钓点-分流识海-炽岩斗士急流鱼_秘源机关·巡戒使-温火饵-普通',
|
||||
'远古圣山-垂钓点-分流识海-炽岩斗士急流鱼_秘源机关·巡戒使-温火饵-普通',
|
||||
'蒙德-垂钓点-龙脊雪山寒天之钉西-花鳉_鸩棘鱼_雪中君_流纹茶蝶鱼-果酿饵_赤糜饵_蠕虫假饵-普通',
|
||||
'蒙德-垂钓点-坠星山谷低语森林南-蓝染花鳉_水晶宴_鸩棘鱼_锖假龙_流纹茶蝶鱼-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
|
||||
'蒙德-垂钓点-坠星山谷望风山地-花鳉_蓝染花鳉_擒霞客_水晶宴_鸩棘鱼_金赤假龙_流纹茶蝶-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
|
||||
'蒙德-垂钓点-坠星山谷望风山地-花鳉_蓝染花鳉_擒霞客_水晶宴_鸩棘鱼_金赤假龙_流纹茶蝶鱼-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
|
||||
'蒙德-垂钓点-明冠山地风龙废墟北-花鳉_蓝染花鳉_擒霞客_水晶宴-果酿饵-战斗',
|
||||
'蒙德-垂钓点-明冠山地风龙废墟南-花鳉_蓝染花鳉_擒霞客_流纹茶蝶鱼-果酿饵_蠕虫假饵-普通',
|
||||
'蒙德-垂钓点-苍风高地晨曦酒庄西南-蓝染花鳉_擒霞客_鸩棘鱼_赤魔王_流纹茶蝶鱼_炮鲀_苦炮鲀-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-战斗',
|
||||
@@ -167,13 +167,16 @@
|
||||
'挪德卡莱-垂钓点-帕哈岛月矩力实验设计局东南-花鳉_无奇巨斧鱼_冷冽巨斧鱼_夜色明眼鱼-果酿饵_槲梭饵_清白饵-普通',
|
||||
'挪德卡莱-垂钓点-希汐岛沐光之台西南-素素凶凶鲨_虹光凶凶鲨_蓝昼明眼鱼_夜色明眼鱼-槲梭饵_清白饵-普通',
|
||||
'挪德卡莱-垂钓点-希汐岛霜月之坊东北-冷冽巨斧鱼_蓝昼明眼鱼_夜色明眼鱼_虹光凶凶鲨-槲梭饵_清白饵-普通',
|
||||
'挪德卡莱-垂钓点-希汐岛霜月之坊西-花鳉_蓝昼明眼鱼_夜色明眼鱼-果酿饵_清白饵-战斗'
|
||||
'挪德卡莱-垂钓点-希汐岛霜月之坊西-花鳉_蓝昼明眼鱼_夜色明眼鱼-果酿饵_清白饵-战斗',
|
||||
'挪德卡莱-垂钓点-虚海望噩影泽地东北-花鳉_素素凶凶鲨_虹光凶凶鲨_蓝昼明眼鱼-果酿饵_清白饵-普通',
|
||||
'挪德卡莱-垂钓点-虚海望皮拉米达城南-花鳉_无奇巨斧鱼_冷冽巨斧鱼_素素凶凶鲨_虹光凶凶鲨-果酿饵_槲梭饵_清白饵-普通',
|
||||
'挪德卡莱-垂钓点-烟硌山峰望崖营壁西-无奇巨斧鱼_冷冽巨斧鱼_素素凶凶鲨_虹光凶凶鲨_蓝昼明眼鱼_夜色明眼鱼-槲梭饵_清白饵-普通'
|
||||
]
|
||||
const fishing_time_dic = {
|
||||
"全天": {"name": "All", "param": 0},
|
||||
"白天": {"name": "Daytime", "param": 1},
|
||||
"夜晚": {"name": "Nighttime", "param": 2},
|
||||
"禁用": {"name": "Block", "param": ""},
|
||||
"禁用": {"name": "DontChange", "param": 3}
|
||||
}
|
||||
// const positions = {
|
||||
// "quick_change_state": [169, 1019],
|
||||
@@ -196,8 +199,60 @@
|
||||
// 存储本次任务中的所有鱼类,作为调节时间的关键参考
|
||||
let list_fish = [];
|
||||
|
||||
/**
|
||||
* 简洁易用的OCR函数
|
||||
* @param x
|
||||
* @param y
|
||||
* @param w
|
||||
* @param h
|
||||
* @param multi 是否使用FindMulti
|
||||
* @returns {Promise<void>} 返回对应的OCR对象
|
||||
*/
|
||||
async function Ocr(x, y, w, h, multi = false) {
|
||||
let OcrRo = RecognitionObject.Ocr(x, y, w, h);
|
||||
let gameRegion = captureGameRegion();
|
||||
if (multi) {
|
||||
let ocrResult = gameRegion.FindMulti(OcrRo);
|
||||
gameRegion.dispose();
|
||||
if (ocrResult.count !== 0) {
|
||||
let resultList = [];
|
||||
for (let i = 0; i < ocrResult.count; i++) {
|
||||
resultList.push(ocrResult[i]);
|
||||
}
|
||||
return resultList;
|
||||
} else {
|
||||
log.debug(`FindMulti为空: (${x}, ${y}, ${w}, ${h})`);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
let ocrResult = gameRegion.Find(OcrRo);
|
||||
gameRegion.dispose();
|
||||
if (ocrResult.isExist()) {
|
||||
return ocrResult;
|
||||
} else {
|
||||
log.debug(`Find为空: (${x}, ${y}, ${w}, ${h})`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算垂钓点再次可用的时间戳
|
||||
* @param {String} status - Daytime或Nighttime
|
||||
* @returns {number} 返回垂钓点再次可用的时间戳
|
||||
* @description
|
||||
* 当前采用的CD计算为基于当前冷却时间对象中的 status 属性,计算并返回三天后(从当天 0 点开始计算)的时间戳。
|
||||
*/
|
||||
async function cdCal(status) {
|
||||
// 计算垂钓点再次可用的时间戳
|
||||
let critical_time_date = new Date(current_cd[status]);
|
||||
critical_time_date.setHours(0, 0, 0, 0);
|
||||
critical_time_date.setDate(critical_time_date.getDate() + 3);
|
||||
return critical_time_date.getTime();
|
||||
}
|
||||
|
||||
// 偽造日志
|
||||
async function fakeLog(name, isJs, isStart, duration) {
|
||||
async function fakeLog(name, isJs, isStart, isPick, duration) {
|
||||
await sleep(10);
|
||||
const currentTime = Date.now();
|
||||
// 参数检查
|
||||
@@ -273,7 +328,7 @@
|
||||
log.debug(logMessage);
|
||||
}
|
||||
// 交互或拾取:"XXXX"
|
||||
if (duration == 9527) {
|
||||
if (isPick) {
|
||||
// const logMessage = `正在 交互或拾取 的日志记录\n\n` +
|
||||
// `[${formattedTime}] [INF] BetterGenshinImpact.Service.ScriptService\n` +
|
||||
// `------------------------------\n\n` +
|
||||
@@ -408,15 +463,10 @@
|
||||
if (Object.keys(content).includes(user_id)) {
|
||||
if (Object.keys(content[user_id]).includes(pathing_name)) {
|
||||
return content[user_id][pathing_name];
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -456,11 +506,14 @@
|
||||
let regex_area, regex_fish, regex_bait;
|
||||
|
||||
// 读取地区
|
||||
let path_sort_area = typeof(settings.path_sort_area) === 'undefined' || settings.path_sort_area === "" ? [] : settings.path_sort_area.split(' ');
|
||||
// let path_sort_area = typeof(settings.path_sort_area) === 'undefined' || settings.path_sort_area === "" ? [] : settings.path_sort_area.split(' ');
|
||||
let path_sort_area = Array.from(settings.path_sort_area);
|
||||
// 读取鱼类
|
||||
let path_sort_fish = typeof(settings.path_sort_fish) === 'undefined' || settings.path_sort_fish === "" ? [] : settings.path_sort_fish.split(' ');
|
||||
// let path_sort_fish = typeof(settings.path_sort_fish) === 'undefined' || settings.path_sort_fish === "" ? [] : settings.path_sort_fish.split(' ');
|
||||
let path_sort_fish = Array.from(settings.path_sort_fish);
|
||||
// 读取鱼饵
|
||||
let path_sort_bait = typeof(settings.path_sort_bait) === 'undefined' || settings.path_sort_bait === "" ? [] : settings.path_sort_bait.split(' ');
|
||||
// let path_sort_bait = typeof(settings.path_sort_bait) === 'undefined' || settings.path_sort_bait === "" ? [] : settings.path_sort_bait.split(' ');
|
||||
let path_sort_bait = Array.from(settings.path_sort_bait);
|
||||
// 读取兑换材料
|
||||
let path_sort_material = typeof(settings.path_sort_material) === 'undefined' ? "无(默认)" : settings.path_sort_material;
|
||||
// 读取调试信息
|
||||
@@ -528,7 +581,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
for (const path of path_pathing) {
|
||||
for (const path of path_pathing) {
|
||||
if (regex_area.test(path) && regex_fish.test(path) && regex_bait_include.test(path)) { // 逻辑薄弱点,可能导致bug
|
||||
path_list.push(path);
|
||||
}
|
||||
@@ -542,7 +595,7 @@
|
||||
// 作为时间调节参照数组
|
||||
list_fish = msg;
|
||||
log.info(`目标材料: ${material_name}\n鱼类: ${msg}`);
|
||||
for (const path of path_pathing) {
|
||||
for (const path of path_pathing) {
|
||||
const fish_sort_regex = new RegExp(msg.join("|"));
|
||||
if (fish_sort_regex.test(path)) {
|
||||
path_list.push(path);
|
||||
@@ -559,7 +612,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
async function run_file(path_msg, time_out_throw, time_out_whole, is_con, block_gcm, block_fight, block_tsurumi, tsurumi_method, auto_skip, fishing_cd, uid = "default_user", is_time_kill, time_target, kill_hour, kill_minute) {
|
||||
async function run_file(path_msg, time_out_throw, time_out_whole, is_con, developer_log, block_gcm, block_fight, block_tsurumi, tsurumi_method, auto_skip, fishing_cd, uid, is_time_kill, time_target, kill_hour, kill_minute) {
|
||||
const base_path_pathing = "assets/pathing/";
|
||||
const base_path_gcm = "assets/KeyMouseScript/";
|
||||
const base_path_statues = "assets/pathing_others/";
|
||||
@@ -608,7 +661,7 @@
|
||||
const is_daytime = fish_need.some(item => regex_daytime.test(item));
|
||||
const is_nighttime = fish_need.some(item => regex_nighttime.test(item));
|
||||
|
||||
// 调式模式不弹出未匹配钓鱼时间的报错
|
||||
// 调试模式不弹出未匹配钓鱼时间的报错
|
||||
if (!is_daytime && !is_nighttime && (typeof(settings.path_select) === 'undefined' || settings.path_select === "无(默认)")) {
|
||||
log.error("出错:未找到匹配的钓鱼时间")
|
||||
return null;
|
||||
@@ -618,7 +671,7 @@
|
||||
fishing_time = "夜晚";
|
||||
}
|
||||
// 昼夜都有则还是 全天
|
||||
} else if (is_con) { // 调式时间
|
||||
} else if (is_con) { // 调试时间
|
||||
if (path_time === "全天(默认)") {
|
||||
path_time = "全天";
|
||||
}
|
||||
@@ -693,19 +746,12 @@
|
||||
let current_cd = read_archive(file_name, uid);
|
||||
if (current_cd !== null) {
|
||||
const now = Date.now();
|
||||
// 计算垂钓点再次可用的时间戳
|
||||
let critical_time_date = new Date(current_cd["Daytime"]);
|
||||
critical_time_date.setHours(0, 0, 0, 0);
|
||||
critical_time_date.setDate(critical_time_date.getDate() + 3);
|
||||
let critical_time = critical_time_date.getTime();
|
||||
|
||||
if (fishing_time === "全天") {
|
||||
let daytime = true;
|
||||
if (current_cd["Daytime"] !== null) {
|
||||
let critical_time_date = new Date(current_cd["Daytime"]);
|
||||
critical_time_date.setHours(0, 0, 0, 0);
|
||||
critical_time_date.setDate(critical_time_date.getDate() + 3);
|
||||
let critical_time = critical_time_date.getTime();
|
||||
let critical_time = cdCal("Daytime");
|
||||
|
||||
if (now < critical_time) {
|
||||
log.info(`该垂钓点(白天)处于冷却状态,剩余时间: ${formatTimeDifference(critical_time - now)}`);
|
||||
log.info(`${file_name}(白天) 已跳过...`);
|
||||
@@ -715,12 +761,9 @@
|
||||
log.info(`该垂钓点(白天)未处于冷却状态,闲置时间: ${formatTimeDifference(now - critical_time)}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (current_cd["Nighttime"] !== null) {
|
||||
let critical_time_date = new Date(current_cd["Nighttime"]);
|
||||
critical_time_date.setHours(0, 0, 0, 0);
|
||||
critical_time_date.setDate(critical_time_date.getDate() + 3);
|
||||
let critical_time = critical_time_date.getTime();
|
||||
let critical_time = cdCal("Nighttime");
|
||||
|
||||
if (now < critical_time) {
|
||||
log.info(`该垂钓点(夜晚)处于冷却状态,剩余时间: ${formatTimeDifference(critical_time - now)}`);
|
||||
@@ -736,10 +779,7 @@
|
||||
}
|
||||
} else if (fishing_time === "白天") {
|
||||
if (current_cd["Daytime"] !== null) {
|
||||
let critical_time_date = new Date(current_cd["Daytime"]);
|
||||
critical_time_date.setHours(0, 0, 0, 0);
|
||||
critical_time_date.setDate(critical_time_date.getDate() + 3);
|
||||
let critical_time = critical_time_date.getTime();
|
||||
let critical_time = cdCal("Daytime");
|
||||
|
||||
if (now < critical_time) {
|
||||
log.info(`该垂钓点(白天)处于冷却状态,剩余时间: ${formatTimeDifference(critical_time - now)}`);
|
||||
@@ -751,10 +791,7 @@
|
||||
}
|
||||
} else if (fishing_time === "夜晚") {
|
||||
if (current_cd["Nighttime"] !== null) {
|
||||
let critical_time_date = new Date(current_cd["Nighttime"]);
|
||||
critical_time_date.setHours(0, 0, 0, 0);
|
||||
critical_time_date.setDate(critical_time_date.getDate() + 3);
|
||||
let critical_time = critical_time_date.getTime();
|
||||
let critical_time = cdCal("Nighttime");
|
||||
|
||||
if (now < critical_time) {
|
||||
log.info(`该垂钓点(夜晚)处于冷却状态,剩余时间: ${formatTimeDifference(critical_time - now)}`);
|
||||
@@ -765,11 +802,24 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.info(`本地不存在该垂钓点的CD记录: ${file_name}(${uid})\n该垂钓点将不会跳过...`);
|
||||
}
|
||||
}
|
||||
|
||||
// 偽造地图追踪开始
|
||||
await fakeLog(file_name, false, true, 0);
|
||||
if (developer_log.length !== 0) {
|
||||
if (developer_log.includes("伪造地图追踪(跑图+垂钓)")) {
|
||||
// 偽造地图追踪开始
|
||||
await fakeLog(`${file_name}`, false, true, false, 0);
|
||||
} else if (developer_log.includes("伪造地图追踪(跑图)")) {
|
||||
// 偽造地图追踪开始
|
||||
await fakeLog(`${file_name}-跑图`, false, true, false, 0);
|
||||
}
|
||||
|
||||
}
|
||||
// 记录地图追踪开始时间
|
||||
const time_start_pathing = Date.now();
|
||||
|
||||
await pathingScript.runFile(base_path_pathing + file_name + ".json");
|
||||
|
||||
if (file_name === "稻妻-垂钓点-鹤观逢岳之野西南") {
|
||||
@@ -784,7 +834,6 @@
|
||||
await sleep(1000);
|
||||
|
||||
let imageRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync(image_path), 0, 95, 1278, 883);
|
||||
let ocrRo = RecognitionObject.Ocr(1626, 990, 150, 52);
|
||||
imageRo.threshold = 0.9;
|
||||
|
||||
// // 记录原有快捷更换的4个小道具及装备状态
|
||||
@@ -824,11 +873,9 @@
|
||||
gadget.Click();
|
||||
await sleep(500);
|
||||
moveMouseTo(1555, 860); // 移走鼠标,防止干扰识别
|
||||
let ocr_region = captureGameRegion();
|
||||
let ocrResult = ocr_region.Find(ocrRo);
|
||||
ocr_region.dispose();
|
||||
let ocrResult = await Ocr(1626, 990, 150, 52);
|
||||
// 防止卸下奇特的羽毛
|
||||
if (ocrResult.isExist() && ocrResult.text === "装备") {
|
||||
if (ocrResult && ocrResult.text.includes("装备")) {
|
||||
click(1685, 1018);
|
||||
} else {
|
||||
click(1843, 48);
|
||||
@@ -950,29 +997,54 @@
|
||||
await keyMouseScript.runFile(base_path_gcm + file_name + ".json");
|
||||
}
|
||||
|
||||
// 等待站穏
|
||||
await sleep(750);
|
||||
|
||||
// 记录地图追踪结束时间
|
||||
const time_end_pathing = Date.now();
|
||||
if (developer_log.length !== 0 && !(developer_log.includes("伪造地图追踪(跑图+垂钓)"))) {
|
||||
if (developer_log.includes("伪造地图追踪(跑图)")) {
|
||||
// 偽造地图追踪结束
|
||||
await fakeLog(`${file_name}-跑图`, false, false, false, time_end_pathing - time_start_pathing);
|
||||
}
|
||||
if (developer_log.includes("伪造地图追踪(垂钓)")) {
|
||||
// 偽造地图追踪开始
|
||||
await fakeLog(`${file_name}-垂钓`, false, true, false, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// 记录钓鱼开始时间
|
||||
const time_start = Date.now();
|
||||
const time_start_fishing = Date.now();
|
||||
|
||||
// 调用自动钓鱼
|
||||
await dispatcher.runTask(new SoloTask("AutoFishing", {
|
||||
"fishingTimePolicy": fishing_time_dic[fishing_time]["param"],
|
||||
"fishingTimePolicy": fishing_time_dic[uid.includes("bgiMultiUser") ? "禁用": fishing_time]["param"],
|
||||
"throwRodTimeOutTimeoutSeconds": time_out_throw,
|
||||
"wholeProcessTimeoutSeconds": time_out_whole
|
||||
}));
|
||||
|
||||
// 记录钓鱼结束时间
|
||||
const time_end = Date.now();
|
||||
const time_end_fishing = Date.now();
|
||||
|
||||
if (developer_log.length !== 0) {
|
||||
if (developer_log.includes("伪造地图追踪(跑图+垂钓)")) {
|
||||
// 偽造地图追踪结束
|
||||
await fakeLog(`${file_name}`, false, false, false, time_end_fishing - time_start_pathing);
|
||||
} else if (developer_log.includes("伪造地图追踪(垂钓)")) {
|
||||
// 偽造地图追踪结束
|
||||
await fakeLog(`${file_name}-垂钓`, false, false, false, time_end_fishing - time_start_fishing);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 钓鱼是否正常结束,间隔时间大于抛竿超时时间视为正常结束(防止CD跳过导致的混淆)
|
||||
const flag = (time_end - time_start) >= time_out_throw * 1000;
|
||||
const flag = (time_end_fishing - time_start_fishing) >= time_out_throw * 1000;
|
||||
|
||||
if (fishing_cd && flag) {
|
||||
write_archive(file_name, fishing_time, Date.now(), uid);
|
||||
} else if (fishing_cd && !flag) {
|
||||
log.warn(`本次钓鱼异常,不计算垂钓点CD`);
|
||||
}
|
||||
// 偽造地图追踪结束
|
||||
await fakeLog(file_name, false, false, 0);
|
||||
}
|
||||
|
||||
async function main() {
|
||||
@@ -992,6 +1064,8 @@
|
||||
let is_continue = true;
|
||||
// 判断是否是调式模式
|
||||
const is_con = !(typeof(settings.path_select) === 'undefined' || settings.path_select === "无(默认)");
|
||||
// 读取开发者日志设置
|
||||
const developer_log = Array.from(settings.developer_log);
|
||||
// 键鼠设置读取
|
||||
const block_gcm = typeof(settings.block_gcm) === 'undefined' ? false : settings.block_gcm;
|
||||
// 战斗设置读取
|
||||
@@ -1015,35 +1089,73 @@
|
||||
// 获取当前用户UID
|
||||
let uid = "default_user";
|
||||
if (fishing_cd && !is_con) {
|
||||
const ocrRoUid = RecognitionObject.Ocr(166, 198, 120, 22);
|
||||
const ocrRoText = RecognitionObject.Ocr(1565, 997, 177, 39);
|
||||
const singleRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/single.png"));
|
||||
const player1Ro = RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/1P.png"));
|
||||
let imageExitRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/Exit.png"));
|
||||
|
||||
genshin.returnMainUi();
|
||||
await sleep(1000);
|
||||
keyPress("Escape");
|
||||
await sleep(1000);
|
||||
keyPress("G");
|
||||
await sleep(1500);
|
||||
|
||||
let ro1 = captureGameRegion();
|
||||
let ocrUid = ro1.Find(ocrRoUid); // 当前页面OCR
|
||||
if (ocrUid.isExist()) {
|
||||
uid = ocrUid.text;
|
||||
}
|
||||
ro1.dispose();
|
||||
let ocrUid = await Ocr(1679, 1048, 200, 28);
|
||||
if (ocrUid && ocrUid.text !== "") uid = ocrUid.text;
|
||||
|
||||
await genshin.returnMainUi();
|
||||
|
||||
keyPress("F2"); // 按下F2打开多人模式界面
|
||||
await sleep(1000);
|
||||
let ro2 = captureGameRegion();
|
||||
let ocrText = ro2.Find(ocrRoText); // 当前页面OCR
|
||||
if (ocrText.isExist() && ocrText.text === "回到单人模式") {
|
||||
log.info("当前为多人模式,垂钓点CD统计已失效...");
|
||||
fishing_cd = false; // 多人模式下关闭CD记录功能
|
||||
}
|
||||
ro2.dispose();
|
||||
// keyPress("F2"); // 按下F2打开多人模式界面
|
||||
// await sleep(1000);
|
||||
// let ro2 = captureGameRegion();
|
||||
// let ocrText = ro2.Find(ocrRoText); // 当前页面OCR
|
||||
// if (ocrText.isExist() && ocrText.text === "回到单人模式") {
|
||||
// log.info("当前为多人模式,垂钓点CD统计已失效...");
|
||||
// fishing_cd = false; // 多人模式下关闭CD记录功能
|
||||
// }
|
||||
// ro2.dispose();
|
||||
//
|
||||
// await sleep(500);
|
||||
// keyPress("Escape");
|
||||
|
||||
await sleep(500);
|
||||
keyPress("Escape");
|
||||
let mainUiCapture = captureGameRegion();
|
||||
if (mainUiCapture.Find(singleRo).isExist()) { // 单人模式
|
||||
log.info(`当前为单人模式,CD统计已启用\n记录标识: ${uid}`);
|
||||
} else if (mainUiCapture.Find(player1Ro).isExist()) { // 多人模式1P
|
||||
log.info(`当前为多人模式房主,CD统计已启用\n记录标识: ${uid}`);
|
||||
} else { // 多人模式非房主
|
||||
uid = "default_bgiMultiUser";
|
||||
|
||||
keyPress("F2"); // 按下F2打开多人模式界面
|
||||
await sleep(500);
|
||||
while (!(captureGameRegion().Find(imageExitRo).isExist())) { // [DEBUG] 可能陷入死循环?
|
||||
await sleep(500);
|
||||
log.debug("等待直到进入多人游戏界面");
|
||||
}
|
||||
await sleep(500);
|
||||
click(333, 219); // 点击1P头像
|
||||
await sleep(500);
|
||||
for (let i = 0; i < 5; i++) { // [DEBUG] 如果卡顿超过1s还没弹出小菜单则会出错
|
||||
let ocrResult = await Ocr(502, 179, 220, 50);
|
||||
if (ocrResult && ocrResult.text.includes("查看资料")) {
|
||||
ocrResult.Click(); // 点击查看资料
|
||||
await sleep(500);
|
||||
break;
|
||||
}
|
||||
await sleep(200);
|
||||
}
|
||||
moveMouseTo(1260, 589); // 移走鼠标,防止干扰OCR
|
||||
await sleep(800);
|
||||
let ocrResult = await Ocr(573, 194, 172, 27);
|
||||
if (ocrResult) {
|
||||
ocrResult = ocrResult.text.replace(/\D/g, '');
|
||||
if (ocrResult) uid = `bgiMultiUser_${ocrResult}`;
|
||||
}
|
||||
|
||||
await genshin.returnMainUi;
|
||||
|
||||
log.info("当前为多人模式且并非房主,垂钓点CD统计将记录1P的CD(不影响单人模式的CD记录)");
|
||||
// fishing_cd = false; // 多人模式下关闭CD统计功能
|
||||
}
|
||||
mainUiCapture.dispose();
|
||||
}
|
||||
|
||||
if (is_time_kill) {
|
||||
@@ -1100,7 +1212,7 @@
|
||||
continue;
|
||||
}
|
||||
|
||||
const run_result = await run_file(path_msg, time_out_throw, time_out_whole, is_con, block_gcm, block_fight, block_tsurumi, tsurumi_method, auto_skip, fishing_cd, uid, is_time_kill, time_target, kill_hour, kill_minute);
|
||||
const run_result = await run_file(path_msg, time_out_throw, time_out_whole, is_con, developer_log, block_gcm, block_fight, block_tsurumi, tsurumi_method, auto_skip, fishing_cd, uid, is_time_kill, time_target, kill_hour, kill_minute);
|
||||
|
||||
// 新增:检查 run_file 是否因为到达终止时间而返回特殊标记
|
||||
if (run_result === "time_kill") {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"name": "提瓦特自动钓鱼(全流程+自选)",
|
||||
"version": "2.3.9",
|
||||
"bgi_version": "0.47.0",
|
||||
"version": "2.4.0",
|
||||
"bgi_version": "0.55.0",
|
||||
"description": "支持自动追踪并垂钓bgi支持的全提瓦特垂钓点",
|
||||
"authors": [
|
||||
{
|
||||
|
||||
@@ -24,22 +24,27 @@
|
||||
"✞原海鱼油✞(须弥精练材料)",
|
||||
"⚔灰河渡手⚔(枫丹武器)",
|
||||
"✞马腾斯万能护养剂✞(枫丹精练材料)"
|
||||
]
|
||||
],
|
||||
"default": "无(默认)"
|
||||
},
|
||||
{
|
||||
"name": "path_sort_area",
|
||||
"type": "input-text",
|
||||
"label": "地区筛选 例:蒙德 层岩巨渊·地下矿区 挪德卡莱"
|
||||
"type": "multi-checkbox",
|
||||
"label": "地区筛选",
|
||||
"options": ["蒙德", "璃月", "稻妻", "须弥", "枫丹", "纳塔", "至冬", "挪德卡莱", "层岩巨渊·地下矿区", "渊下宫", "远古圣山"]
|
||||
},
|
||||
{
|
||||
"name": "path_sort_fish",
|
||||
"type": "input-text",
|
||||
"label": "鱼类筛选 例:花鳉 蓝昼明眼鱼"
|
||||
"type": "multi-checkbox",
|
||||
"label": "鱼类筛选",
|
||||
"options": ["花鳉", "波波心羽鲈", "烘烘心羽鲈", "维护机关·水域清理者", "维护机关·态势控制者", "维护机关·澄金领队型", "海涛斧枪鱼", "维护机关·初始能力型", "维护机关·白金典藏型", "吹沙角鲀", "甜甜花鳉", "擒霞客", "水晶宴", "斗棘鱼", "炮鲀", "流纹褐蝶鱼", "锖假龙", "金赤假龙", "玉玉心羽鲈", "赤魔王", "长生仙", "苦炮鲀", "肺棘鱼", "流纹京紫蝶鱼", "琉璃花鳉", "伪装鲨鲨独角鱼", "繁花斗士急流鱼", "深潜斗士急流鱼", "晚霞翻车鲀", "青浪翻车鲀", "拟似燃素独角鱼", "炽岩斗士急流鱼", "蓝染花鳉", "鸩棘鱼", "流纹茶蝶鱼", "雪中君", "真果角鲀", "青金斧枪鱼", "暮云角鲀", "翡玉斧枪鱼", "沉波蜜桃", "雷鸣仙", "佛玛洛鳐", "迪芙妲鳐", "秘源机关·巡戒使", "蓝昼明眼鱼", "冷冽巨斧鱼", "夜色明眼鱼", "炽铁巨斧鱼", "虹光凶凶鲨", "无奇巨斧鱼", "素素凶凶鲨"]
|
||||
|
||||
},
|
||||
{
|
||||
"name": "path_sort_bait",
|
||||
"type": "input-text",
|
||||
"label": "鱼饵筛选 例:果酿饵 槲梭饵"
|
||||
"type": "multi-checkbox",
|
||||
"label": "鱼饵筛选",
|
||||
"options": ["果酿饵", "酸桔饵", "维护机关频闪诱饵", "甘露饵", "赤糜饵", "飞蝇假饵", "蠕虫假饵", "澄晶果粒饵", "温火饵", "槲梭饵", "清白饵"]
|
||||
},
|
||||
{
|
||||
"name": "block_gcm",
|
||||
@@ -66,7 +71,11 @@
|
||||
"options": [
|
||||
"1.打开背包替换[默认](会顶替快捷更换列表的最后一项)",
|
||||
"2.使用快捷更换(需要提前配置快捷更换列表)"
|
||||
]
|
||||
],
|
||||
"default": "1.打开背包替换[默认](会顶替快捷更换列表的最后一项)"
|
||||
},
|
||||
{
|
||||
"type":"separator"
|
||||
},
|
||||
{
|
||||
"name": "show_info_title_2",
|
||||
@@ -168,20 +177,27 @@
|
||||
"挪德卡莱-垂钓点-帕哈岛月矩力实验设计局东南-普通",
|
||||
"挪德卡莱-垂钓点-希汐岛沐光之台西南-普通",
|
||||
"挪德卡莱-垂钓点-希汐岛霜月之坊东北-普通",
|
||||
"挪德卡莱-垂钓点-希汐岛霜月之坊西-战斗"
|
||||
]
|
||||
"挪德卡莱-垂钓点-希汐岛霜月之坊西-战斗",
|
||||
"挪德卡莱-垂钓点-虚海望噩影泽地东北",
|
||||
"挪德卡莱-垂钓点-虚海望皮拉米达城南",
|
||||
"挪德卡莱-垂钓点-烟硌山峰望崖营壁西"
|
||||
],
|
||||
"default": "无(默认)"
|
||||
},
|
||||
{
|
||||
"name": "time_out_throw",
|
||||
"type": "input-text",
|
||||
"label": "自动抛竿未上钩超时时间(秒)",
|
||||
"default": 10
|
||||
"default": "10"
|
||||
},
|
||||
{
|
||||
"name": "time_out_whole",
|
||||
"type": "input-text",
|
||||
"label": "整个任务超时时间(秒)",
|
||||
"default": 300
|
||||
"default": "300"
|
||||
},
|
||||
{
|
||||
"type":"separator"
|
||||
},
|
||||
{
|
||||
"name": "show_info_title_3",
|
||||
@@ -204,7 +220,7 @@
|
||||
{
|
||||
"name": "fishing_cd",
|
||||
"type": "checkbox",
|
||||
"label": "启用垂钓点CD统计(自动跳过冷却中的垂钓点)",
|
||||
"label": "启用垂钓点CD统计(自动跳过冷却中的垂钓点)\n注: 多人模式且不为房主时自动禁用",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
@@ -237,7 +253,8 @@
|
||||
"21",
|
||||
"22",
|
||||
"23"
|
||||
]
|
||||
],
|
||||
"default": "无"
|
||||
},
|
||||
{
|
||||
"name": "time_kill_minute",
|
||||
@@ -305,7 +322,11 @@
|
||||
"57",
|
||||
"58",
|
||||
"59"
|
||||
]
|
||||
],
|
||||
"default": "无"
|
||||
},
|
||||
{
|
||||
"type":"separator"
|
||||
},
|
||||
{
|
||||
"name": "show_info_title_4",
|
||||
@@ -407,8 +428,12 @@
|
||||
"挪德卡莱-垂钓点-帕哈岛月矩力实验设计局东南-普通",
|
||||
"挪德卡莱-垂钓点-希汐岛沐光之台西南-普通",
|
||||
"挪德卡莱-垂钓点-希汐岛霜月之坊东北-普通",
|
||||
"挪德卡莱-垂钓点-希汐岛霜月之坊西-战斗"
|
||||
]
|
||||
"挪德卡莱-垂钓点-希汐岛霜月之坊西-战斗",
|
||||
"挪德卡莱-垂钓点-虚海望噩影泽地东北",
|
||||
"挪德卡莱-垂钓点-虚海望皮拉米达城南",
|
||||
"挪德卡莱-垂钓点-烟硌山峰望崖营壁西"
|
||||
],
|
||||
"default": "无(默认)"
|
||||
},
|
||||
{
|
||||
"name": "path_time",
|
||||
@@ -418,6 +443,19 @@
|
||||
"全天(默认)",
|
||||
"白天",
|
||||
"夜晚"
|
||||
]
|
||||
],
|
||||
"default": "全天(默认)"
|
||||
},
|
||||
{
|
||||
"name": "developer_log",
|
||||
"type": "multi-checkbox",
|
||||
"label": "[调式]-日志(不可用)",
|
||||
"options": [
|
||||
"交互或拾取鱼类",
|
||||
"伪造地图追踪(跑图)",
|
||||
"伪造地图追踪(垂钓)",
|
||||
"伪造地图追踪(跑图+垂钓)"
|
||||
],
|
||||
"default": ["伪造地图追踪(跑图)", "伪造地图追踪(垂钓)"]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# 1. JS脚本的关键配置和路径选择
|
||||
|
||||
- **注意:**
|
||||
只有严格按照以下步骤配置后才能使用,否则将**无法运行**(也可以参考左下角的日志来确认下一步需要如何配置)
|
||||
1. 只有严格按照以下步骤配置后才能使用,否则将**无法运行**(也可以参考左下角的日志来确认下一步需要如何配置)
|
||||
|
||||
1. 选用的路径需要满足以下基本要求:路径可靠性强(避免卡死、高难敌人)
|
||||
|
||||
- **配置步骤:**
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
await genshin.returnMainUi(); // 保证在主界面
|
||||
await sleep(500);
|
||||
await keyPress("VK_RETURN"); // 按Enter进入聊天界面
|
||||
await sleep(500);
|
||||
await sleep(1500);
|
||||
const ocrRo = RecognitionObject.Ocr(0, 0, 257, 173);
|
||||
moveMouseTo(1555, 860); // 移走鼠标,防止干扰OCR
|
||||
await sleep(300);
|
||||
@@ -116,10 +116,10 @@
|
||||
ocr.Click(); // 点击 当前队伍
|
||||
await sleep(500);
|
||||
click(445, 1010); // 点击聊天框
|
||||
await sleep(200);
|
||||
await sleep(800);
|
||||
inputText(msg); // 输入文本
|
||||
keyPress("VK_RETURN"); // 发送
|
||||
await sleep(200);
|
||||
await sleep(800);
|
||||
await genshin.returnMainUi(); // 返回主界面
|
||||
return true;
|
||||
} else {
|
||||
@@ -130,10 +130,10 @@
|
||||
}
|
||||
log.error(`未检测到 当前队伍 ,尝试发送信息...`);
|
||||
click(445, 1010); // 点击聊天框
|
||||
await sleep(200);
|
||||
await sleep(880);
|
||||
inputText(msg); // 输入文本
|
||||
keyPress("VK_RETURN"); // 发送
|
||||
await sleep(200);
|
||||
await sleep(800);
|
||||
await genshin.returnMainUi(); // 返回主界面
|
||||
return false;
|
||||
}
|
||||
@@ -148,7 +148,7 @@
|
||||
async function numberToChinese(num) {
|
||||
// 定义数字到中文的映射
|
||||
// const chineseDigits = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
|
||||
const chineseDigits = ['癸', '甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬'];
|
||||
const chineseDigits = ['癸', '甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '王'];
|
||||
// 将数字转换为字符串,以便逐个处理
|
||||
const numStr = num.toString();
|
||||
let result = '';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"name": "BGI-地图追踪加载器(联机版)",
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.3",
|
||||
"bgi_version": "0.45.0",
|
||||
"description": "基于聊天框实现的同步联机锄地",
|
||||
"authors": [
|
||||
|
||||
59
repo/pathing/食材与炼金/澄晶实/澄晶实@提瓦特钓鱼玳师/01-澄晶实-涌流地-2个.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.52.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768098952903,
|
||||
"map_match_method": "",
|
||||
"map_name": "Teyvat",
|
||||
"name": "01-澄晶实-涌流地-2个",
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": "1.0"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 1,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 8664.165,
|
||||
"y": -2742.9277
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8659.7451,
|
||||
"y": -2737.7881
|
||||
},
|
||||
{
|
||||
"action": "stop_flying",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"locked": false,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 8652.1299,
|
||||
"y": -2725.5508
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 4,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8652.1299,
|
||||
"y": -2725.5508
|
||||
}
|
||||
]
|
||||
}
|
||||
49
repo/pathing/食材与炼金/澄晶实/澄晶实@提瓦特钓鱼玳师/02-澄晶实-涌流地-2个.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.52.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768101116347,
|
||||
"map_match_method": "",
|
||||
"map_name": "Teyvat",
|
||||
"name": "02-澄晶实-涌流地-2个",
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": "1.0"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 1,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 8664.165,
|
||||
"y": -2742.9268
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8685.0674,
|
||||
"y": -2742.873
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8683.4004,
|
||||
"y": -2769.3799
|
||||
}
|
||||
]
|
||||
}
|
||||
50
repo/pathing/食材与炼金/澄晶实/澄晶实@提瓦特钓鱼玳师/03-澄晶实-涌流地-2个.json
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.52.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768099432790,
|
||||
"map_match_method": "",
|
||||
"map_name": "Teyvat",
|
||||
"name": "03-澄晶实-涌流地-2个",
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": "1.0"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 1,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 8664.1621,
|
||||
"y": -2742.9277
|
||||
},
|
||||
{
|
||||
"action": "stop_flying",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"locked": false,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 8645.6895,
|
||||
"y": -2764.834
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8645.6895,
|
||||
"y": -2764.834
|
||||
}
|
||||
]
|
||||
}
|
||||
221
repo/pathing/食材与炼金/澄晶实/澄晶实@提瓦特钓鱼玳师/04-澄晶实-涌流地-8个.json
Normal file
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.52.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768102006569,
|
||||
"map_match_method": "",
|
||||
"map_name": "Teyvat",
|
||||
"name": "04-澄晶实-涌流地-8个",
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": "1.0"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 1,
|
||||
"locked": false,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 8664.1621,
|
||||
"y": -2742.9316
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8668.5078,
|
||||
"y": -2738.3076
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 8625.2217,
|
||||
"y": -2787.5371
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 8610.2461,
|
||||
"y": -2778.3438
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8595.4053,
|
||||
"y": -2785.0566
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 6,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8594.2549,
|
||||
"y": -2790.1729
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 7,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8590.3818,
|
||||
"y": -2797.3945
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 8,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8585.6523,
|
||||
"y": -2801.4805
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 9,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8586.0664,
|
||||
"y": -2806.0762
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 10,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 8581.0049,
|
||||
"y": -2805.127
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 11,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8569.0664,
|
||||
"y": -2823.6289
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 12,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 8579.5547,
|
||||
"y": -2830.165
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 13,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8588.0381,
|
||||
"y": -2836.0674
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 14,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8590.0654,
|
||||
"y": -2835.4775
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 15,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8589.6484,
|
||||
"y": -2838.1055
|
||||
},
|
||||
{
|
||||
"action": "stop_flying",
|
||||
"action_params": "",
|
||||
"id": 16,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 8613.6455,
|
||||
"y": -2829.498
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 17,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8607.8438,
|
||||
"y": -2827.6641
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 18,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8611.1465,
|
||||
"y": -2826.1035
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 19,
|
||||
"move_mode": "climb",
|
||||
"type": "path",
|
||||
"x": 8605.7656,
|
||||
"y": -2815.6699
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 20,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8607.3105,
|
||||
"y": -2820.2266
|
||||
},
|
||||
{
|
||||
"action": "stop_flying",
|
||||
"action_params": "",
|
||||
"id": 21,
|
||||
"move_mode": "fly",
|
||||
"type": "target",
|
||||
"x": 8636.7275,
|
||||
"y": -2851.5068
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 22,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8637.5312,
|
||||
"y": -2852.0869
|
||||
}
|
||||
]
|
||||
}
|
||||
221
repo/pathing/食材与炼金/澄晶实/澄晶实@提瓦特钓鱼玳师/05-澄晶实-涌流地-10个.json
Normal file
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.52.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768100945412,
|
||||
"map_match_method": "",
|
||||
"map_name": "Teyvat",
|
||||
"name": "05-澄晶实-涌流地-10个",
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": "1.0"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 1,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 8664.1621,
|
||||
"y": -2742.9277
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 8662.3281,
|
||||
"y": -2724.2158
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 8625.459,
|
||||
"y": -2697.1201
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8585.4102,
|
||||
"y": -2694.6455
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8571.5117,
|
||||
"y": -2702.9434
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 6,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8570.0693,
|
||||
"y": -2706.4697
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 7,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 8565.9287,
|
||||
"y": -2707.9121
|
||||
},
|
||||
{
|
||||
"action": "stop_flying",
|
||||
"action_params": "",
|
||||
"id": 8,
|
||||
"locked": false,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 8560.2031,
|
||||
"y": -2717.7295
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 9,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8560.2031,
|
||||
"y": -2717.7295
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 10,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 8558.6357,
|
||||
"y": -2721.0322
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 11,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8543.7549,
|
||||
"y": -2738.1328
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 12,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8531.5244,
|
||||
"y": -2747.6406
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 13,
|
||||
"move_mode": "climb",
|
||||
"type": "path",
|
||||
"x": 8522.127,
|
||||
"y": -2739.7285
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 14,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8502.1729,
|
||||
"y": -2717.7627
|
||||
},
|
||||
{
|
||||
"action": "fight",
|
||||
"action_params": "",
|
||||
"id": 15,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8521.8057,
|
||||
"y": -2760.2012
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 16,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8517.6982,
|
||||
"y": -2759.6543
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 17,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8531.1309,
|
||||
"y": -2761.9082
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 18,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8515.625,
|
||||
"y": -2741.3408
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 19,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8549.8037,
|
||||
"y": -2739.4229
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 20,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8565.8564,
|
||||
"y": -2747.1396
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 21,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8565.9658,
|
||||
"y": -2754.1475
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 22,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8570.7949,
|
||||
"y": -2751.4688
|
||||
}
|
||||
]
|
||||
}
|
||||
104
repo/pathing/食材与炼金/澄晶实/澄晶实@提瓦特钓鱼玳师/06-澄晶实-涌流地-2个.json
Normal file
@@ -0,0 +1,104 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.52.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768102352640,
|
||||
"map_match_method": "",
|
||||
"map_name": "Teyvat",
|
||||
"name": "06-澄晶实-涌流地-2个",
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": "1.0"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 1,
|
||||
"locked": false,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 8664.1631,
|
||||
"y": -2742.9277
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 8663.0361,
|
||||
"y": -2725.2109
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "run",
|
||||
"type": "path",
|
||||
"x": 8630.7324,
|
||||
"y": -2698.3457
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8607.8525,
|
||||
"y": -2701.2129
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8610.3477,
|
||||
"y": -2712.3262
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 6,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8605.916,
|
||||
"y": -2721.2861
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 7,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 8605.3145,
|
||||
"y": -2726.6143
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 8,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 8600.918,
|
||||
"y": -2729.5234
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 9,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 8664.1631,
|
||||
"y": -2742.9277
|
||||
}
|
||||
]
|
||||
}
|
||||
148
repo/pathing/食材与炼金/澄晶实/澄晶实@提瓦特钓鱼玳师/07-澄晶实-燃素开采研究所-4个.json
Normal file
@@ -0,0 +1,148 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.52.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768102569121,
|
||||
"map_match_method": "",
|
||||
"map_name": "Teyvat",
|
||||
"name": "07-澄晶实-燃素开采研究所-4个",
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": "1.0"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 1,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 7647.877,
|
||||
"y": -2113.0664
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7656.0273,
|
||||
"y": -2106.5938
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7651.3301,
|
||||
"y": -2094.9883
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 7659.6113,
|
||||
"y": -2089.1387
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 7665.293,
|
||||
"y": -2086.8242
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 6,
|
||||
"move_mode": "fly",
|
||||
"type": "target",
|
||||
"x": 7668.415,
|
||||
"y": -2084.0498
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 7,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7678.0,
|
||||
"y": -2079.623
|
||||
},
|
||||
{
|
||||
"action": "stop_flying",
|
||||
"action_params": "",
|
||||
"id": 8,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 7688.1035,
|
||||
"y": -2078.8438
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 9,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 7694.1895,
|
||||
"y": -2078.1572
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 10,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7697.1973,
|
||||
"y": -2084.5713
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 11,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 7697.0703,
|
||||
"y": -2087.8652
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 12,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 7699.5137,
|
||||
"y": -2093.1484
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 13,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7704.1191,
|
||||
"y": -2098.0195
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 14,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7704.123,
|
||||
"y": -2098.0234
|
||||
}
|
||||
]
|
||||
}
|
||||
86
repo/pathing/食材与炼金/澄晶实/澄晶实@提瓦特钓鱼玳师/08-澄晶实-燃素开采研究所-4个.json
Normal file
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.52.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768102726784,
|
||||
"map_match_method": "",
|
||||
"map_name": "Teyvat",
|
||||
"name": "08-澄晶实-燃素开采研究所-4个",
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": "1.0"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 1,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 7647.877,
|
||||
"y": -2113.0664
|
||||
},
|
||||
{
|
||||
"action": "stop_flying",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"locked": false,
|
||||
"move_mode": "fly",
|
||||
"type": "target",
|
||||
"x": 7612.707,
|
||||
"y": -2126.8447
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 7612.707,
|
||||
"y": -2126.8447
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 7610.5957,
|
||||
"y": -2133.2744
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7613.251,
|
||||
"y": -2163.3652
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 6,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 7619.2305,
|
||||
"y": -2175.4648
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 7,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 7617.9092,
|
||||
"y": -2173.9453
|
||||
}
|
||||
]
|
||||
}
|
||||
94
repo/pathing/食材与炼金/澄晶实/澄晶实@提瓦特钓鱼玳师/09-澄晶实-燃素开采研究所-4个.json
Normal file
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"info": {
|
||||
"authors": [
|
||||
{
|
||||
"links": "https://github.com/Hijiwos",
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"bgi_version": "0.52.0",
|
||||
"description": "",
|
||||
"enable_monster_loot_split": false,
|
||||
"last_modified_time": 1768102850423,
|
||||
"map_match_method": "",
|
||||
"map_name": "Teyvat",
|
||||
"name": "09-澄晶实-燃素开采研究所-4个",
|
||||
"tags": [],
|
||||
"type": "collect",
|
||||
"version": "1.0"
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 1,
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 7647.877,
|
||||
"y": -2113.0664
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 2,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7639.623,
|
||||
"y": -2108.4912
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 3,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7623.6367,
|
||||
"y": -2112.3145
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 4,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7614.3477,
|
||||
"y": -2115.2725
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 5,
|
||||
"move_mode": "fly",
|
||||
"type": "path",
|
||||
"x": 7573.0303,
|
||||
"y": -2133.8008
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 6,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 7579.6934,
|
||||
"y": -2129.876
|
||||
},
|
||||
{
|
||||
"action": "",
|
||||
"action_params": "",
|
||||
"id": 7,
|
||||
"move_mode": "walk",
|
||||
"type": "path",
|
||||
"x": 7570.1543,
|
||||
"y": -2137.4121
|
||||
},
|
||||
{
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
|
||||
"id": 8,
|
||||
"move_mode": "walk",
|
||||
"type": "target",
|
||||
"x": 7576.3057,
|
||||
"y": -2142.7227
|
||||
}
|
||||
]
|
||||
}
|
||||
6
repo/pathing/食材与炼金/澄晶实/澄晶实@提瓦特钓鱼玳师/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
任意角色可用,仅缺少火榴树根系·地热的流涌地图的2个点位(共计4个澄晶实)
|
||||
|
||||
注意:
|
||||
|
||||
- 01 02 03 09 有小概率碰到熔岩掉血
|
||||
- 04 05 06 07 08 有概率掉进熔岩暴毙
|
||||