JS脚本:提瓦特自动钓鱼【新增】、原琴·五线谱版【问题修复】地图追踪:蕈兽【新增部分点位】 (#385)

* update repo.json

* JS脚本:原琴·五线谱版【修复bug、优化】

优化了单曲循环逻辑
优化乐谱读取逻辑
修复了连音中的休止符的时长计算错误
修复了队列留空导致的错误

* update repo.json

* JS脚本:提瓦特自动钓鱼(全流程+自选)

键鼠脚本部分还在寻找容错更高的方法

核心功能------------------------------>
1. 可自选地区、鱼类、鱼饵
2. 可直接钓取特定物品的兑换材料(例如渔获)
3. 可选择对应时间的鱼类[该功能不可用]
4. 支持部分地图追踪无法到达的钓鱼点(例如炽岩斗士急流鱼钓鱼点,枫丹廷东北钓鱼点)
注意事项------------------------------>
1. JS脚本的设置内各设置项含有优先级,如果存在高优先级且选项不为默认,则只有最高优先级的设置项生效
2. 本脚本不含雷鸣仙钓鱼点
3. 部分钓鱼点为路径追踪+键鼠脚本的混合模式,可能会出现因键鼠脚本误差卡死的情况,如果出现这种情况,请在JS脚本的最下方的文本框内输入 1 来禁用所有包含键鼠脚本的钓鱼点

* 地图追踪:蕈兽【部分】

一部分蕈兽的点位,剩余的地表部分蕈兽将陆续上传

* JS脚本:提瓦特自动钓鱼【修复】

修复了第一个路径点的类型错误

---------

Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
This commit is contained in:
提瓦特钓鱼玳师
2025-03-04 10:56:04 +08:00
committed by GitHub
parent 181f890437
commit 677f14f430
95 changed files with 5968 additions and 51 deletions

View File

@@ -0,0 +1,342 @@
(async function () {
const area_list = ['蒙德', '璃月', '稻妻', '须弥', '枫丹', '纳塔', '至冬']
const fish_list = ['花鳉', '波波心羽鲈', '烘烘心羽鲈', '维护机关·水域清理者', '维护机关·态势控制者', '维护机关·澄金领队型', '海涛斧枪鱼', '维护机关·初始能力型', '维护机关·白金典藏型', '吹沙角鲀', '甜甜花鳉', '擒霞客', '水晶宴', '斗棘鱼', '炮鲀', '流纹褐蝶鱼', '锖假龙', '金赤假龙', '玉玉心羽鲈', '赤魔王', '长生仙', '苦炮鲀', '肺棘鱼', '流纹京紫蝶鱼', '琉璃花鳉', '伪装鲨鲨独角鱼', '繁花斗士急流鱼', '深潜斗士急流鱼', '晚霞翻车鲀', '青浪翻车鲀', '拟似燃素独角鱼', '炽岩斗士急流鱼', '蓝染花鳉', '鸩棘鱼', '流纹茶蝶鱼', '雪中君', '真果角鲀', '青金斧枪鱼', '暮云角鲀', '翡玉斧枪鱼', '沉波蜜桃']
const bait_list = ['果酿饵', '酸桔饵', '维护机关频闪诱饵', '甘露饵', '赤糜饵', '飞蝇假饵', '蠕虫假饵', '澄晶果粒饵', '温火饵']
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': '夜晚'}
}
const material_msg = {
"风缠": ["花鳉", "蓝染花鳉", "鸩棘鱼", "流纹茶蝶鱼"],
"愿者": ["花鳉", "甜甜花鳉", "斗棘鱼", "流纹褐蝶鱼"],
"鸣川鹈饲": ["花鳉", "琉璃花鳉", "肺棘鱼", "流纹京紫蝶鱼"],
"盘缘": ["花鳉", "真果角鲀", "暮云角鲀", "吹沙角鲀"],
"穿浪斗枪": ["维护机关·初始能力型", "维护机关·水域清理者", "维护机关·态势控制者", "海涛斧枪鱼"],
"长犀圆鸟和扁鱼": ["炽岩斗士急流鱼", "拟似燃素独角鱼", "青浪翻车鲀", "晚霞翻车鲀"],
"渔获": ["雷鸣仙", "金赤假龙", "锖假龙"],
"赤穗酒枡": ["雷鸣仙", "炮鲀", "苦炮鲀"],
"竭泽": ["沉波蜜桃", "青金斧枪鱼", "翡玉斧枪鱼"],
"原海鱼油": ["沉波蜜桃", "青金斧枪鱼", "翡玉斧枪鱼"],
"灰河渡手": ["维护机关·白金典藏型", "波波心羽鲈", "烘烘心羽鲈", "海涛斧枪鱼"],
"马腾斯万能护养剂": ["维护机关·白金典藏型", "波波心羽鲈", "烘烘心羽鲈", "海涛斧枪鱼"]
}
const time_msg = {
"白天": ['烘烘心羽鲈', '维护机关·水域清理者', '吹沙角鲀', '水晶宴', '流纹褐蝶鱼', '赤魔王', '长生仙', '流纹京紫蝶鱼', '深潜斗士急流鱼', '青浪翻车鲀', '流纹茶蝶鱼', '真果角鲀', '沉波蜜桃'],
"夜晚": ['波波心羽鲈', '维护机关·态势控制者', '维护机关·白金典藏型', '擒霞客', '斗棘鱼', '肺棘鱼', '繁花斗士急流鱼', '晚霞翻车鲀', '鸩棘鱼', '雪中君', '暮云角鲀', '雷鸣仙']
}
const path_pathing = [
'枫丹-垂钓点-伊黎耶林区幽林雾道西南-花鳉_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者_维护机关·澄金领队型-果酿饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-伊黎耶林区柔灯港西北-海涛斧枪鱼_波波心羽鲈_维护机关·水域清理者_维护机关·澄金领队型-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-枫丹动能工程科学研究院区中央实验室遗址南-花鳉_海涛斧枪鱼_波波心羽鲈_维护机关·初始能力型_维护机关·水域清理者-果酿饵_甘露饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-枫丹听取茉洁站西南-海涛斧枪鱼_烘烘心羽鲈_维护机关·初始能力型_维护机关·态势控制者-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-枫丹廷区枫丹廷东北-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者-甘露饵_酸桔饵_维护机关频闪诱饵-GCM',
'枫丹-垂钓点-枫丹廷区枫丹廷南-花鳉_海涛斧枪鱼_维护机关·水域清理者_维护机关·态势控制者-果酿饵_甘露饵_维护机关频闪诱饵-GCM',
'枫丹-垂钓点-枫丹廷区枫丹廷南-花鳉_海涛斧枪鱼_维护机关·水域清理者_维护机关·态势控制者-果酿饵_甘露饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-白露区白淞镇西南-花鳉_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·白金典藏型-果酿饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-翡黎区芒索斯山东麓东-海涛斧枪鱼_烘烘心羽鲈_维护机关·初始能力型_维护机关·态势控制者-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-苍晶区厄里那斯东-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·初始能力型-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-苍晶区厄里那斯东北-吹沙角鲀_波波心羽鲈_维护机关·初始能力型_维护机关·水域清理者_维护机关·态势控制者-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-苍晶区海露港北-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-莫尔泰区卡布狄斯堡遗迹南-花鳉_波波心羽鲈_烘烘心羽鲈_维护机关·态势控制者_维护机关·澄金领队型-果酿饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-莫尔泰区欧庇克莱歌剧院南-海涛斧枪鱼_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者_维护机关·澄金领队型-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
'枫丹-垂钓点-诺思托伊区佩特莉可镇南-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·初始能力型_维护机关·水域清理者_维护机关·态势控制者_维护机关·澄金领队型-甘露饵_酸桔饵_维护机关频闪诱饵-普通',
'璃月-垂钓点-云来海璃月港东南-甜甜花鳉_擒霞客_水晶宴_斗棘鱼_炮鲀-果酿饵_赤糜饵_飞蝇假饵-普通',
'璃月-垂钓点-沉玉谷·上谷古树茶坡-花鳉_斗棘鱼_流纹褐蝶鱼_锖假龙_金赤假龙_玉玉心羽鲈-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵_酸桔饵-普通',
'璃月-垂钓点-沉玉谷·上谷古树茶坡东-花鳉_擒霞客_水晶宴_斗棘鱼_锖假龙_玉玉心羽鲈-果酿饵_赤糜饵_飞蝇假饵_酸桔饵-普通',
'璃月-垂钓点-沉玉谷·南陵悬练山西南-甜甜花鳉_擒霞客_赤魔王_金赤假龙_玉玉心羽鲈-果酿饵_赤糜饵_飞蝇假饵_酸桔饵-普通',
'璃月-垂钓点-珉林天遒谷-花鳉_水晶宴_斗棘鱼-果酿饵_赤糜饵-普通',
'璃月-垂钓点-珉林奥藏山-花鳉_甜甜花鳉_擒霞客_水晶宴_长生仙-果酿饵_蠕虫假饵-普通',
'璃月-垂钓点-珉林琥牢山东-花鳉_甜甜花鳉_擒霞客_水晶宴_斗棘鱼_流纹褐蝶鱼-果酿饵_赤糜饵_蠕虫假饵-普通',
'璃月-垂钓点-琼玑野归离原东北-甜甜花鳉_斗棘鱼_赤魔王_金赤假龙_锖假龙_流纹褐蝶鱼-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
'璃月-垂钓点-琼玑野渌华池-甜甜花鳉_斗棘鱼_赤魔王_金赤假龙_锖假龙_流纹褐蝶鱼-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
'璃月-垂钓点-碧水原奥藏山东-花鳉_擒霞客_水晶宴_流纹褐蝶鱼-果酿饵_蠕虫假饵-普通',
'璃月-垂钓点-碧水原无妄坡南-花鳉_甜甜花鳉_擒霞客_流纹褐蝶鱼-果酿饵_蠕虫假饵-战斗',
'璃月-垂钓点-碧水原望舒客栈西-甜甜花鳉_斗棘鱼_赤魔王_金赤假龙_锖假龙_流纹褐蝶鱼-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
'璃月-垂钓点-碧水原药蝶谷东-花鳉_斗棘鱼_流纹褐蝶鱼-果酿饵_赤糜饵_蠕虫假饵-普通',
'璃月-垂钓点-碧水原轻策庄东北-甜甜花鳉_擒霞客_水晶宴_斗棘鱼_流纹褐蝶鱼_苦炮鲀-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
'稻妻-垂钓点-八酝岛名椎滩北-花鳉_肺棘鱼_流纹京紫蝶鱼_苦炮鲀-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
'稻妻-垂钓点-海祇岛水月池东-花鳉_琉璃花鳉_擒霞客_水晶宴_肺棘鱼_流纹京紫蝶鱼-果酿饵_赤糜饵_蠕虫假饵-普通',
'稻妻-垂钓点-海祇岛珊瑚宫北-花鳉_琉璃花鳉_擒霞客_水晶宴_肺棘鱼_流纹京紫蝶鱼-果酿饵_赤糜饵_蠕虫假饵-普通',
'稻妻-垂钓点-清籁岛天云峠北-花鳉_擒霞客_水晶宴_流纹京紫蝶鱼_炮鲀-果酿饵_蠕虫假饵_飞蝇假饵-普通',
'稻妻-垂钓点-清籁岛越石村东南-琉璃花鳉_肺棘鱼_赤魔王_金赤假龙_锖假龙_流纹京紫蝶鱼-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
'稻妻-垂钓点-神无冢甘金岛南-琉璃花鳉_肺棘鱼_流纹京紫蝶鱼-果酿饵_赤糜饵_蠕虫假饵-普通',
'稻妻-垂钓点-鸣神岛离岛西-琉璃花鳉_肺棘鱼_赤魔王_炮鲀_苦炮鲀-果酿饵_赤糜饵_飞蝇假饵-GCM',
'稻妻-垂钓点-鹤观千来神祠西-花鳉_琉璃花鳉_擒霞客_水晶宴-果酿饵-普通',
'稻妻-垂钓点-鹤观逢岳之野西南-花鳉_肺棘鱼_赤魔王_流纹京紫蝶鱼-果酿饵_赤糜饵_蠕虫假饵-普通',
'纳塔-垂钓点-境壁山浮羽之湾东-伪装鲨鲨独角鱼_花鳉_繁花斗士急流鱼_深潜斗士急流鱼_晚霞翻车鲀_青浪翻车鲀-果酿饵_澄晶果粒饵-普通',
'纳塔-垂钓点-奥奇卡纳塔东-花鳉_青浪翻车鲀_晚霞翻车鲀_伪装鲨鲨独角鱼-果酿饵_澄晶果粒饵-普通',
'纳塔-垂钓点-奥奇卡纳塔东北-青浪翻车鲀_繁花斗士急流鱼_伪装鲨鲨独角鱼-澄晶果粒饵-战斗',
'纳塔-垂钓点-奥奇卡纳塔北-花鳉_晚霞翻车鲀_伪装鲨鲨独角鱼_深潜斗士急流鱼-果酿饵_澄晶果粒饵-普通',
'纳塔-垂钓点-奥奇卡纳塔南-花鳉_繁花斗士急流鱼_深潜斗士急流鱼_青浪翻车鲀_晚霞翻车鲀-果酿饵_澄晶果粒饵-普通',
'纳塔-垂钓点-奥奇卡纳塔西-拟似燃素独角鱼_炽岩斗士急流鱼-温火饵-GCM',
'纳塔-垂钓点-奥奇卡纳塔西-深潜斗士急流鱼_繁花斗士急流鱼_伪装鲨鲨独角鱼-澄晶果粒饵-普通',
'纳塔-垂钓点-涌流地溶水域-炽岩斗士急流鱼_拟似燃素独角鱼-温火饵-GCM',
'纳塔-垂钓点-翘枝崖花羽会北-晚霞翻车鲀_深潜斗士急流鱼_伪装鲨鲨独角鱼-澄晶果粒饵-普通',
'纳塔-垂钓点-翘枝崖花羽会西-花鳉_繁花斗士急流鱼_深潜斗士急流鱼_晚霞翻车鲀_伪装鲨鲨独角鱼-果酿饵_澄晶果粒饵-普通',
'纳塔-垂钓点-距石山祖遗庙宇东-炽岩斗士急流鱼_拟似燃素独角鱼-温火饵-GCM',
'蒙德-垂钓点-坠星山谷低语森林南-蓝染花鳉_水晶宴_鸩棘鱼_锖假龙_流纹茶蝶鱼-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
'蒙德-垂钓点-坠星山谷望风山地-花鳉_蓝染花鳉_擒霞客_水晶宴_鸩棘鱼_金赤假龙_流纹茶蝶鱼-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
'蒙德-垂钓点-明冠山地风龙废墟北-花鳉_蓝染花鳉_擒霞客_水晶宴-果酿饵-普通',
'蒙德-垂钓点-明冠山地风龙废墟南-花鳉_蓝染花鳉_擒霞客_流纹茶蝶鱼-果酿饵_蠕虫假饵-普通',
'蒙德-垂钓点-苍风高地晨曦酒庄西南-蓝染花鳉_擒霞客_鸩棘鱼_赤魔王_流纹茶蝶鱼_炮鲀_苦炮鲀-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
'蒙德-垂钓点-苍风高地清泉镇北-花鳉_蓝染花鳉_鸩棘鱼_赤魔王_流纹茶蝶鱼_炮鲀_苦炮鲀-果酿饵_赤糜饵_蠕虫假饵_飞蝇假饵-普通',
'蒙德-垂钓点-风啸山坡风起地南-花鳉_蓝染花鳉_鸩棘鱼_流纹茶蝶鱼-果酿饵_赤糜饵_蠕虫假饵-普通',
'蒙德-垂钓点-龙脊雪山寒天之钉西-花鳉_鸩棘鱼_雪中君_流纹茶蝶鱼-果酿饵_赤糜饵_蠕虫假饵-普通',
'须弥-垂钓点-下风蚀地活力之家西南-花鳉_擒霞客_赤魔王_真果角鲀_青金斧枪鱼-果酿饵_赤糜饵_甘露饵-普通',
'须弥-垂钓点-下风蚀地阿如村-花鳉_水晶宴_吹沙角鲀_暮云角鲀_翡玉斧枪鱼-果酿饵_甘露饵-普通',
'须弥-垂钓点-千壑沙地「五绿洲」的孑遗-真果角鲀_吹沙角鲀_暮云角鲀_青金斧枪鱼_翡玉斧枪鱼-甘露饵-普通',
'须弥-垂钓点-护世森无郁稠林-沉波蜜桃_暮云角鲀_青金斧枪鱼_翡玉斧枪鱼-甘露饵-普通',
'须弥-垂钓点-桓那兰那觉王之殿北-花鳉_真果角鲀_吹沙角鲀_暮云角鲀_青金斧枪鱼_翡玉斧枪鱼-果酿饵_甘露饵-普通',
'须弥-垂钓点-荒石苍漠铁穆山南-擒霞客_真果角鲀_吹沙角鲀_暮云角鲀_青金斧枪鱼_翡玉斧枪鱼-果酿饵_甘露饵-普通',
'须弥-垂钓点-道成林天臂池-赤魔王_真果角鲀_吹沙角鲀_暮云角鲀_青金斧枪鱼_翡玉斧枪鱼-赤糜饵_甘露饵-普通',
'须弥-垂钓点-道成林维摩庄北-花鳉_真果角鲀_吹沙角鲀_暮云角鲀_青金斧枪鱼_翡玉斧枪鱼-果酿饵_甘露饵-普通',
'须弥-垂钓点-道成林须弥城南-擒霞客_吹沙角鲀_暮云角鲀_青金斧枪鱼-果酿饵_甘露饵-普通',
'须弥-垂钓点-阿陀河谷奥摩斯港北-水晶宴_真果角鲀_吹沙角鲀_暮云角鲀_青金斧枪鱼_翡玉斧枪鱼-果酿饵_甘露饵-普通',
'须弥-垂钓点-阿陀河谷降诸魔山-擒霞客_真果角鲀_暮云角鲀_翡玉斧枪鱼-果酿饵_甘露饵-普通'
]
const path_gcm = [
'枫丹-垂钓点-枫丹廷区枫丹廷东北-海涛斧枪鱼_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者-甘露饵_酸橘饵_维护机关频闪诱饵-GCM',
'枫丹-垂钓点-枫丹廷区枫丹廷南-花鳉_海涛斧枪鱼_维护机关·水域清理者_维护机关·态势控制者-果酿饵_甘露饵_维护机关频闪诱饵-GCM',
'纳塔-垂钓点-奥奇卡纳塔西-拟似燃素独角鱼_炽岩斗士急流鱼-温火饵-GCM',
'纳塔-垂钓点-涌流地溶水域-炽岩斗士急流鱼_拟似燃素独角鱼-温火饵-GCM',
'纳塔-垂钓点-距石山祖遗庙宇东-炽岩斗士急流鱼_拟似燃素独角鱼-温火饵-GCM'
]
/**
* 获取路径包含的信息
*
* @param {string} pathing_name - 包含路径信息的字符串,格式如"地区-类型-详细位置-鱼类_种类-饵类_种类-附加信息"
* @returns {Object} 包含解析后路径信息的对象,具有以下属性:
* - name {string} 全名
* - area {string} 地区
* - type {string} 类型
* - detail {string} 详细位置
* - fish_type {Array.<string>} 鱼类种类数组
* - bait_type {Array.<string>} 饵类种类数组
* - addition {string} 附加信息
*/
function get_pathing_msg(pathing_name) {
let msg_dic = {};
let path_message = pathing_name.split('-');
msg_dic["name"] = pathing_name; // 全名
msg_dic["area"] = path_message[0]; // 地区
msg_dic["type"] = path_message[1]; // 类型
msg_dic["detail"] = path_message[2]; // 详细位置
msg_dic["fish_type"] = path_message[3].split('_'); // 鱼类
msg_dic["bait_type"] = path_message[4].split('_'); // 饵类
msg_dic["addition"] = path_message[5]; // 附加信息
return msg_dic;
}
/**
* 设置时间(白天和夜晚)。
*
* 模拟键盘和鼠标操作来更改时间状态。
*
* @param {string} time_state - 时间状态,可以是 "白天" 或 "夜晚"。
*/
async function set_time(time_state) {
let position_center = [1440, 500];
let position_0 = [1440, 670]; // 防止转动无效(鼠标途经点)
let position_6 = [1270, 500];
let position_12 = [1440, 330]; // 防止转动无效(鼠标途经点)
let position_18 = [1610, 500];
await keyPress("Escape");
await sleep(1000);
await click(45, 715);
await sleep(2000);
moveMouseTo(position_center[0], position_center[1]);
await sleep(50);
leftButtonDown();
await sleep(50);
if (time_state === "白天") {
moveMouseTo(position_12[0], position_12[1]); // 途经点
await(50);
moveMouseTo(position_6[0], position_6[1]);
} else if (time_state === "夜晚") {
moveMouseTo(position_0[0], position_0[1]); // 途经点
await(50);
moveMouseTo(position_18[0], position_18[1]);
}
await sleep(50);
leftButtonUp();
await sleep(1000);
await click(1450, 1020); // 确认
await sleep(20000); // 等待时间调节
await keyPress("Escape");
await sleep(2000);
await keyPress("Escape");
await sleep(2000);
}
// 根据脚本配置筛选路径并显示配置
function pathing_filter() {
try {
// 存储筛选后的路径
let path_list = [];
// 正则表达式
let regex_area, regex_fish, regex_bait;
// 读取地区
let path_sort_area = typeof(settings.path_sort_area) === 'undefined' ? [] : settings.path_sort_area.split(' ');
// 读取鱼类
let path_sort_fish = typeof(settings.path_sort_fish) === 'undefined' ? [] : settings.path_sort_fish.split(' ');
// 读取鱼饵
let path_sort_bait = typeof(settings.path_sort_bait) === 'undefined' ? [] : settings.path_sort_bait.split(' ');
// 读取出没时间
let path_sort_time = typeof(settings.path_sort_time) === 'undefined' ? "全天" : settings.path_sort_time;
// 读取兑换材料
let path_sort_material = typeof(settings.path_sort_material) === 'undefined' ? "无" : settings.path_sort_material;
// 生成正则表达式
if (path_sort_area.length !== 0) { // 地区
regex_area = new RegExp(path_sort_area.join("|"));
} else {
regex_area = new RegExp(area_list.join("|"));
}
if (path_sort_fish.length !== 0) { // 鱼类
regex_fish = new RegExp(path_sort_fish.join("|"));
} else {
regex_fish = new RegExp(fish_list.join("|"));
}
if (path_sort_bait.length !== 0) { // 鱼饵
regex_bait = new RegExp(path_sort_bait.join("|"));
} else {
regex_bait = new RegExp(bait_list.join("|"));
}
if (path_sort_material === "无(默认)") {
if (/全天/.test(path_sort_time)) {
for (const path of path_pathing) {
if (regex_area.test(path) && regex_fish.test(path) && regex_bait.test(path)) {
path_list.push(path);
}
}
} else {
for (const path of path_pathing) {
let temp_msg = get_pathing_msg(path);
let regex_time;
if (/白天/.test(path_sort_time)) {
regex_time = new RegExp(time_msg["白天"].join("|"));
} else if (/夜晚/.test(path_sort_time)) {
regex_time = new RegExp(time_msg["夜晚"].join("|"));
} else {
regex_time = new RegExp(fish_list.join("|"));
}
for (const fish of temp_msg["fish_type"]) {
if (regex_time.test(fish)) {
path_list.push(path);
break;
}
}
}
}
} else {
for (const [material_name, fish_msg] of Object.entries(material_msg)) {
const check_regex = new RegExp(material_name);
log.info(`${material_name} ${fish_msg} ${check_regex}`);
if (check_regex.test(path_sort_material)) {
for (const path of path_pathing) {
const fish_sort_regex = new RegExp(fish_msg.join("|"));
if (fish_sort_regex.test(path)) {
path_list.push(path);
}
}
break;
}
}
}
return path_list;
} catch (error) {
log.error(`JS脚本配置读取错误请检查脚本配置格式: ${error}`);
return null;
}
}
async function run_file(file_name, addition = "none") {
const base_path_pathing = "assets/Pathing/";
const base_path_gcm = "assets/KeyMouseScript/";
await pathingScript.runFile(base_path_pathing + file_name + ".json");
// 执行键鼠脚本
if (/GCM/g.test(file_name)) {
await keyMouseScript.runFile(base_path_gcm + file_name + ".json");
}
// 调用自动钓鱼
await dispatcher.runTask(new SoloTask("AutoFishing"));
// await genshin.autofishing();
}
async function main() {
// 筛选路径
let path_filter = pathing_filter();
log.info(`本次总计 ${path_filter.length} 个钓鱼点`);
for (const path of path_filter) {
try {
// 路径详细信息
const path_msg = get_pathing_msg(path);
log.info(`当前钓鱼点: ${path_msg["area"]}-${path_msg["detail"]}`);
let f_type = path_msg["addition"] === "path" ? "path" : "gcm"; // test
await run_file(path_msg["name"], f_type);
} catch (e) {
log.info(`路径: ${path_msg["name"]} 执行时出错,已跳过...`)
}
}
}
await main();
})();