部分js做出调整 (#869)

* js小怪锄地规划返厂了多用户功能,同时在用户没有调节任何自定义配置时给予警告

* js精英也做出修改

* fix: grouping defaults into array.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: 秋云 <physligl@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
mno
2025-05-19 00:41:56 +08:00
committed by GitHub
parent 3b57abcb5e
commit 29062f3262
7 changed files with 162 additions and 106 deletions

View File

@@ -6,11 +6,13 @@
const excludeHighRisk = !!settings.excludeHighRisk; // 默认值为false默认不排除
const weight = parseFloat(settings.weight || 2); // 默认值为2
const disableAutoPick = !!settings.disableAutoPick; // 默认值为false默认不禁用
const enableCooldownCheck = !!settings.enableCooldownCheck; // 默认值为false默认不启用
const disableCooldownCheck = !!settings.disableCooldownCheck; // 默认值为false默认不禁用CD检测
const accountName = settings.accountName || "一个账户名"; // 新增账户名,默认值为“默认账户”
const pathingDir = 'pathing/'; // 初始化pathingDir参数
const enableCooldownCheck = !disableCooldownCheck; // 如果 disableCooldownCheck 未设置或为 false则 enableCooldownCheck 为 true
// 初始化用于计数的变量
let outputFolderName = ""; // 初始化为空
let outputFolderName = accountName; // 初始化为空
let totalMonsterCount = 0; // 筛选出的怪物总数
let selectedRoutes = []; // 筛选出的路线数组
let successCount = 0; // 成功复制的文件数量
@@ -34,9 +36,28 @@
`${excludeWaterFree ? '排除水免(默认:不排除)' : '包含水免(默认)'}` +
`${excludeHighRisk ? '排除高危(默认:不排除)' : '包含高危(默认)'}` +
`权重=${weight}默认2` +
`自动拾取=${disableAutoPick ? '禁用' : '启用'}`
`自动拾取=${disableAutoPick ? '禁用' : '启用'}` +
`CD检测=${disableCooldownCheck ? '禁用' : '启用'}` +
`账户名=${accountName}`
);
// 检查是否所有配置都是默认状态
const isDefaultConfig = (
operationMode === "生成路径文件" &&
requiredMonsterCount === 1750 &&
!excludeWaterFree &&
!excludeHighRisk &&
weight === 2 &&
!disableAutoPick &&
enableCooldownCheck &&
accountName === "一个账户名"
);
if (isDefaultConfig) {
log.warn(`你没有修改自定义配置请在配置组界面中右键本js以修改自定义配置`);
}
// 验证配置参数
if (
isNaN(requiredMonsterCount) ||
@@ -52,9 +73,6 @@
return;
}
// 文件夹/文件名称,则使用默认规则命名
outputFolderName = `${requiredMonsterCount}${excludeWaterFree ? '排除水免' : '包含水免'}${excludeHighRisk ? '排除高危' : '包含高危'}权重${weight}`;
// 根据自定义配置,如果没有禁用自动拾取,则启用自动拾取
if (!disableAutoPick) {
log.info("启用自动拾取的实时任务");
@@ -62,7 +80,7 @@
}
// 判断操作模式是否为“执行路径文件”,若是则执行路径文件
if (operationMode === "执行路径文件") {
if (operationMode === "执行路径文件") {
try {
// 定义路径组文件的路径,使用 outputFolderName
const pathGroupFilePath = `route/${outputFolderName}.txt`;
@@ -76,7 +94,7 @@ if (operationMode === "执行路径文件") {
const now = new Date(); // 获取开始时间
const startTime = now.toISOString();
// 更新 runtime 变量
// 更新 runtime 变量
runtime6 = runtime5;
runtime5 = runtime4;
runtime4 = runtime3;
@@ -130,7 +148,7 @@ if (operationMode === "执行路径文件") {
} catch (error) {
log.error(`读取或写入路径组文件时出错: ${error}`);
}
}
}
// 筛选、排序并选取路线
const indexPath = `index.txt`;
@@ -174,10 +192,12 @@ if (operationMode === "执行路径文件") {
}
// 根据操作模式执行相应的操作
if (operationMode === "生成路径文件") {
const pathGroupName = `${requiredMonsterCount}${excludeWaterFree ? '排除水免' : '包含水免'}${excludeHighRisk ? '排除高危' : '包含高危'}权重${weight}.txt`;
if (operationMode === "生成路径文件") {
// 使用 outputFolderName 作为路径组文件的名称,并添加 .txt 扩展名
const pathGroupName = `${outputFolderName}.txt`;
const pathGroupFilePath = `route/${pathGroupName}`;
// 初始化CD信息的时间戳
const initialCDTimestamp = "::2000-01-01T00:00:00.000Z";
@@ -189,7 +209,7 @@ if (operationMode === "生成路径文件") {
await file.writeText(pathGroupFilePath, resultContent);
log.info(`生成成功,共计 ${selectedRoutes.length} 条路线,路径组文件已保存到 ${pathGroupFilePath}请将js自定义配置中操作模式改为执行路径文件以执行`);
} else if (operationMode === "输出地图追踪文件") {
} else if (operationMode === "输出地图追踪文件") {
const pathingOutDir = `pathingout/${outputFolderName}/`; // 输出文件夹路径
// 将选中的地图追踪文件复制到对应的输出文件夹
@@ -209,7 +229,7 @@ if (operationMode === "生成路径文件") {
log.info(`筛选完成,共计 ${selectedRoutes.length} 条路线。`);
log.info(`文件复制完成:成功 ${successCount} 个,失败 ${failCount} 个。`);
}
}
} catch (error) {
log.error(`读取路径文件索引文件 ${indexPath} 时出错: ${error}`);
}

View File

@@ -20,9 +20,9 @@
"label": "是否排除高危路线(默认:不排除)"
},
{
"name": "enableCooldownCheck",
"name": "disableCooldownCheck",
"type": "checkbox",
"label": "是否用刷新CD检测默认用)"
"label": "是否用刷新CD检测默认用)"
},
{
"name": "disableAutoPick",
@@ -32,11 +32,16 @@
{
"name": "requiredMonsterCount",
"type": "input-text",
"label": "所需怪物数量0-2000默认1800"
"label": "所需怪物数量0-2000默认1750"
},
{
"name": "weight",
"type": "input-text",
"label": "权重数值越大越强调效率而不是总收益默认2"
},
{
"name": "accountName",
"type": "input-text",
"label": "账户名,用于区分不同账号的信息"
}
]

View File

@@ -5,21 +5,47 @@
let selectTagsForPathGroup2 = settings.selectTagsForPathGroup2 || ""; // 路径组2选择标签
let selectTagsForPathGroup3 = settings.selectTagsForPathGroup3 || ""; // 路径组3选择标签
const disableAutoPickup = settings.disableAutoPickup || false; // 是否禁用自动拾取
const enableRouteCdCheck = settings.enableRouteCdCheck || false; // 是否用路线CD检测
const disableRouteCdCheck = settings.disableRouteCdCheck || false; // 是否用路线CD检测
const requiredMonsterCount = parseInt(settings.requiredMonsterCount, 10) || 405; // 目标怪物数量
const minSecPerMonster = parseFloat(settings.minSecPerMonster) || 0.1; // 最低秒均
const accountName = settings.accountName || "一个账户名"; // 账户名
// 新增全局排除关键词的配置
const excludeTagsForAll = settings.excludeTagsForAll || ""; // 全局排除关键词
const excludeTagsForAllArray = excludeTagsForAll.split('').map(tag => tag.trim()).filter(tag => tag !== "");
// 生成默认的文件夹/文件名
let outputFolderName = `${requiredMonsterCount}-${excludeTagsForPathGroup1}-${selectTagsForPathGroup2}-${selectTagsForPathGroup3}-${minSecPerMonster}`;
// 生成默认的文件夹/文件名,现在默认为 accountName
let outputFolderName = accountName;
// 日志输出配置信息
log.info(`配置信息:操作类型=${operationType}, 路径组1排除标签=${excludeTagsForPathGroup1}, 路径组2选择标签=${selectTagsForPathGroup2}, 路径组3选择标签=${selectTagsForPathGroup3}, 是否禁用自动拾取=${disableAutoPickup}, 是否用路线CD检测=${enableRouteCdCheck}, 目标怪物数量=${requiredMonsterCount}, 最低秒均=${minSecPerMonster}, 全局排除关键词=${excludeTagsForAll}`);
log.info(`配置信息:操作类型=${operationType}, 路径组1排除标签=${excludeTagsForPathGroup1}, 路径组2选择标签=${selectTagsForPathGroup2}, 路径组3选择标签=${selectTagsForPathGroup3}, 是否禁用自动拾取=${disableAutoPickup}, 是否用路线CD检测=${disableRouteCdCheck}, 目标怪物数量=${requiredMonsterCount}, 最低秒均=${minSecPerMonster}, 全局排除关键词=${excludeTagsForAll}, 账户名=${accountName}`);
log.info(`解析的全局排除关键词:${excludeTagsForAllArray.join(', ')}`);
// 根据 disableRouteCdCheck 的值设置 enableRouteCdCheck
const enableRouteCdCheck = !disableRouteCdCheck; // 如果 disableRouteCdCheck 为 true则 enableRouteCdCheck 为 false反之亦然
// 新增校验:检查所有配置是否都是默认状态
const defaultSettings = {
operationType: "生成路径组文件",
excludeTagsForPathGroup1: "",
selectTagsForPathGroup2: "",
selectTagsForPathGroup3: "",
disableAutoPickup: false,
disableRouteCdCheck: false,
requiredMonsterCount: 405,
minSecPerMonster: 0.1,
accountName: "一个账户名",
excludeTagsForAll: ""
};
const isAllDefault = Object.entries(defaultSettings).every(([key, defaultValue]) => {
return settings[key] === undefined || settings[key] === defaultValue;
});
if (isAllDefault) {
log.warn("所有配置项均为默认状态请检查是否需要调整配置你没有修改自定义配置请在配置组界面中右键本js以修改自定义配置。");
}
// 定义六个运行时变量,初始值分别为 2000、1000、0、0、0、0
let runtime1 = 2000;
let runtime2 = 1000;

View File

@@ -32,9 +32,9 @@
"label": "是否禁用自动拾取(默认不禁用)"
},
{
"name": "enableRouteCdCheck",
"name": "disableRouteCdCheck",
"type": "checkbox",
"label": "是否用路线CD检测默认不用)"
"label": "是否用路线CD检测默认不用)"
},
{
"name": "requiredMonsterCount",
@@ -50,5 +50,10 @@
"name": "excludeTagsForAll",
"type": "input-text",
"label": "全局排除关键词(使用中文分号分隔)"
},
{
"name": "accountName",
"type": "input-text",
"label": "账户名,用于区分不同的账户"
}
]