Commit Graph

1568 Commits

Author SHA1 Message Date
辉鸭蛋
0d8de96e17 加入点击 #1599 2026-03-23 02:48:40 +08:00
辉鸭蛋
aef3fa913b 自动烹饪修改成独立任务 (#2949) 2026-03-23 02:31:14 +08:00
躁动的氨气
d55b1d867b feat: 开门时适龄提示自动关闭 (#2948) 2026-03-23 02:04:54 +08:00
辉鸭蛋
1a478affb2 后台对话完之后自动将原神切到前台 #2350 2026-03-22 15:53:10 +08:00
辉鸭蛋
cd978327fc fix: 修复最小化时候截图失败导致截图器没法正常截图,导致主界面卡顿的问题 #2939 #2851 2026-03-22 02:13:55 +08:00
辉鸭蛋
b0b13cb36d 删除 Starward 协议注册 相关日志 2026-03-22 01:52:54 +08:00
辉鸭蛋
beb36ff41a fix: 修复地图遮罩关闭时UI状态未正确重置的问题 #2940
当关闭地图遮罩功能时,确保所有挂起的计算任务被清理,并重置UI状态到初始值。同时修复了在配置禁用时UI状态未同步更新的问题。
2026-03-22 01:50:44 +08:00
Tristan
713589734b feat: 自动地脉花支持领奖后扫描掉落物 (#2928) 2026-03-21 16:37:29 +08:00
辉鸭蛋
4572b94122 Merge remote-tracking branch 'origin/main' 2026-03-21 12:31:49 +08:00
辉鸭蛋
5831e3671c 加大对话区判定次数 #2936 2026-03-21 12:31:41 +08:00
秋云
53810d34b8 fix: 优化TpTask惯性导航(误识别),处理初始未识别 (#2920) 2026-03-17 20:12:48 +08:00
辉鸭蛋
eec4518605 切换角色问题测试用代码 2026-03-17 02:25:31 +08:00
辉鸭蛋
201cbf1629 关闭开书 #2686 2026-03-17 02:10:06 +08:00
辉鸭蛋
c5a9427ca7 最后匹配自定义游戏进程名 #2909 2026-03-15 10:43:25 +08:00
辉鸭蛋
26416b00b5 Merge remote-tracking branch 'origin/main' 2026-03-14 15:56:15 +08:00
mno
54301e1e02 修改check触发检查的时机 (#2904) 2026-03-12 10:01:55 +08:00
辉鸭蛋
d660f79b4c 修改自动战斗ready指令的表现 2026-03-11 23:06:06 +08:00
FishmanTheMurloc
d4ef75344e 选择鱼饵增加等待时间,以降低鱼饵尚未出现时执行动作的频率 (#2900) 2026-03-10 20:41:38 +08:00
辉鸭蛋
226785e8a4 Yap 的推理对象改为懒加载。index_2_word.json 修改成 Newtonsoft.Json 反序列化 #2890 2026-03-09 23:43:20 +08:00
辉鸭蛋
864efb42a3 fix bug 2026-03-09 03:07:21 +08:00
辉鸭蛋
32582e39a9 Merge remote-tracking branch 'origin/main' 2026-03-08 21:30:47 +08:00
辉鸭蛋
6bcb63e996 修复宝箱图标刚好被遮住的场景 #2889 2026-03-08 21:30:38 +08:00
云端客
65b5032e6e [开放JS 调用 API]自动幽境危战 (#2882) 2026-03-08 21:13:18 +08:00
guamian
a5829ed6bb 尝试修复游泳检测炸内存 (#2883) 2026-03-06 23:06:40 +08:00
DarkFlameMaster
8b7d2353e5 feat(js):地图追踪增加读取目录下的内容等方法 (#2875)
* feat(js):地图追踪增加读取目录下的内容等方法

* refactor(AutoPathingScript): 重构文件操作方法到LimitedFile类

* fix

* docs(AutoPathingScript): 修正方法参数注释中的默认值描述

* 避免重复初始化实例,给恢复游戏窗口焦点的日志也加上当前窗口名
2026-03-05 01:13:52 +08:00
ShadowLemoon
c3b8c9e78f 移除幽境危战调试日志 (#2881) 2026-03-05 01:12:44 +08:00
mno
b49910873e 添加check动作 (#2864) 2026-03-01 22:10:33 +08:00
Jamis
ea6a9a4af2 More granular control over pre-teleport delay (#2866) 2026-03-01 22:10:14 +08:00
DarkFlameMaster
e69283c3f2 更新蒙德凯瑟琳地图追踪文件 (#2861) 2026-02-28 23:59:29 +08:00
ddaodan
23de87d1a6 feat: 为自动地脉花配置新增万叶与琴的拾取选项 (#2862) 2026-02-28 23:59:04 +08:00
辉鸭蛋
7e944e18fb 法尔伽信息补充 2026-02-28 01:04:47 +08:00
辉鸭蛋
f1154e6ef7 地图遮罩改为异步任务,不影响自动拾取 2026-02-28 00:36:10 +08:00
DarkFlameMaster
b2d5988d24 fix:适配秘境限时全开的UI改动 (#2854) 2026-02-26 21:38:36 +08:00
郝凯阳
c2b68cfee9 auto tcg: update character card config to v6.4 (#2849) 2026-02-26 18:32:33 +08:00
HSHMENG
6668a89fa7 七圣召唤配置文件中可以设置骰子数量增减 (#2832) 2026-02-26 10:15:53 +08:00
ddaodan
01f1beba0b feat: 自动地脉花独立战斗配置与OCR遮罩 (#2829) 2026-02-26 10:13:38 +08:00
Guest Liang
9e3c8920ba 修复七圣召唤月之五伊涅芙会导致手牌不可调和的死循环 (#2848) 2026-02-26 10:08:44 +08:00
辉鸭蛋
ce31169f66 fix: 修复小地图遮罩在主界面外的显示逻辑 2026-02-26 00:44:26 +08:00
辉鸭蛋
53854e6d28 refactor: 简化进程去重逻辑,直接使用 GroupBy 和 Select
使用 GroupBy 和 Select 直接获取唯一的进程对象,避免创建中间字典和手动释放重复的 Process 对象,使代码更简洁。
2026-02-24 19:29:09 +08:00
辉鸭蛋
95e0f01753 新增小地图遮罩,在小地图上展示资源点位 (#2830) 2026-02-24 15:34:50 +08:00
云端客
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