Commit Graph

1059 Commits

Author SHA1 Message Date
辉鸭蛋
e77c143f6b Merge branch 'pr/1320'
# Conflicts:
#	BetterGenshinImpact/GameTask/GameTaskManager.cs
2025-03-23 23:35:22 +08:00
辉鸭蛋
0d5d1292c8 code clean 2025-03-23 23:33:40 +08:00
辉鸭蛋
dfbc05599f 秘境走到最后领取奖励超时将会自动重试秘境 #1202 #1270 2025-03-23 22:52:33 +08:00
辉鸭蛋
33e9ebbc91 体力不足时,放弃继续进行自动秘境 #1008 #1134 2025-03-23 22:28:23 +08:00
辉鸭蛋
9bfdfd041e 一些优化
1. 一条龙未选择要刷的秘境时,直接提示
2. 修复独立任务运行时,实时任务仍在运行的问题
2025-03-23 22:04:43 +08:00
秋云
ad3f4c3915 feat: 日志分析界面添加排序逻辑,添加单个任务拾取物显示,添加表头锁定,更换现代化配色方案 (#1341)
* feat: 添加排序逻辑,添加单个任务拾取物显示

* feat: 表头锁定

* feat: 优化样式,修改排序

* feat: 文件过大时会进行保存,并提示保存的路径

* fix: 错误的弹窗

* fix: 修复表头固定

* feat: 修改配色

* fix: 优化显示

* fix: 删除重复分析。

* add: 增加单日分析
2025-03-23 21:12:59 +08:00
辉鸭蛋
e4163e773c 修复4k自动秘境不生效的问题 2025-03-18 23:49:39 +08:00
FishmanTheMurloc
57d33c4312 又一波钓鱼优化 (#1301)
* GetFishBarRect方法添加更复杂的算法,并为其配备独立的单元测试,和分离难度较大的测试用例(未熟练时两侧出现黄色动态折线的情况);GetFishBoxArea行为去掉拉条框初始位置必须位于屏幕中轴线的条件,并添加其后续Fishing行为的单元测试来验证可行性;EnterFishingMode行为使用结束时间来代替Sleep,并添加整体超时时间;添加一个鱼咬钩的假阳性测试用例仅供娱乐

* 补充GetFishBarRect算法,使通过遗漏的测试"20250314002439020_Fishing_Succeeded.png"

* 拉条增加1秒未检测持续时间以应对瞬间丢失拉条框的情况;新增一个检查提竿结果的行为;新增一个检查开始钓一条鱼的初始状态的方法,以应对行为状态错配的情况;一些行为将Sleep优化为DateTime;修改上述改动对应的单元测试

* 解决合并冲突剩余问题,删掉ImageRegion的Bitmap构造函数重载

* 提供给测试用例初始化的 SystemInfo、TaskContext 方法,使用 InitForTest 即可

* InitForTest

* 和鸭蛋昨夜的提交撞车了。。。抽象了ISystemInto供单元测试实例化Fake类;给BaseAssets类定义了成员字段systemInfo(我想,既然都是图片模板数据集,如此定义是合理的),供继承类AutoFishingAssets使用,并定义了其在单元测试的派生类;添加了一个900p的选取鱼饵测试用例;blackboard改为负责携带AutoFishingAssets,并将其实例化时机挪到独立任务的Start方法中,避免由于TaskContext尚未初始化导致获取到的SystemInfo为空

* 一个特殊的测试用例:抛竿的瞬间、开始检测咬杆时遇到了假阳性

* Revert "InitForTest"

This reverts commit 225e9783a7.

* Revert "提供给测试用例初始化的 SystemInfo、TaskContext 方法,使用 InitForTest 即可"

This reverts commit 610c57263a.

* 为始终没有找到落点的情况添加计数,在第3次时直接退出,并添加此情况的单元测试

---------

Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2025-03-18 19:51:42 +08:00
起个名字好难
f5dbe30e25 企业微信通知增加时间戳 (#1326)
* 凝光Mining+伐木增加木材

* 企业微信通知增加时间戳
2025-03-18 17:45:55 +08:00
Takaranoao
2aefabe09c 添加实时任务,不会清理之前的任务 2025-03-16 20:00:25 +08:00
辉鸭蛋
0bbc851ba0 优化合成树脂,不阻塞任务 2025-03-16 01:49:37 +08:00
辉鸭蛋
377326f492 卡齐娜e 2025-03-16 01:29:43 +08:00
Takaranoao
315318e2fe 配置组增加ShellTask配置的UI (#1308)
* Shell抽象成为一个Task,并抽出Config

* 代码格式化

* 格式化代码

* 配置组增加ShellTask配置的UI
2025-03-15 20:35:53 +08:00
Takaranoao
981068b38c draft:执行shell抽成task,并支持配置 (#1306)
* Shell抽象成为一个Task,并抽出Config

* 代码格式化

* 格式化代码
2025-03-15 20:09:59 +08:00
辉鸭蛋
e1bd3393b8 WGC 去掉HDR处理,增加处理帧率限制 2025-03-15 19:54:53 +08:00
辉鸭蛋
807288ab90 重构底层截图器,大幅提升截图器耗时 (#1302)
* to mat init

* BitBlt 加锁

* 使用读写锁重构 Windows.Graphics.Capture,删除BGI自己命名的缓存设置

* dwm加锁并返回mat

* 队伍中没有对应元素角色修复日志问题

* 清除所有 DispatcherTimerOperationEnum 内容

* 修复单测的编译错误

* HDR Support

* 清理无用的截图器模式
2025-03-15 13:18:19 +08:00
秋云
76445ab19d fix: 修复换队时爬七天神像导致换队失败的问题 (#1295) 2025-03-14 11:43:58 +08:00
起个名字好难
3df45ea6ed 统计增加卡死和异常 (#1293) 2025-03-14 09:50:24 +08:00
FishmanTheMurloc
29a2c0069e bug fix:拉条过程中内存没有及时释放 (#1266)
* bug fix:拉条过程中内存没有及时释放

* 新增LiftAndHold行为用于举竿、检测预抛竿时鼠标左键是否被意外松开、终止任务;抛竿开始后5秒内如从未找到落点,则返回失败,并配有单元测试;添加抛竿时无鱼饵适用鱼的单元测试;调整变量名

* 新增一个钓鱼昼夜设置枚举DontChange及其逻辑(枚举值为3),表示不调整时间直接开钓

* 针对可能是游戏中的雾气/滤镜/小黄鸭之类不明原因干扰了钓鱼拉条框的识别,修改了CV算法,使其不严格按照黄色(255,255,192)找矩形,而是按一定HSV范围寻找,并加强过滤;添加上述不明原因案例的测试用例

* 将MySimpleParallel改造为支持两个以上子行为;将“检查抛竿结果”行为合并到“下杆中”并行节点,以去除检查的等待时间,由此希望能应对鱼过快上钩的情况
2025-03-14 00:17:37 +08:00
秋云
22fe431880 feat: add action_params(StopFlyingWaitTime) to stop_flying (#1277)
* feat: add action_params(StopFlyingWaitTime) to stop_flying;
fix: ensure next step only proceeds after stop_flying.

* add StopFlyingHandler

* use int.TryParse

---------

Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2025-03-14 00:15:17 +08:00
禹仔二号
80b8c968d4 校对修复所有邀约文本 (#1290)
* feat: add email and websocket notification

* fix typos.

* refactor(notifiers): 重构邮件和 WebSocket 通知器

- 提升 EmailNotifier 中的 SmtpClient 为类的成员变量,并在构造函数中初始化,优化资源使用
- 改进 WebSocketNotifier 的连接和重连逻辑,提高稳定性
- 优化通知器的错误处理和日志记录,增强可维护性

* Create BarkNotifier.cs

* Update NotificationConfig.cs

* Update NotificationService.cs

* Update CommonSettingsPageViewModel.cs

* Add files via upload

* Add files via upload

* Add files via upload

* Update CommonSettingsPage.xaml

* Delete BetterGenshinImpact/Service/Notifier/BarkNotifier.cs

* Add files via upload

* Update BarkNotifier.cs

* Update NotificationService.cs

* Update CommonSettingsPageViewModel.cs

* Update CommonSettingsPage.xaml

* Delete BetterGenshinImpact/Service/BarkNotifier.cs

* Add files via upload

* Add files via upload

* Add files via upload

* Update CommonSettingsPage.xaml

* fix: 回退部分代码,修复了程序崩溃的错误

* fix: remove api.day.app

---------

Co-authored-by: 秋云 <physligl@gmail.com>
Co-authored-by: DR-lin-eng <52230594+DR-lin-eng@users.noreply.github.com>
2025-03-13 22:48:02 +08:00
起个名字好难
5272c44a44 Mining新增凝光平A 2025-03-12 23:16:44 +08:00
起个名字好难
61d635d2e2 日志分析:小改正则表达以支持JS脚本统计 2025-03-11 23:53:26 +08:00
辉鸭蛋
51ee8dc54e 修复地图追踪中的 up_down_grab_leaf 四叶印 action 不生效的问题 2025-03-11 23:04:55 +08:00
辉鸭蛋
b0c12d567b 暴力GC 2025-03-11 22:12:29 +08:00
辉鸭蛋
14a55c1204 Revert "添加暴力GC"
This reverts commit 203ae22e7b.
2025-03-11 21:16:49 +08:00
秋云
54e3db9228 fix: move mouse to center after adjust zoom level 2025-03-11 11:57:03 +08:00
辉鸭蛋
203ae22e7b 添加暴力GC 2025-03-11 02:18:08 +08:00
FishmanTheMurloc
c5dd67e854 bug fix 严重的内存占用暴涨 2025-03-10 18:54:00 +08:00
FishmanTheMurloc
79257b3d3a Merge branch 'babalae:main' into main 2025-03-10 18:34:55 +08:00
FishmanTheMurloc
699ed8fc0b 选择鱼饵失败超限后不再直接判定没有鱼;抛竿逻辑不再使用prevTargetFishRect设计,改为直接取离落点最近的鱼,并由此通过了先前的三条炮鲀鱼单元测试;抛竿也采取在无目标鱼时记录失败鱼饵的设计;获取鱼群时,忽略选择鱼饵失败超限及抛竿无目标鱼超限的鱼,配有忽略时的单元测试 2025-03-10 18:25:46 +08:00
FishmanTheMurloc
34e6f4741a 钓鱼添加逻辑:选择鱼饵失败2次后,忽略该种鱼饵,且如果鱼塘中所有鱼的鱼饵被忽略就当没有鱼退出任务;并配有单元测试 2025-03-10 09:59:22 +08:00
辉鸭蛋
991da1cb69 fix fish js object 2025-03-09 22:14:27 +08:00
辉鸭蛋
fe8aeb610d fix js fish anonymous class input 2025-03-09 21:31:46 +08:00
辉鸭蛋
abfddea2e5 暴露钓鱼的参数给脚本 2025-03-09 20:33:51 +08:00
辉鸭蛋
7d0649b358 一些自动钓鱼的优化 2025-03-08 23:41:48 +08:00
FishmanTheMurloc
5bb0144c30 由于偶尔观测到抛竿时“摇摆”行为的出现,设计了一种单元测试来为修改算法做准备。此commit中,改新添加的单元测试是通过不了的。 2025-03-08 23:28:04 +08:00
辉鸭蛋
4c820d09c5 replace: 路径追踪 -> 地图追踪 2025-03-08 20:56:36 +08:00
FishmanTheMurloc
b76974aa73 给钓鱼框识别增加5秒的超时限制,以应对在雷鸣仙鱼池提竿识别了假阳性而卡在钓鱼框的情况;将抛竿行为中的由于修改代码失误而实际没有起效的prevTargetFishRect变量及其逻辑恢复,并在运行中将其绘制出以观察效果;因“获得”的图标消散速度实在太慢,抛竿时改为前6秒也对其进行忽略 2025-03-08 15:29:42 +08:00
Takaranoao
90590b68b8 给配置组增加执行shell的功能,可以调用外部程序实现复杂调度 2025-03-07 16:39:21 +08:00
FishmanTheMurloc
2a548ecb1b 过滤“获得”图标的条件数值优化,配有单元测试用例;完善超时收杆行为,使能应对收杆的同时鱼咬杆的情况,并配有单元测试; 2025-03-06 20:32:17 +08:00
FishmanTheMurloc
462e89731d 给js脚本的genshin.autofishing方法暴露了昼夜参数、两个超时参数取独立任务页面中配置的值、关键帧截图开关常关;将BaseBehaviour<TImageRegion>中saveScreenshotOnTerminate字段由不合理的静态字段改为构造函数传入,修复关键帧截图开关在不同入口交替使用的情况下错乱的bug 2025-03-06 12:11:12 +08:00
辉鸭蛋
5b5eeee9e0 Merge pull request #1237 from FishmanTheMurloc/feat/fishing_config
钓鱼任务添加整个任务的超时参数、昼夜参数
2025-03-06 00:27:47 +08:00
辉鸭蛋
8246d1a2f2 Merge remote-tracking branch 'origin/main' 2025-03-06 00:25:11 +08:00
辉鸭蛋
fc2c809702 release all key before tp & release all key after auto fight 2025-03-06 00:22:12 +08:00
FishmanTheMurloc
939c0a5106 添加了一个开关来控制是否在钓鱼的关键帧上保存截图 2025-03-05 21:32:43 +08:00
FishmanTheMurloc
f8c05d2c33 合并代码修补;将退出钓鱼模式封装成行为并优化;将许多行为的日志时机从每次Tick时精简为初始化时;联机时不使用昼夜设置 2025-03-05 16:10:58 +08:00
FishmanTheMurloc
d3659f3b43 Merge branch 'main' into feat/fishing_config 2025-03-05 10:26:20 +08:00
秋云
4e44bb0e78 fix: resolve mouse simulation issue due to resolution change on screen off (#1230)
* fix: resolve mouse simulation issue due to resolution change on screen off

* fix: typo
2025-03-05 00:30:35 +08:00
FishmanTheMurloc
aead279c78 单元测试HelloWorld (#1219)
* AutoFishing为单元测试重构;一个简单的单元测试GetFishpondTest

* 将鼠标操作的注入挪到DesktopRegion中;提供LoadAssetImage的一个不依赖配置的重载;ChooseBait的代码中将Bv的方法替换成不依赖配置的写法;完成ChooseBait的单元测试

* 使用TimeProvider改写ChooseBait以适用单元测试;添加假的绘图上下文类;添加抛竿行为的单元测试

* 选择鱼饵行为比对上次选择的鱼饵,如果相同则直接抛竿(之前的版本曾有此逻辑),但测下来有时会选错饵导致无限抛竿,调整了相关步骤的等待间隔,希望能简单地压制此bug

* 获取鱼群时过滤“获得”界面的鱼图标:1、在Fishpond构造函数中实现。2、配有此类情况的单元测试。3、并由此降低鱼钓上后的等待时间;
修复绘制鱼群时索引不正确导致遗漏的bug;获取鱼群时绘制鱼群供分析
2025-03-05 00:30:11 +08:00