mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-03-20 04:10:00 +08:00
js:锄地一条龙1.4.5 (#1604)
* js:锄地一条龙1.4.5 ### 1.4.5(2025.08.16) 1.增加了更多的备用路径组 2.将原分层路线移到普通路线
This commit is contained in:
@@ -78,6 +78,9 @@
|
||||
|
||||
---
|
||||
### 更新日志
|
||||
### 1.4.5(2025.08.16)
|
||||
1.增加了更多的备用路径组
|
||||
2.将原分层路线移到普通路线
|
||||
### 1.4.4(2025.08.15)
|
||||
1.微调了拾取的参数,尝试减少误拾取与遗漏
|
||||
### 1.4.3(2025.08.13)
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "418须弥沙漠三运河之地(600_1,200_2)",
|
||||
"type": "collect",
|
||||
"author": "汐",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1751479769882
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 5173.60302734375,
|
||||
"y": -498.49169921875,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 5162.541015625,
|
||||
"y": -514.2607421875,
|
||||
"action": "stop_flying",
|
||||
"move_mode": "fly",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 5152.812393347761,
|
||||
"y": -527.9367269438635,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 5146.248356765498,
|
||||
"y": -541.2507882140999,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 5139.562377547429,
|
||||
"y": -550.8127273694517,
|
||||
"action": "",
|
||||
"move_mode": "jump",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 5109.09765625,
|
||||
"y": -590.34765625,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "fight",
|
||||
"action_params": "",
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 5109.09765625,
|
||||
"y": -590.34765625,
|
||||
"type": "orientation",
|
||||
"move_mode": "dash",
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(1)"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "419须弥沙漠巨人峡谷西北(600_1)",
|
||||
"type": "collect",
|
||||
"authors": [
|
||||
{
|
||||
"name": "汐",
|
||||
"links": ""
|
||||
}
|
||||
],
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1753125032863,
|
||||
"enable_monster_loot_split": false
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 5485.2216796875,
|
||||
"y": -1240.50732421875,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 5473.3095703125,
|
||||
"y": -1220.8349609375,
|
||||
"action": "",
|
||||
"move_mode": "fly",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 5497.5859375,
|
||||
"y": -1100.48291015625,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "fight",
|
||||
"action_params": "",
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 5497.5859375,
|
||||
"y": -1100.48291015625,
|
||||
"type": "orientation",
|
||||
"move_mode": "dash",
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(1)"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,115 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "420须弥沙漠折胫谷(600_1,200_1)",
|
||||
"type": "collect",
|
||||
"author": "汐",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1751480779042
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 5686.673828125,
|
||||
"y": -706.03369140625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 5692.84130859375,
|
||||
"y": -703.3740234375,
|
||||
"action": "",
|
||||
"move_mode": "climb",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 5713.61767578125,
|
||||
"y": -728.20556640625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 5718.09765625,
|
||||
"y": -753.36474609375,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 5723.87255859375,
|
||||
"y": -788.5927734375,
|
||||
"action": "combat_script",
|
||||
"move_mode": "walk",
|
||||
"action_params": "keypress(t)",
|
||||
"type": "orientation"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 5770.123046875,
|
||||
"y": -835.1923828125,
|
||||
"action": "stop_flying",
|
||||
"move_mode": "fly",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 5810.6689453125,
|
||||
"y": -849.20166015625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"x": 5849.812456549088,
|
||||
"y": -848.4378789490866,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"x": 5885.3818359375,
|
||||
"y": -847.77978515625,
|
||||
"type": "path",
|
||||
"move_mode": "fly",
|
||||
"action": "stop_flying",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"x": 5889.8935546875,
|
||||
"y": -882.19287109375,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "fight",
|
||||
"action_params": "",
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"x": 5889.8935546875,
|
||||
"y": -882.19287109375,
|
||||
"type": "orientation",
|
||||
"move_mode": "dash",
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(1)"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "421须弥沙漠王者之城(600_1,200_2)",
|
||||
"type": "collect",
|
||||
"author": "汐",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1751469270343
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 4424.97802734375,
|
||||
"y": -739.78125,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 4431.50439453125,
|
||||
"y": -766.1884765625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 4436.07373046875,
|
||||
"y": -785.423828125,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 4454.01318359375,
|
||||
"y": -797.76513671875,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 4467.8818359375,
|
||||
"y": -822.849609375,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 4478.61376953125,
|
||||
"y": -834.0859375,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 4510.54248046875,
|
||||
"y": -845.4658203125,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"x": 4521.109375,
|
||||
"y": -841.2158203125,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "combat_script",
|
||||
"action_params": "attack(0.3)"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"x": 4548.60986328125,
|
||||
"y": -811.35546875,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"x": 4548.60986328125,
|
||||
"y": -811.35546875,
|
||||
"action": "combat_script",
|
||||
"move_mode": "dash",
|
||||
"action_params": "wait(1)",
|
||||
"type": "orientation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "422须弥沙漠赤王陵西北岩窟中层(600_1,200_1)",
|
||||
"type": "collect",
|
||||
"authors": [
|
||||
{
|
||||
"name": "汐",
|
||||
"links": ""
|
||||
}
|
||||
],
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1753125490258,
|
||||
"enable_monster_loot_split": false
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 5538.67919921875,
|
||||
"y": -2051.5517578125,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 5518.0205078125,
|
||||
"y": -2046.6630859375,
|
||||
"type": "orientation",
|
||||
"move_mode": "walk",
|
||||
"action": "combat_script",
|
||||
"action_params": "keypress(t),wait(0.2),keypress(t)"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 5509.3642578125,
|
||||
"y": -2043.876953125,
|
||||
"type": "path",
|
||||
"move_mode": "jump",
|
||||
"action": "combat_script",
|
||||
"action_params": "attack(0.3)"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 5519.244140625,
|
||||
"y": -2041.46044921875,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "fight",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 5496.94775390625,
|
||||
"y": -2048.9765625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 5461.22900390625,
|
||||
"y": -2066.875,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 5435.7890625,
|
||||
"y": -2092.107421875,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"x": 5435.7890625,
|
||||
"y": -2092.107421875,
|
||||
"action": "combat_script",
|
||||
"move_mode": "dash",
|
||||
"action_params": "wait(1)",
|
||||
"type": "orientation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,123 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "423须弥沙漠赤王陵东岩窟(600_1,200_1)",
|
||||
"type": "collect",
|
||||
"author": "汐",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1751469624019
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 5383.056640625,
|
||||
"y": -2456.3984375,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 5382.50048828125,
|
||||
"y": -2495.154296875,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 5411.2470703125,
|
||||
"y": -2523.923828125,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 5398.5205078125,
|
||||
"y": -2556.9306640625,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 5381.80078125,
|
||||
"y": -2589.697265625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 5351.478515625,
|
||||
"y": -2606.2021484375,
|
||||
"action": "combat_script",
|
||||
"move_mode": "walk",
|
||||
"action_params": "keypress(t),wait(0.3),keypress(t),wait(0.3),keypress(t)",
|
||||
"type": "orientation"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 5344.31005859375,
|
||||
"y": -2609.97265625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"x": 5317.9248046875,
|
||||
"y": -2631.1796875,
|
||||
"action": "combat_script",
|
||||
"move_mode": "walk",
|
||||
"action_params": "keypress(t),wait(0.3),keypress(t),wait(0.3),keypress(t)",
|
||||
"type": "orientation"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"x": 5316.37451171875,
|
||||
"y": -2637.859375,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"x": 5308.79296875,
|
||||
"y": -2666.734375,
|
||||
"action": "combat_script",
|
||||
"move_mode": "walk",
|
||||
"action_params": "keypress(t),wait(0.3),keypress(t),wait(0.3),keypress(t)",
|
||||
"type": "orientation"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"x": 5299.78369140625,
|
||||
"y": -2724.634765625,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"x": 5299.78369140625,
|
||||
"y": -2724.634765625,
|
||||
"action": "combat_script",
|
||||
"move_mode": "dash",
|
||||
"action_params": "wait(1)",
|
||||
"type": "orientation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "424须弥鸡哥(600_1,200_3)",
|
||||
"type": "collect",
|
||||
"author": "汐",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1751390103711
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 3932.162109375,
|
||||
"y": -161.62353515625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 3932.2109375,
|
||||
"y": -192.3134765625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 3923.1650390625,
|
||||
"y": -225.3037109375,
|
||||
"action": "combat_script",
|
||||
"move_mode": "dash",
|
||||
"action_params": "keypress(f);芙宁娜 e;爱可菲 e;钟离 a(0.1),e(hold),q;茜特菈莉 e,q;莱依拉 e;attack(4.5)",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 3936.3896484375,
|
||||
"y": -237.6181640625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 3946.9375,
|
||||
"y": -276.9072265625,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 3942.4580078125,
|
||||
"y": -262.28076171875,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 3945.248046875,
|
||||
"y": -250.9130859375,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"x": 3958.0576171875,
|
||||
"y": -243.4267578125,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"x": 3974.890625,
|
||||
"y": -249.2548828125,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"x": 3974.890625,
|
||||
"y": -249.2548828125,
|
||||
"action": "combat_script",
|
||||
"move_mode": "dash",
|
||||
"action_params": "wait(1)",
|
||||
"type": "orientation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,214 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "425须弥鸡哥南(400_1,200_3)",
|
||||
"type": "collect",
|
||||
"author": "汐",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1751474053225
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 4045.3974609375,
|
||||
"y": -240.75146484375,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 4024.291015625,
|
||||
"y": -250.07861328125,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 3974.41015625,
|
||||
"y": -273.60791015625,
|
||||
"action": "stop_flying",
|
||||
"move_mode": "fly",
|
||||
"action_params": "1800",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 3934.437466424295,
|
||||
"y": -288.03127273694554,
|
||||
"action": "combat_script",
|
||||
"move_mode": "dash",
|
||||
"action_params": "attack(0.3),wait(2.5)",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 3938.68756715141,
|
||||
"y": -288.53122726305446,
|
||||
"action": "fight",
|
||||
"move_mode": "climb",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 3916.8212890625,
|
||||
"y": -308.85888671875,
|
||||
"action": "",
|
||||
"move_mode": "fly",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 3889.0966796875,
|
||||
"y": -295.9599609375,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"x": 3899.921875,
|
||||
"y": -267.03076171875,
|
||||
"action": "combat_script",
|
||||
"move_mode": "dash",
|
||||
"action_params": "wait(1)",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"x": 3899.921875,
|
||||
"y": -267.03076171875,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"x": 3854.8120812912093,
|
||||
"y": -307.49959073498667,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"x": 3841.5830078125,
|
||||
"y": -302.87548828125,
|
||||
"action": "",
|
||||
"move_mode": "climb",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"x": 3844.2919921875,
|
||||
"y": -303.09423828125,
|
||||
"action": "",
|
||||
"move_mode": "climb",
|
||||
"action_params": "",
|
||||
"type": "target"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"x": 3847.1455078125,
|
||||
"y": -301.9521484375,
|
||||
"action": "",
|
||||
"move_mode": "climb",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"x": 3853.4140625,
|
||||
"y": -308.47021484375,
|
||||
"action": "",
|
||||
"move_mode": "climb",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"x": 3870.28125,
|
||||
"y": -321.52880859375,
|
||||
"action": "stop_flying",
|
||||
"move_mode": "fly",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"x": 3867.3330078125,
|
||||
"y": -335.99560546875,
|
||||
"action": "combat_script",
|
||||
"move_mode": "jump",
|
||||
"action_params": "attack(0.2)",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"x": 3859.499976299503,
|
||||
"y": -362.56228778851164,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"x": 3884.525390625,
|
||||
"y": -366.38525390625,
|
||||
"action": "combat_script",
|
||||
"move_mode": "walk",
|
||||
"action_params": "keypress(t),wait(0.2),keypress(t),wait(0.2),keypress(t)",
|
||||
"type": "orientation",
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"x": 3884.525390625,
|
||||
"y": -366.38525390625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"x": 3899.8046875,
|
||||
"y": -374.6044921875,
|
||||
"action": "stop_flying",
|
||||
"move_mode": "fly",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"x": 3943.0556640625,
|
||||
"y": -381.1865234375,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"x": 3943.0556640625,
|
||||
"y": -381.1865234375,
|
||||
"action": "combat_script",
|
||||
"move_mode": "walk",
|
||||
"action_params": "wait(1)",
|
||||
"type": "orientation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "426须弥童梦的切片(200_3)",
|
||||
"type": "collect",
|
||||
"author": "汐",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1751396573803
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"type": "teleport",
|
||||
"x": 3349.1943359375,
|
||||
"y": -824.44384765625,
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 3341.642578125,
|
||||
"y": -836.873046875,
|
||||
"type": "path",
|
||||
"move_mode": "fly",
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(0.3),j,wait(1.5),attack(0.2)"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 3331.478515625,
|
||||
"y": -829.3427734375,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "fight",
|
||||
"action_params": "",
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 3331.478515625,
|
||||
"y": -829.3427734375,
|
||||
"type": "orientation",
|
||||
"move_mode": "dash",
|
||||
"action": "combat_script",
|
||||
"action_params": "wait(1)"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,207 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "427【高危】须弥童梦的切片(600_1)",
|
||||
"type": "collect",
|
||||
"author": "汐",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [
|
||||
"蕈兽"
|
||||
],
|
||||
"last_modified_time": 1751471190387
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 3202.12890625,
|
||||
"y": -911.72509765625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 3259.708984375,
|
||||
"y": -895.095703125,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 3290.8046875,
|
||||
"y": -894.0927734375,
|
||||
"action": "stop_flying",
|
||||
"move_mode": "fly",
|
||||
"action_params": "1000",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 3299.16015625,
|
||||
"y": -903.21728515625,
|
||||
"action": "",
|
||||
"move_mode": "climb",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 3299.16015625,
|
||||
"y": -903.21728515625,
|
||||
"action": "",
|
||||
"move_mode": "climb",
|
||||
"action_params": "",
|
||||
"type": "target"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 3295.9267578125,
|
||||
"y": -907.69873046875,
|
||||
"action": "",
|
||||
"move_mode": "climb",
|
||||
"action_params": "",
|
||||
"type": "target"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 3295.9267578125,
|
||||
"y": -907.69873046875,
|
||||
"action": "combat_script",
|
||||
"move_mode": "walk",
|
||||
"action_params": "keypress(x),wait(0.2),keypress(x),wait(0.2),keypress(x)",
|
||||
"type": "orientation"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"x": 3292.53515625,
|
||||
"y": -913.4716796875,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"x": 3275.6669921875,
|
||||
"y": -920.248046875,
|
||||
"action": "combat_script",
|
||||
"move_mode": "dash",
|
||||
"action_params": "w(2.5)",
|
||||
"type": "orientation",
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"x": 3275.6669921875,
|
||||
"y": -920.248046875,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"x": 3261.5341796875,
|
||||
"y": -903.16552734375,
|
||||
"action": "combat_script",
|
||||
"move_mode": "fly",
|
||||
"action_params": "wait(0.3),j,wait(1.8),j",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"x": 3227.9873046875,
|
||||
"y": -906.3935546875,
|
||||
"action": "stop_flying",
|
||||
"move_mode": "fly",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"x": 3214.9580078125,
|
||||
"y": -896.2138671875,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"x": 3208.2119140625,
|
||||
"y": -873.46484375,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"x": 3205.244140625,
|
||||
"y": -850.14697265625,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "combat_script",
|
||||
"action_params": "keypress(f);钟离 a(0.1),e(hold);茜特菈莉 e,q;莱依拉 e;芙宁娜 e;爱可菲 e;恰斯卡 q;艾梅莉埃 e;流浪者 q;纳西妲 e;夜兰 e,q,attack(2);申鹤 e,q;万叶 attack(0.08),keydown(E),wait(0.51),keyup(E),attack(0.2);行秋 attack(0.2),e,q,attack(2);那维莱特 e,charge(3),j;莱欧斯利 e,q;attack(4.5)"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"x": 3199.4248046875,
|
||||
"y": -855.6103515625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"x": 3195.1904296875,
|
||||
"y": -827.47265625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"x": 3199.4248046875,
|
||||
"y": -855.6103515625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "orientation"
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"x": 3199.4248046875,
|
||||
"y": -855.6103515625,
|
||||
"action": "combat_script",
|
||||
"move_mode": "dash",
|
||||
"action_params": "wait(1)",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"x": 3212.0771484375,
|
||||
"y": -851.87890625,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"x": 3212.0771484375,
|
||||
"y": -851.87890625,
|
||||
"action": "combat_script",
|
||||
"move_mode": "climb",
|
||||
"action_params": "wait(1)",
|
||||
"type": "orientation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "428须弥茸蕈窟(600_1,200_5)",
|
||||
"type": "collect",
|
||||
"author": "汐",
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1751479254056
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 2927.60546875,
|
||||
"y": 105.40087890625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 2938.423828125,
|
||||
"y": 115.11865234375,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 2936.33984375,
|
||||
"y": 143.78466796875,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 2953.6357421875,
|
||||
"y": 152.5009765625,
|
||||
"action": "combat_script",
|
||||
"move_mode": "walk",
|
||||
"action_params": "keypress(t),wait(1.5),attack(0.5)",
|
||||
"type": "orientation"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 2935.7548828125,
|
||||
"y": 168.3984375,
|
||||
"action": "stop_flying",
|
||||
"move_mode": "fly",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 2913.564453125,
|
||||
"y": 176.80322265625,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 2898.5908203125,
|
||||
"y": 183.3671875,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"x": 2892.9345703125,
|
||||
"y": 188.2724609375,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"x": 2867.0712890625,
|
||||
"y": 201.232421875,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"x": 2845.5009765625,
|
||||
"y": 214.2802734375,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"x": 2835.4013671875,
|
||||
"y": 212.5078125,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"x": 2822.7744140625,
|
||||
"y": 199.09228515625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "target"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"x": 2819.517578125,
|
||||
"y": 196.57421875,
|
||||
"action": "",
|
||||
"move_mode": "climb",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"x": 2822.4130859375,
|
||||
"y": 154.34326171875,
|
||||
"action": "",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"x": 2839.2548828125,
|
||||
"y": 133.06689453125,
|
||||
"action": "fight",
|
||||
"move_mode": "dash",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"x": 2839.2548828125,
|
||||
"y": 133.06689453125,
|
||||
"action": "combat_script",
|
||||
"move_mode": "dash",
|
||||
"action_params": "wait(1)",
|
||||
"type": "orientation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "429须弥沙漠赤王陵(200_2)",
|
||||
"type": "collect",
|
||||
"authors": [
|
||||
{
|
||||
"name": "汐",
|
||||
"links": ""
|
||||
}
|
||||
],
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1752343132408,
|
||||
"enable_monster_loot_split": false
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 5391.6904296875,
|
||||
"y": -2340.310546875,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 5429.8095703125,
|
||||
"y": -2349.8798828125,
|
||||
"type": "orientation",
|
||||
"move_mode": "dash",
|
||||
"action": "combat_script",
|
||||
"action_params": "keydown(w),wait(0.2),dash,wait(1),keyup(w)",
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 5429.8095703125,
|
||||
"y": -2349.8798828125,
|
||||
"type": "path",
|
||||
"move_mode": "dash",
|
||||
"action": "fight",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 5435.06005859375,
|
||||
"y": -2351.583984375,
|
||||
"action": "combat_script",
|
||||
"move_mode": "run",
|
||||
"action_params": "wait(1)",
|
||||
"type": "orientation"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "519魔像禁卫-佩特莉可镇(200_1)",
|
||||
"type": "collect",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Tool_tingsu",
|
||||
"links": ""
|
||||
}
|
||||
],
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1752143653345,
|
||||
"enable_monster_loot_split": false
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 3848.5771484375,
|
||||
"y": 1136.95166015625,
|
||||
"type": "teleport",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 3873.83984375,
|
||||
"y": 1138.02490234375,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "fight",
|
||||
"action_params": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,120 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "520魔像禁卫-佩特莉可镇(200_1)",
|
||||
"type": "collect",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Tool_tingsu",
|
||||
"links": ""
|
||||
}
|
||||
],
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1752145782009,
|
||||
"enable_monster_loot_split": false
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 4036.298828125,
|
||||
"y": 1232.0087890625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "teleport"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 4016.94921875,
|
||||
"y": 1243.0546875,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 3991.23046875,
|
||||
"y": 1246.60888671875,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 3961.8720703125,
|
||||
"y": 1246.33837890625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 3946.642578125,
|
||||
"y": 1245.9765625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 3946.2783203125,
|
||||
"y": 1251.9140625,
|
||||
"action": "combat_script",
|
||||
"move_mode": "walk",
|
||||
"action_params": "keypress(T),wait(0.5),keydown(e),wait(3).keyup(e)",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 3946.3955078125,
|
||||
"y": 1258.23583984375,
|
||||
"action": "combat_script",
|
||||
"move_mode": "walk",
|
||||
"action_params": "keypress(T)",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"x": 3947.02734375,
|
||||
"y": 1260.47265625,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"x": 3950.9912109375,
|
||||
"y": 1264.94970703125,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"x": 3951.455078125,
|
||||
"y": 1278.6318359375,
|
||||
"action": "",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"x": 3958.1201171875,
|
||||
"y": 1281.75048828125,
|
||||
"action": "fight",
|
||||
"move_mode": "walk",
|
||||
"action_params": "",
|
||||
"type": "target"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,319 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "521佩特莉可镇(200_5)",
|
||||
"type": "collect",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Tool_tingsu",
|
||||
"links": ""
|
||||
}
|
||||
],
|
||||
"version": "1.0",
|
||||
"description": "",
|
||||
"map_name": "Teyvat",
|
||||
"bgi_version": "0.45.0",
|
||||
"tags": [],
|
||||
"last_modified_time": 1752145755626,
|
||||
"enable_monster_loot_split": false
|
||||
},
|
||||
"positions": [
|
||||
{
|
||||
"id": 1,
|
||||
"x": 3875.802734375,
|
||||
"y": 1297.5390625,
|
||||
"type": "teleport",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"x": 3876.4794921875,
|
||||
"y": 1300.31396484375,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"x": 3877.517578125,
|
||||
"y": 1288.0830078125,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"x": 3857.416015625,
|
||||
"y": 1288.263671875,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"x": 3857.759765625,
|
||||
"y": 1277.3173828125,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"x": 3874.724609375,
|
||||
"y": 1276.06640625,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"x": 3875.578125,
|
||||
"y": 1268.01806640625,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"x": 3880.330078125,
|
||||
"y": 1267.998046875,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"x": 3893.9091796875,
|
||||
"y": 1268.1083984375,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"x": 3908.1953125,
|
||||
"y": 1268.2421875,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"x": 3908.6298828125,
|
||||
"y": 1261.35986328125,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"x": 3908.671875,
|
||||
"y": 1247.8603515625,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"x": 3902.646484375,
|
||||
"y": 1246.71875,
|
||||
"type": "target",
|
||||
"move_mode": "walk",
|
||||
"action": "combat_script",
|
||||
"action_params": "keypress(T),wait(0.5),keydown(e),wait(2).keyup(e)"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"x": 3894.46484375,
|
||||
"y": 1247.0205078125,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "combat_script",
|
||||
"action_params": "keypress(T)"
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"x": 3885.3916015625,
|
||||
"y": 1247.3603515625,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "fight",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"x": 3885.09765625,
|
||||
"y": 1248.29736328125,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"x": 3877.88671875,
|
||||
"y": 1243.0009765625,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"x": 3859.4482421875,
|
||||
"y": 1241.10009765625,
|
||||
"type": "path",
|
||||
"move_mode": "fly",
|
||||
"action": "stop_flying",
|
||||
"action_params": "600"
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"x": 3859.236328125,
|
||||
"y": 1231.4208984375,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"x": 3859.1171875,
|
||||
"y": 1218.9580078125,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"x": 3861.802734375,
|
||||
"y": 1206.9619140625,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"x": 3882.6083984375,
|
||||
"y": 1204.21533203125,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"x": 3899.544921875,
|
||||
"y": 1182.1181640625,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "fight",
|
||||
"action_params": "",
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"x": 3899.544921875,
|
||||
"y": 1182.1181640625,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"x": 3888.7236328125,
|
||||
"y": 1175.6328125,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"x": 3881.49609375,
|
||||
"y": 1172.857421875,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"x": 3870.650390625,
|
||||
"y": 1173.63134765625,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 28,
|
||||
"x": 3866.0791015625,
|
||||
"y": 1183.91455078125,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"x": 3849.3046875,
|
||||
"y": 1184.794921875,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 30,
|
||||
"x": 3846.4208984375,
|
||||
"y": 1194.7568359375,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "combat_script",
|
||||
"action_params": "keypress(T),wait(0.5),keydown(e),wait(2).keyup(e)"
|
||||
},
|
||||
{
|
||||
"id": 31,
|
||||
"x": 3846.3984375,
|
||||
"y": 1202.42626953125,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "combat_script",
|
||||
"action_params": "keypress(T)"
|
||||
},
|
||||
{
|
||||
"id": 32,
|
||||
"x": 3831.802734375,
|
||||
"y": 1202.8525390625,
|
||||
"type": "path",
|
||||
"move_mode": "walk",
|
||||
"action": "",
|
||||
"action_params": ""
|
||||
},
|
||||
{
|
||||
"id": 33,
|
||||
"x": 3817.625,
|
||||
"y": 1207.677734375,
|
||||
"type": "target",
|
||||
"move_mode": "walk",
|
||||
"action": "fight",
|
||||
"action_params": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
//当前js版本 1.4.2
|
||||
//当前js版本 1.4.5
|
||||
|
||||
//拾取时上下滑动的时间
|
||||
let timeMoveUp = 500;
|
||||
@@ -35,17 +35,23 @@ let targetItems;
|
||||
targetMonsterNum += 25;//预留漏怪
|
||||
const partyName = settings.partyName || "";
|
||||
|
||||
// 获取 settings 中的标签,如果没有则使用默认值
|
||||
const group1Settings = settings.tagsForGroup1 || "蕈兽";
|
||||
const group2Settings = settings.tagsForGroup2 || "";
|
||||
const group3Settings = settings.tagsForGroup3 || "";
|
||||
const group4Settings = settings.tagsForGroup4 || "";
|
||||
let group1Tags = group1Settings.split(",").filter(Boolean);
|
||||
const group2Tags = group2Settings.split(",").filter(Boolean);
|
||||
const group3Tags = group3Settings.split(",").filter(Boolean);
|
||||
const group4Tags = group4Settings.split(",").filter(Boolean);
|
||||
// 将 group2Tags、group3Tags 和 group4Tags 的内容添加到 group1Tags 中,并去除重复项
|
||||
group1Tags = [...new Set([...group1Tags, ...group2Tags, ...group3Tags, ...group4Tags])];
|
||||
/*******************************
|
||||
* 1. 读取 settings(没有时用默认值)
|
||||
*******************************/
|
||||
const groupSettings = Array.from({ length: 10 }, (_, i) =>
|
||||
settings[`tagsForGroup${i + 1}`] || (i === 0 ? '蕈兽' : '') // 第 0 组默认“蕈兽”,其余默认空串
|
||||
);
|
||||
|
||||
/*******************************
|
||||
* 2. 统一生成各组的标签数组
|
||||
*******************************/
|
||||
const groupTags = groupSettings.map(str => str.split(',').filter(Boolean));
|
||||
|
||||
/*******************************
|
||||
* 3. 把后面 9 组合并到第 0 组并去重
|
||||
*******************************/
|
||||
groupTags[0] = [...new Set(groupTags.flat())];
|
||||
|
||||
|
||||
const priorityTags = (settings.priorityTags || "").split(",").map(tag => tag.trim()).filter(tag => tag.length > 0);
|
||||
const excludeTags = (settings.excludeTags || "").split(",").map(tag => tag.trim()).filter(tag => tag.length > 0);
|
||||
@@ -90,13 +96,13 @@ let targetItems;
|
||||
await initializeCdTime(pathings, accountName);
|
||||
|
||||
//按照用户配置标记路线
|
||||
await markPathings(pathings, group1Tags, group2Tags, group3Tags, group4Tags, priorityTags, excludeTags);
|
||||
await markPathings(pathings, groupTags, priorityTags, excludeTags);
|
||||
|
||||
//找出最优组合
|
||||
await findBestRouteGroups(pathings, k, targetEliteNum, targetMonsterNum);
|
||||
|
||||
//分配到不同路径组
|
||||
await assignGroups(pathings, group1Tags, group2Tags, group3Tags, group4Tags);
|
||||
await assignGroups(pathings, groupTags);
|
||||
/*
|
||||
//分配结果输出
|
||||
pathings.forEach((pathing, index) => {
|
||||
@@ -243,53 +249,34 @@ async function processPathings() {
|
||||
return pathings; // 返回处理后的 pathings 数组
|
||||
}
|
||||
|
||||
async function markPathings(pathings, group1Tags, group2Tags, group3Tags, group4Tags, priorityTags, excludeTags) {
|
||||
// 找出存在于 group1Tags 中且不在其他组标签中的标签
|
||||
const uniqueTags = group1Tags.filter(tag => {
|
||||
return !group2Tags.includes(tag) && !group3Tags.includes(tag) && !group4Tags.includes(tag);
|
||||
});
|
||||
async function markPathings(pathings, groupTags, priorityTags, excludeTags) {
|
||||
// 取出第 0 组并剔除与其他 9 组重复的标签
|
||||
const uniqueTags = groupTags[0].filter(tag =>
|
||||
!groupTags.slice(1).some(arr => arr.includes(tag))
|
||||
);
|
||||
|
||||
pathings.forEach(pathing => {
|
||||
// 初始化 pathing.tags 和 pathing.monsterInfo 以确保它们存在
|
||||
pathing.tags = pathing.tags || [];
|
||||
pathing.monsterInfo = pathing.monsterInfo || {};
|
||||
|
||||
// 初始化 pathing.prioritized 为 false
|
||||
pathing.prioritized = false;
|
||||
|
||||
// 检查路径的 tags 是否包含 uniqueTags
|
||||
const containsUniqueTag = uniqueTags.some(uniqueTag => pathing.tags.includes(uniqueTag));
|
||||
|
||||
// 检查 fullPath、tags 或 monsterInfo 是否包含 excludeTags 中的任意一个子字符串
|
||||
const containsExcludeTag = excludeTags.some(excludeTag => {
|
||||
// 检查 fullPath 是否包含 excludeTag
|
||||
const fullPathContainsExcludeTag = pathing.fullPath && pathing.fullPath.includes(excludeTag);
|
||||
// 检查 tags 是否包含 excludeTag
|
||||
const tagsContainExcludeTag = pathing.tags.some(tag => tag.includes(excludeTag));
|
||||
// 检查 monsterInfo 的键是否包含 excludeTag
|
||||
const monsterInfoContainsExcludeTag = Object.keys(pathing.monsterInfo).some(monsterName => monsterName.includes(excludeTag));
|
||||
|
||||
// 返回是否包含任意一个 excludeTag
|
||||
return fullPathContainsExcludeTag || tagsContainExcludeTag || monsterInfoContainsExcludeTag;
|
||||
});
|
||||
|
||||
// 检查 fullPath、tags 或 monsterInfo 是否包含 priorityTags 中的任意一个子字符串
|
||||
const containsPriorityTag = priorityTags.some(priorityTag => {
|
||||
// 检查 fullPath 是否包含 priorityTag
|
||||
const fullPathContainsPriorityTag = pathing.fullPath && pathing.fullPath.includes(priorityTag);
|
||||
// 检查 tags 是否包含 priorityTag
|
||||
const tagsContainPriorityTag = pathing.tags.some(tag => tag.includes(priorityTag));
|
||||
// 检查 monsterInfo 的键是否包含 priorityTag
|
||||
const monsterInfoContainsPriorityTag = Object.keys(pathing.monsterInfo).some(monsterName => monsterName.includes(priorityTag));
|
||||
|
||||
// 返回是否包含任意一个 priorityTag
|
||||
return fullPathContainsPriorityTag || tagsContainPriorityTag || monsterInfoContainsPriorityTag;
|
||||
});
|
||||
|
||||
// 如果包含 uniqueTags 或 excludeTags,则标记为 false,否则标记为 true
|
||||
pathing.available = !(containsUniqueTag || containsExcludeTag);
|
||||
|
||||
// 如果包含 priorityTags,则标记为 true
|
||||
pathing.prioritized = containsPriorityTag;
|
||||
});
|
||||
}
|
||||
@@ -438,50 +425,25 @@ async function findBestRouteGroups(pathings, k, targetEliteNum, targetMonsterNum
|
||||
log.info(`预计总用时: ${hours} 时 ${minutes} 分 ${seconds.toFixed(0)} 秒`);
|
||||
}
|
||||
|
||||
async function assignGroups(pathings, group1Tags, group2Tags, group3Tags, group4Tags) {
|
||||
// 初始化记录各组路线数量的对象
|
||||
const groupCounts = {
|
||||
0: 0, // 默认组
|
||||
1: 0, // 不包含 group1Tags 的组
|
||||
2: 0, // 包含 group1Tags 且包含 group2Tags 的组
|
||||
3: 0, // 包含 group1Tags 但不包含 group2Tags,包含 group3Tags 的组
|
||||
4: 0 // 包含 group1Tags 但不包含 group2Tags 和 group3Tags,包含 group4Tags 的组
|
||||
};
|
||||
|
||||
async function assignGroups(pathings, groupTags) {
|
||||
// 遍历 pathings 数组
|
||||
pathings.forEach(pathing => {
|
||||
// 只处理 selected 为 true 的项
|
||||
if (pathing.selected) {
|
||||
// 默认 group 为 0
|
||||
pathing.group = 0;
|
||||
|
||||
// 如果 tags 不包含 group1Tags 中的任意一个,则改为 1
|
||||
if (!group1Tags.some(tag => pathing.tags.includes(tag))) {
|
||||
if (!groupTags[0].some(tag => pathing.tags.includes(tag))) {
|
||||
pathing.group = 1;
|
||||
} else {
|
||||
// 如果包含 group1Tags 中的任意一个,则检查 group2Tags
|
||||
if (group2Tags.some(tag => pathing.tags.includes(tag))) {
|
||||
pathing.group = 2;
|
||||
} else {
|
||||
// 如果包含 group1Tags 但不包含 group2Tags,则检查 group3Tags
|
||||
if (group3Tags.some(tag => pathing.tags.includes(tag))) {
|
||||
pathing.group = 3;
|
||||
} else {
|
||||
// 如果包含 group1Tags 但不包含 group2Tags 和 group3Tags,则检查 group4Tags
|
||||
if (group4Tags.some(tag => pathing.tags.includes(tag))) {
|
||||
pathing.group = 4;
|
||||
}
|
||||
// 依次判断 groupTags[1] ~ groupTags[9]
|
||||
for (let i = 1; i <= 9; i++) {
|
||||
if (groupTags[i].some(tag => pathing.tags.includes(tag))) {
|
||||
pathing.group = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 更新对应的组计数
|
||||
groupCounts[pathing.group]++;
|
||||
}
|
||||
});
|
||||
|
||||
// 返回组计数对象
|
||||
return groupCounts;
|
||||
}
|
||||
|
||||
async function runPath(pathFilePath, map_name, whitelistKeywords, blacklistKeywords) {
|
||||
@@ -975,13 +937,21 @@ async function processPathingsByGroup(pathings, whitelistKeywords, blacklistKeyw
|
||||
let lastX = 0;
|
||||
let lastY = 0;
|
||||
let runningFailCount = 0;
|
||||
// 定义路径组名称到组号的映射
|
||||
|
||||
// 定义路径组名称到组号的映射(10 个)
|
||||
const groupMapping = {
|
||||
"路径组一": 1,
|
||||
"路径组二": 2,
|
||||
"路径组三": 3,
|
||||
"路径组四": 4
|
||||
"路径组四": 4,
|
||||
"路径组五": 5,
|
||||
"路径组六": 6,
|
||||
"路径组七": 7,
|
||||
"路径组八": 8,
|
||||
"路径组九": 9,
|
||||
"路径组十": 10
|
||||
};
|
||||
|
||||
// 从全局 settings 中获取用户选择的路径组名称
|
||||
const selectedGroupName = settings.groupIndex || "路径组一"; // 默认值为 "路径组一"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"name": "锄地一条龙",
|
||||
"version": "1.4.4",
|
||||
"version": "1.4.5",
|
||||
"description": "一站式解决自动化锄地,支持只拾取狗粮,请仔细阅读README.md后使用",
|
||||
"authors": [
|
||||
{
|
||||
|
||||
@@ -18,7 +18,13 @@
|
||||
"路径组一",
|
||||
"路径组二",
|
||||
"路径组三",
|
||||
"路径组四"
|
||||
"路径组四",
|
||||
"路径组五",
|
||||
"路径组六",
|
||||
"路径组七",
|
||||
"路径组八",
|
||||
"路径组九",
|
||||
"路径组十"
|
||||
],
|
||||
"default": "路径组一"
|
||||
},
|
||||
@@ -69,7 +75,7 @@
|
||||
{
|
||||
"name": "tagsForGroup1",
|
||||
"type": "input-text",
|
||||
"label": "允许使用的标签:\n水免,次数盾,高危,传奇,蕈兽,小怪\n多个标签使用【中文逗号】分隔\n\n路径组一要【排除】的标签",
|
||||
"label": "允许使用的标签:\n水免,次数盾,高危,传奇,蕈兽,小怪,沙暴\n多个标签使用【中文逗号】分隔\n\n路径组一要【排除】的标签",
|
||||
"default": "蕈兽"
|
||||
},
|
||||
{
|
||||
@@ -119,5 +125,35 @@
|
||||
"name": "excludeTags",
|
||||
"type": "input-text",
|
||||
"label": "排除关键词,含关键词的路线会被完全排除\n不同关键词使用【中文逗号】分隔\n例如填火斧丘丘暴徒,可以排除所有含有火斧丘丘暴徒的路线\n建议使用怪物图鉴中的名字"
|
||||
},
|
||||
{
|
||||
"name": "tagsForGroup5",
|
||||
"type": "input-text",
|
||||
"label": "路径组五要【选择】的标签"
|
||||
},
|
||||
{
|
||||
"name": "tagsForGroup6",
|
||||
"type": "input-text",
|
||||
"label": "路径组六要【选择】的标签"
|
||||
},
|
||||
{
|
||||
"name": "tagsForGroup7",
|
||||
"type": "input-text",
|
||||
"label": "路径组七要【选择】的标签"
|
||||
},
|
||||
{
|
||||
"name": "tagsForGroup8",
|
||||
"type": "input-text",
|
||||
"label": "路径组八要【选择】的标签"
|
||||
},
|
||||
{
|
||||
"name": "tagsForGroup9",
|
||||
"type": "input-text",
|
||||
"label": "路径组九要【选择】的标签"
|
||||
},
|
||||
{
|
||||
"name": "tagsForGroup10",
|
||||
"type": "input-text",
|
||||
"label": "路径组十要【选择】的标签"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user