Commit Graph

149 Commits

Author SHA1 Message Date
躁动的氨气
2e57a3aae9 feat: 莉奈娅挖矿配置优化 (#3102) 2026-05-06 00:41:09 +08:00
KangkangTao
8ca6830c4b fix: 跳过空月祝福使用硬件输入模拟代替窗口消息避免云原神中不生效 (#3080)
* fix: 跳过空月祝福使用硬件输入模拟代替窗口消息避免云原神中不生效

* 加入停顿

---------

Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2026-05-02 18:54:17 +08:00
躁动的氨气
6be85a03af feat: 提高莉奈娅挖矿容错,删除js处的调用接口 (#3073) 2026-04-28 22:57:05 +08:00
躁动的氨气
99a17010d2 feat: 使用yolo进行莉奈娅挖矿 (#3058) 2026-04-20 13:49:53 +08:00
ddaodan
b1f1fe913a fix: 修复纪行可选奖励导致流程卡住并补充日志提醒 (#2995) 2026-04-05 01:36:02 +08:00
辉鸭蛋
03a4102fe7 Revert "文本识别的模糊匹配功能 (#2799)"
This reverts commit e9d11f7267.
2026-03-29 00:31:13 +08:00
辉鸭蛋
5831e3671c 加大对话区判定次数 #2936 2026-03-21 12:31:41 +08:00
辉鸭蛋
201cbf1629 关闭开书 #2686 2026-03-17 02:10:06 +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
DarkFlameMaster
b242d98208 背包计数任务更快定位到武器经验材料 (#2793)
* 背包计数任务更快定位到武器经验材料

* 防止任务取消时鼠标按钮可能卡在按下状态
2026-02-17 19:23:30 +08:00
躁动的氨气
73422860af feat: 调整时间使用更短的延时 (#2738) 2026-02-04 19:44:21 +08:00
kaedelcb
a9cf0dcfb3 优化换队拾取和切换队伍 (#2729) 2026-02-03 00:39:39 +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
辉鸭蛋
73c142d33f 修复当前出战队伍是第五位时,无法正常下拉队伍的问题 #2633 2026-01-17 17:45:26 +08:00
辉鸭蛋
53c2751eb0 添加延时 #2633 2026-01-16 21:15:06 +08:00
Patrick-Ze
947752f17b 改进GetGridItemIconText获得全角数字字符时的处理 (#2581) 2025-12-25 16:30:00 +08:00
Jamis
85829868a1 improve welkin moon detection (#2549) 2025-12-15 01:31:52 +08:00
辉鸭蛋
10dcf831e8 6.2 每日提示确认 2025-12-06 13:57:18 +08:00
kaedelcb
e3a67f309d F文字菜单UI区域适配 (#2511) 2025-12-06 10:41:54 +08:00
kaedelcb
dbf489fd04 适配联机相关UI (#2488) 2025-11-23 00:29:13 +08:00
1e57bfcf18 时瞬操作 (#2469) 2025-11-16 00:54:36 +08:00
5a62083bd4 时瞬的修改 (#2466) 2025-11-15 10:36:53 +08:00
Jamis
c32aae6cca 改进空月祝福页面处理逻辑,提升处理速度 (#2449) 2025-11-14 22:23:18 +08:00
Bread Grocery
880d68823b fix: 修复领取尘歌壶奖励相关问题 (#2437) 2025-11-04 17:16:00 +08:00
Jamis
d14de170f2 优化路径追踪过程中各种打断的处理 (#2425) 2025-11-02 10:56:43 +08:00
FishmanTheMurloc
bc346d1680 GridScreen增加填充算法以应对item识别不全的问题 (#2423) 2025-11-01 14:12:41 +08:00
辉鸭蛋
ddbc6a9339 处理存在退出按钮场景下的返回 2025-11-01 13:47:34 +08:00
FishmanTheMurloc
11c09d3d49 将PartyAvatarInitTests涉及到的代码与本体运行解耦 (#2396) 2025-10-27 10:25:31 +08:00
FishmanTheMurloc
8a7440dbbe ScriptObjectConverter.GetValue()新增支持一层集合泛型参数解析;CountInventoryItem新增支持复数物品的计数,并在Dispatcher中向JavaScript暴露此种使用方式 (#2267) 2025-09-26 23:15:18 +08:00
bhbghghbgb
94e50307a5 重构服务器重置时间处理 (#2160) 2025-09-23 00:59:07 +08:00
FishmanTheMurloc
25774aedbd 修复切换队伍列表向下查找时有时会识别不正确的bug (#2209) 2025-09-17 01:56:19 +08:00
kaedelcb
b6e4fe374a 尘歌壶领取好感角色为空时不领好感 (#2092)
Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2025-09-13 07:12:26 +08:00
kaedelcb
a6ae940732 适配合成保留和限时开放秘境功能 (#2177) 2025-09-13 07:00:18 +08:00
FishmanTheMurloc
54195f84a1 切换队伍适配新版本最大队伍数由15增加到20;并新增最后一个非空队伍判断 2025-09-11 10:28:44 +08:00
FishmanTheMurloc
b08a78a0b4 适配地图传送界面新出现“游逸旅闻:[地区名]”文字,对原有文字识别点击造成干扰的情况,将原先“每日委托:[地区名]”文字的干扰排除方式一并改为从下到上取第一个匹配的方式;增加挪德卡莱和尘歌壶多语言字典 2025-09-10 19:16:55 +08:00
Jamis
60fb42cef6 提高SetTimeTask的稳定性 (#2161) 2025-09-09 23:46:37 +08:00
FishmanTheMurloc
b731a8770d 更正Dispatcher.RunTask内CountInventoryItem的入参名称 (#2158) 2025-09-07 20:28:11 +08:00
FishmanTheMurloc
85178f3a71 图标识别模型更新 (#2150) 2025-09-05 01:28:55 +08:00
FishmanTheMurloc
5d843c9c8f 给JS调用的背包数数独立任务 (#2133) 2025-09-02 01:18:37 +08:00
kaedelcb
79daf06d64 优化原粹树脂合成保留功能 (#2129) 2025-08-29 17:00:24 +08:00
Jamis
edb5db238c improve robustness (#2019) 2025-08-07 23:18:19 +08:00
辉鸭蛋
764a810b87 自动幽境危战加入一条龙 2025-08-07 01:31:14 +08:00
辉鸭蛋
51988bc145 延长纪行领取 2025-08-06 01:28:58 +08:00
辉鸭蛋
199cebbb36 尝试修复纪行无法自动点击的问题 2025-08-05 00:38:15 +08:00
Takaranoao
556cb97e1d 调整官服退出重进参数,对高ping玩家好一点罢 (#1986) 2025-08-03 01:37:22 +08:00
躁动的氨气
1add385e8a 小优化及新增脚本仓库桥接支持 (#1952) 2025-08-02 17:31:41 +08:00
zdAnQi
bdfaf91be9 修复B服登录与重登陆 (#1965) 2025-07-31 14:10:41 +08:00
辉鸭蛋
6ecab6266a 强制地图追踪版本要求 2025-07-26 00:16:52 +08:00
kaedelcb
4da21e5f7d 优化切换队伍点击队伍管理按键 (#1881) 2025-07-16 14:38:56 +08:00