Add files via upload
This commit is contained in:
85
repo/js/AutoNobushi/main.js
Normal file
85
repo/js/AutoNobushi/main.js
Normal file
@@ -0,0 +1,85 @@
|
||||
(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", { "forceInteraction": true }));
|
||||
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();
|
||||
})();
|
||||
14
repo/js/AutoNobushi/manifest.json
Normal file
14
repo/js/AutoNobushi/manifest.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"manifest_version": 1,
|
||||
"name": "野伏众(全流程+自选)[自动拾取]",
|
||||
"version": "1.0",
|
||||
"bgi_version": "0.39.1",
|
||||
"description": "脚本名称:野伏众(全流程+自选)[自动拾取]\n功能描述:包含全图野伏众自动追踪路径、支持自主筛选路径\n核心功能------------------------------>\n1.根据路径点包含的野伏众数量筛选,通过选择最小值和最大值确定区间\n2.支持手动排除不想刷取的区域\n3.每次路径执行结束后显示刷取进度\n注意事项------------------------------>\n1.在设置脚本配置的'限制路径点包含的野伏众数量'时,应当确保'最小值'小于'最大值'\n2.避免使用位移距离较大的角色,以免意外掉出路径(跳崖or跳水)\n3.设置中的'延迟启动'指的是脚本在开始执行前的等待时间,用于再次确认配置是否正确\n---------------------------------------->\n版本:ver1.0\n作者:提瓦特钓鱼玳师\n脚本反馈邮箱:hijiwos@hotmail.com",
|
||||
"authors": [
|
||||
{
|
||||
"name": "提瓦特钓鱼玳师"
|
||||
}
|
||||
],
|
||||
"settings_ui": "settings.json",
|
||||
"main": "main.js"
|
||||
}
|
||||
93
repo/js/AutoNobushi/settings.json
Normal file
93
repo/js/AutoNobushi/settings.json
Normal file
@@ -0,0 +1,93 @@
|
||||
[
|
||||
{
|
||||
"name": "path_restriction_min",
|
||||
"type": "select",
|
||||
"label": "限制路径点包含的野伏众数量:最小值",
|
||||
"options": [
|
||||
"0",
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "path_restriction_max",
|
||||
"type": "select",
|
||||
"label": "限制路径点包含的野伏众数量:最大值",
|
||||
"options": [
|
||||
"0",
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "path_restriction_NarukamiIsland",
|
||||
"type": "checkbox",
|
||||
"label": "排除地区:鸣神岛"
|
||||
},
|
||||
{
|
||||
"name": "path_restriction_Kannazuka",
|
||||
"type": "checkbox",
|
||||
"label": "排除地区:神无冢"
|
||||
},
|
||||
{
|
||||
"name": "path_restriction_YashioriIsland",
|
||||
"type": "checkbox",
|
||||
"label": "排除地区:八酝岛"
|
||||
},
|
||||
{
|
||||
"name": "path_restriction_SeiraiIsland",
|
||||
"type": "checkbox",
|
||||
"label": "排除地区:清籁岛"
|
||||
},
|
||||
{
|
||||
"name": "path_restriction_WatatsumiIsland",
|
||||
"type": "checkbox",
|
||||
"label": "排除地区:海祇岛"
|
||||
},
|
||||
{
|
||||
"name": "response_time",
|
||||
"type": "select",
|
||||
"label": "延迟启动时间(s)",
|
||||
"options": [
|
||||
"0",
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10"
|
||||
]
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user