From fc39b8307da9e50971af8f07d379d3841cd72872 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=89=E5=90=89=E5=96=B5?= Date: Mon, 13 Oct 2025 08:14:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=BB=91=E5=90=8D=E5=8D=95?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=8B=96=E5=8A=A8=E8=B7=9D=E7=A6=BB?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=9C=88=E5=8D=A1=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E8=AF=86=E5=88=AB=20(#2129)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add files via upload * Add files via upload * Add files via upload * 背包统计2.51增加自动黑名单、月卡弹窗识别、自定义划页距离 + v2.51 自定义设置增加划页距离、拖动点,增加月卡弹窗识别,增加路径材料9999自动黑名单,修复怪物0收获记录 * Add files via upload * Add files via upload --- repo/js/背包材料统计/README.md | 220 +++++++++++++++------- repo/js/背包材料统计/assets/Pic/Pic01.png | Bin 0 -> 3698 bytes repo/js/背包材料统计/assets/Pic/Pic02.png | Bin 0 -> 8118 bytes repo/js/背包材料统计/assets/Pic/Pic03.png | Bin 0 -> 3126 bytes repo/js/背包材料统计/assets/Pic/Pic04.png | Bin 0 -> 6048 bytes repo/js/背包材料统计/assets/Pic/Pic05.png | Bin 0 -> 9876 bytes repo/js/背包材料统计/assets/Pic/Pic06.png | Bin 0 -> 6783 bytes repo/js/背包材料统计/assets/Pic/Pic07.png | Bin 0 -> 3101 bytes repo/js/背包材料统计/assets/Pic/Pic08.png | Bin 0 -> 6653 bytes repo/js/背包材料统计/assets/Pic/Pic09.png | Bin 0 -> 5763 bytes repo/js/背包材料统计/assets/Pic/Pic10.png | Bin 0 -> 15849 bytes repo/js/背包材料统计/assets/Pic/Pic11.png | Bin 0 -> 4355 bytes repo/js/背包材料统计/assets/Pic/Pic12.png | Bin 0 -> 3389 bytes repo/js/背包材料统计/assets/Pic/Pic13.png | Bin 0 -> 5185 bytes repo/js/背包材料统计/lib/backStats.js | 40 ++-- repo/js/背包材料统计/main.js | 117 ++++++++++-- repo/js/背包材料统计/manifest.json | 2 +- repo/js/背包材料统计/settings.json | 15 ++ 18 files changed, 296 insertions(+), 98 deletions(-) create mode 100644 repo/js/背包材料统计/assets/Pic/Pic01.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic02.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic03.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic04.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic05.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic06.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic07.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic08.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic09.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic10.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic11.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic12.png create mode 100644 repo/js/背包材料统计/assets/Pic/Pic13.png diff --git a/repo/js/背包材料统计/README.md b/repo/js/背包材料统计/README.md index e8a58af18..24f12dbc1 100644 --- a/repo/js/背包材料统计/README.md +++ b/repo/js/背包材料统计/README.md @@ -1,76 +1,160 @@ -# 背包材料统计 v2.5 +# 背包材料统计 v2.5 +作者:吉吉喵 -## 简介: -可统计背包养成道具、部分食物、素材的数量;根据设定数量、根据材料刷新CD执行挖矿、采集、刷怪等的路径。优势: -+ 1. 自动判断材料CD,不需要管材料CD有没有好; -+ 2. 可以随意添加路径,能自动排除低效、无效路径; -+ 3. 有独立名单识别,不会交互路边的npc或是神像;可自定义识别名单,具体方法看【问题解答】增减识别名单 -+ 4. 有实时的弹窗模块,提供了常见的几种:路边信件、过期物品、月卡、调查 -## 用前须知:要有一点的动手能力!该JS不提供路径文件,需要文件夹操作 +## 一、简介 +可统计背包内养成道具、部分食物、素材的数量,并根据「设定目标数量」「材料刷新CD」自动执行挖矿、采集、刷怪等路径。 -## 使用方法 +### 核心优势 +1. **自动CD判断**:无需手动关注材料刷新状态,脚本自动识别CD是否就绪; +2. **灵活路径管理**:支持自定义添加路径,自动排除低效/无效路径; +3. **独立名单识别**:不与路边NPC、神像交互;可自定义识别名单(操作见「四、问题解答」); +4. **实时弹窗保护**:内置弹窗模块(覆盖路边信件、过期物品、月卡、调查等场景),运行时全程保护路径不被弹窗干扰。 -## 基础教程 -+ 1. 仓库 订阅 所需路径文件; -+ 2. 打开路径所在文件夹BetterGI\Repos\bettergi-scripts-list-git\repo\pathing; - 把地方特产、敌人与魔物、矿物、食材与炼金四个文件夹复制到背包材料统计JS目录BetterGI\User\JsScript\背包材料统计\pathing中;最好手动去除重复多余路径;pathing下只能读取3层文件夹,如pathing文件夹下有4层或以上子文件夹,请削减到3层; -+ 3. 推荐根据队伍来把路径分组放置。比如 - 背包统计采集组,生存队:迪希雅 芭芭拉 瑶瑶 草神。适合一般情况下的采集; - 背包统计刷怪组,适合挂机输出的队:火神 奶奶 钟离 万叶,能够胜任需要刷怪的路径; - 背包统计附魔材料组,附魔队:钟离 芭芭拉 久岐忍 砂糖或班尼特,适合附魔采集; -+ 4. 找到背包材料统计js,右键 背包材料统计,选择JS修改脚本自定义设置; - -## JS的自定义设置 -+ 1. 目标数量,是扫描背包中材料数量,只有低于目标的材料,其路径才会被纳入执行序列; -+ 2. 优先级材料,是最高优先级,直接无视上述目标数量,纳入执行序列最顶层; -+ 3. 时间成本,在一个路径存在3到5次记录时,会计算时间成本,单个材料获取时间超过默认30秒的,则跳过; -+ 4. 发送通知,每类材料跑完会通知一次,全部材料跑完会汇总通知一次。需在BGI通知里开启,接收端企业微信的使用自行寻找; -+ 5. 取消扫描,是取消每个路径执行完的扫描;当大部分需要的路径都有足够多记录,就可以不需要新增运行记录,可以不扫描了,以节约时间;但全部材料执行始末会各扫一次,以汇总材料信息。 -+ 6. 仅pathing材料,是平衡背包材料统计和路径CD管理的选项;选择仅pathing材料,则直接无视下方勾选的材料分类,只扫描pathing文件夹已有的路径材料,没有的就不扫,以缩短扫描时间; -+ 7. 弹窗名,不填默认assets\imageClick文件夹下所有弹窗循环执行;弹窗模块会在背包统计运行时全程保护路径,防止弹窗影响路径执行; -+ 8. 采用的CD分类,不在materialsCD文件夹的不执行,这个文件夹可以按格式新增材料CD分类txt,只要背包材料统计的图库里有,路径所在的文件夹名正确,就能按CD执行; -+ 9. targetText文件夹里的是独立名单识别的名单,可以按随意新增txt,内容按格式,英文冒号前的名字也随便写;冒号后的文字会被当成目标来识别,不在targetText文件夹下不识别; -## 注意事项 -+ 1. 联机请求会遮挡背包菜单导致识别不到类别,建议在背包统计JS前加一个权限设置JS,以禁止联机; -+ 2. pathing下只能读取3层文件夹,如pathing文件夹下有4层或以上的子文件夹,请削减到3层; -+ 3. 推荐根据功能需求来把路径分组放置。复制多份背包材料统计,分别加上采集、刷怪、附魔材料后缀,用于管理一般情况下的采集路径、能够胜任需要战斗的路径、需求附魔采集的路径; -+ 4. 因食物部分图片未补足,为适配快速滑页,背包食物界面,苹果、日落果、星蕈、活化的星蕈、枯焦的星蕈、泡泡桔、烛伞蘑菇、美味的宝石闪闪,这八个食物必须有,且在第一行。不然这几个食物会无法识别; +## 二、用前须知 +1. 需具备基础电脑操作能力(如文件夹复制、路径查找); +2. 脚本不自带路径文件,需手动对目标文件夹进行操作(步骤见「三、使用方法」)。 -## 问题解答 -+ 1. 如果不想要某些路径怎么排除?直接进pathing文件夹,把该材料名或者该怪物名路径文件夹移走或者删除;切记不要把路径文件放入targetText和materialsCD这两个文件夹; -+ 2. 如果想要增减识别名单怎么做?直接进targetText文件夹,选择或者新建一份txt,名字随意,内容按格式,英文冒号前的名字可随便写;冒号后的文字会被当成目标来识别,用英文逗号分割;如果想刷某类怪,但不想要拾取其怪物材料,可以找到掉落.txt,删除不要的材料名; -+ 3. 如果想要识别不规范命名的路径文件夹怎么做?比如纳塔食材一条龙或者果园.json。方法:把纳塔食材一条龙文件夹或者果园.json丢进一个适配的材料文件夹里,CD要符合,因为CD选择是由所在的材料名文件夹决定;果园.json可以丢到苹果文件夹里; -+ 4. 如果想要识别自带CD文件中,没有的材料怎么做?比如新材料新木头;打开materialsCD文件夹,选择或者新建一份txt,名字随意,内容按格式,中文冒号前的名字也要按格式,具体参考自带的CD文件,如几点,几小时,几次0点;冒号后的文字会被当成目标来识别,用中文逗号分割;注意这个文字就是作为JS里的标准名,路径所在文件夹名和材料图片名都必须和它一致;多层套叠的文件夹会默认选择符合标准名的那个,如有同名套叠会选最外层那个; -+ 5. 如果不想要每次路径都扫描背包怎么做?具体方法看【JS的自定义设置】取消扫描; -## 后言 -本脚本目前处于测试阶段,欢迎反馈问题至 QQ频道号: bettergiv1。 +## 三、使用方法 +### 3.1 基础教程(路径配置) +#### 步骤1:订阅路径文件 +在仓库中订阅所需的路径文件,参考以下截图操作: +- 截图1:![](assets/Pic/Pic06.png) +- 截图2:![](assets/Pic/Pic09.png) +- 截图3:![](assets/Pic/Pic11.png) +- 截图4:![](assets/Pic/Pic04.png) -## 更新日志 -+ v0.1 OCR名单 输出图片名和材料名 -+ v1.0 图包(素材) -+ v1.1 图包(素材+养成道具) -+ v1.2 识图分类 -+ v1.3 加速寻找(前位材料识别) -+ v1.31 本地保存调整 -+ v1.32 新增后位材料识别 -+ v2.0 多组材料多个分类 开发版 -- v2.0 前、后位材料识别 -+ v2.1 CD管理版 -+ v2.2 路径顺序 材料数量优化 -+ v2.21 储存路径修改 -+ v2.22 精简log -+ v2.23 优化部分函数 -+ v2.24 修复不能空路径使用背包统计功能等bug -+ v2.25 当前、后位材料识别(加速扫描),新增只扫描路径材料名选项(内存占用更小) -+ v2.26 修复读取材料时间错误等bug,新增路径材料时间成本计算 -+ v2.27 修复计算材料数错误、目标数量临界值、"3"识别成"三"等bug -+ v2.28 材料更变时初始数量更新;正常记录排除0位移和0数量的路径记录(可能是卡路径,需手动根据0记录去甄别),新增材料名0后缀本地记录;新增背包弹窗识别 -+ v2.29 新增排除提示;调整平均时间成本计算;过滤掉差异较大的记录; -+ v2.30 更改路径专注模式默认值,加log提示;去除注释掉的调试log; -+ v2.40 优化背包识别时占用的内存;增加通知; -+ v2.41 修复勾选分类的本地记录bug,新增仅背包统计选项;如果本地记录已经遭到破坏。比如每条路径都产生大量材料名-0.txt,就只能手动清理或者删除本地记录pathing_record,重新跑; -+ v2.42 增加无路径间的扫描、无数量记录的noRecord模式,适合路径记录已经炼成的玩家。新增怪物材料CD文件,以支持轻度刷怪需求。 -+ v2.5 增加独立名单拾取,增加弹窗模块,这个2个是背包材料统计JS运行时实时运行。增加对怪物名的支持。 +#### 步骤2:复制路径到目标文件夹 +1. 打开**路径源文件夹**(存放订阅的路径文件): + ``` + BetterGI\Repos\bettergi-scripts-list-git\repo\pathing + ``` +2. 根据需求,复制以下类型的路径文件夹(按需选择): + - 地方特产 + - 敌人与魔物 + - 矿物 + - 食材与炼金 +3. 粘贴到**脚本目标文件夹**(背包材料统计的路径读取目录): + ``` + BetterGI\User\JsScript\背包材料统计\pathing + ``` + +#### 步骤2关键注意点 +- 手动删除重复路径(例如“萃凝晶”可能存在多个重复路径,需手动清理),参考截图:![](assets/Pic/Pic01.png); +- `pathing` 文件夹仅支持**3层子文件夹**,若超过3层需手动削减(否则无法读取); +- 推荐优先配置「枫丹水下」路径:无队伍要求,但需提前开启水下锚点。 + +#### 步骤3:按队伍分组管理路径 +建议复制多份「背包材料统计」脚本,按队伍功能分组存放适配路径,避免路径混乱。示例如下: + +| 分组名称 | 适配队伍组合 | 适用场景 | 特殊说明 | +|------------------------|-----------------------------------|---------------------------|-----------------------------------| +| 背包统计采集组(生存队) | 迪希雅 + 芭芭拉 + 瑶瑶 + 草神 | 常规材料采集 | 无草神时,需批量搜索路径中“nahida_collect”并排除 | +| 背包统计刷怪组 | 火神 + 奶奶 + 钟离 + 万叶 | 挂机刷怪(获取怪物材料) | 确保队伍输出足够,能高效清理怪物 | +| 背包统计附魔材料组 | 钟离 + 芭芭拉 + 久岐忍 + 砂糖/班尼特 | 附魔类采集(需特定附魔) | 适配需附魔才能获取的材料路径 | + +分组示例参考截图:![](assets/Pic/Pic03.png) +无草神时排除路径操作参考截图:![](assets/Pic/Pic05.png) + +#### 步骤4:打开脚本自定义设置 +1. 找到「背包材料统计.js」文件; +2. 右键点击该文件,选择「JS 修改脚本自定义设置」; +3. 操作参考截图:![](assets/Pic/Pic02.png) + + +### 3.2 JS 自定义设置(核心配置项) +| 配置项 | 功能说明 | 操作建议 | +|----------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------| +| 1. 目标数量 | 仅当背包材料数量**低于此值**时,该材料的路径才会被纳入执行序列 | 这是个统一值,管理路径下全部材料的目标数量 | +| 2. 优先级材料 | 无视“目标数量”限制,直接纳入执行序列顶层(最高优先级) | 填写当前急需材料(例:“虹滴晶”“巡陆艇”) | +| 3. 时间成本 | 当一个路径有3-5次运行记录后,自动计算“单材料获取时间”;超过30秒则跳过该路径 | 保持默认30秒即可,无需频繁修改(可过滤低效路径) | +| 4. 发送通知 | ① 每类材料跑完通知一次;② 全部材料跑完汇总通知一次(需开启BGI通知) | 建议开启,方便实时了解进度(接收端如企业微信需自行配置) | +| 5. 取消扫描 | 取消“每个路径执行后”的背包扫描,仅保留“全部执行前/后”2次扫描 | 路径记录足够多时开启,可节约运行时间 | +| 6. 仅 pathing 材料 | 仅扫描 `pathing` 文件夹内的材料,跳过其他分类,大幅缩短扫描时间 | 路径配置完成后开启,提升脚本运行效率 | +| 7. 弹窗名 | 不填则默认循环执行 `assets\imageClick` 文件夹下所有弹窗;填写则仅执行指定弹窗 | 推荐默认,需单独适配某类弹窗时填写(例:仅处理月卡弹窗则填:月卡) | +| 8. 采用的 CD 分类 | 仅执行 `materialsCD` 文件夹内配置的材料路径(支持新增CD分类txt) | 新增材料时,需在该文件夹同步配置CD规则(操作见「四、问题解答4」) | +| 9. 拖动距离 | 解决非1080p分辨率下“划页过头”问题,需调整到“一次划页≤4行” | 拖动点建议选“第五行材料附近”;大于1080p屏可适当减小数值 | + + +## 四、注意事项 +1. **禁止联机请求**:联机请求会遮挡背包菜单,导致材料识别失败。建议在本脚本前添加「AutoPermission」权限设置JS(仓库可查),自动禁止联机; +2. **文件夹层级限制**:`pathing` 文件夹仅支持3层子文件夹,超过需手动削减(否则路径无法读取); +3. **食物识别强制要求**:背包食物界面**第一行必须包含8种食物**(苹果、日落果、星蕈、活化的星蕈、枯焦的星蕈、泡泡桔、烛伞蘑菇、美味的宝石闪闪),缺少则这些食物无法识别; +4. **关键文件备份**:定期备份 `pathing` 文件夹(路径文件)和 `pathing_record` 文件夹(路径运行记录),丢失后需重新配置/统计。 + + +## 五、问题解答 +### Q1:如何排除不想要的路径? +A:1. 打开 `pathing` 文件夹(脚本路径:`BetterGI\User\JsScript\背包材料统计\pathing`); + 2. 直接删除/移走目标材料/怪物的路径文件夹; + 3. **注意**:不要将路径文件放入 `targetText` 或 `materialsCD` 文件夹(这两个文件夹默认全部读取,也会被更新覆盖)。 + +### Q2:如何增减识别名单? +A:1. 打开 `targetText` 文件夹(脚本路径:`BetterGI\User\JsScript\背包材料统计\targetText`); + 2. 新建/编辑txt文件,按格式填写:`自定义名称:目标1,目标2`(英文冒号+英文逗号,例:“新材料:霜盏花,便携轴承”); + 3. 若需排除怪物掉落材料:找到“掉落.txt”,删除对应材料名即可; + 4. 操作参考截图: + - 截图1:![](assets/Pic/Pic12.png) + - 截图2:![](assets/Pic/Pic10.png) + +### Q3:如何识别不规范命名的路径文件夹(如“纳塔食材一条龙”“果园.json”)? +A:将不规范的文件夹/文件,放入**适配的材料文件夹**中即可(路径CD由“所在材料文件夹”决定)。 + 例:“果园.json”放入“苹果”文件夹,将按“苹果”的CD规则执行。 + +### Q4:如何识别自带CD文件中没有的材料(如新材料、新木头)? +A:1. 打开 `materialsCD` 文件夹(脚本路径:`BetterGI\User\JsScript\背包材料统计\materialsCD`); + 2. 新建/编辑txt文件,按格式填写:`CD规则:材料1,材料2`(中文冒号+中文逗号,CD规则参考自带文件,例:“1次0点:月落银,宿影花”); + 3. **关键要求**:路径文件夹名、材料图片名必须与“材料1/2”完全一致(多层文件夹默认读取最外层同名文件夹); + 4. 操作参考截图: + - 截图1:![](assets/Pic/Pic07.png) + - 截图2:![](assets/Pic/Pic08.png) + +### Q5:如何避免每次路径执行后都扫描背包? +A:在「JS自定义设置」中勾选“取消扫描”(仅保留“全部材料执行始/末”的2次扫描,节约时间)。 + +### Q6:扫描背包少一行、拖动距离异常怎么办? +A:在「JS自定义设置」中调整“拖动距离”,直到“一次划页仅显示≤4行材料”(拖动点建议选第5行材料附近)。 + +### Q7:本地记录保存在哪里? +A:记录文件夹位于 `BetterGI\User\JsScript\背包材料统计\` 下,各文件功能如下: + - `overwrite_record`:所有历史记录(按材料分类储存); + - `history_record`:勾选“材料分类”后的专属记录; + - `latest_record.txt`:最近几种材料的记录(有上限,仅存最新数据); + - `pathing_record`:单个路径的完整记录(含运行时间、收获量,需重点备份); + 操作参考截图:![](assets/Pic/Pic13.png) + + +## 六、后言 +本脚本目前处于测试阶段,欢迎反馈问题至 QQ 频道号:bettergiv1。 + + +## 七、更新日志 +| 版本号 | 更新内容 | +|---------|--------------------------------------------------------------------------| +| v0.1 | 新增OCR名单功能,输出图片名与材料名 | +| v1.0 | 新增图包(仅含素材) | +| v1.1 | 图包扩展(素材+养成道具) | +| v1.2 | 新增识图分类功能 | +| v1.3 | 优化:加速材料寻找(新增前位材料识别) | +| v1.31 | 调整本地记录存储逻辑 | +| v1.32 | 新增后位材料识别功能 | +| v2.0 | 开发版:支持多组材料、多个分类;移除前/后位材料识别 | +| v2.1 | 新增CD管理功能 | +| v2.2 | 优化路径顺序、材料数量判断逻辑 | +| v2.21 | 修改路径储存路径 | +| v2.22 | 精简日志输出内容 | +| v2.23 | 优化部分函数性能 | +| v2.24 | 修复“空路径无法使用背包统计”等bug | +| v2.25 | 恢复前/后位材料识别(加速扫描);新增“仅扫描路径材料”选项(降低内存占用) | +| v2.26 | 修复材料时间读取错误;新增路径材料时间成本计算功能 | +| v2.27 | 修复“材料数计算错误”“目标数量临界值异常”“3识别成三”等bug | +| v2.28 | 材料变更时自动更新初始数量;排除0位移/0数量路径记录;新增材料名0后缀本地记录;新增背包弹窗识别 | +| v2.29 | 新增排除提示;调整平均时间成本计算逻辑;过滤异常值记录 | +| v2.30 | 更改路径专注模式默认值;增加日志提示;移除调试日志 | +| v2.40 | 优化背包识别时的内存占用;新增通知功能 | +| v2.41 | 修复“勾选分类的本地记录”bug;新增“仅背包统计”选项;补充记录损坏处理说明 | +| v2.42 | 新增“无路径间扫描”“noRecord模式”(适合成熟路径);新增怪物材料CD文件 | +| v2.50 | 新增独立名单拾取、弹窗模块;支持怪物名识别 | +| v2.51 | 自定义设置新增“拖动距离/拖动点”;新增月卡弹窗识别;路径材料9999自动黑名单;修复怪物0收获记录 | \ No newline at end of file diff --git a/repo/js/背包材料统计/assets/Pic/Pic01.png b/repo/js/背包材料统计/assets/Pic/Pic01.png new file mode 100644 index 0000000000000000000000000000000000000000..5da22ed6bcbb1004c6113db416c5f2224dcf56fb GIT binary patch literal 3698 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 literal 0 HcmV?d00001 diff --git a/repo/js/背包材料统计/assets/Pic/Pic02.png b/repo/js/背包材料统计/assets/Pic/Pic02.png new file mode 100644 index 0000000000000000000000000000000000000000..577d37399650fa9aebede1a0b9697cafade71b54 GIT binary patch literal 8118 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 QqyPW_07*qoM6N<$g2cu8od5s; literal 0 HcmV?d00001 diff --git a/repo/js/背包材料统计/assets/Pic/Pic04.png b/repo/js/背包材料统计/assets/Pic/Pic04.png new file mode 100644 index 0000000000000000000000000000000000000000..77f36940af4ba73a11f7f90887c702dc750253fb GIT binary patch literal 6048 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%0Diwt!Qp7T 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 literal 0 HcmV?d00001 diff --git a/repo/js/背包材料统计/assets/Pic/Pic05.png b/repo/js/背包材料统计/assets/Pic/Pic05.png new file mode 100644 index 0000000000000000000000000000000000000000..e3eba03c6f107edf4164ffd7cf64ad95ef365189 GIT binary patch literal 9876 zcmaKScU)6Xvo}qu6sammCxFshq(kT>bd+8bBq#~JO9v^^doMyD2vS6822gsD7En4! z4@eIJ(q4Ygz0bYxAMf*?&wkFC-81vu+1;75GoL-N26`Hl#jiB}rfA;~X93CDaC(Ojm z%M7e5tT<0sGgFI<^h`k!WDPWFGX zc)gV8{4b@#9vqll;|yOflWsDz}Hl&Ao^n24yDu*hwZ5)_q?k(81V z1G4}3#d+JC2gFInNLBs6`?{^kb2@u@xyc9%`}+C{`HBl6JYEQkN=r-sgCQm+c*`N^ z=@0j^_Y;JBa{U`Y73%5e0dw<$A>i!)Alf@1yuIW(Z#Dg|A-KBz4=mjCzo+ST!i4?o z-GoJjME)7lzZt>c|39m%>;G_jdKp3gSKt39u&0T?8&uc`>WT37aJ*eOC$4|Ga+6W< zfZBT@JWLRXSO1VH%%R>HF z7W5xw|1kwux7(gop&l?FC`8=@;mZE6Aofo12@pwY8$c0+77wJ|)9o z6m)Fs6f-f7{fWg21XtI)Y2=z2$hsYuU9Nc{N6f^2i4t67t_ktU=wu81cFGe#p(1zel2;J zodlTz-f0TG;C$xqStZ4iNiXj3QWQJy-z!G;JU3cvL>S`EWMq$JniT~;%4XCTWjLoB z^oT{W6qY5W2Rwm)!wq>PNl4N?6#n@!{()QylDOnW+ay296>-iFaviV}1yY8%84np= zri&@Ar5L7`dfeeg2UiJUtd2?fVY7^U#%V+nOX(AsT2)i)L$VMm0+;eOMWU(IZ z;!t8f?UyXKocd`vXOr$RSz4N?7V0zIR42Cq9Y!@LSh~WGKD#V$tJ?UC%2PSq+1P72 zdsZ^r3Ee;JvU#fb5uq*M4hAx-UFCEo#wpB9>|jQ#@D*P{$xgX#e>@Dz)SC`;V3F#S zo0v-fF<<7iVCn&h5SGaDU*!0ktEoKf>OfATT5Nf&y!4ss9o2rlPZUcahsSvL{!p*h z4IliR@tEmidRH*S)B1$Tw$e6`BeTc)=P28*1wHp8xXIGmAMkENy(zE$RxQ)f(i!e@ zwgGkZ&JXpQjmAj-f8-AbIPG$J?PZg`I0(dc3 ziI+=UiF$z9ic_0m3HfB*3*6$aof!DMoy6At_VqwIbkwhjZMFp~3TdsSvKIq4?jT9r zFz5js4P0#Bqw+fyp0w4>0il@d!{(Dd{|&%=i+E1|7ZT6ZL)fZlWh2y=g6`XbcgHZ~ zul{n<=>`&5Uy$&}6mk9lGSPR??HOXxtcAGWa#EXyl8xV5;!a!I;CUaRYpL$I)cC0P zLZ0`R(TtK-vYEfo~{ zLGs?iU_lq6t2AQ0k6g1<^JP*V7{-##&9MhJ$Tb)lgSW(4PDXFQg2Z??~= zCC)|#(Vsg%TgWK90}&C`j`IV-K`x*0Ts$bgx;ASS>*I9O+iMIs{2 zf&JLQ?B2-OaQqF#Z?G6aaeVko-EiWHv?r_rXavdxtXie&DM4wn?V+x>%v5}!3@|XJ zBqn5~W}l&9=-l{mNOn-{Ed#V9>R1PSH3M7|7*`M5jk1K33wq zjxSKg3yVDh)RX_VUL=_OCNBaYW)jGa+U!ldj>-E{P5C5C^zx6>9XYuzq$^0+mOhE~ zeZDlxU*uj0XqiLsNAYF_XJ;p%pqLTffD1K)qEx1G*Hm;>1^1o7bAkQ3BvJAQ>dG6=dNPp!R2VcHacimGDI;(*z{tpn%iF_ zBDqIHTkeE`zAuB8tlnQ?Vyi7CLgihP=1Pr6EtKC?=@&;JczhMvs@n(?KeY!VOr1z-Z9k1PqsJz zV?LHfB--yuamC?sry;is-kOqcVPdE|rON7x-tS4KkiHX*ZkY*Sp+E zRi36WVnKYPg}F=||Km--0+9*-DDzNZbXi8PFZooc6~%zpWA>q8u-ub|fSlKny4l=r zX>T(_{PFCe=D(^%5=8K~Al1rF30r_ZxiuaVj`PWK8Jp+X%9Ws6uFe?IhD*|O+&-lcEm;(A5fJ+gs^ba!=Z3ZFf@{aQcA zTbJ+cJfHgmHVrM$HW2UW7PoU@CiV}7nw$xmZ;dY_wdI6aKNc0!`BAY*WZ@T29Cg5b z?R(#(#NcO8Dh3`t-=G<%Ch}3<68V;AVkvTa8Ndp6g0F-G2O24HJf5zh^47%JP4rGin{g8q|%ez@I|k{fgf;sar`lq+dY@$nRHb z$XzZI&8LXtBb3AwWPnp6y);I3zb1yk;V*jU0V&FKk&Q5GPEg$u!2uqRZ18;C+7v`C zB4gxL&(e_Zw7_t<)LkM-<3Lmno$)5%jqSaFZ}nF=sBq+(4s2YLCaBoLyhMETcb?GT zml^hs<-(oTSVfvl`4HRno|Ts#(Q59_1@Tv8Ijn0Kin?|cU%@~CC&hzrm**zkR*Y@& zfN_0?q=cl=K>jjw8sw64BL6QykkUMg%sj4>GhVK5C-t}gdFx2MI#iiHb%^;*@pb259P8wTIsLnD}aJ8Tg&~S z)#HPWM>=CsewEXmOUAd0tP4Qk5;tF zZZupxd;jpb;LW_P$cIrZ^5fAkTTh#IuFV--Z~6 zi>=t^+>w`y{eX=P#OGgIPtmTiA}%eyK^l(|w(&$}ORo0`@aEhDeDjP+(XwpR->~C- zJYnPDd9Rz*d-pxWihN()9GzSDrM4o|mW$04(!QA#Bo?Ar~7lANLP8VFN8T0!ls4wKyyW5sK050~S* zZ6C3#@H`O9C$+GqDnJRnO^OJBZIUyrx`%s&VMJ7466=H%Wb)d)ICs!>m)}^}R`PW)b-}nvTiFosOsc}6dbH7Bw zY-w?vJ>#GjK0hztiWFWZoY?%Aj+X0qSwQRp%8^CZi=_BYG24ZiGW_1b7SzqSz;-(I zlazd#%+bcBYW2|(aY}>@(1L{c?h>$Yc9&g*b6OH%zo9Dpff(=fO*#Ev}P=+JkS3iIU~Hob%uJNqiLNx(S+(KK z7BYg&&?K;m>~LnJv>lO~!XA#2g%D9`tW;(5jsL<0IeE9G!A`Ne^SCQt#KO{nfH=}U~7j*Q~_+tRn-9#Hh0faOh~OpZ_fV)VQDdb>&e zYoEy-WY_ELv12yhn7*E?(yD8tlPiPks}0?XHp>8PS0WtLJa>m7su6b5;uQ%GUB(3~r*yk4ElYe2+>Kzk}rFNKQ31juX zC*9O#BRc8Z#ym|qMLtD~NQB7ZmQ1e1ZuMXvgSk*=YUKfnf7A60fu59>rH&-KMz2$q+NlBK8 z$|DKv+AGZN1(Lnzx53;9J!(9Pfcg5q{%Om+m*aqAC|UMPJFGO1+9;oZL$$@+j#7?| zf`~t3fXJ>BnU(-fMy6qNY)KUm5w85bI5&QihlarvrWlCF8&U;tbzSO?Fyu>Y;Xl8P z03+2;iOcN){QW(?54FOo<5s3S#kUvTKl22ejV&}?c1{evW0Ebd)fJFvFL2E?G&tz; z#t1f6d7gj4)0xwMMPH_+$|g?HnowX5oZO5*yy%Dis+_3mIZtRs zsaVxN_834t=aC@L$q|fA`UP-|DU}`vTb>UnPE`OuQH>r0ylGnOnm|OL#-QA>h`6&7 z_{86f#oB9t%aSV6#+&Nk3&<@*i7H&~^7Rq9$~C{2_6u*!sn}={KS{{mjBxGIi=Do} zdfew7z;={k7*axWtdsbzDFyyI+q^0pGbBrDE-$w6k2y<>301|Q8t1t}>P?Lm8_ycnf}zskCFFG$&?_ZqQ@0ju+`mgofen zk2njx)P^v$X6&C9?@JISe}OjzJ{A!6q}$>CO6Bi(#xzAWu5w@RL#R!om!&l*8Fh3r zVdVmilgaB+k=(A*G{}y^XN=^+3RM=S!2<`uyp_>&H?x|}N{p24@01<~4jMC=O#Hs6 zo;=R-N~=rD*xTS38J?ZPs`G-9nZjDZTP5haF{sOyzr}NEb7DPb`yq;w60D%b*WU2< z)}w+#zGEkNYeYd-;8p)qZEvmj(8=BKtsRiCYa@;d5z)**$BPcEbqsGjM+= zkRQ3gWwiVdwS;XAF8=u5UYo*SGQz~{1vVpVvjQ0@Z$no2G54o721}}yw*WfA9}A`> zsY^mx6$Mu9du&`?D(zzbj1GeZVD`>9F?fi}*2#XEe9CaB!V%~av<-G|NTpC2yWq~g zT)b=&nE~Lk&@m#GDY3~T_I7>=4TA)zwhKs+?ThQ zQBc{&PJVp155?BEKxKg7cT7^+>a&Zdj0J-;-;{zk0Y!`N9ck&4CIk+ zp+tY9T)sEmlIJH+DzAG+Yi)usqp^R31@j9Pz0p;u&CGIwq~?50i&n1b6wC~F zy)iTFO;~d#cbf*il;0A&ESfX<(C7=lVXetC45TINhz`vM2w>4|xQ62N++rr2^bXi!VTA9;G`r)Ks3DSc++GNYC+LnL? zp#wN^X~jw`MzROm{it^bNpSerT4=Oy0&p=5lD_2q5-s_i?qBul)zZUjYpkUDZ7-gq z?*X-v(c1g>i858=&IdlHlNN-4o?K=Orz3@Mq{@zB%JZG-c^@GY`$OPb$K;UM#fPxj zGUGQEs+fg+0gPNfQOQqT37cjzFqY;`BYG;$r^o^11rI3kIIPHICAXI$Yap@X&=r|D zfBbGTv~eOe*G^0Jnf5msJg6C0H#F^_dMxlZ2^CgD*b=IYs9P>A7s zx4%xPK;LU=LrNJQjqywpO}>4Id?be%yt9Cln)l)exCo+_{@ylc4=BFNGFVyM=BOqt zNWKiPJqm9*aI-FU9+r5B^mi5t8?jPCx8ExmQAOC|t6Yzf?lD^g>}>6JFd+hTboT9A zv7kHWn7Urf3i#F~GTH`3@X+D>m(Qsg))0&V)a%Hmxg~|rJOcq%n&<6ge1my5+FRJu z1>k}y5bRk1Nei7g7Tj&c!f(qn=4Vghy1Hb?h|g{==&>Dx=&5~-u|k)$CS+@`mFx+=9>EWN);yEk71z1B^Mj;&0f^&c1`5Ny9QK+V5$RS7 z$CpBE%~);zjZga2TgK=2LLPzY_?d{ZmSyA6R4tJ&Bhs5P4UJ2|1%`?$z=hZXizn~~ zl=fUyWt8sEozuct;0Zl;Hk`XJTdX{J`CjUuZQ8lYZ=OHC+q55PK_-$KabFroMbKhF z66K}cAy1k}(W`#O8AJ~vs3=g(+(KLtRmK`e$OGGzmc|ra%j5XMyuRQWio-yz{p8{6 za)ZmMEbF&GQ?gnv3RFh1AstA0slH%8dWWIL$VA7e=AxS|_;p~Qtk5HyomWG2%p`@!vUDv_C~ zgUdW50bL@cI;QoCVUM*BXeZ;%&YW*Cdb#A3b0#jmrH&V8mU~k ze)@}U`lG(#;1u(K;rmpLnv2D{<6`{2z&g&6Niyq|F;Csrj+VLdMGtY2wKQIpd^ku{n9*F|3e;*TIoudhAEU>7U)BwmjMWfVF1b zC^NRZJ03WGK#rOBkoe=iDY^1}1=~C?Yd4o}PgvU6djlEvWJs}tlqCxUWEw^`Q((<3sr8pwD_Kw& zdu;r>HaQ4Z27Y&#P^PTq1F!hB1JZ9;4YPWmNj1~fv<@^Z-Qx?8%xAszSPcdjIy519 zF|j5CEB#`B4d>$|Ye~uyrV5)$ji)3RyLyHPInFGNfu6(8N(9N@S{(?K_r8-AC%<>7 zT=|5&vh$4>`dS-<32c62MOz%DHqE+4ttu9lm(1Z>;F~HUZ;p}(WrdR+Q!Bg#pJsK% z#=p@809?YidXF*Rz!OA7Kb<}&05`v}2^<|R-Moa93Jr88FH5IeXur}^eQ7ul@iPRE z(!DPwI$Ln{j;UVNb<9+f6&L^SCCE@s+nqtkN(%7{0}|q&LfXv(@Fl6DCfqf@n4uJz z)+jpejmDt7sTpteTJqeUuClKg=J*{Yf{3;wTpHgy?SM9Ix>dYc`- zp?7(`awV&@cY>lf-j=ofRV%l4b2n%4b6?lcZXW9c^wgUl>}5;aPjlZ|-KGYjIyD`* z&3I_+Vz5?gB=4+iuHM&)@Z740Rp!`p9i@0F{WtejwI9D%$naR0qhjsp91rJ^ndD1y_tQxsmk!SSXBkz?z z{QT!_Hx2{|e>eSgVe741V0?%=;BToybh*aEax(mbT=tBI-W(b(Yswf(aZM5(;X&D; z7LyFCGj1OR?MND>FS%Qv`X_5_ltb2tF}&B(z(*R0Cw6LrQW4HR9Qm*0#eLn<+`bB4 zAg6j@?UVB?r6*AXPVqZ@G5!`d-I0E+ea=xFO#NLf=$en1PX9U+C!;8LbtWl)t9DpH zQDpRSkbB=Bd7*VoF$D)wnIgxgtO!ey0>iv|Uu$+&WZAO6IvuEx^QXP3s1Gcg<0E!^ zraW+aC{&;;3;Y+E2IIwad8M85Yb4;4DLUUt)?y_w6ORVU z#_o%2cj;nTV~DGyBw>hoG%|!_-0wC;%86am+pWPjET`k){3Xa_Tb?mYlp`{xvo|K+ zKj{wA$zbfxmg{)(WwpMdkOL~%E$X98c|+HsF|SJU+33@{6Bp=(y&X}0zS{JwxI6xX z2d6qx=d}Z>m0hIG83NP-(c#79M&D_da>``AGYTgQbYJ5-4(61dZ?_$@bZ3o*4tyU( zcVTNMw&zdY5L)Q{mFwkL?eF_vX-ifs?(v0J(}r@gJ3jGn!rEr|K3QmNO-lf=ne;t- zme@~IsQ!LtBiWNcB6D&mzT=G-DNqoyJ(K6`@NGrNw5;UF`9da2hr{Z`vl5 zASv3&0kG1d+}*;{{=k1Q^=+IUqT>hl3A_sF>8yI^C6`+76QhztExXMgyBlSleKBDD z*Pe$#9yXid!{b8JV&S>mC183gBM1Jao(b7xm|g#R4PG}_QI55E=?4$M_z0K;PJ92C zNpf+_z|I*}EYO&Fs>w{rzY*8Ym9s(g!PDJT=I?23Dz*-NM-X6X;5JmMJ|?g#CT67E z*Iz1(FZuWd(nn*Vk!>j%>xU||{g{Lu+?~=x&h_IYe(vb~V<|a%Afz>LcfRo-W6?ui z`9T+mR71oym;Xn^9?F+^r@Q6WCB@vQJIHYsK30rTTys+;#0n*)uv(M8Oniz))@ z^q3Z=o6}}1#K6NZc-L^~QNL>MJDH<1kxKIyd6M-8q&~c9M)CU83=)%CxMwTinb}DA zW>ptMz=m7KTLeR?Ui(6r?jlW)v6J4F_ADPAtv~4dl+(}%xIni!QHBXES!w##;jO}* zNdYMsoB%T3k<(YfrnjOEtZz(vk{U!hNLZ61u(ee;28s((k5+! z=1N11g|H5%p-=i$veUejnnUh_+7?-{=1HmAF|2>7G{Ui8-}^q0@L?0CPHtp|#jaesriJSjOV@Z^ux7zdKk zam$T&-neJlxdb9WvPSoY9<6t*u}WGMDMb$*c3!7#PL)QYWPy@h$S!uzZeA2 z@#B_U+GHm}vwSZ2q0i`_@<otTcST4YpiCP9CX_MCO)6q5-ekRJVp3=FqMYj zUWR9?F~g(0@Z{J%W#mmYSaG J2asL({{fig#_Rw9 literal 0 HcmV?d00001 diff --git a/repo/js/背包材料统计/assets/Pic/Pic06.png b/repo/js/背包材料统计/assets/Pic/Pic06.png new file mode 100644 index 0000000000000000000000000000000000000000..4fb09bb1fa41cbbdb28a14399a21ead79f30658a GIT binary patch literal 6783 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 literal 0 HcmV?d00001 diff --git a/repo/js/背包材料统计/assets/Pic/Pic07.png b/repo/js/背包材料统计/assets/Pic/Pic07.png new file mode 100644 index 0000000000000000000000000000000000000000..7112a7d6a3867dcfc284b6b3dacd817ca33d9902 GIT binary patch literal 3101 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 Jp?y8-e*l{%jrafn literal 0 HcmV?d00001 diff --git a/repo/js/背包材料统计/assets/Pic/Pic10.png b/repo/js/背包材料统计/assets/Pic/Pic10.png new file mode 100644 index 0000000000000000000000000000000000000000..a036542348bf83c839d901bd793b69e265c289af GIT binary patch literal 15849 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%0A?&Ur4FHZyz-oLC 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 z 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 PLjW_QD~2`to(cZ}h{8Xh literal 0 HcmV?d00001 diff --git a/repo/js/背包材料统计/assets/Pic/Pic13.png b/repo/js/背包材料统计/assets/Pic/Pic13.png new file mode 100644 index 0000000000000000000000000000000000000000..9d5f51b31e49298054097be19a1d0285361f060b GIT binary patch literal 5185 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 P1j)1?KG8s^*+>5$5Ul|1 literal 0 HcmV?d00001 diff --git a/repo/js/背包材料统计/lib/backStats.js b/repo/js/背包材料统计/lib/backStats.js index ed28cd14b..d991a8d02 100644 --- a/repo/js/背包材料统计/lib/backStats.js +++ b/repo/js/背包材料统计/lib/backStats.js @@ -383,7 +383,7 @@ async function scanMaterials(materialsCategory, materialCategoryMap) { width: 66 + 2 * tolerance, height: 22 + 2 * tolerance }; - const ocrResult = await recognizeText(ocrRegion, 1000, 10, 10, 3, ra); + const ocrResult = await recognizeText(ocrRegion, 1000, 10, 5, 2, ra); materialInfo.push({ name, count: ocrResult || "?" }); if (!hasFoundFirstMaterial) { @@ -509,31 +509,43 @@ const CultivationItemsRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync const FoodRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("assets/Food.png"), 845, 31, 38, 38); const specialMaterials = [ - "水晶块", "魔晶块", "星银矿石", "紫晶块", "萃凝晶", "铁块", "白铁块", + "水晶块", "魔晶块", "星银矿石", "紫晶块", "萃凝晶", "虹滴晶", "铁块", "白铁块", "精锻用魔矿", "精锻用良矿", "精锻用杂矿" ]; function filterLowCountMaterials(pathingMaterialCounts, materialCategoryMap) { - // 将 materialCategoryMap 中的所有材料名提取出来 + // 新增:超量阈值(普通材料9999,矿石处理后也是9999) + const EXCESS_THRESHOLD = 9999; + // 新增:临时存储本次超量材料 + const tempExcess = []; + + // 原逻辑:提取所有需要扫描的材料 const allMaterials = Object.values(materialCategoryMap).flat(); - // 筛选 pathingMaterialCounts 中的材料,只保留 materialCategoryMap 中定义的材料,并且数量低于 targetCount 或 count 为 "?" 或 name 在 specialMaterials 中 - return pathingMaterialCounts + const filteredMaterials = pathingMaterialCounts .filter(item => allMaterials.includes(item.name) && (item.count < targetCount || item.count === "?") ) .map(item => { - // 如果 name 在 specialMaterials 数组中 - if (specialMaterials.includes(item.name)) { - // 如果 count 是 "?",直接保留 - if (item.count === "?") { - return item; - } - // 否则,将 count 除以 10 并向下取整 - item.count = Math.floor(item.count / 10); + // 原逻辑:矿石数量÷10 + let processedCount = item.count; + if (specialMaterials.includes(item.name) && item.count !== "?") { + processedCount = Math.floor(Number(item.count) / 10); } - return item; + + // 新增:判断是否超量(用处理后数量对比阈值) + if (item.count !== "?" && processedCount >= EXCESS_THRESHOLD) { + tempExcess.push(item.name); // 记录超量材料名 + } + + return { ...item, count: processedCount }; }); + + // 新增:更新全局超量名单(去重) + excessMaterialNames = [...new Set(tempExcess)]; + log.info(`【超量材料更新】共${excessMaterialNames.length}种:${excessMaterialNames.join("、")}`); + + return filteredMaterials; // 原返回值不变 } function dynamicMaterialGrouping(materialCategoryMap) { diff --git a/repo/js/背包材料统计/main.js b/repo/js/背包材料统计/main.js index 0e82ec419..a96f2eb4d 100644 --- a/repo/js/背包材料统计/main.js +++ b/repo/js/背包材料统计/main.js @@ -65,7 +65,7 @@ if (allowedCDCategories.length > 0) { } // ============================================== -// 材料与怪物映射管理"XP": "祝圣精华" +// 材料与怪物映射管理 // ============================================== // 材料分类映射 const material_mapping = { @@ -384,7 +384,7 @@ function checkPathNameFrequency(resourceName, pathName, recordDir) { /** * 记录路径运行时间与材料变化 - * @param {string} resourceName - 资源名 + * @param {string} resourceName - 资源名(普通材料名/怪物名) * @param {string} pathName - 路径名 * @param {string} startTime - 开始时间 * @param {string} endTime - 结束时间 @@ -398,8 +398,31 @@ function recordRunTime(resourceName, pathName, startTime, endTime, runTime, reco const normalContent = `路径名: ${pathName}\n开始时间: ${startTime}\n结束时间: ${endTime}\n运行时间: ${runTime}秒\n数量变化: ${JSON.stringify(materialCountDifferences)}\n\n`; try { - if (runTime >= 3) { - // 处理0数量记录 + if (runTime >= 3) { // 运行时间≥3秒才处理记录 + // ============================================== + // 新增:怪物路径专用逻辑(判断对应材料总数量是否为0) + // ============================================== + const isMonsterPath = monsterToMaterials.hasOwnProperty(resourceName); // 是否为怪物路径 + if (isMonsterPath) { + // 1. 获取当前怪物对应的所有目标材料(从已有映射中取) + const monsterTargetMaterials = monsterToMaterials[resourceName] || []; + // 2. 计算这些材料的总数量变化(只累加目标材料,忽略其他无关材料) + let monsterMaterialsTotal = 0; + monsterTargetMaterials.forEach(targetMat => { + monsterMaterialsTotal += (materialCountDifferences[targetMat] || 0); + }); + // 3. 若总数量为0,生成怪物专用0记录文件(文件名含“总0”标识,避免混淆) + if (monsterMaterialsTotal === 0) { + const zeroMonsterPath = `${recordDir}/${resourceName}${CONSTANTS.ZERO_COUNT_SUFFIX}`; + const zeroMonsterContent = `路径名: ${pathName}\n开始时间: ${startTime}\n结束时间: ${endTime}\n运行时间: ${runTime}秒\n数量变化: ${JSON.stringify(materialCountDifferences)}\n\n`; + writeContentToFile(zeroMonsterPath, zeroMonsterContent); + log.warn(`${CONSTANTS.LOG_MODULES.RECORD}怪物【${resourceName}】对应材料总数量为0,已写入单独文件: ${zeroMonsterPath}`); + } + } + + // ============================================== + // 原有:普通材料0记录逻辑(完全保留,不做修改) + // ============================================== for (const [material, count] of Object.entries(materialCountDifferences)) { if (material === resourceName && count === 0) { const zeroMaterialPath = `${recordDir}/${material}${CONSTANTS.ZERO_COUNT_SUFFIX}`; @@ -409,6 +432,9 @@ function recordRunTime(resourceName, pathName, startTime, endTime, runTime, reco } } + // ============================================== + // 原有:正常记录生成逻辑(完全保留,不做修改) + // ============================================== const hasZeroMaterial = Object.values(materialCountDifferences).includes(0); const isFinalCumulativeDistanceZero = finalCumulativeDistance === 0; @@ -469,10 +495,10 @@ function getLastRunEndTime(resourceName, pathName, recordDir, noRecordDir) { /** * 计算单次时间成本(平均耗时/材料数量) - * @param {string} resourceName - 资源名 + * @param {string} resourceName - 资源名(普通材料名/怪物名) * @param {string} pathName - 路径名 * @param {string} recordDir - 记录目录 - * @returns {number|null} 时间成本(秒/个),null=无法计算 + * @returns {number|null} 时间成本(秒/中级单位),null=无法计算 */ function calculatePerTime(resourceName, pathName, recordDir) { const recordPath = `${recordDir}/${resourceName}.txt`; @@ -481,22 +507,73 @@ function calculatePerTime(resourceName, pathName, recordDir) { const lines = content.split('\n'); const completeRecords = []; - for (let i = 0; i < lines.length; i++) { - if (lines[i].startsWith('路径名: ') && lines[i].split('路径名: ')[1] === pathName) { - const runTimeLine = lines[i + 3]; - const quantityChangeLine = lines[i + 4]; + // ============================================== + // 怪物路径:改为以中级材料为基准(最低级÷3) + // ============================================== + if (monsterToMaterials.hasOwnProperty(resourceName)) { + const monsterMaterials = monsterToMaterials[resourceName]; // 映射顺序:[最高级, 中级, 最低级] + // 新比例:最高级×3(1最高级=3中级),中级×1(本身),最低级×1/3(3最低级=1中级 → 最低级÷3) + const gradeRatios = [3, 1, 1/3]; - if (runTimeLine?.startsWith('运行时间: ') && quantityChangeLine?.startsWith('数量变化: ')) { - const runTime = parseInt(runTimeLine.split('运行时间: ')[1].split('秒')[0], 10); - const quantityChange = JSON.parse(quantityChangeLine.split('数量变化: ')[1]); + for (let i = 0; i < lines.length; i++) { + if (lines[i].startsWith('路径名: ') && lines[i].split('路径名: ')[1] === pathName) { + const runTimeLine = lines[i + 3]; + const quantityChangeLine = lines[i + 4]; - if (quantityChange[resourceName] !== undefined && quantityChange[resourceName] !== 0) { - completeRecords.push(parseFloat((runTime / quantityChange[resourceName]).toFixed(2))); + if (runTimeLine?.startsWith('运行时间: ') && quantityChangeLine?.startsWith('数量变化: ')) { + // 1. 提取运行时间 + const runTime = parseInt(runTimeLine.split('运行时间: ')[1].split('秒')[0], 10); + if (isNaN(runTime) || runTime <= 0) continue; + + // 2. 提取数量变化 + const quantityChange = JSON.parse(quantityChangeLine.split('数量变化: ')[1]); + + // 3. 按新比例计算“总中级单位数量”(最低级÷3) + let totalMiddleCount = 0; // 变量名改为中级单位 + monsterMaterials.forEach((mat, index) => { + const count = quantityChange[mat] || 0; + const ratio = gradeRatios[index] || 1; + totalMiddleCount += count * ratio; // 最低级此处等价于 count ÷ 3 + }); + // 保留两位小数(处理1/3导致的无限小数) + totalMiddleCount = parseFloat(totalMiddleCount.toFixed(2)); + + // 4. 过滤无效数据 + if (totalMiddleCount <= 0) continue; + + // 5. 计算时间成本(秒/中级单位) + const perTime = parseFloat((runTime / totalMiddleCount).toFixed(2)); + completeRecords.push(perTime); + // 日志更新为中级单位 + log.debug(`${CONSTANTS.LOG_MODULES.RECORD}怪物【${resourceName}】路径${pathName}:${runTime}秒/${totalMiddleCount}中级单位 → ${perTime}秒/单位`); + } + } + } + } + // ============================================== + // 普通材料:完全保留原有逻辑 + // ============================================== + else { + for (let i = 0; i < lines.length; i++) { + if (lines[i].startsWith('路径名: ') && lines[i].split('路径名: ')[1] === pathName) { + const runTimeLine = lines[i + 3]; + const quantityChangeLine = lines[i + 4]; + + if (runTimeLine?.startsWith('运行时间: ') && quantityChangeLine?.startsWith('数量变化: ')) { + const runTime = parseInt(runTimeLine.split('运行时间: ')[1].split('秒')[0], 10); + const quantityChange = JSON.parse(quantityChangeLine.split('数量变化: ')[1]); + + if (quantityChange[resourceName] !== undefined && quantityChange[resourceName] !== 0) { + completeRecords.push(parseFloat((runTime / quantityChange[resourceName]).toFixed(2))); + } } } } } + // ============================================== + // 统一的异常值过滤和平均值计算(不变) + // ============================================== if (completeRecords.length < 3) { log.warn(`${CONSTANTS.LOG_MODULES.RECORD}路径${pathName}有效记录不足3条,无法计算时间成本`); return null; @@ -1308,6 +1385,16 @@ ${Object.entries(totalDifferences).map(([name, diff]) => ` ${name}: +${diff}个 const targetTexts = targetTextCategories[categoryName]; allTargetTexts = allTargetTexts.concat(Object.values(targetTexts).flat()); } + // 关键补充:等待超量名单生成(由filterLowCountMaterials更新) + let waitTimes = 0; + while (excessMaterialNames.length === 0 && waitTimes < 300) { + await sleep(1000); // 每1秒查一次 + waitTimes++; + } + + // 现在过滤才有效(确保excessMaterialNames已生成) + allTargetTexts = allTargetTexts.filter(name => !excessMaterialNames.includes(name)); + log.info(`OCR最终目标文本(已过滤超量):${allTargetTexts.join('、')}`); await alignAndInteractTarget(allTargetTexts, fDialogueRo, textxRange, texttolerance); })(); diff --git a/repo/js/背包材料统计/manifest.json b/repo/js/背包材料统计/manifest.json index c528fa380..5668777cd 100644 --- a/repo/js/背包材料统计/manifest.json +++ b/repo/js/背包材料统计/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 1, "name": "背包统计采集系统", - "version": "2.5", + "version": "2.51", "bgi_version": "0.44.8", "description": "可统计背包养成道具、部分食物、素材的数量;根据设定数量、根据材料刷新CD执行挖矿、采集、刷怪等的路径。优势:\n+ 1. 自动判断材料CD,不需要管材料CD有没有好;\n+ 2. 可以随意添加路径,能自动排除低效、无效路径;\n+ 3. 有独立名单识别,不会交互路边的npc或是神像;可自定义识别名单,具体方法看【问题解答】增减识别名单\n+ 4. 有实时的弹窗模块,提供了常见的几种:路边信件、过期物品、月卡、调查;更多详细内容查看reeadme.md", "saved_files": [ diff --git a/repo/js/背包材料统计/settings.json b/repo/js/背包材料统计/settings.json index 46bb98572..10b129e01 100644 --- a/repo/js/背包材料统计/settings.json +++ b/repo/js/背包材料统计/settings.json @@ -108,5 +108,20 @@ "name": "CDCategories", "type": "input-text", "label": "----------------------------------\n\n采用的CD分类(默认:全部)" + }, + { + "name": "HoldX", + "type": "input-text", + "label": "------------------------\n(0,0)———> X 增加\n |\n |\n V Y 增加\n\n翻页拖动点X坐标:0~1920(默认1050)" + }, + { + "name": "HoldY", + "type": "input-text", + "label": "------------------------\n翻页拖动点Y坐标:0~1080(默认750)" + }, + { + "name": "PageScrollDistance", + "type": "input-text", + "label": "------------------------\n拖动距离:(默认711像素点)" } ] \ No newline at end of file