Commit Graph

64 Commits

Author SHA1 Message Date
辉鸭蛋
119c294f01 fix: enhance RunTask method to support nullable CancellationToken and add linked cancellation token functionality 2025-05-31 23:33:56 +08:00
辉鸭蛋
2f148e06bf fix: update RunTask method to support nullable CancellationTokenSource and add linked cancellation token methods 2025-05-31 23:23:23 +08:00
辉鸭蛋
9e41808326 独立与分层地图支持 (#1503)
* 抽象基础类

* 修改定义

* 抽象出Feature2D相关能力

* 新增地图基类实现

* 临时提交

* 迁移坐标计算

* 加载分层特征数据

* 新增独立地图 层岩巨渊,渊下宫,旧日之海

* 支持不切分特征点匹配

* 添加远古圣山,修改地图参数

* 提瓦特大陆的大地图匹配

* 提瓦特大陆地图大地图位置获取使用256级别的地图

* 替换大地图匹配类 BigMap.cs

* 替换小地图匹配类 EntireMap

* 修改tp的入参方式,删除无用类

* 兼容新提交的内容

* 修复类方法覆盖不生效的问题

* 修复定位问题,迁移部分 MapCoordinate 的代码。MapCoordinate 标记为废弃

* 更多坐标方法的迁移

* 修复不正确的坐标转换

* 是用正确的特征匹配

* 体积较小的地图动态生成特征

* 路径追踪窗体支持多地图

* 传送时切换独立地图地区

* 更新传送点信息

* 修改独立地图相关命名,使用 Scene(场景) 命名,和原神内部命名保持一致

* 录制支持多独立地图

* 修复地区切换失败的问题
2025-05-03 21:59:37 +08:00
kaedelcb
d874b0b775 释放切换队伍失败状态到JS,未找到换队页面抛出异常。 (#1491)
* 释放切换队伍失败状态到JS,未找到换队页面抛出异常。

* 释放切换队伍失败状态到JS,未找到换队页面抛出异常。
2025-05-01 15:55:55 +08:00
kaedelcb
ad6c854c06 一条龙菜单、自动秘境、切换队伍相关修改 (#1465)
* 1.一条龙菜单增加配置组,每周7天单独配置。
2.自动秘境执行条件,到达秘境向前走的时间加长。
3.切换队伍API,失败重试3次,切换识别不退出任务。

* Update AutoFightTask.cs

恢复错误提示

* 一条龙配置名称的函数误删恢复

* 格式化代码,消除警告

* 修改配置组的启动调用

* 命名修改 & 如果任务已经被取消,中断所有任务

---------

Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>
2025-04-26 18:49:00 +08:00
提瓦特钓鱼玳师
5cfabcf6fa 文件读取支持读取文件夹,添加方法判断路径是否为文件夹 (#1475)
* 添加异步目录读取

* 文件夹读取添加读取文件夹,添加方法判断路径是否为文件夹
2025-04-25 12:36:53 +08:00
提瓦特钓鱼玳师
cb9d53fe57 添加异步目录读取 (#1472) 2025-04-24 23:15:10 +08:00
辉鸭蛋
2243dff12f Merge remote-tracking branch 'origin/main' 2025-04-17 23:37:57 +08:00
辉鸭蛋
2ad9c2b6f6 fixed #1452 2025-04-17 23:18:18 +08:00
Bread Grocery
25cff98c04 feat(js): 全局方法暴露鼠标滚动操作verticalScroll (#1450) 2025-04-17 10:10:32 +08:00
秋云
4c4f3bb05e feat(js): 独立任务支持传入取消令牌 (#1430) 2025-04-12 19:19:57 +08:00
辉鸭蛋
6b306582d0 pathingScript.runFile 捕获报错 2025-04-10 01:37:53 +08:00
辉鸭蛋
3f4297c282 修复inputText接口 2025-04-10 01:17:32 +08:00
辉鸭蛋
877074b303 js 按键模拟支持功能键 2025-04-06 22:27:51 +08:00
辉鸭蛋
f8c870b8ca js 输入文字 2025-04-06 02:57:43 +08:00
秋云
1a71d052eb js(file): 文件写入支持 (#1403)
允许的文件类型:[".txt", ".json", ".log", ".csv", ".xml", ".html", ".css"];
2025-04-05 19:40:22 +08:00
秋云
db06c771cd feat(js): 获取大地图和小地图中心点坐标 (#1392)
* feat(js): 获取大地图和小地图中心点坐标

* fix: 直接返回 Point2f 类
2025-04-03 13:36:46 +08:00
秋云
06364325b0 feat: 暴露部分大地图操作给js (#1390) 2025-04-02 22:30:21 +08:00
秋云
ffd7cfabbc feat: js 通知支持 (#1376)
* feat: js 通知支持

* feat: 添加全局或者在配置组中单独禁用js的通知功能
2025-04-02 21:40:14 +08:00
辉鸭蛋
ad73198125 js 图像识别的补充 2025-03-30 15:34:25 +08:00
辉鸭蛋
d3b2f62083 抽离出方法给脚本调用 #1349 2025-03-26 22:32:20 +08:00
辉鸭蛋
0d5d1292c8 code clean 2025-03-23 23:33:40 +08:00
Takaranoao
58aedbf9d6 修复AddTimer方法中的异常处理,保持js脚本兼容性 2025-03-16 20:06:21 +08:00
Takaranoao
2aefabe09c 添加实时任务,不会清理之前的任务 2025-03-16 20:00:25 +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
辉鸭蛋
fe8aeb610d fix js fish anonymous class input 2025-03-09 21:31:46 +08:00
辉鸭蛋
abfddea2e5 暴露钓鱼的参数给脚本 2025-03-09 20:33:51 +08:00
FishmanTheMurloc
462e89731d 给js脚本的genshin.autofishing方法暴露了昼夜参数、两个超时参数取独立任务页面中配置的值、关键帧截图开关常关;将BaseBehaviour<TImageRegion>中saveScreenshotOnTerminate字段由不合理的静态字段改为构造函数传入,修复关键帧截图开关在不同入口交替使用的情况下错乱的bug 2025-03-06 12:11:12 +08:00
FishmanTheMurloc
939c0a5106 添加了一个开关来控制是否在钓鱼的关键帧上保存截图 2025-03-05 21:32:43 +08:00
FishmanTheMurloc
e634a54913 钓鱼任务添加整个任务的超时参数、昼夜参数 2025-03-04 21:06:16 +08:00
辉鸭蛋
b63ceaa88a refactor: duplicated code 2025-02-23 18:21:43 +08:00
Ayu0K
7abd066b15 feat: 全局按键映射支持 (#1159)
* 更改了按键绑定UI的相关文本,增加通用设置项“启用全局按键映射”

* 全局改键功能实现
2025-02-17 22:02:39 +08:00
辉鸭蛋
2135189bf6 新版本自动钓鱼 @FishmanTheMurloc (#1176)
* Revert "Revert #1059"

This reverts commit 4b65370e9f.

* natlan fish model

* 新增调整时间的功能

* test

* Feat/new fishing (#1060)

* 没有找到鱼饵时不再抛异常而是返回行为失败;细小优化;测试分支是否配置正确

* 恢复半自动钓鱼功能(仅自动拉条);将CheckFishingUserInterface方法添加到行为树,使其直接控制启停;PutRects方法增加筛选,避免画出没有高度的框框导致残留红点在画布上;去掉局部变量_currContent;钓鱼结束不再依据_noRectsCount判断

* 添加一步抛竿后检查,避免往红色靶点抛竿导致失败

* 大家终于炼出了好用的适用纳塔版本的鱼模型;实现注释描述的“选择最多鱼吃的饵料”;添加koihead鱼类,进入抛竿时忽略koi,只看koihead;Fishpond.TargetRect补上空值处理;去掉_switchBaitContinuouslyFrameNum,目前该段代码有时候会导致发呆;钓鱼结束时多等5秒,避免“获得鱼”的提示图被错误地计入下一次抛竿找鱼的预测

* 注释了AutoFishingTrigger中,FishBite和Fishing方法中的一些代码,解除了对CaptureContent.FrameRate的引用以方便开新坑;开了个新坑AutoFishingTask

* 新增全自动钓鱼独立任务的ui界面

* 封装了所有钓鱼行为,消灭了AutoFishingTrigger中大部分私有变量,剩余一些用来在行为之间传递信息的变量被丢到Blackboard中

* 代码清理:删除AutoFishingTrigger中被注释的私有变量;行为树扩展方法移动到单独的文件中

* 封装好的行为都搬家到Behaviours.cs去了;钓鱼独立任务基本完成;Blackboard添加chooseBaitUIOpening字段以避免在选择鱼饵界面时因图标被灰色遮罩而影响图像匹配;抛竿行为添加OnTerminate方法修复合并预抛竿和抛竿行为时产生的bug

* 优化VisionContext框框的代码

* AutoFishingTask加了个转圈圈找鱼的动作

* 钓鱼任务时如果有F键以及确认键,就交互一下进入钓鱼模式

* 添加供js调用的钓鱼任务方法

* 调整视角时也调整游戏角色的朝向;因为错误率较高,抛竿前找鱼时不再对右下角图标进行模板匹配检查

* 把MoveViewpointDown封装成行为了,黑板新增字段pitchReset,改进了流程中调整视角俯仰的部分;钓鱼任务中为了避免人物待机动作吃掉钓鱼F键,ChangeView方法改成始终都按S和W键

* ThrowRod行为删去对鱼群位置的校验,该段校验经常导致发呆;并将该行为更名为GetFishpond

* 对EnterFishingMode行为进行优化并修复bug;钓鱼循环修正

* 将螺旋视角找鱼的行为简化为低头转圈找,以适应路径任务完成时经常无法朝向鱼的情况;按下钓鱼键后等待界面出现时间延长至2秒

* 添加js独立任务调用自动钓鱼

* 新增`fishing`的Action用于触发钓鱼

* AutoFishingTask删去右下角ExitFishingButtonRo的模板匹配校验,因为错误的未识别有点多;添加当前焦点窗口校验

* AutoFishingTask增加设置昼夜功能,在7点和19点各钓一轮

---------

Co-authored-by: 辉鸭蛋 <huiyadanli@gmail.com>

---------

Co-authored-by: FishmanTheMurloc <162452111+FishmanTheMurloc@users.noreply.github.com>
2025-02-17 11:36:10 +08:00
Houning_YA
3053e1aeb3 支持鼠标虚拟键代码 (#1124) 2025-02-08 20:42:38 +08:00
zjl
1a0d61ac94 路径追踪增加 允许在jsScript脚本中启用此路径追踪配置、覆盖JS中的自动战斗配置 。默认为否,开启后可以使JS脚本中的路径追踪和自动战斗,使用该调度器所配置的参数运行 2025-01-16 23:53:17 +08:00
mfkvfhpdx
81a7518f72 暂停后按下的键会释放,增加战斗检查偏色配置,由于跟队伍无关,只在独立任务,自动战斗处设置。 2024-12-28 17:12:47 +08:00
辉鸭蛋
2383761b5d more js methods to expose 2024-12-01 16:43:42 +08:00
辉鸭蛋
9c9bd7d138 js: extend click time
修改了 `GlobalMethod` 类中的 `Click` 方法,现在调用 `LeftButtonClick` 方法而不是 `Simulation.SendInput.Mouse.LeftButtonClick`。
修改了 `GlobalMethod` 类中的 `LeftButtonClick` 方法,现在使用 `Simulation.SendInput.Mouse.LeftButtonDown().Sleep(60).LeftButtonUp()` 代替 `Simulation.SendInput.Mouse.LeftButtonClick`。
修改了 `GlobalMethod` 类中的 `RightButtonClick` 方法,现在使用 `Simulation.SendInput.Mouse.RightButtonDown().Sleep(60).RightButtonUp()` 代替 `Simulation.SendInput.Mouse.RightButtonClick`。
2024-11-05 22:00:16 +08:00
辉鸭蛋
2545581807 new pathing config 2024-11-02 19:49:38 +08:00
辉鸭蛋
4725af5491 impl js run task 2024-11-01 21:37:44 +08:00
辉鸭蛋
11ec9bc45d refactor: CancellationTokenSource -> CancellationToken 2024-10-19 01:50:21 +08:00
辉鸭蛋
c4a7823c83 fix js pathingScript 2024-10-13 22:58:42 +08:00
辉鸭蛋
bb18350457 fix mouse move for js 2024-10-11 03:12:38 +08:00
辉鸭蛋
876a833590 fix: js script bug 2024-10-04 19:04:32 +08:00
辉鸭蛋
389dac879b js: add CaptureGameRegion 2024-10-03 16:24:56 +08:00
辉鸭蛋
8b6351cbd6 update: simulator for js 2024-10-03 00:40:07 +08:00
辉鸭蛋
ca126e0d66 js: +func 2024-10-02 19:20:25 +08:00
辉鸭蛋
6c0b293328 js: add solo task 2024-10-01 21:34:33 +08:00
辉鸭蛋
8de5bcf987 auto pick: ForceInteraction 2024-10-01 20:10:46 +08:00
辉鸭蛋
8bb1d728ff refactor: solo task 2024-09-22 23:56:39 +08:00