Commit Graph

1528 Commits

Author SHA1 Message Date
云端客
cac0dfc754 开放自动地脉花 JS调用 (#2789)
Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2026-02-24 11:12:16 +08:00
this-Fish
d4d99d34bc feat: 为快速尘歌壶任务增加离开功能,支持进出双向操作 (#2822) 2026-02-23 19:02:45 +08:00
辉鸭蛋
f86abe3ceb 支持任意文件名的启动 (#2819) 2026-02-23 13:18:18 +08:00
躁动的氨气
b1c6e9e4e3 Revert "feat: 自动拾取文本识别帧间连续性检查 (#2676)" (#2817) 2026-02-22 19:38:10 +08:00
辉鸭蛋
fe61549c95 彻底删除 实验功能 遮罩以原神子窗体方式启动 UseSubform 2026-02-22 18:17:38 +08:00
辉鸭蛋
a872dde7c8 自动拾取排除:「月谕圣牌」收藏 2026-02-22 18:02:26 +08:00
辉鸭蛋
6e49368f0a 修复 #2804,树脂不足时候未终止自动秘境 2026-02-20 23:56:29 +08:00
辉鸭蛋
f80939dad4 去除所有 Cv2.ImRead ,解决中文路径问题 2026-02-20 22:28:45 +08:00
Takaranoao
e9d11f7267 文本识别的模糊匹配功能 (#2799)
* chore: add AGENTS.md to .gitignore

* feat(config): 新增 AllowDuplicateChar OCR配置项

* refactor(ocr): Rec 暴露protected成员、提取RunInference、支持AllowDuplicateChar

* feat(ocr): 打通 AllowDuplicateChar 参数链 PaddleOcrService → Rec

* feat(ocr): OcrUtils 新增 CreateLabelDict/CreateWeights 工具方法

* feat(helpers): 新增 LruCache 缓存工具类

* feat(ocr): 新增 RecMatch DP模糊匹配识别器

* test(helpers): 新增 LruCache 单元测试

* test(ocr): 新增 RecMatch.GetTarget / CreateLabelDict 单元测试

* fix(ocr): 修复 RecMatch 中权重矩阵乘法的使用方式

* refactor(ocr): 合并 RecMatch 到 Rec,提取可测试静态方法,补充单元测试

将 RecMatch 子类合并到 Rec 中,消除继承关系和重复的批处理逻辑(提取 RunBatch<T>)。
将 GetTarget 核心逻辑和 GetMaxScoreDP 提取为 OcrUtils 静态方法以便独立测试。
重命名测试文件并新增 16 个单元测试覆盖 MapStringToLabelIndices、GetMaxScoreDP、CreateWeights。

* feat(ocr): 将 Rec.RunMatch 暴露给 JS 引擎和内部 C# 代码

新增 IOcrMatchService 接口,提供基于 DP 模糊匹配的 OcrMatch/OcrMatchDirect 方法,
返回 0~1 置信度分数。PaddleOcrService 实现该接口,OcrFactory.PaddleMatch 保证
非 null 返回(引擎不支持时自动回退到普通 OCR + 编辑距离字符串比较)。
BvPage 新增 OcrMatch/WaitForOcrMatch 供 JS 脚本使用,阈值可通过配置调整。

* feat(ui): 为 OCR 配置添加允许重复字符和模糊匹配阈值的设置项

在通用设置页 OCR 配置区域新增两个控件:
- 允许连续重复字符(AllowDuplicateChar)开关
- OCR模糊匹配阈值(OcrMatchDefaultThreshold)输入框

* fix: 修复 PR #2799 代码审查中发现的多项问题

- 修复 Rec.cs 空文本时 score/sb.Length 除零产生 NaN
- 修复 BvPage.cs rect==default 时同一对象被双重 Dispose
- 移除 Rec.cs Finalizer 避免 GC 线程加锁死锁
- 移除 CacheHelper WeakKey 无效功能,简化为直接 Dictionary 查找
- 添加 weights 数组长度与模型输出维度校验
- 修复 CreateLabelDict 空格标签索引冲突
- 修复 GetMaxScoreDP availableCount=0 除零
- 修复 OcrMatchFallbackService Contains 大小写敏感
- 修复 BvPage.cs DefaultRetryInterval=0 除零
- 添加 OcrMatchDefaultThreshold [0,1] 范围约束
- 提取 PaddleOcrService BGRA→BGR 转换辅助方法
- 使用 Interlocked.CompareExchange 修复 OcrFactory Fallback 线程安全
- 增大 LruCacheTests BuilderTest TTL 裕量避免 CI 不稳定
- 更新 .gitignore 注释

* fix: 修复 OcrMatch 归一化分母导致多区域匹配分数过低的 bug,改进 UI

- 修复 GetMaxScoreFlat 中 availableCount 使用非空图像数作为分母,
  导致多文字区域场景下匹配分数被过度稀释的问题,改为使用 target.Length
- AllowDuplicateChar 设置项添加"需重新加载OCR引擎"的提示
- OCR模糊匹配阈值控件从 TextBox 改为 Slider + 数值显示
- 移除 Det 类中有问题的 finalizer(含锁的析构函数可能导致死锁)
- 补充多区域场景的单元测试

* feat(ocr): 添加队伍切换时使用OcrMatch模糊匹配的选项和相关配置

* fix(ui): 更新匹配成功阈值默认值为 0.8

* fix(ocr): 修复队伍切换逻辑中的空值处理和优化代码结构

* refactor: 简化 LruCache,移除弱引用支持和 Builder 模式

- 移除有 TOCTOU bug 的 WeakReference 支持(且无实际使用方)
- CacheItem 类改为 ValueTuple 减少堆分配
- 无过期时不再赋值 DateTime.MaxValue,过期检查短路跳过
- 移除仅剩两参数的 LruCacheBuilder,直接使用构造函数

* fix(ocr): 修复 CreateWeights 中空格字符权重写入错误索引的 bug

复用 CreateLabelDict 构建索引映射,确保空格映射到 labels.Count+1,
与 CreateLabelDict 保持一致。添加对应测试用例。

* fix(ocr): 修复 GCHandle.Alloc 失败时 finally 中 Free 掩盖原始异常的问题

* fix(ocr): 添加队伍选择按钮存在性检查,避免 PartySetupFailedException

* fix(ocr): 调整 OcrMatchDefaultThreshold 的 TickFrequency 为 0.01

* fix(ocr): 修复区域裁剪逻辑,确保裁剪尺寸不为负值

* fix(ocr): 优化字符置信度提取逻辑,直接按目标字符索引查找置信度

* fix(ocr): 修正变量命名以保持一致性,调整方法名大小写

* fix(ocr): 修改 CreateWeights 方法以使用标签字典和标签计数,优化权重创建逻辑

* fix(ocr): 更新 OCR 置信度阈值设置,确保阈值范围为 0.01 到 0.99,并优化相关逻辑
2026-02-20 15:08:46 +08:00
Takaranoao
20fe152630 尝试修复一些ROI越界 (#2808)
* fix: 修复多处 OpenCV ROI 越界导致的断言失败

在低分辨率(如 1280x720)下,多处 Rect 坐标计算未做边界保护,
直接传入 SubMat / new Mat(mat, rect) 时触发 OpenCV ROI 断言崩溃。

修复位置:
- Behaviours.cs: fishBoxRect 计算结果钳位到图像边界,修复钓鱼任务越界
- GridScreen.cs: PostProcess 中幻影格子(插值生成)越界时直接丢弃
- ImageRegion.cs: DeriveCrop 两个重载统一加入坐标钳位与有效性校验
- GetGridIconsTask.cs: CropResizeArtifactSetFilterGridIcon X/Y 坐标加非负保护
- GeniusInvokationControl.cs: 角色区域扩展和 HP 区域 Y 偏移各加边界保护

* chore: 为 AutoFishingTask 鱼饵图标裁剪补充说明注释

* refactor: 提取 Rect 钳位逻辑为共享扩展方法 ClampTo

将 6 处重复的 ROI 钳位代码统一为 CommonExtension.ClampTo 扩展方法,
采用交集语义(坐标钳位时宽高同步缩减,不会扩大矩形)。
删除 AutoLeyLineOutcropTask 中的私有 ClampRect 方法。
2026-02-20 15:08:19 +08:00
mno
77f8013bb0 更正自动拾取掉落物为扫描掉落物光柱 (#2795)
* 更正自动拾取掉落物为扫描掉落物光柱

原表述易引起误会,以为捡东西就要开启,改为更明确的扫描掉落物光柱以说明其功能
同时,该方法仅作为无万叶和琴时的备选方案,效果原差于直接使用聚集材料动作,将原”与万叶配合更佳“更正为”仅在无万叶时备用“

* Update en.json

更正en.json
2026-02-18 20:24:04 +08:00
辉鸭蛋
e565f4b438 修复后台点击时 “选择对话选项前的延迟” 不生效的问题 2026-02-18 16:13:58 +08:00
辉鸭蛋
a8de2fb41a 尝试修复可能存在的角色识别错误问题 2026-02-18 15:44:58 +08:00
辉鸭蛋
44459cbca7 开启地脉花之前的OCR加入延迟 2026-02-18 12:59:43 +08:00
辉鸭蛋
2f7e64ac57 fix(自动地脉花): 更新图标并改进异常处理日志
- 将自动地脉花功能图标从原图标更改为新图标
- 将自动地脉花任务失败时的日志级别从 Error 调整为 Debug,并添加简化的 Error 日志
- 在自动战斗任务结束时忽略 NormalEndException 和 TaskCanceledException 异常
2026-02-17 23:31:23 +08:00
辉鸭蛋
87c21f85bf fix: 地脉花任务捕获任务取消异常并调整日志级别
将地脉花自动任务中的特定异常捕获扩展为包含 TaskCanceledException,防止任务意外终止。同时将退出奖励界面的失败日志从 Warning 降级为 Debug,避免在正常任务取消时产生干扰性日志。
2026-02-17 22:58:31 +08:00
DarkFlameMaster
b242d98208 背包计数任务更快定位到武器经验材料 (#2793)
* 背包计数任务更快定位到武器经验材料

* 防止任务取消时鼠标按钮可能卡在按下状态
2026-02-17 19:23:30 +08:00
ddaodan
a2bd48a56f feat: 补充挪德卡莱区域的地脉花独立任务路径数据 (#2790) 2026-02-15 17:59:16 +08:00
辉鸭蛋
b9b251aa13 默认蒙德 2026-02-14 20:39:59 +08:00
ddaodan
c24329eca6 新增:自动地脉花独立任务 (#2583)
* 新增自动地脉花任务代码

* 新增自动地脉花任务资源

* 优化自动地脉花界面文案

* 删除地脉花旧脚本与无用资源

* 完善自动地脉花说明与任务日志

* 完善一条龙地脉花配置与教程入口

* feat: Enhance AutoLeyLineOutcrop functionality and add new pathing data

- Refactored combat text detection logic to improve accuracy.
- Added new regions and positions for "挪德卡莱" in LeyLineOutcropData.json.
- Introduced new pathing files for "挪德卡莱4-望崖营垒" and "挪德卡莱5-厄布拉神柱".
- Updated config.json with new strategies and coordinates for enhanced navigation.
- Improved error handling during party switch operations.
- Removed outdated README.md file from pathing assets.

* 修复一些日志打印

* 移动所有assets文件

* feat: clear drawn content in VisionContext before activating mask window

---------

Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2026-02-14 16:35:17 +08:00
DarkFlameMaster
efc66e6062 feat:AutoDomain支持领奖时切换20/40原粹树脂,仅JS可用 (#2783)
* feat:AutoDomain支持领奖时切换20/40原粹树脂,仅JS可用

* fix bug

* chore

* fix:捕获重试耗尽异常,GameTaskManager资源重载
2026-02-14 16:12:24 +08:00
躁动的氨气
292dc8fb4f feat: 显示后台角色技能cd (#2754)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2026-02-13 23:19:32 +08:00
this-Fish
0d466e5022 修改二次拾取,使万叶能再次拾取。 (#2760) 2026-02-13 22:24:27 +08:00
辉鸭蛋
c28aba2bab hide map mask on run task https://github.com/babalae/bettergi-scripts-list/issues/2870 2026-02-13 21:17:30 +08:00
辉鸭蛋
e15a1d7276 触发器多次触发改为30s 2026-02-10 22:43:17 +08:00
Jamis
2f2311aa68 Fix rare welkin moon stuck issue (#2765) 2026-02-08 15:18:43 +08:00
躁动的氨气
4f7afb6a34 fix: 阻止默认的委托和派遣橙色点击 (#2762) 2026-02-08 00:36:09 +08:00
躁动的氨气
ea1a30a685 fix: 每日委托领奖使用点击屏幕 (#2761) 2026-02-07 16:51:28 +08:00
辉鸭蛋
b61ceae5ea 地图遮罩开关实时生效 2026-02-06 02:46:09 +08:00
this-Fish
bf3957d4e8 优化换队拾取 (#2748)
* 优化换队拾取

需要换队拾取拾取时才执行换队拾取操作

* Add files via upload
2026-02-06 00:58:37 +08:00
辉鸭蛋
7c026fcf5f UI变化了后的10s内则所有触发器执行一遍,修复遮罩控件部分场景下残留的问题 2026-02-06 00:43:42 +08:00
ShadowLemoon
50055c3f26 feat: 状态机 (#2712) 2026-02-05 01:48:46 +08:00
躁动的氨气
73422860af feat: 调整时间使用更短的延时 (#2738) 2026-02-04 19:44:21 +08:00
躁动的氨气
a948c70baf feat: 简化自动战斗日志输出 (#2732) 2026-02-03 17:35:23 +08:00
kaedelcb
a9cf0dcfb3 优化换队拾取和切换队伍 (#2729) 2026-02-03 00:39:39 +08:00
辉鸭蛋
62481baba9 地图遮罩功能(把米游社大地图搬到原神内) (#2655) 2026-01-26 02:58:23 +08:00
Anyrainel
3d6a24d11c fix: 修复自动剧情有时无法完成对话的问题 (#2684) 2026-01-26 02:51:15 +08:00
kaedelcb
1d9e05dc2c 修复切换队伍拾取初始队伍为空的异常识别 (#2688) 2026-01-26 02:49:42 +08:00
sdk2
2854e14f97 七圣召唤不再等待吞星之鲸加血 (#2679) 2026-01-25 20:41:38 +08:00
起个名字好难的喵
af2028c2b5 fix adventurers guild path (#2690) 2026-01-25 20:41:32 +08:00
躁动的氨气
99784c4263 feat: 优化进出千星速度 (#2682) 2026-01-24 23:15:14 +08:00
躁动的氨气
de79d8a61c feat: 添加进出千星以刷新CD (#2677) 2026-01-24 00:45:05 +08:00
躁动的氨气
ad4525c36f feat: 自动拾取文本识别帧间连续性检查 (#2676) 2026-01-23 21:56:36 +08:00
辉鸭蛋
1bc51be511 点击完毕后加入延时,尝试解决TP失败的问题 #2672 #2670 2026-01-23 21:55:01 +08:00
辉鸭蛋
6efee18f69 feat: add JsonIgnore attribute to Areas and Rewards properties in GiWorldPosition 2026-01-19 23:42:21 +08:00
DarkFlameMaster
1d3e44c113 独立出自动剧情的自定义选项,JS调用时允许忽略内置选项条件 (#2639) 2026-01-19 21:15:50 +08:00
躁动的氨气
e25194e29a 简易策略支持中键滚动 (#2660) 2026-01-19 21:13:55 +08:00
Jamis
61eb5f4fe3 Fix teleport issue (#2662) 2026-01-19 20:12:14 +08:00
DarkFlameMaster
3b3236d9f9 将战斗脚本解析日志改为只输出已匹配到的信息 (#2657) 2026-01-19 15:34:59 +08:00
Jamis
01b52a5d78 load tp info from MapLazyAssets (#2656) 2026-01-19 15:34:20 +08:00