JS : AutoFishingTeyvat -2.3.9 (#2610)

* JS : AutoFishingTeyvat -2.3.9

1. 修复「全天」钓鱼点冷却时间计算错误
问题:检查夜晚冷却时,错误使用了白天的时间戳进行计算

修复:白天和夜晚分别使用各自的时间戳计算冷却,确保准确性

2. 优化领取月卡后的时间判定
改进:领取月卡后立即检查是否超过终止时间,避免无效执行后续钓鱼点

3. 调整点位提升钓鱼交互触发率
改进:优化钓鱼点位置,提高与钓鱼交互的成功触发率

4. 地图追踪坐标精度简化
改进:地图追踪坐标从原有格式简化为到小数点后4位

* crlf to lf

* Update 枫丹-垂钓点-枫丹廷区枫丹廷东北.json

* Add files via upload
This commit is contained in:
this-Fish
2026-01-04 09:18:06 +08:00
committed by GitHub
parent 852a9f3a2d
commit 710144c47b
12 changed files with 2769 additions and 103 deletions

View File

@@ -42,8 +42,8 @@
"id": 3,
"move_mode": "walk",
"type": "target",
"x": 9988.216796875,
"y": 1893.36572265625
"x": 9988.2168,
"y": 1893.3657
}
]
}

View File

@@ -18,4 +18,4 @@
"action_params": ""
}
]
}
}

View File

@@ -13,7 +13,7 @@
"bgi_version": "0.45.0",
"description": "地区: 枫丹\n类型: 垂钓点\n详细位置: 莫尔泰区欧庇克莱歌剧院南\n鱼类: 海涛斧枪鱼、烘烘心羽鲈、维护机关·水域清理者、维护机关·态势控制者、维护机关·澄金领队型\n饵类: 甘露饵、酸橘饵、维护机关频闪诱饵\n附加信息: 普通",
"enable_monster_loot_split": false,
"last_modified_time": 1764684286599,
"last_modified_time": 1767296867182,
"map_match_method": "",
"map_name": "Teyvat",
"name": "枫丹-垂钓点-莫尔泰区欧庇克莱歌剧院南",
@@ -46,13 +46,22 @@
"id": 3,
"move_mode": "fly",
"type": "path",
"x": 3950.9551,
"y": 2892.9739
},
{
"action": "",
"action_params": "",
"id": 4,
"move_mode": "fly",
"type": "path",
"x": 3945.67,
"y": 2914.06
},
{
"action": "stop_flying",
"action_params": "",
"id": 4,
"id": 5,
"move_mode": "fly",
"type": "path",
"x": 3834.11,
@@ -61,16 +70,16 @@
{
"action": "",
"action_params": "",
"id": 5,
"id": 6,
"move_mode": "walk",
"type": "path",
"x": 3828.39,
"y": 2961.93
"x": 3828.3945,
"y": 2961.9314
},
{
"action": "",
"action_params": "",
"id": 6,
"id": 7,
"move_mode": "walk",
"type": "target",
"x": 3822.74,
@@ -78,12 +87,12 @@
},
{
"action": "combat_script",
"action_params": "s(0.17),w(0.25),wait(1),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
"id": 7,
"action_params": "s(0.17),w(0.25),wait(1.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
"id": 8,
"move_mode": "walk",
"type": "orientation",
"x": 3819.62,
"y": 2950.45
"x": 3819.623,
"y": 2950.4529
}
]
}

View File

@@ -37,8 +37,8 @@
"id": 2,
"move_mode": "dash",
"type": "path",
"x": 10302.595703125,
"y": -159.1494140625
"x": 10302.5957,
"y": -159.1494
},
{
"action": "combat_script",
@@ -46,8 +46,8 @@
"id": 3,
"move_mode": "walk",
"type": "orientation",
"x": 10313.2822265625,
"y": -129.46142578125
"x": 10313.2822,
"y": -129.4614
},
{
"action": "",
@@ -55,8 +55,8 @@
"id": 4,
"move_mode": "walk",
"type": "path",
"x": 10329.3720703125,
"y": -121.6630859375
"x": 10329.3721,
"y": -121.6631
},
{
"action": "combat_script",
@@ -64,8 +64,8 @@
"id": 5,
"move_mode": "jump",
"type": "orientation",
"x": 10328.888671875,
"y": -141.626953125
"x": 10328.8887,
"y": -141.627
},
{
"action": "stop_flying",
@@ -73,8 +73,8 @@
"id": 6,
"move_mode": "fly",
"type": "path",
"x": 10328.7998046875,
"y": -141.9140625
"x": 10328.7998,
"y": -141.9141
},
{
"action": "",
@@ -82,8 +82,8 @@
"id": 7,
"move_mode": "dash",
"type": "path",
"x": 10302.9873046875,
"y": -147.9677734375
"x": 10302.9873,
"y": -147.9678
},
{
"action": "",
@@ -91,8 +91,8 @@
"id": 8,
"move_mode": "dash",
"type": "path",
"x": 10292.8076171875,
"y": -171.7021484375
"x": 10292.8076,
"y": -171.7021
},
{
"action": "",
@@ -100,8 +100,8 @@
"id": 9,
"move_mode": "fly",
"type": "path",
"x": 10298.0087890625,
"y": -192.87109375
"x": 10298.0088,
"y": -192.8711
},
{
"action": "",
@@ -109,8 +109,8 @@
"id": 10,
"move_mode": "walk",
"type": "target",
"x": 10307.3505859375,
"y": -197.6640625
"x": 10307.3506,
"y": -197.6641
},
{
"action": "combat_script",
@@ -118,8 +118,8 @@
"id": 11,
"move_mode": "walk",
"type": "target",
"x": 10306.53125,
"y": -201.798828125
"x": 10306.5312,
"y": -201.7988
}
]
}

View File

@@ -82,8 +82,8 @@
"id": 7,
"move_mode": "dash",
"type": "path",
"x": 14211.55078125,
"y": 280.87451171875
"x": 14211.5508,
"y": 280.8745
},
{
"action": "",
@@ -91,8 +91,8 @@
"id": 8,
"move_mode": "walk",
"type": "path",
"x": 14219.1376953125,
"y": 282.5654296875
"x": 14219.1377,
"y": 282.5654
},
{
"action": "combat_script",
@@ -100,8 +100,8 @@
"id": 9,
"move_mode": "walk",
"type": "path",
"x": 14216.306640625,
"y": 275.35595703125
"x": 14216.3066,
"y": 275.356
}
]
}

View File

@@ -51,8 +51,8 @@
"id": 4,
"move_mode": "walk",
"type": "path",
"x": 9580.4921875,
"y": -1058.71533203125
"x": 9580.4922,
"y": -1058.7153
},
{
"action": "",
@@ -60,8 +60,8 @@
"id": 5,
"move_mode": "walk",
"type": "path",
"x": 9579.4033203125,
"y": -1054.00048828125
"x": 9579.4033,
"y": -1054.0005
},
{
"action": "combat_script",
@@ -69,8 +69,8 @@
"id": 6,
"move_mode": "walk",
"type": "target",
"x": 9578.94140625,
"y": -1050.46337890625
"x": 9578.9414,
"y": -1050.4634
}
]
}

View File

@@ -13,7 +13,7 @@
"bgi_version": "0.45.0",
"description": "地区: 纳塔\n类型: 垂钓点\n详细位置: 距石山祖遗庙宇东\n鱼类: 炽岩斗士急流鱼、拟似燃素独角鱼\n饵类: 温火饵\n附加信息: 普通",
"enable_monster_loot_split": false,
"last_modified_time": 1764492966885,
"last_modified_time": 1767423480284,
"map_match_method": "",
"map_name": "Teyvat",
"name": "纳塔-垂钓点-距石山祖遗庙宇东",
@@ -35,11 +35,10 @@
"action": "combat_script",
"action_params": "w(0.2).wait(1)",
"id": 2,
"locked": false,
"move_mode": "walk",
"type": "orientation",
"x": 7654.037109375,
"y": -2107.271484375
"x": 7654.0371,
"y": -2107.2715
},
{
"action": "",
@@ -47,8 +46,8 @@
"id": 3,
"move_mode": "walk",
"type": "path",
"x": 7654.037109375,
"y": -2107.271484375
"x": 7654.0371,
"y": -2107.2715
},
{
"action": "",
@@ -56,8 +55,8 @@
"id": 4,
"move_mode": "walk",
"type": "path",
"x": 7651.61328125,
"y": -2092.982421875
"x": 7651.6133,
"y": -2092.9824
},
{
"action": "",
@@ -72,30 +71,28 @@
"action": "stop_flying",
"action_params": "",
"id": 6,
"locked": false,
"move_mode": "fly",
"type": "target",
"x": 7672.83203125,
"y": -2071.1083984375
"x": 7672.832,
"y": -2071.1084
},
{
"action": "",
"action_params": "",
"id": 7,
"locked": false,
"move_mode": "walk",
"type": "target",
"x": 7672.83203125,
"y": -2071.1083984375
"x": 7672.832,
"y": -2071.1084
},
{
"action": "combat_script",
"action_params": "s(0.2),w(0.17),wait(0.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
"action_params": "s(0.2),wait(0.3),w(0.17),wait(0.75),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
"id": 8,
"move_mode": "walk",
"type": "orientation",
"x": 7674.23046875,
"y": -2079.109375
"x": 7674.2305,
"y": -2079.1094
}
]
}

View File

@@ -24,7 +24,7 @@
"id": 1,
"move_mode": "walk",
"type": "teleport",
"x": 4036.2700000000004,
"x": 4036.27,
"y": -2464.92
},
{
@@ -33,8 +33,8 @@
"id": 2,
"move_mode": "walk",
"type": "path",
"x": 4043.9699999999993,
"y": -2471.6100000000006
"x": 4043.97,
"y": -2471.61
},
{
"action": "combat_script",
@@ -42,8 +42,8 @@
"id": 3,
"move_mode": "fly",
"type": "path",
"x": 4176.892578125,
"y": -2479.8369140625
"x": 4176.8926,
"y": -2479.8369
},
{
"action": "",
@@ -52,7 +52,7 @@
"move_mode": "walk",
"type": "path",
"x": 4187.01,
"y": -2484.1000000000004
"y": -2484.1
},
{
"action": "combat_script",
@@ -61,7 +61,7 @@
"move_mode": "walk",
"type": "target",
"x": 4187.125,
"y": -2487.03125
"y": -2487.0312
}
]
}

View File

@@ -13,7 +13,7 @@
"bgi_version": "0.45.0",
"description": "地区: 须弥\n类型: 垂钓点\n详细位置: 千壑沙地「五绿洲」的孑遗\n鱼类: 真果角鲀、吹沙角鲀、暮云角鲀、青金斧枪鱼、翡玉斧枪鱼\n饵类: 甘露饵\n附加信息: 战斗",
"enable_monster_loot_split": false,
"last_modified_time": 1766917187348,
"last_modified_time": 1767423151522,
"map_match_method": "",
"map_name": "Teyvat",
"name": "须弥-垂钓点-千壑沙地「五绿洲」的孑遗",
@@ -26,7 +26,6 @@
"action": "",
"action_params": "",
"id": 1,
"locked": false,
"move_mode": "walk",
"type": "teleport",
"x": 4694.293,
@@ -36,31 +35,28 @@
"action": "",
"action_params": "",
"id": 2,
"locked": false,
"move_mode": "dash",
"type": "path",
"x": 4707.6943359375,
"y": -264.052734375
"x": 4707.6943,
"y": -264.0527
},
{
"action": "stop_flying",
"action_params": "",
"id": 3,
"locked": false,
"move_mode": "fly",
"type": "path",
"x": 4731.7041015625,
"y": -246.3447265625
"x": 4731.7041,
"y": -246.3447
},
{
"action": "",
"action_params": "",
"id": 4,
"locked": false,
"move_mode": "dash",
"type": "path",
"x": 4734.7919921875,
"y": -242.41259765625
"x": 4734.792,
"y": -242.4126
},
{
"action": "",
@@ -68,8 +64,8 @@
"id": 5,
"move_mode": "dash",
"type": "path",
"x": 4749.8095703125,
"y": -235.77099609375
"x": 4749.8096,
"y": -235.771
},
{
"action": "fight",
@@ -84,7 +80,6 @@
"action": "",
"action_params": "",
"id": 7,
"locked": false,
"move_mode": "dash",
"type": "path",
"x": 4750.0791,
@@ -94,7 +89,6 @@
"action": "",
"action_params": "",
"id": 8,
"locked": false,
"move_mode": "jump",
"type": "target",
"x": 4753.3945,
@@ -102,11 +96,10 @@
},
{
"action": "combat_script",
"action_params": "wait(0.2),keypress(t),keypress(t),keypress(t),keypress(t),wait(0.2)",
"action_params": "w(1),j,wait(0.1),j,wait(0.1),j,wait(0.1),j,w(2),wait(0.3),keypress(t),keypress(t),keypress(t),keypress(t),wait(0.2)",
"id": 9,
"locked": false,
"move_mode": "fly",
"type": "path",
"type": "orientation",
"x": 4768.6885,
"y": -186.9961
},
@@ -114,7 +107,6 @@
"action": "",
"action_params": "",
"id": 10,
"locked": false,
"move_mode": "jump",
"type": "orientation",
"x": 4799.1484,
@@ -124,17 +116,33 @@
"action": "",
"action_params": "",
"id": 11,
"locked": false,
"move_mode": "jump",
"type": "path",
"x": 4799.2773,
"y": -191.5317
},
{
"action": "fight",
"action": "",
"action_params": "",
"id": 12,
"locked": false,
"move_mode": "dash",
"type": "path",
"x": 4812.44,
"y": -179.03
},
{
"action": "fight",
"action_params": "",
"id": 13,
"move_mode": "dash",
"type": "path",
"x": 4810.1247,
"y": -181.125
},
{
"action": "",
"action_params": "",
"id": 14,
"move_mode": "dash",
"type": "path",
"x": 4812.44,
@@ -143,22 +151,20 @@
{
"action": "",
"action_params": "",
"id": 13,
"locked": false,
"id": 15,
"move_mode": "walk",
"type": "path",
"x": 4805.7421875,
"y": -177.1533203125
"x": 4805.7422,
"y": -177.1533
},
{
"action": "combat_script",
"action_params": "wait(7.5),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f),wait(0.2),keypress(f)",
"id": 14,
"locked": false,
"id": 16,
"move_mode": "walk",
"type": "path",
"x": 4811.6162109375,
"y": -182.36572265625
"x": 4811.6162,
"y": -182.3657
}
]
}

View File

@@ -559,7 +559,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") {
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) {
const base_path_pathing = "assets/pathing/";
const base_path_gcm = "assets/KeyMouseScript/";
const base_path_statues = "assets/pathing_others/";
@@ -679,6 +679,13 @@
}
}
// 检查是否到达终止时间
if (is_time_kill && new Date() >= time_target) {
let time_now_str = `${new Date().getHours()}:${new Date().getMinutes()}`;
log.info(`预定时间(${kill_hour}:${kill_minute})已到(当前时间:${time_now_str}),终止运行...`);
return "time_kill"; // 返回特殊标记
}
log.info(`该钓鱼点的时间: ${fishing_time}`);
// 检查垂钓点CD(调式模式跳过)
@@ -695,6 +702,10 @@
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();
if (now < critical_time) {
log.info(`该垂钓点(白天)处于冷却状态,剩余时间: ${formatTimeDifference(critical_time - now)}`);
log.info(`${file_name}(白天) 已跳过...`);
@@ -704,7 +715,13 @@
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();
if (now < critical_time) {
log.info(`该垂钓点(夜晚)处于冷却状态,剩余时间: ${formatTimeDifference(critical_time - now)}`);
log.info(`${file_name}(夜晚) 已跳过...`);
@@ -719,6 +736,11 @@
}
} 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();
if (now < critical_time) {
log.info(`该垂钓点(白天)处于冷却状态,剩余时间: ${formatTimeDifference(critical_time - now)}`);
log.info(`${file_name}(白天) 已跳过...`);
@@ -729,6 +751,11 @@
}
} 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();
if (now < critical_time) {
log.info(`该垂钓点(夜晚)处于冷却状态,剩余时间: ${formatTimeDifference(critical_time - now)}`);
log.info(`${file_name}(夜晚) 已跳过...`);
@@ -1073,7 +1100,12 @@
continue;
}
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);
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);
// 新增:检查 run_file 是否因为到达终止时间而返回特殊标记
if (run_result === "time_kill") {
return null; // 直接退出整个任务
}
// } catch (error) {
// const file_name = `${path_msg["area"]}-${path_msg["type"]}-${path_msg["detail"]}`;
// log.info(`路径: ${file_name} 执行时出错,已跳过...\n错误信息: ${error}`)

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 1,
"name": "提瓦特自动钓鱼(全流程+自选)",
"version": "2.3.8",
"version": "2.3.9",
"bgi_version": "0.47.0",
"description": "支持自动追踪并垂钓bgi支持的全提瓦特垂钓点",
"authors": [