Files
提瓦特钓鱼玳师 8d5f34a2b8 JS脚本:提瓦特自动钓鱼【更新】+ JS脚本:野伏众 【修复】 (#429)
* 禁用鹤观、dpi限制、描述修正

* 更正拾取

* 禁用鹤观、dpi修复、描述修正
2025-03-12 22:33:59 +08:00

85 lines
6.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(async function () {
const raw_pathing = ['稻妻-野伏众-八酝岛名椎滩-11个.json', '稻妻-野伏众-八酝岛无想刃狭间东南方岸边-6个.json', '稻妻-野伏众-八酝岛无想刃狭间南方-4个.json', '稻妻-野伏众-八酝岛绯木村东北半山腰-1个.json', '稻妻-野伏众-八酝岛绯木村内蛇神之首左蛇骨矿洞左-16个.json', '稻妻-野伏众-八酝岛藤兜砦东略偏北岸边-4个.json', '稻妻-野伏众-八酝岛藤兜砦北-2个.json', '稻妻-野伏众-八酝岛藤兜砦崖上-6个.json', '稻妻-野伏众-八酝岛藤兜砦西-1个.json', '稻妻-野伏众-八酝岛蛇神之首东方-9个.json', '稻妻-野伏众-八酝岛蛇骨矿洞上方-2个.json', '稻妻-野伏众-八酝岛蛇骨矿洞东南-6个.json', '稻妻-野伏众-八酝岛蛇骨矿洞南崖下-4个.json', '稻妻-野伏众-海祇岛北方最远处浅滩-3个.json', '稻妻-野伏众-海祇岛北方略偏左-4个.json', '稻妻-野伏众-海祇岛曚云神社北方-4个.json', '稻妻-野伏众-海祇岛望泷村东北方河边瀑布边-4个.json', '稻妻-野伏众-海祇岛望泷村左侧崖上-2个.json', '稻妻-野伏众-海祇岛望泷村左侧崖下岸边-3个.json', '稻妻-野伏众-海祇岛水月池东南岸边-3个.json', '稻妻-野伏众-海祇岛水月池南略偏右-3个.json', '稻妻-野伏众-海祇岛珊瑚宫下火炬间-1个.json', '稻妻-野伏众-海祇岛珊瑚宫东北方-3个.json', '稻妻-野伏众-清籁岛天云峠东侧-8个.json', '稻妻-野伏众-清籁岛平海砦-11个.json', '稻妻-野伏众-清籁岛平海砦南方-3个.json', '稻妻-野伏众-清籁岛浅濑神社东-5个.json', '稻妻-野伏众-清籁岛越石村东方崖下-2个.json', '稻妻-野伏众-神无冢九条阵屋东南-9个.json', '稻妻-野伏众-神无冢九条阵屋西北-2个.json', '稻妻-野伏众-神无冢九条阵屋西崖下-3个.json', '稻妻-野伏众-神无冢九条阵屋西海岸-7个.json', '稻妻-野伏众-神无冢踏鞴砂东-5个.json', '稻妻-野伏众-神无冢踏鞴砂东南-7个.json', '稻妻-野伏众-神无冢踏鞴砂北岸边-3个.json', '稻妻-野伏众-神无冢踏鞴砂南方略偏东岸边-5个.json', '稻妻-野伏众-神无冢踏鞴砂南方略偏西岸边-5个.json', '稻妻-野伏众-神无冢踏鞴砂西崖上-2个.json', '稻妻-野伏众-鸣神岛刃连岛崖上-4个.json', '稻妻-野伏众-鸣神岛刃连岛崖下-13个.json', '稻妻-野伏众-鸣神岛白狐之野东南-1个.json', '稻妻-野伏众-鸣神岛神里屋敷东北-3个.json', '稻妻-野伏众-鸣神岛绀田村西侧和北侧-8个.json', '稻妻-野伏众-鸣神岛镇守之森东南-4个.json', '稻妻-野伏众-鸣神岛鸣神大社北岸边-2个.json', '稻妻-野伏众-鸣神岛鸣神大社北崖上-2个.json', '稻妻-野伏众-鸣神岛鸣神大社南侧瀑布下-2个.json', '稻妻-野伏众-鸣神岛鸣神大社西侧海岸-2个.json']
const areas = {
path_restriction_NarukamiIsland: "鸣神岛",
path_restriction_Kannazuka: "神无冢",
path_restriction_YashioriIsland: "八酝岛",
path_restriction_SeiraiIsland: "清籁岛",
path_restriction_WatatsumiIsland: "海祇岛"
};
const base_path = "assets/pathing/";
let pathing = [];
let minimum = typeof(settings.path_restriction_min) === 'undefined' ? 0 : parseInt(settings.path_restriction_min, 10);
let maximum = typeof(settings.path_restriction_max) === 'undefined' ? 0 : parseInt(settings.path_restriction_max, 10);
// 获取路径包含的数目信息未获取到则返回0
function get_pathing_num(pathing_name) {
const match = pathing_name.match(/-(\d+)个\.json$/);
return match ? parseInt(match[1], 10) : 0;
}
// 根据脚本配置筛选路径并显示配置
function pathing_filter() {
const ban_area = [];
log.info(`<--------当前配置-------->`)
// 检查并添加禁用的区域
for (const [key, value] of Object.entries(areas)) {
if (settings[key]) {
ban_area.push(value);
log.info(`地区:${value} <-已禁用->`);
} else {
log.info(`地区:${value} <-已启用->`);
}
}
// 过滤禁用的区域路径
let temp_pathing = raw_pathing.filter(path => !ban_area.some(region => path.includes(region)));
// 过滤路径的数量
if (minimum < maximum) {
temp_pathing = temp_pathing.filter(path => {
const amount = get_pathing_num(path);
return minimum < amount && amount <= maximum;
});
log.info(`单个路径限制个体数:(${minimum}, ${maximum}]`)
} else {
log.info("错误:未配置'最小值'和'最大值'或配置错误!");
log.info("单个路径限制个体数:不限");
}
return temp_pathing;
}
async function main() {
pathing = pathing_filter();
// 延迟10s启动
const responseTime = settings.response_time !== undefined ? parseInt(settings.response_time, 10) : 10;
log.info(`将在${responseTime}s后开始...`);
await sleep(responseTime * 1000);
// 总路径数
const pathing_num = pathing.length;
// 总个体数
let entity_num = pathing.reduce((total, p) => total + get_pathing_num(p), 0);
let pathing_count = 0; // 计数用
let entity_count = 0; // 计数用
for (const element of pathing) {
try {
log.info(`开始地图追踪:${element}`);
dispatcher.addTimer(new RealtimeTimer("AutoPick"));
let file_path = base_path + element;
await pathingScript.runFile(file_path);
pathing_count++;
entity_count += get_pathing_num(element);
log.info(`当前进度(地图追踪)${pathing_count}/${pathing_num}`);
log.info(`当前进度(野伏众)${entity_count}/${entity_num}`)
} catch (error) {
log.info(`地图追踪:${element} 执行中发生错误`);
}
}
}
await main();
})();