@@ -23,51 +23,51 @@
'全天' : [ '花鳉' , '维护机关·澄金领队型' , '海涛斧枪鱼' , '维护机关·初始能力型' , '甜甜花鳉' , '炮鲀' , '锖假龙' , '金赤假龙' , '玉玉心羽鲈' , '苦炮鲀' , '琉璃花鳉' , '伪装鲨鲨独角鱼' , '拟似燃素独角鱼' , '炽岩斗士急流鱼' , '蓝染花鳉' , '青金斧枪鱼' , '翡玉斧枪鱼' , '佛玛洛鳐' , '迪芙妲鳐' , '秘源机关·巡戒使' ]
}
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' : '全天' } ,
'维护机关·初始能力型' : { '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 path _pathing = [
'枫丹-垂钓点-伊黎耶林区幽林雾道西南-花鳉_波波心羽鲈_烘烘心羽鲈_维护机关·水域清理者_维护机关·态势控制者_维护机关·澄金领队型-果酿饵_酸橘饵_维护机关频闪诱饵-普通' ,
@@ -149,10 +149,10 @@
'须弥-垂钓点-阿陀河谷降诸魔山-擒霞客_真果角鲀_暮云角鲀_翡玉斧枪鱼-果酿饵_甘露饵-普通' ,
]
const fishing _time _dic = {
"全天" : { "name" : "All" , "param" : 0 } ,
"白天" : { "name" : "Daytime" , "param" : 1 } ,
"夜晚" : { "name" : "Nighttime" , "param" : 2 } ,
"禁用" : { "name" : "Block" , "param" : "" } ,
"全天" : { "name" : "All" , "param" : 0 } ,
"白天" : { "name" : "Daytime" , "param" : 1 } ,
"夜晚" : { "name" : "Nighttime" , "param" : 2 } ,
"禁用" : { "name" : "Block" , "param" : "" } ,
}
const statue _name = "蒙德-七天神像-苍风高地" ;
// 存储本次任务中的所有鱼类,作为调节时间的关键参考
@@ -207,9 +207,9 @@
content [ user _id ] [ pathing _name ] [ "Nighttime" ] = timestamp ;
} else if ( time _status === "白天" ) {
content [ user _id ] [ pathing _name ] [ "Daytime" ] = timestamp ;
content [ user _id ] [ pathing _name ] [ "Nighttime" ] = Object . keys ( content [ user _id ] [ pathing _name ] ) . includes ( "Nighttime" ) ? content [ user _id ] [ pathing _name ] [ "Nighttime" ] : null ;
content [ user _id ] [ pathing _name ] [ "Nighttime" ] = Object . keys ( content [ user _id ] [ pathing _name ] ) . includes ( "Nighttime" ) ? content [ user _id ] [ pathing _name ] [ "Nighttime" ] : null ;
} else if ( time _status === "夜晚" ) {
content [ user _id ] [ pathing _name ] [ "Daytime" ] = Object . keys ( content [ user _id ] [ pathing _name ] ) . includes ( "Daytime" ) ? content [ user _id ] [ pathing _name ] [ "Daytime" ] : null ;
content [ user _id ] [ pathing _name ] [ "Daytime" ] = Object . keys ( content [ user _id ] [ pathing _name ] ) . includes ( "Daytime" ) ? content [ user _id ] [ pathing _name ] [ "Daytime" ] : null ;
content [ user _id ] [ pathing _name ] [ "Nighttime" ] = timestamp ;
}
@@ -290,15 +290,15 @@
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 _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 _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 _material = typeof ( settings . path _sort _material ) === 'undefined' ? "无(默认)" : settings . path _sort _material ;
let path _sort _material = typeof ( settings . path _sort _material ) === 'undefined' ? "无(默认)" : settings . path _sort _material ;
// 读取调试信息
let path _select = typeof ( settings . path _select ) === 'undefined' ? "无(默认)" : settings . path _select ;
let path _select = typeof ( settings . path _select ) === 'undefined' ? "无(默认)" : settings . path _select ;
// 调式模式
if ( path _select !== "无(默认)" ) {
@@ -418,9 +418,9 @@
// 时间调节
let fishing _time = "全天" ;
// 读取游戏模式(多人模式则禁用时间调节)[暂时不可用]
let check _multiplayer = typeof ( settings . check _multiplayer ) === 'undefined' ? false : settings . check _multiplayer ;
let check _multiplayer = typeof ( settings . check _multiplayer ) === 'undefined' ? false : settings . check _multiplayer ;
// 读取调试模式的时间
let path _time = typeof ( settings . path _time ) === 'undefined' ? "全天" : settings . path _time ;
let path _time = typeof ( settings . path _time ) === 'undefined' ? "全天" : settings . path _time ;
// 需要的鱼类
let fish _need = list _fish . filter ( item => path _msg [ "fish_type" ] . includes ( item ) ) ;
// 正则-全天出现的鱼
@@ -445,12 +445,12 @@
const is _nighttime = fish _need . some ( item => regex _nighttime . test ( item ) ) ;
// 调式模式不弹出未匹配钓鱼时间的报错
if ( ! is _daytime && ! is _nighttime && ( typeof ( settings . path _select ) === 'undefined' || settings . path _select === "无(默认)" ) ) {
if ( ! is _daytime && ! is _nighttime && ( typeof ( settings . path _select ) === 'undefined' || settings . path _select === "无(默认)" ) ) {
log . error ( "出错:未找到匹配的钓鱼时间" )
return null ;
} else if ( is _daytime && ! is _nighttime ) { // 只有白天的鱼
} else if ( is _daytime && ! is _nighttime ) { // 只有白天的鱼
fishing _time = "白天" ;
} else if ( ! is _daytime && is _nighttime ) { // 只有夜晚的鱼
} else if ( ! is _daytime && is _nighttime ) { // 只有夜晚的鱼
fishing _time = "夜晚" ;
}
// 昼夜都有则还是 全天
@@ -461,44 +461,57 @@
fishing _time = path _time ;
}
if ( auto _skip ) {
// log.info(`[DEBUG] 开始自动领取月卡`);
// 4点自动领取月卡
let time _now = new Date ( ) ;
let time _4 = new Date ( time _now . getFullYear ( ) , time _now . getMonth ( ) , time _now . getDate ( ) , 4 , 0 , 0 ) ; // 4点
// log.info(`[DEBUG] time_now: ${time_now}`);
// log.info(`[DEBUG] time_4: ${time_4}`);
let time _predict _end ; // 根据超时时间预测本次钓鱼结束时间( 加1分钟容错)
if ( fishing _time === "全天" ) {
time _predict _end = time _now . setSeconds ( time _now . getSeconds ( ) + time _out _whole * 2 + 60 ) ;
time _predict _end = new Date ( time _now . getTime ( ) + ( time _out _whole * 2 + 60 ) * 1000 ) ;
} else {
time _predict _end = time _now . setSeconds ( time _now . getSeconds ( ) + time _out _whole + 60 ) ;
time _predict _end = new Date ( time _now . getTime ( ) + ( time _out _whole + 60 ) * 1000 ) ;
}
// log.info(`[DEBUG] time_predict_end: ${time_predict_end}`);
// log.info(`[DEBUG] ${time_now < time_4} | ${time_predict_end >= time_4}`);
// 30s点击一次, 等待领取月卡
let step _flag = 0 ; // 领取月卡步骤标志
while ( auto _skip && time _now < time _4 && time _predict _end >= time _4 ) {
while ( time _now < time _4 && time _predict _end >= time _4 ) {
log . info ( ` 等待领取月卡(剩余 ${ Math . floor ( ( time _4 - new Date ( ) ) / 1000 ) } s)... ` ) ;
if ( step _flag === 0 ) {
// 传送到七天神像
await pathingScript . runFile ( base _path _pathing + statue _name + ".json" ) ;
await pathingScript . runFile ( base _path _statues + statue _name + ".json" ) ;
step _flag += 1 ;
}
await sleep ( 30000 ) ;
keyDown ( "VK_LBUTTON ") ;
await sleep ( 1 00) ;
keyUp ( "VK_LBUTTON ") ;
keyPress ( "ESCAPE " ) ;
await sleep ( 20 00) ;
keyPress ( "ESCAPE " ) ;
time _now = new Date ( ) ;
}
// 本次已经到达4点(5s容错)
if ( new Date ( ) > time _4 . setSeconds ( time _4 . getSeconds ( ) - 5 ) ) {
if ( new Date ( ) > time _4 . setSeconds ( time _4 . getSeconds ( ) ) ) {
await sleep ( 5000 ) ;
step _flag += 1 ;
auto _skip = false ;
}
}
// 领取月卡(点击两次)
if ( step _flag === 2 ) {
// step_flag = 0;
await sleep ( 5 ) ; // 补回容错时间
await sleep ( 5000 ) ; // 补回容错时间
await click ( 1450 , 1020 ) ; // 点击时间调节的确认按钮的位置
await sleep ( 5 ) ; // 等待月卡动画时间
await sleep ( 5000 ) ; // 等待月卡动画时间
await click ( 1450 , 1020 ) ;
await sleep ( 1 ) ;
await sleep ( 1000 ) ;
await click ( 1450 , 1020 ) ;
await sleep ( 1000 ) ;
await click ( 1450 , 1020 ) ;
await sleep ( 1000 ) ;
}
}
log . info ( ` 该钓鱼点的时间: ${ fishing _time } ` ) ;
@@ -595,8 +608,8 @@
let time _out _throw , time _out _whole ;
try {
// 读取超时时间
time _out _throw = typeof ( settings . time _out _throw ) === 'undefined' ? 10 : parseInt ( settings . time _out _throw , 10 ) ;
time _out _whole = typeof ( settings . time _out _whole ) === 'undefined' ? 300 : parseInt ( settings . time _out _whole , 10 ) ;
time _out _throw = typeof ( settings . time _out _throw ) === 'undefined' ? 10 : parseInt ( settings . time _out _throw , 10 ) ;
time _out _whole = typeof ( settings . time _out _whole ) === 'undefined' ? 300 : parseInt ( settings . time _out _whole , 10 ) ;
} catch ( error ) {
log . error ( ` 超时时间读取错误, 请检查JS脚本配置: ${ error } ` ) ;
return null ;
@@ -604,25 +617,25 @@
// 筛选路径
let path _filter = pathing _filter ( ) ;
// 读取要继续的路径
let path _continue = typeof ( settings . path _continue ) === 'undefined' ? "无(默认)" : settings . path _continue ;
let path _continue = typeof ( settings . path _continue ) === 'undefined' ? "无(默认)" : settings . path _continue ;
let is _continue = true ;
// 判断是否是调式模式
const is _con = ! ( typeof ( settings . path _select ) === 'undefined' || settings . path _select === "无(默认)" ) ;
const is _con = ! ( typeof ( settings . path _select ) === 'undefined' || settings . path _select === "无(默认)" ) ;
// 键鼠设置读取
const block _gcm = typeof ( settings . block _gcm ) === 'undefined' ? false : settings . block _gcm ;
const block _gcm = typeof ( settings . block _gcm ) === 'undefined' ? false : settings . block _gcm ;
// 战斗设置读取
const block _fight = typeof ( settings . block _fight ) === 'undefined' ? false : settings . block _fight ;
const block _fight = typeof ( settings . block _fight ) === 'undefined' ? false : settings . block _fight ;
// 鹤观设置读取
const block _tsurumi = typeof ( settings . block _tsurumi ) === 'undefined' ? false : settings . block _tsurumi ;
const block _tsurumi = typeof ( settings . block _tsurumi ) === 'undefined' ? false : settings . block _tsurumi ;
// 读取自动拾取设置
const auto _pick = typeof ( settings . auto _pick ) === 'undefined' ? false : settings . auto _pick ;
const auto _pick = typeof ( settings . auto _pick ) === 'undefined' ? false : settings . auto _pick ;
// 读取4点自动领取月卡的设置
const auto _skip = typeof ( settings . auto _skip ) === 'undefined' ? false : settings . auto _skip ;
const auto _skip = typeof ( settings . auto _skip ) === 'undefined' ? false : settings . auto _skip ;
// 读取垂钓点CD统计
let fishing _cd = typeof ( settings . fishing _cd ) === 'undefined' ? false : settings . fishing _cd ;
let fishing _cd = typeof ( settings . fishing _cd ) === 'undefined' ? false : settings . fishing _cd ;
// 读取终止时间
const kill _hour = typeof ( settings . time _kill _hour ) === 'undefined' ? "无" : settings . time _kill _hour ;
const kill _minute = typeof ( settings . time _kill _minute ) === 'undefined' ? "无" : settings . time _kill _minute ;
const kill _hour = typeof ( settings . time _kill _hour ) === 'undefined' ? "无" : settings . time _kill _hour ;
const kill _minute = typeof ( settings . time _kill _minute ) === 'undefined' ? "无" : settings . time _kill _minute ;
const is _time _kill = kill _hour !== "无" && kill _minute !== "无" ; // 判断是否启用
let time _target = new Date ( ) ;