Commit Graph

93 Commits

Author SHA1 Message Date
秋云
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
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
辉鸭蛋
807288ab90 重构底层截图器,大幅提升截图器耗时 (#1302)
* to mat init

* BitBlt 加锁

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

* dwm加锁并返回mat

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

* 清除所有 DispatcherTimerOperationEnum 内容

* 修复单测的编译错误

* HDR Support

* 清理无用的截图器模式
2025-03-15 13:18:19 +08:00
辉鸭蛋
ad5aa1b118 fix script bug 2025-03-10 02:15:44 +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
辉鸭蛋
df9c4e106e 修改shell的部分内容 2025-03-08 21:55:24 +08:00
辉鸭蛋
4c820d09c5 replace: 路径追踪 -> 地图追踪 2025-03-08 20:56:36 +08:00
Takaranoao
90590b68b8 给配置组增加执行shell的功能,可以调用外部程序实现复杂调度 2025-03-07 16:39:21 +08:00
FishmanTheMurloc
462e89731d 给js脚本的genshin.autofishing方法暴露了昼夜参数、两个超时参数取独立任务页面中配置的值、关键帧截图开关常关;将BaseBehaviour<TImageRegion>中saveScreenshotOnTerminate字段由不合理的静态字段改为构造函数传入,修复关键帧截图开关在不同入口交替使用的情况下错乱的bug 2025-03-06 12:11:12 +08:00
辉鸭蛋
4305310d2d js settings ui 2025-03-06 01:26:16 +08:00
FishmanTheMurloc
939c0a5106 添加了一个开关来控制是否在钓鱼的关键帧上保存截图 2025-03-05 21:32:43 +08:00
FishmanTheMurloc
d3659f3b43 Merge branch 'main' into feat/fishing_config 2025-03-05 10:26:20 +08:00
秋云
6f6ddf129b feat: add _autoPickEnabled to script group 2025-03-05 05:34:28 +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
辉鸭蛋
472c169603 use R2 to distribute script files 2025-02-06 01:37:42 +08:00
辉鸭蛋
f76c877882 support only local script repo 2025-02-05 22:23:31 +08:00
辉鸭蛋
31fcf9cedf fix WindowStartupLocation without Owner
修复脚本订阅和配置组运行的提示框在高DPI显示屏下跑到屏幕外的问题
2025-02-04 21:06:13 +08:00
辉鸭蛋
06b142b8b2 more check for script repo 2025-02-01 08:59:24 +08:00
zjl
1a0d61ac94 路径追踪增加 允许在jsScript脚本中启用此路径追踪配置、覆盖JS中的自动战斗配置 。默认为否,开启后可以使JS脚本中的路径追踪和自动战斗,使用该调度器所配置的参数运行 2025-01-16 23:53:17 +08:00
辉鸭蛋
d5838017d7 fix script import bug 2025-01-12 21:09:48 +08:00
辉鸭蛋
2d3395b491 typo & ui 2025-01-01 01:52:41 +08:00
mfkvfhpdx
81a7518f72 暂停后按下的键会释放,增加战斗检查偏色配置,由于跟队伍无关,只在独立任务,自动战斗处设置。 2024-12-28 17:12:47 +08:00
zjl
5162bcc88f 参考失焦,增加了快捷键暂停。调度器任务支持从指定任务开始(右键 下一个任务从此执行,重启软件,或取出待执行任务后,该状态将会清空)。 2024-12-17 23:12:56 +08:00
辉鸭蛋
2383761b5d more js methods to expose 2024-12-01 16:43:42 +08:00
辉鸭蛋
648dfd3f41 ensure that the 'settings' object passed into JS is not empty 2024-11-10 13:22:56 +08:00
辉鸭蛋
19c7b10b01 fix repo update 2024-11-09 17:37:46 +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
辉鸭蛋
b74e09ac8b add continuous execution & add pathing ui right menu & real time updates of script repository
更新了 `BetterGenshinImpact.csproj` 文件中的 `WPF-UI.Violeta` 包版本,从 `3.0.5.21` 升级到 `3.0.5.23`。
在 `RepoWebBridge.cs` 文件中,注释掉了检查本地 `repo.json` 文件是否存在的代码,并直接调用 `ScriptRepoUpdater.Instance.UpdateCenterRepo()` 方法更新仓库。更新后的异常信息也进行了修改。
在 `MapPathingPage.xaml` 文件中,删除了 `ui:TreeListView` 控件的 `behavior:RightClickSelectBehavior.Enabled` 属性。
在 `ScriptControlPage.xaml` 文件中,添加了一个新的 `RowDefinition`,并在 `Grid` 中添加了一个新的 `ui:Button`,用于执行连续脚本组的命令。
在 `ScriptControlViewModel.cs` 文件中,添加了 `System.Windows.Media` 的引用。
在 `ScriptControlViewModel.cs` 文件中,添加了一个新的异步方法 `OnStartMultiScriptGroupAsync`,用于显示一个包含全选按钮和配置组复选框的对话框,并执行选中的脚本组。
2024-10-28 00:25:14 +08:00
辉鸭蛋
44190a522b team identification support online
修复错误信息,改进联机状态处理

更新了 `BetterGenshinImpact.csproj` 文件中的程序集版本号,从 `0.35.2` 更新为 `0.35.4`。

修正了 `ScriptProject.cs` 文件中抛出 `FileNotFoundException` 异常时的错误信息,将 "manifest.json文件存在" 改为 "manifest.json文件不存在"。

在 `AutoFightAssets.cs` 文件中:
- 为 `AvatarSideIconRectList` 和 `AvatarIndexRectList` 添加了注释,解释其在非联机状态下的用途。
- 添加了多个新的属性和注释,用于处理联机状态下的角色头像和对应的白色块位置。
- 初始化了 `OnePRa` 和 `PRa` 两个识别对象,用于识别联机状态下的1P和P图标。

在 `Avatar.cs` 文件中:
- 修改了角色切换逻辑,使用 `CombatScenes.ExpectedTeamAvatarNum` 替代硬编码的数字。
- 在 `TrySwitch` 方法中添加了 `needLog` 参数,并在切换成功时记录日志。
- 移除了部分注释代码,并在日志中保存了角色切换和索引区域的截图。
- 添加了 `System.Diagnostics` 的引用。

在 `CombatScenes.cs` 文件中:
- 将 `Avatars` 初始化为空数组。
- 添加了 `ExpectedTeamAvatarNum` 属性,默认值为4。
- 在 `InitializeTeam` 方法中添加了联机状态的判断和处理逻辑。
- 修改了队伍识别逻辑,使用动态数组替代固定长度的数组。
- 修改了 `CheckTeamInitialized` 方法,使用 `ExpectedTeamAvatarNum` 替代硬编码的数字。
- 修改了 `BuildAvatars` 方法,添加了对联机状态下角色编号位置信息的处理。
- 修改了 `SelectAvatar` 方法,使用 `GetValueOrDefault` 替代 `TryGetValue`。

在 `ScriptControlViewModel.cs` 文件中,设置 `WindowStartupLocation` 为 `WindowStartupLocation.CenterOwner`。

添加了 `1p.png` 和 `p.png` 两个新图像文件,用于识别联机状态下的1P和P图标。
2024-10-27 17:15:55 +08:00
辉鸭蛋
98d2664c28 auto pathing: use group config & fix bug 2024-10-27 00:51:10 +08:00
辉鸭蛋
72c2e38f94 add pathing settings for script group 2024-10-26 21:11:59 +08:00
辉鸭蛋
94aae80046 auto pathing: optimize switch avatar
删除 `BetterGenshinImpact.csproj` 中的无用文件夹包含项。
将 `PathingConfig.cs` 中部分属性类型从 `int` 改为 `string`,并调整默认值。
在 `ScriptRepoUpdater.cs` 中用 `MessageBox` 替换 `ContentDialog`。
简化 `ElementalSkillHandler.cs` 和 `NormalAttackHandler.cs` 中的代码。
删除 `NahidaCollectHandler.cs` 中的切换角色代码。
在 `PathingTask.cs` 中添加 `HasAction` 方法。
在 `PathExecutor.cs` 中添加 `_actionAvatarIndexMap` 字典和多个新方法。
新增 `ReturnMainUiTask.cs` 任务类。
2024-10-24 23:05:52 +08:00
辉鸭蛋
404e7215fa add icon for pathing ui 2024-10-24 00:48:58 +08:00
辉鸭蛋
960cfea102 fix script repo web
重构:移出 localRepoJsonPath 赋值和 null 检查逻辑

将 localRepoJsonPath 的赋值和 null 检查逻辑移出 if (needUpdate) 代码块,以确保无论 needUpdate 的值如何,这段逻辑都会被执行。
2024-10-22 00:36:26 +08:00