From 812f308c9761e1035ad5d0c4e8eb52cf6db74e0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=89=E5=90=89=E5=96=B5?= Date: Tue, 14 Oct 2025 18:57:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AF=B4=E6=98=8E=20(#2140)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add files via upload 优化说明 * Add files via upload --- repo/js/背包材料统计/README.md | 114 +++++++++++++++++++-------- repo/js/背包材料统计/lib/autoPick.js | 3 +- 2 files changed, 84 insertions(+), 33 deletions(-) diff --git a/repo/js/背包材料统计/README.md b/repo/js/背包材料统计/README.md index 24f12dbc1..f97d26d32 100644 --- a/repo/js/背包材料统计/README.md +++ b/repo/js/背包材料统计/README.md @@ -1,6 +1,36 @@ -# 背包材料统计 v2.5 +# 背包材料统计 v2.52 作者:吉吉喵 + + + ## 一、简介 可统计背包内养成道具、部分食物、素材的数量,并根据「设定目标数量」「材料刷新CD」自动执行挖矿、采集、刷怪等路径。 @@ -10,6 +40,7 @@ 2. **灵活路径管理**:支持自定义添加路径,自动排除低效/无效路径; 3. **独立名单识别**:不与路边NPC、神像交互;可自定义识别名单(操作见「四、问题解答」); 4. **实时弹窗保护**:内置弹窗模块(覆盖路边信件、过期物品、月卡、调查等场景),运行时全程保护路径不被弹窗干扰。 +5. **自动黑名单**:内置拾取模块,联动材料统计,可识别爆满的路径材料,自动屏蔽。 ## 二、用前须知 @@ -21,10 +52,12 @@ ### 3.1 基础教程(路径配置) #### 步骤1:订阅路径文件 在仓库中订阅所需的路径文件,参考以下截图操作: -- 截图1:![](assets/Pic/Pic06.png) -- 截图2:![](assets/Pic/Pic09.png) -- 截图3:![](assets/Pic/Pic11.png) -- 截图4:![](assets/Pic/Pic04.png) +
+ 订阅路径文件操作截图1 + 订阅路径文件操作截图2 + 订阅路径文件操作截图3 + 订阅路径文件操作截图4 +
#### 步骤2:复制路径到目标文件夹 1. 打开**路径源文件夹**(存放订阅的路径文件): @@ -42,7 +75,10 @@ ``` #### 步骤2关键注意点 -- 手动删除重复路径(例如“萃凝晶”可能存在多个重复路径,需手动清理),参考截图:![](assets/Pic/Pic01.png); +- 手动删除重复路径(例如“萃凝晶”可能存在多个重复路径,需手动清理),参考截图: +
+ 删除重复路径参考截图 +
- `pathing` 文件夹仅支持**3层子文件夹**,若超过3层需手动削减(否则无法读取); - 推荐优先配置「枫丹水下」路径:无队伍要求,但需提前开启水下锚点。 @@ -52,16 +88,22 @@ | 分组名称 | 适配队伍组合 | 适用场景 | 特殊说明 | |------------------------|-----------------------------------|---------------------------|-----------------------------------| | 背包统计采集组(生存队) | 迪希雅 + 芭芭拉 + 瑶瑶 + 草神 | 常规材料采集 | 无草神时,需批量搜索路径中“nahida_collect”并排除 | -| 背包统计刷怪组 | 火神 + 奶奶 + 钟离 + 万叶 | 挂机刷怪(获取怪物材料) | 确保队伍输出足够,能高效清理怪物 | -| 背包统计附魔材料组 | 钟离 + 芭芭拉 + 久岐忍 + 砂糖/班尼特 | 附魔类采集(需特定附魔) | 适配需附魔才能获取的材料路径 | +| 背包统计刷怪组 | 火神 + 奶奶 + 钟离 + 万叶 | 挂机刷怪(获取怪物材料、含战斗的采集) | 确保队伍输出足够,能高效清理怪物 | +| 背包统计附魔材料组 | 钟离 + 芭芭拉 + 久岐忍 + 砂糖/班尼特 | 附魔类采集(需特定附魔) | 根据材料路径需求选择附魔角色,有战斗则增加输出角色 | -分组示例参考截图:![](assets/Pic/Pic03.png) -无草神时排除路径操作参考截图:![](assets/Pic/Pic05.png) +分组示例与无草神排除路径操作截图: +
+ 队伍分组管理路径示例截图 + 无草神时排除路径操作截图 +
#### 步骤4:打开脚本自定义设置 -1. 找到「背包材料统计.js」文件; -2. 右键点击该文件,选择「JS 修改脚本自定义设置」; -3. 操作参考截图:![](assets/Pic/Pic02.png) +1. 找到配置组内已添加的「背包材料统计」JS; +2. 右键点击该文件,选择「修改JS 脚本自定义设置」; +3. 操作参考截图: +
+ 打开脚本自定义设置操作截图 +
### 3.2 JS 自定义设置(核心配置项) @@ -71,7 +113,7 @@ | 2. 优先级材料 | 无视“目标数量”限制,直接纳入执行序列顶层(最高优先级) | 填写当前急需材料(例:“虹滴晶”“巡陆艇”) | | 3. 时间成本 | 当一个路径有3-5次运行记录后,自动计算“单材料获取时间”;超过30秒则跳过该路径 | 保持默认30秒即可,无需频繁修改(可过滤低效路径) | | 4. 发送通知 | ① 每类材料跑完通知一次;② 全部材料跑完汇总通知一次(需开启BGI通知) | 建议开启,方便实时了解进度(接收端如企业微信需自行配置) | -| 5. 取消扫描 | 取消“每个路径执行后”的背包扫描,仅保留“全部执行前/后”2次扫描 | 路径记录足够多时开启,可节约运行时间 | +| 5. 取消扫描 | 取消“每个路径执行后”的背包扫描,仅保留“全部执行前/后”2次扫描 | 有效路径记录达3条以上时可以开启,可节约运行时间 | | 6. 仅 pathing 材料 | 仅扫描 `pathing` 文件夹内的材料,跳过其他分类,大幅缩短扫描时间 | 路径配置完成后开启,提升脚本运行效率 | | 7. 弹窗名 | 不填则默认循环执行 `assets\imageClick` 文件夹下所有弹窗;填写则仅执行指定弹窗 | 推荐默认,需单独适配某类弹窗时填写(例:仅处理月卡弹窗则填:月卡) | | 8. 采用的 CD 分类 | 仅执行 `materialsCD` 文件夹内配置的材料路径(支持新增CD分类txt) | 新增材料时,需在该文件夹同步配置CD规则(操作见「四、问题解答4」) | @@ -79,51 +121,59 @@ ## 四、注意事项 -1. **禁止联机请求**:联机请求会遮挡背包菜单,导致材料识别失败。建议在本脚本前添加「AutoPermission」权限设置JS(仓库可查),自动禁止联机; +1. **禁止联机请求**:联机请求会遮挡背包菜单,导致材料识别失败。建议在本脚本前添加「AutoPermission」权限设置JS(仓库可查),默认禁止联机; 2. **文件夹层级限制**:`pathing` 文件夹仅支持3层子文件夹,超过需手动削减(否则路径无法读取); 3. **食物识别强制要求**:背包食物界面**第一行必须包含8种食物**(苹果、日落果、星蕈、活化的星蕈、枯焦的星蕈、泡泡桔、烛伞蘑菇、美味的宝石闪闪),缺少则这些食物无法识别; -4. **关键文件备份**:定期备份 `pathing` 文件夹(路径文件)和 `pathing_record` 文件夹(路径运行记录),丢失后需重新配置/统计。 +4. **关键文件备份**:建议不定期备份 `pathing` 文件夹(路径文件)和 `pathing_record` 文件夹(路径运行记录),便于丢失后或记录被污染后恢复如初。 ## 五、问题解答 + ### Q1:如何排除不想要的路径? A:1. 打开 `pathing` 文件夹(脚本路径:`BetterGI\User\JsScript\背包材料统计\pathing`); 2. 直接删除/移走目标材料/怪物的路径文件夹; - 3. **注意**:不要将路径文件放入 `targetText` 或 `materialsCD` 文件夹(这两个文件夹默认全部读取,也会被更新覆盖)。 + 3. **注意**:不要将路径文件放入 `targetText` 或 `materialsCD` 文件夹(① 这两个文件夹默认全部读取,增加负担;② 也不安全,会被更新覆盖)。 -### Q2:如何增减识别名单? +### Q2:如何自定义识别名单? A:1. 打开 `targetText` 文件夹(脚本路径:`BetterGI\User\JsScript\背包材料统计\targetText`); - 2. 新建/编辑txt文件,按格式填写:`自定义名称:目标1,目标2`(英文冒号+英文逗号,例:“新材料:霜盏花,便携轴承”); + 2. 新建/编辑txt文件,按格式填写:`自定义名称:目标1,目标2`(英文冒号+英文逗号,例:“新材料:霜盏花,便携轴承,”); 3. 若需排除怪物掉落材料:找到“掉落.txt”,删除对应材料名即可; 4. 操作参考截图: - - 截图1:![](assets/Pic/Pic12.png) - - 截图2:![](assets/Pic/Pic10.png) +
+ 自定义识别名单操作截图1 + 自定义识别名单操作截图2 +
### Q3:如何识别不规范命名的路径文件夹(如“纳塔食材一条龙”“果园.json”)? A:将不规范的文件夹/文件,放入**适配的材料文件夹**中即可(路径CD由“所在材料文件夹”决定)。 例:“果园.json”放入“苹果”文件夹,将按“苹果”的CD规则执行。 -### Q4:如何识别自带CD文件中没有的材料(如新材料、新木头)? +### Q4:如何添加新材料? A:1. 打开 `materialsCD` 文件夹(脚本路径:`BetterGI\User\JsScript\背包材料统计\materialsCD`); - 2. 新建/编辑txt文件,按格式填写:`CD规则:材料1,材料2`(中文冒号+中文逗号,CD规则参考自带文件,例:“1次0点:月落银,宿影花”); - 3. **关键要求**:路径文件夹名、材料图片名必须与“材料1/2”完全一致(多层文件夹默认读取最外层同名文件夹); + 2. 新建/编辑txt文件,按格式填写:`CD规则:材料1,材料2`(中文冒号+中文逗号,CD规则参考自带文件,例:“1次0点:月落银,宿影花,”),`材料1`或`材料2`将会作为标准名; + 3. **关键要求**:路径文件夹名、材料图片名必须与“材料1或2”完全一致(多层文件夹默认读取最外层标准名文件夹); 4. 操作参考截图: - - 截图1:![](assets/Pic/Pic07.png) - - 截图2:![](assets/Pic/Pic08.png) +
+ 添加新材料操作截图1 + 添加新材料操作截图2 +
-### Q5:如何避免每次路径执行后都扫描背包? -A:在「JS自定义设置」中勾选“取消扫描”(仅保留“全部材料执行始/末”的2次扫描,节约时间)。 +### Q5:如何取消路径执行后扫描背包? +A:在「JS自定义设置」中勾选“取消扫描”(依旧会保留“全部材料执行始/末”的2次扫描)。 ### Q6:扫描背包少一行、拖动距离异常怎么办? -A:在「JS自定义设置」中调整“拖动距离”,直到“一次划页仅显示≤4行材料”(拖动点建议选第5行材料附近)。 +A:在「JS自定义设置」中调整“拖动距离”,推荐“一次划页稍小于4行材料的距离”(拖动点建议选第5行材料附近)。 ### Q7:本地记录保存在哪里? A:记录文件夹位于 `BetterGI\User\JsScript\背包材料统计\` 下,各文件功能如下: - `overwrite_record`:所有历史记录(按材料分类储存); - `history_record`:勾选“材料分类”后的专属记录; - `latest_record.txt`:最近几种材料的记录(有上限,仅存最新数据); - - `pathing_record`:单个路径的完整记录(含运行时间、收获量,需重点备份); - 操作参考截图:![](assets/Pic/Pic13.png) + - `pathing_record`:单个路径的完整记录(含运行时间、收获量,需重点备份),材料收集汇总.txt(始末差值记录),标准名-0.txt(0收获记录); + 操作参考截图: +
+ 本地记录存放位置参考截图 +
## 六、后言 @@ -157,4 +207,4 @@ A:记录文件夹位于 `BetterGI\User\JsScript\背包材料统计\` 下,各 | v2.41 | 修复“勾选分类的本地记录”bug;新增“仅背包统计”选项;补充记录损坏处理说明 | | v2.42 | 新增“无路径间扫描”“noRecord模式”(适合成熟路径);新增怪物材料CD文件 | | v2.50 | 新增独立名单拾取、弹窗模块;支持怪物名识别 | -| v2.51 | 自定义设置新增“拖动距离/拖动点”;新增月卡弹窗识别;路径材料9999自动黑名单;修复怪物0收获记录 | \ No newline at end of file +| v2.51 | 自定义设置新增“拖动距离/拖动点”;新增月卡弹窗识别;路径材料达9999自动上黑名单;修复怪物0收获记录 | \ No newline at end of file diff --git a/repo/js/背包材料统计/lib/autoPick.js b/repo/js/背包材料统计/lib/autoPick.js index 026a49b52..e0038dec1 100644 --- a/repo/js/背包材料统计/lib/autoPick.js +++ b/repo/js/背包材料统计/lib/autoPick.js @@ -192,7 +192,7 @@ async function alignAndInteractTarget(targetTexts, fDialogueRo, textxRange, text for (let targetText of targetTexts) { let targetResult = ocrResults.find(res => res.text.includes(targetText)); if (targetResult) { - log.info(`找到目标文本: ${targetText}`); + // log.info(`找到目标文本: ${targetText}`); // 生成唯一标识并更新识别计数(文本+Y坐标) const materialId = `${targetText}-${targetResult.y}`; @@ -204,6 +204,7 @@ async function alignAndInteractTarget(targetTexts, fDialogueRo, textxRange, text if (recognitionCount.get(materialId) >= 1) { keyPress("F"); // 执行交互操作 // log.info(`F键执行成功,识别计数: ${recognitionCount.get(materialId)}`); + log.info(`交互或拾取: ${targetText}`); // F键后清除计数,确保单次交互 recognitionCount.delete(materialId);