From 6e3500779fb455b576939ef83e0dfd9d5d2c7984 Mon Sep 17 00:00:00 2001 From: mno <718135749@qq.com> Date: Tue, 24 Jun 2025 00:33:42 +0800 Subject: [PATCH] =?UTF-8?q?js=EF=BC=9A=E8=87=AA=E5=8A=A8=E7=8B=97=E7=B2=AE?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=E7=89=881.4.3=20(#1182)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- repo/js/AutoArtifactsPro/README.md | 4 ++ repo/js/AutoArtifactsPro/main.js | 70 +++++++++++++++++++++++--- repo/js/AutoArtifactsPro/manifest.json | 2 +- 3 files changed, 69 insertions(+), 7 deletions(-) diff --git a/repo/js/AutoArtifactsPro/README.md b/repo/js/AutoArtifactsPro/README.md index 932cf622..e11f3368 100644 --- a/repo/js/AutoArtifactsPro/README.md +++ b/repo/js/AutoArtifactsPro/README.md @@ -129,6 +129,10 @@ 3. 在执行过程中,确保游戏窗口保持在前台,避免干扰。 ## 更新日志 +### 1.4.3(2025.06.23) +1.修复了添加老abe路线导致的程序无法正常运行 +2.优化了经验识别逻辑,运行前无狗粮时也能正确处理剩余经验 +3.添加了对于账户名等的默认配置和校验,减少用户乱填导致的出错可能 ### 1.4.1(2025.06.22) 1.维修部分路径卡死点位 2.目标点已设置好强制行走位拾取,队伍可以带治疗位 diff --git a/repo/js/AutoArtifactsPro/main.js b/repo/js/AutoArtifactsPro/main.js index 2282cc6e..251739a9 100644 --- a/repo/js/AutoArtifactsPro/main.js +++ b/repo/js/AutoArtifactsPro/main.js @@ -6,10 +6,10 @@ const DEFAULT_FIGHT_TIMEOUT_SECONDS = 120; await fakeLog("自动狗粮重制版", true, true, 0); //预处理 - const minIntervalTime = settings.minIntervalTime; - const waitTimePeriod = settings.waitTimePeriod; - const friendshipPartyName = settings.friendshipPartyName; - const grindPartyName = settings.grindPartyName; + const minIntervalTime = settings.minIntervalTime || "5"; + const waitTimePeriod = settings.waitTimePeriod || "4:05-4:45"; + const friendshipPartyName = settings.friendshipPartyName || "好感"; + const grindPartyName = settings.grindPartyName || "狗粮"; const operationType = settings.operationType || "不卡时间,ab交替运行"; let enemyType = "无"; @@ -43,8 +43,63 @@ const DEFAULT_FIGHT_TIMEOUT_SECONDS = 120; //处理记录文件路径 // 获取子文件夹路径 + const accountName = settings.accountName; - log.info(`当前账户名:${accountName}`); + + // Windows文件名非法字符列表 + const illegalCharacters = /[\\/:*?"<>|]/; + // Windows保留设备名称列表 + const reservedNames = [ + "CON", "PRN", "AUX", "NUL", + "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", + "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" + ]; + + // 检查accountName是否为空字符串 + if (accountName === "") { + log.error(`账户名 "${accountName}" 不合法,为空字符串。`); + log.error(`将终止程序,请使用合法的名称`); + await sleep(5000); + return; + } + // 检查accountName是否以空格开头 + else if (accountName.startsWith(" ")) { + log.error(`账户名 "${accountName}" 不合法,以空格开头。`); + log.error(`将终止程序,请使用合法的名称`); + await sleep(5000); + return; + } + // 检查accountName是否以空格结尾 + else if (accountName.endsWith(" ")) { + log.error(`账户名 "${accountName}" 不合法,以空格结尾。`); + log.error(`将终止程序,请使用合法的名称`); + await sleep(5000); + return; + } + // 检查accountName是否包含非法字符 + else if (illegalCharacters.test(accountName)) { + log.error(`账户名 "${accountName}" 不合法,包含非法字符。`); + log.error(`将终止程序,请使用合法的名称`); + await sleep(5000); + return; + } + // 检查accountName是否是保留设备名称 + else if (reservedNames.includes(accountName.toUpperCase())) { + log.error(`账户名 "${accountName}" 不合法,是保留设备名称。`); + log.error(`将终止程序,请使用合法的名称`); + await sleep(5000); + return; + } + // 检查accountName长度是否超过255字符 + else if (accountName.length > 255) { + log.error(`账户名 "${accountName}" 不合法,账户名过长。`); + log.error(`将终止程序,请使用合法的名称`); + await sleep(5000); + return; + } + else { + log.info(`账户名 "${accountName}" 合法。`); + } let subFolderPath = `records/`; let recordFilePath = `records/${accountName}.txt`; // 读取子文件夹中的所有文件路径 @@ -1213,7 +1268,10 @@ async function decomposeArtifacts(keep4Star, doDecompose) { if (settings.keep4Star) { log.info(`保留的四星数量: ${fourStarNum}`); } - const resultExperience = resinExperience + (settings.keep4Star ? 2520 * fourStarNum : 0); + let resultExperience = resinExperience + (settings.keep4Star ? 2520 * fourStarNum : 0); + if (resultExperience === 0) { + resultExperience = initialValue; + } log.info(`计入四星的经验: ${resultExperience}`); const result = { mora: recognizedText, // 将 recognizedText 赋值给 mora diff --git a/repo/js/AutoArtifactsPro/manifest.json b/repo/js/AutoArtifactsPro/manifest.json index dd931d00..dc93f501 100644 --- a/repo/js/AutoArtifactsPro/manifest.json +++ b/repo/js/AutoArtifactsPro/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 1, "name": "自动狗粮重制版", - "version": "1.4.2", + "version": "1.4.3", "tags": ["好感", "盗宝团", "愚人众", "鳄鱼", "兽肉", "狗粮"], "description": "通过不同好感任务卡时间后运行狗粮任务以提高狗粮总收益,需要正确配置好感队伍的战斗策略,并在自定义配置中指定好感和狗粮队伍名称", "authors": [