archive js

This commit is contained in:
起个名字好难的喵
2025-07-28 12:14:10 +08:00
parent 72086ca2cd
commit e769482a79
103 changed files with 1649 additions and 1642 deletions

View File

@@ -9,6 +9,10 @@
"links": "https://github.com/bling-yshs" "links": "https://github.com/bling-yshs"
} }
], ],
"tags": [
"尘歌壶",
"购买物品"
],
"settings_ui": "settings.json", "settings_ui": "settings.json",
"main": "main.js" "main": "main.js"
} }

View File

@@ -1,105 +1,105 @@
# 自动幽境危战注意事项 # 自动幽境危战注意事项
## 零、前言 ## 零、前言
- 当前文档处于测试阶段,注意事项可能尚不完善,敬请谅解。 - 当前文档处于测试阶段,注意事项可能尚不完善,敬请谅解。
- 如发现BUG请通过QQ119996800联系我们您的反馈将非常受欢迎。 - 如发现BUG请通过QQ119996800联系我们您的反馈将非常受欢迎。
- 本脚本基于地脉花和首领一条龙脚本进行改造。 - 本脚本基于地脉花和首领一条龙脚本进行改造。
- 脚本仅供娱乐使用请在下载后24小时内删除。 - 脚本仅供娱乐使用请在下载后24小时内删除。
## 一、省流注意事项 ## 一、省流注意事项
1. **使用前准备** 1. **使用前准备**
- 请在`<<幽境危战>>`中配置好战斗队伍。 - 请在`<<幽境危战>>`中配置好战斗队伍。
2. **黑名单建议** 2. **黑名单建议**
- 根目录下有文件内含建议加入`自动拾取黑名单`的名称,请检查并添加。 - 根目录下有文件内含建议加入`自动拾取黑名单`的名称,请检查并添加。
3. **战斗实力** 3. **战斗实力**
- 请确保队伍具备足够的战斗实力,当前版本在战斗失败或执行错误,只会重试`一次` - 请确保队伍具备足够的战斗实力,当前版本在战斗失败或执行错误,只会重试`一次`
4. **自动拾取功能** 4. **自动拾取功能**
- 为避免不必要的干扰,建议关闭自动拾取功能。 - 为避免不必要的干扰,建议关闭自动拾取功能。
## 二、配置简介 ## 二、配置简介
1. **圣遗物奖励** 1. **圣遗物奖励**
- 默认设置下,脚本不会修改圣遗物奖励。 - 默认设置下,脚本不会修改圣遗物奖励。
2. **Boss挑战关卡选择** 2. **Boss挑战关卡选择**
- 必填项请从上往下选择第几个Boss挑战关卡`1至3`,否则脚本将无法执行。 - 必填项请从上往下选择第几个Boss挑战关卡`1至3`,否则脚本将无法执行。
3. **挑战次数** 3. **挑战次数**
- 默认设置为`15`次,期间若树脂耗尽,脚本将自动结束。 - 默认设置为`15`次,期间若树脂耗尽,脚本将自动结束。
4. **树脂顺序设定** 4. **树脂顺序设定**
- 使用`/`隔开数字来设定树脂使用顺序,如`1/2`表示先使用浓缩树脂,再使用原粹树脂。 - 使用`/`隔开数字来设定树脂使用顺序,如`1/2`表示先使用浓缩树脂,再使用原粹树脂。
- 树脂类型对应关系: - 树脂类型对应关系:
- 1 = 浓缩树脂 - 1 = 浓缩树脂
- 2 = 原粹树脂 - 2 = 原粹树脂
- 3 = 脆弱树脂 - 3 = 脆弱树脂
- 4 = 须臾树脂 - 4 = 须臾树脂
- 默认设置:`1/2`,表示先使用浓缩树脂,再使用原粹树脂,不填的不使用"。 - 默认设置:`1/2`,表示先使用浓缩树脂,再使用原粹树脂,不填的不使用"。
5. **最长战斗超时时间** 5. **最长战斗超时时间**
- 默认设置为`240`秒,一般情况下无需修改。 - 默认设置为`240`秒,一般情况下无需修改。
6. **开始战斗后的移动时间** 6. **开始战斗后的移动时间**
- 默认设置为`1`秒(注意单位为`秒`由于战斗开始位置离Boss较远请根据实际情况设定一般情况下默认设置即可。 - 默认设置为`1`秒(注意单位为`秒`由于战斗开始位置离Boss较远请根据实际情况设定一般情况下默认设置即可。
## 三、更新说明 ## 三、更新说明
### v.1.0版本20250627 ### v.1.0版本20250627
- **功能**:脚本发布。 - **功能**:脚本发布。
### v.1.1版本 ### v.1.1版本
- **备注**:此版本信息被省略。 - **备注**:此版本信息被省略。
### v.1.2版本20250627 ### v.1.2版本20250627
- **新增功能** - **新增功能**
1. 添加圣遗物`奖励选择`功能。 1. 添加圣遗物`奖励选择`功能。
2. 添加自动选择`难度`功能。 2. 添加自动选择`难度`功能。
- **优化** - **优化**
1. 优化逻辑处理。 1. 优化逻辑处理。
2. 加大战斗完成识别区域。 2. 加大战斗完成识别区域。
### v.1.3版本20250628 ### v.1.3版本20250628
- **新增功能** - **新增功能**
1. 添加`自动重试`,战斗失败或执行错误会`重试一次` 1. 添加`自动重试`,战斗失败或执行错误会`重试一次`
- **优化** - **优化**
2. 优化退出点击时序和逻辑。 2. 优化退出点击时序和逻辑。
3. 优化进入秘境后向前走的逻辑。 3. 优化进入秘境后向前走的逻辑。
4. 优化LOG输出显示内容。 4. 优化LOG输出显示内容。
- **修复** - **修复**
1. 修复默认状态下选择长夜套的BUG。 1. 修复默认状态下选择长夜套的BUG。
### v.1.4版本20250629 ### v.1.4版本20250629
- **新增功能** - **新增功能**
1. 添加领奖后的树脂识别,不足时退出秘境,防止多打一次。 1. 添加领奖后的树脂识别,不足时退出秘境,防止多打一次。
- **优化** - **优化**
1. 优化`再次挑战`挑战的点击逻辑,添加重试。 1. 优化`再次挑战`挑战的点击逻辑,添加重试。
2. 优化相关自动拾取代码。 2. 优化相关自动拾取代码。
3. 优化`难度选择``圣遗物选择`的识别范围。 3. 优化`难度选择``圣遗物选择`的识别范围。
### v.1.5版本20250630 ### v.1.5版本20250630
- **新增功能** - **新增功能**
1. 自动战斗失败原地`重试2次`,失败后再退出秘境重试。 1. 自动战斗失败原地`重试2次`,失败后再退出秘境重试。
- **优化** - **优化**
1. 优化`LOG`显示。 1. 优化`LOG`显示。
2. 优化`完全没有树脂`情况弹窗提示处理。 2. 优化`完全没有树脂`情况弹窗提示处理。
3. 优化删除拾取`黑名单`文件0.47.0后不会乱触发了)。 3. 优化删除拾取`黑名单`文件0.47.0后不会乱触发了)。
4. 优化各种`异常状态`的退出处理方法。 4. 优化各种`异常状态`的退出处理方法。
5. 优化当有须臾树脂时,脆弱树脂不显示时的处理。 5. 优化当有须臾树脂时,脆弱树脂不显示时的处理。
### v.1.6版本20250702 ### v.1.6版本20250702
- **优化** - **优化**
1. 优化没找到地脉花领奖的超时退出处理。 1. 优化没找到地脉花领奖的超时退出处理。
2. 优化树脂识别OCR区域。 2. 优化树脂识别OCR区域。
3. 优化LOG和代码写法和整理。 3. 优化LOG和代码写法和整理。

View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 1018 B

After

Width:  |  Height:  |  Size: 1018 B

View File

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -1,279 +1,279 @@
{ {
"macroEvents": [ "macroEvents": [
{ {
"type": 0, "type": 0,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 0.0000 "time": 0.0000
}, },
{ {
"type": 1, "type": 1,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 11127.9408 "time": 11127.9408
}, },
{ {
"type": 0, "type": 0,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 13119.9760 "time": 13119.9760
}, },
{ {
"type": 1, "type": 1,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 17400.0108 "time": 17400.0108
}, },
{ {
"type": 0, "type": 0,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 18504.0088 "time": 18504.0088
}, },
{ {
"type": 1, "type": 1,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 27312.0632 "time": 27312.0632
}, },
{ {
"type": 0, "type": 0,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 28128.0973 "time": 28128.0973
}, },
{ {
"type": 1, "type": 1,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 29240.0663 "time": 29240.0663
}, },
{ {
"type": 0, "type": 0,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 29912.0759 "time": 29912.0759
}, },
{ {
"type": 1, "type": 1,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 31736.1294 "time": 31736.1294
}, },
{ {
"type": 0, "type": 0,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 31904.0885 "time": 31904.0885
}, },
{ {
"type": 1, "type": 1,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 32144.0983 "time": 32144.0983
}, },
{ {
"type": 0, "type": 0,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 32864.1012 "time": 32864.1012
}, },
{ {
"type": 0, "type": 0,
"keyCode": 32, "keyCode": 32,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 33288.1407 "time": 33288.1407
}, },
{ {
"type": 1, "type": 1,
"keyCode": 32, "keyCode": 32,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 33432.1196 "time": 33432.1196
}, },
{ {
"type": 0, "type": 0,
"keyCode": 32, "keyCode": 32,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 33616.1026 "time": 33616.1026
}, },
{ {
"type": 1, "type": 1,
"keyCode": 32, "keyCode": 32,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 33736.1158 "time": 33736.1158
}, },
{ {
"type": 1, "type": 1,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 40600.1535 "time": 40600.1535
}, },
{ {
"type": 0, "type": 0,
"keyCode": 84, "keyCode": 84,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 43000.0000 "time": 43000.0000
}, },
{ {
"type": 1, "type": 1,
"keyCode": 84, "keyCode": 84,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 43071.8735 "time": 43071.8735
}, },
{ {
"type": 0, "type": 0,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 46591.9060 "time": 46591.9060
}, },
{ {
"type": 1, "type": 1,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 47047.9336 "time": 47047.9336
}, },
{ {
"type": 0, "type": 0,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 47615.9255 "time": 47615.9255
}, },
{ {
"type": 1, "type": 1,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 50271.9249 "time": 50271.9249
}, },
{ {
"type": 0, "type": 0,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 51143.9303 "time": 51143.9303
}, },
{ {
"type": 1, "type": 1,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 51839.9301 "time": 51839.9301
}, },
{ {
"type": 0, "type": 0,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 52239.9472 "time": 52239.9472
}, },
{ {
"type": 1, "type": 1,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 53279.9313 "time": 53279.9313
}, },
{ {
"type": 0, "type": 0,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 64328.0135 "time": 64328.0135
}, },
{ {
"type": 1, "type": 1,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 67096.0170 "time": 67096.0170
}, },
{ {
"type": 0, "type": 0,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 67448.0209 "time": 67448.0209
}, },
{ {
"type": 1, "type": 1,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 75544.7151 "time": 75544.7151
}, },
{ {
"type": 0, "type": 0,
"keyCode": 81, "keyCode": 81,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 77153.2237 "time": 77153.2237
}, },
{ {
"type": 1, "type": 1,
"keyCode": 81, "keyCode": 81,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 78120.1226 "time": 78120.1226
}, },
{ {
"type": 0, "type": 0,
"keyCode": 68, "keyCode": 68,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 80768.1293 "time": 80768.1293
}, },
{ {
"type": 1, "type": 1,
"keyCode": 68, "keyCode": 68,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 81536.1748 "time": 81536.1748
}, },
{ {
"type": 0, "type": 0,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 82560.1130 "time": 82560.1130
}, },
{ {
"type": 1, "type": 1,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 85536.1748 "time": 85536.1748
} }
], ],
"info": { "info": {
"name": "", "name": "",
"description": "", "description": "",
"x": 0, "x": 0,
"y": 0, "y": 0,
"width": 1920, "width": 1920,
"height": 1080, "height": 1080,
"recordDpi": 1 "recordDpi": 1
} }
} }

View File

@@ -1,69 +1,69 @@
{ {
"macroEvents": [ "macroEvents": [
{ {
"type": 0, "type": 0,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 1619.1371 "time": 1619.1371
}, },
{ {
"type": 1, "type": 1,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 4843.0322 "time": 4843.0322
}, },
{ {
"type": 0, "type": 0,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 5555.1643 "time": 5555.1643
}, },
{ {
"type": 1, "type": 1,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 8195.0398 "time": 8195.0398
}, },
{ {
"type": 0, "type": 0,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 8939.0689 "time": 8939.0689
}, },
{ {
"type": 1, "type": 1,
"keyCode": 65, "keyCode": 65,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 10259.1104 "time": 10259.1104
}, },
{ {
"type": 0, "type": 0,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 11155.0806 "time": 11155.0806
}, },
{ {
"type": 1, "type": 1,
"keyCode": 87, "keyCode": 87,
"mouseX": 0, "mouseX": 0,
"mouseY": 0, "mouseY": 0,
"time": 11655.0806 "time": 11655.0806
} }
], ],
"info": { "info": {
"name": "", "name": "",
"description": "", "description": "",
"x": 0, "x": 0,
"y": 0, "y": 0,
"width": 1920, "width": 1920,
"height": 1080, "height": 1080,
"recordDpi": 1 "recordDpi": 1
} }
} }

View File

@@ -1,172 +1,172 @@
(async function () { (async function () {
const defaultExitDelay = 10000; const defaultExitDelay = 10000;
const defaultLoadingDelay = 13000; const defaultLoadingDelay = 13000;
const seen = new Set(); const seen = new Set();
function validateAndSetDefaults(exitDelay, loadingDelay) { function validateAndSetDefaults(exitDelay, loadingDelay) {
if (isNaN(exitDelay) || exitDelay <= 0) { if (isNaN(exitDelay) || exitDelay <= 0) {
log.warn("你没有设置退出延迟,将使用默认值"); log.warn("你没有设置退出延迟,将使用默认值");
exitDelay = defaultExitDelay; exitDelay = defaultExitDelay;
} }
if (isNaN(loadingDelay) || loadingDelay <= 0) { if (isNaN(loadingDelay) || loadingDelay <= 0) {
log.warn("你没有设置加载延迟,将使用默认值"); log.warn("你没有设置加载延迟,将使用默认值");
loadingDelay = defaultLoadingDelay; loadingDelay = defaultLoadingDelay;
} }
return { exitDelay, loadingDelay }; return { exitDelay, loadingDelay };
} }
async function runGameActionsMultipleTimes(times, locationName) { async function runGameActionsMultipleTimes(times, locationName) {
for (let i = 0; i < times; i++) { for (let i = 0; i < times; i++) {
await sleep(1000); await sleep(1000);
keyPress("ESCAPE"); keyPress("ESCAPE");
await sleep(1000); await sleep(1000);
click(50, 1030); click(50, 1030);
await sleep(1000); await sleep(1000);
click(1000, 750); click(1000, 750);
await sleep(validatedExitDelay); await sleep(validatedExitDelay);
click(1000, 550); click(1000, 550);
await sleep(validatedLoadingDelay); await sleep(validatedLoadingDelay);
keyPress("z"); keyPress("z");
log.info(`${locationName} 循环次数:${i + 1}/${times}`); log.info(`${locationName} 循环次数:${i + 1}/${times}`);
} }
} }
async function resetMap() { async function resetMap() {
log.info("重置地图大小..."); log.info("重置地图大小...");
await sleep(1000); await sleep(1000);
keyPress("M"); keyPress("M");
await sleep(1000); await sleep(1000);
click(1840, 1010); click(1840, 1010);
await sleep(1000); await sleep(1000);
click(1450, 460); click(1450, 460);
await sleep(1000); await sleep(1000);
click(1840, 1010); click(1840, 1010);
await sleep(1000); await sleep(1000);
click(1450, 140); click(1450, 140);
await sleep(1000); await sleep(1000);
keyPress("M"); keyPress("M");
log.info("重置地图大小完成"); log.info("重置地图大小完成");
} }
async function KeyMouse(locationNameEx) { async function KeyMouse(locationNameEx) {
log.info(`前往 ${locationNameEx}`); log.info(`前往 ${locationNameEx}`);
let tpPath = `assets/AutoPath/tp/${locationNameEx}tp.json`; let tpPath = `assets/AutoPath/tp/${locationNameEx}tp.json`;
let filePath = `assets/KeyMouse/${locationNameEx}.json`; let filePath = `assets/KeyMouse/${locationNameEx}.json`;
try { try {
await pathingScript.runFile(tpPath); await pathingScript.runFile(tpPath);
await sleep(1000); await sleep(1000);
await keyMouseScript.runFile(filePath); await keyMouseScript.runFile(filePath);
} catch (error) { } catch (error) {
log.error(`执行 ${locationNameEx} 脚本时发生错误: ${error}`); log.error(`执行 ${locationNameEx} 脚本时发生错误: ${error}`);
} }
await sleep(1000); await sleep(1000);
} }
async function woodcutting(locationName) { async function woodcutting(locationName) {
log.info(`砍伐 ${locationName}`); log.info(`砍伐 ${locationName}`);
if (!map[locationName]) { if (!map[locationName]) {
log.info(`未找到 ${locationName} 对应的木材`); log.info(`未找到 ${locationName} 对应的木材`);
return; return;
} }
const { description, available, times } = map[locationName]; const { description, available, times } = map[locationName];
if (description === 'NULL' || !description) { if (description === 'NULL' || !description) {
log.info(`${locationName} 暂不支持`); log.info(`${locationName} 暂不支持`);
return; return;
} }
if (Array.from(seen).some(item => item.includes(locationName))) { if (Array.from(seen).some(item => item.includes(locationName))) {
log.info(`${locationName} 已经砍伐过,将执行下一个`); log.info(`${locationName} 已经砍伐过,将执行下一个`);
return; return;
} }
log.info(`前往 ${description}`); log.info(`前往 ${description}`);
await sleep(1000); await sleep(1000);
try { try {
if (locationName === "炬木" || locationName === "桃椰子木") { if (locationName === "炬木" || locationName === "桃椰子木") {
await KeyMouse(description); await KeyMouse(description);
} else { } else {
const filePath = `assets/AutoPath/${description}.json`; const filePath = `assets/AutoPath/${description}.json`;
await pathingScript.runFile(filePath); await pathingScript.runFile(filePath);
} }
await sleep(1000); await sleep(1000);
if (!available) { if (!available) {
await runGameActionsMultipleTimes(times, description); await runGameActionsMultipleTimes(times, description);
} else { } else {
await dispatcher.runTask(new SoloTask("AutoWood")); await dispatcher.runTask(new SoloTask("AutoWood"));
} }
seen.add(map[locationName].description); seen.add(map[locationName].description);
log.info(`${locationName} 伐木完成,将执行下一个`); log.info(`${locationName} 伐木完成,将执行下一个`);
log.info(`已运行木材: ${[...seen].join(", ")}`); log.info(`已运行木材: ${[...seen].join(", ")}`);
} catch (error) { } catch (error) {
log.error(`在砍伐 ${locationName} 时发生错误: ${error}`); log.error(`在砍伐 ${locationName} 时发生错误: ${error}`);
} }
} }
// Set game environment settings // Set game environment settings
setGameMetrics(1920, 1080, 1); setGameMetrics(1920, 1080, 1);
const map = { const map = {
'桦木': { description: '桦木15个', available: true, times: 134 }, '桦木': { description: '桦木15个', available: true, times: 134 },
'萃华木': { description: '萃华木6个(垂香木3个)', available: true, times: 334 }, '萃华木': { description: '萃华木6个(垂香木3个)', available: true, times: 334 },
'松木': { description: '松木24个', available: true, times: 84 }, '松木': { description: '松木24个', available: true, times: 84 },
'却砂木': { description: '却砂木12个', available: true, times: 167 }, '却砂木': { description: '却砂木12个', available: true, times: 167 },
'竹节': { description: '竹节30个', available: true, times: 67 }, '竹节': { description: '竹节30个', available: true, times: 67 },
'垂香木': { description: '垂香木15个', available: true, times: 134 }, '垂香木': { description: '垂香木15个', available: true, times: 134 },
'杉木': { description: '杉木12个', available: true, times: 167 }, '杉木': { description: '杉木12个', available: true, times: 167 },
'梦见木': { description: '梦见木12个', available: true, times: 167 }, '梦见木': { description: '梦见木12个', available: true, times: 167 },
'枫木': { description: '枫木9个', available: true, times: 223 }, '枫木': { description: '枫木9个', available: true, times: 223 },
'孔雀木': { description: '御伽木9个(孔雀木6个)', available: false, times: 334 },//利用手动重置仇恨 '孔雀木': { description: '御伽木9个(孔雀木6个)', available: false, times: 334 },//利用手动重置仇恨
'御伽木': { description: '御伽木9个(孔雀木6个)', available: false, times: 334 },//利用手动重置仇恨 '御伽木': { description: '御伽木9个(孔雀木6个)', available: false, times: 334 },//利用手动重置仇恨
'辉木': { description: '业果木15个(辉木15个)', available: true, times: 134 }, '辉木': { description: '业果木15个(辉木15个)', available: true, times: 134 },
'业果木': { description: '业果木15个(辉木15个)', available: true, times: 134 }, '业果木': { description: '业果木15个(辉木15个)', available: true, times: 134 },
'证悟木': { description: '证悟木15个(业果木6个)', available: true, times: 334 }, '证悟木': { description: '证悟木15个(业果木6个)', available: true, times: 334 },
'刺葵木': { description: '刺葵木6个', available: true, times: 334 }, '刺葵木': { description: '刺葵木6个', available: true, times: 334 },
'柽木': { description: '柽木15个', available: false, times: 134 }, '柽木': { description: '柽木15个', available: false, times: 134 },
'悬铃木': { description: '悬铃木18个', available: true, times: 112 }, '悬铃木': { description: '悬铃木18个', available: true, times: 112 },
'椴木': { description: '椴木9个', available: true, times: 223 }, '椴木': { description: '椴木9个', available: true, times: 223 },
'白梣木': { description: '白梣木15个', available: true, times: 134 }, '白梣木': { description: '白梣木15个', available: true, times: 134 },
'香柏木': { description: '香柏木27个', available: true, times: 75 }, '香柏木': { description: '香柏木27个', available: true, times: 75 },
'炬木': { description: '炬木15个', available: true, times: 134 }, '炬木': { description: '炬木15个', available: true, times: 134 },
'白栗栎木': { description: '燃爆木6个(白栗栎木6个)', available: false, times: 334 }, '白栗栎木': { description: '燃爆木6个(白栗栎木6个)', available: false, times: 334 },
'灰灰楼林木': { description: '灰灰楼木6个', available: false, times: 334 }, '灰灰楼林木': { description: '灰灰楼木6个', available: false, times: 334 },
'燃爆木': { description: '燃爆木15个', available: false, times: 134 }, '燃爆木': { description: '燃爆木15个', available: false, times: 134 },
'桃椰子木': { description: '桃椰子木12个', available: false, times: 167 } '桃椰子木': { description: '桃椰子木12个', available: false, times: 167 }
}; };
let exitdelay = Number(settings.exitdelay); let exitdelay = Number(settings.exitdelay);
let loadingdelay = Number(settings.loadingdelay); let loadingdelay = Number(settings.loadingdelay);
const { exitDelay: validatedExitDelay, loadingDelay: validatedLoadingDelay } = validateAndSetDefaults(exitdelay, loadingdelay); const { exitDelay: validatedExitDelay, loadingDelay: validatedLoadingDelay } = validateAndSetDefaults(exitdelay, loadingdelay);
const messages = [ const messages = [
'确保装备有[王树瑞佑]', '确保装备有[王树瑞佑]',
'确保使用小道具快捷键为Z键', '确保使用小道具快捷键为Z键',
'确保开启了BGI独立任务中自动伐木的“启用OCR伐木数量限制”', '确保开启了BGI独立任务中自动伐木的“启用OCR伐木数量限制”',
'若要运行炬木或桃椰子木:', '若要运行炬木或桃椰子木:',
'运行时是琳妮特前台且拥有双风共鸣', '运行时是琳妮特前台且拥有双风共鸣',
'元素共鸣需要四个角色组队触发,仅两个风系角色无效', '元素共鸣需要四个角色组队触发,仅两个风系角色无效',
'不要带其他有移速加成的角色' '不要带其他有移速加成的角色'
]; ];
for (let message of messages) { for (let message of messages) {
log.info(message); log.info(message);
await sleep(1000); await sleep(1000);
} }
log.info('自动伐木开始...'); log.info('自动伐木开始...');
log.info(`退出延迟: ${validatedExitDelay}毫秒, 加载延迟: ${validatedLoadingDelay}毫秒`); log.info(`退出延迟: ${validatedExitDelay}毫秒, 加载延迟: ${validatedLoadingDelay}毫秒`);
let woodsArray = settings.woods.split(" "); let woodsArray = settings.woods.split(" ");
await resetMap(); await resetMap();
for (const wood of woodsArray) { for (const wood of woodsArray) {
if (wood.trim()) { if (wood.trim()) {
await woodcutting(wood); await woodcutting(wood);
} else { } else {
log.info('请在自定义选项输入木材名,用空格隔开'); log.info('请在自定义选项输入木材名,用空格隔开');
} }
} }
})(); })();

View File

@@ -1,138 +1,138 @@
[ [
{ {
"name": "woods", "name": "woods",
"type": "input-text", "type": "input-text",
"label": "木材种类:使用空格分隔" "label": "木材种类:使用空格分隔"
}, },
{ {
"name": "exitdelay", "name": "exitdelay",
"type": "input-text", "type": "input-text",
"label": "退出延迟(毫秒)(选填)" "label": "退出延迟(毫秒)(选填)"
}, },
{ {
"name": "loadingdelay", "name": "loadingdelay",
"type": "input-text", "type": "input-text",
"label": "加载延迟(毫秒)(选填)" "label": "加载延迟(毫秒)(选填)"
} }
// { // {
// "name": "桦木", // "name": "桦木",
// "type": "checkbox", // "type": "checkbox",
// "label": "桦木" // "label": "桦木"
// }, // },
// { // {
// "name": "萃华木", // "name": "萃华木",
// "type": "checkbox", // "type": "checkbox",
// "label": "萃华木" // "label": "萃华木"
// }, // },
// { // {
// "name": "松木", // "name": "松木",
// "type": "checkbox", // "type": "checkbox",
// "label": "松木" // "label": "松木"
// }, // },
// { // {
// "name": "却砂木", // "name": "却砂木",
// "type": "checkbox", // "type": "checkbox",
// "label": "却砂木" // "label": "却砂木"
// }, // },
// { // {
// "name": "竹节", // "name": "竹节",
// "type": "checkbox", // "type": "checkbox",
// "label": "竹节" // "label": "竹节"
// }, // },
// { // {
// "name": "垂香木", // "name": "垂香木",
// "type": "checkbox", // "type": "checkbox",
// "label": "垂香木" // "label": "垂香木"
// }, // },
// { // {
// "name": "杉木", // "name": "杉木",
// "type": "checkbox", // "type": "checkbox",
// "label": "杉木" // "label": "杉木"
// }, // },
// { // {
// "name": "梦见木", // "name": "梦见木",
// "type": "checkbox", // "type": "checkbox",
// "label": "梦见木" // "label": "梦见木"
// }, // },
// { // {
// "name": "枫木", // "name": "枫木",
// "type": "checkbox", // "type": "checkbox",
// "label": "枫木" // "label": "枫木"
// }, // },
// { // {
// "name": "孔雀木", // "name": "孔雀木",
// "type": "checkbox", // "type": "checkbox",
// "label": "孔雀木" // "label": "孔雀木"
// }, // },
// { // {
// "name": "御伽木", // "name": "御伽木",
// "type": "checkbox", // "type": "checkbox",
// "label": "御伽木" // "label": "御伽木"
// }, // },
// { // {
// "name": "辉木", // "name": "辉木",
// "type": "checkbox", // "type": "checkbox",
// "label": "辉木" // "label": "辉木"
// }, // },
// { // {
// "name": "业果木", // "name": "业果木",
// "type": "checkbox", // "type": "checkbox",
// "label": "业果木" // "label": "业果木"
// }, // },
// { // {
// "name": "证悟木", // "name": "证悟木",
// "type": "checkbox", // "type": "checkbox",
// "label": "证悟木" // "label": "证悟木"
// }, // },
// { // {
// "name": "刺葵木", // "name": "刺葵木",
// "type": "checkbox", // "type": "checkbox",
// "label": "刺葵木" // "label": "刺葵木"
// }, // },
// { // {
// "name": "柽木", // "name": "柽木",
// "type": "checkbox", // "type": "checkbox",
// "label": "柽木" // "label": "柽木"
// }, // },
// { // {
// "name": "悬铃木", // "name": "悬铃木",
// "type": "checkbox", // "type": "checkbox",
// "label": "悬铃木" // "label": "悬铃木"
// }, // },
// { // {
// "name": "椴木", // "name": "椴木",
// "type": "checkbox", // "type": "checkbox",
// "label": "椴木" // "label": "椴木"
// }, // },
// { // {
// "name": "白梣木", // "name": "白梣木",
// "type": "checkbox", // "type": "checkbox",
// "label": "白梣木" // "label": "白梣木"
// }, // },
// { // {
// "name": "香柏木", // "name": "香柏木",
// "type": "checkbox", // "type": "checkbox",
// "label": "香柏木" // "label": "香柏木"
// }, // },
// { // {
// "name": "炬木", // "name": "炬木",
// "type": "checkbox", // "type": "checkbox",
// "label": "炬木" // "label": "炬木"
// }, // },
// { // {
// "name": "白栗栎木", // "name": "白栗栎木",
// "type": "checkbox", // "type": "checkbox",
// "label": "白栗栎木" // "label": "白栗栎木"
// }, // },
// { // {
// "name": "灰灰楼林木", // "name": "灰灰楼林木",
// "type": "checkbox", // "type": "checkbox",
// "label": "灰灰楼林木" // "label": "灰灰楼林木"
// }, // },
// { // {
// "name": "燃爆木", // "name": "燃爆木",
// "type": "checkbox", // "type": "checkbox",
// "label": "燃爆木" // "label": "燃爆木"
// } // }
] ]

View File

@@ -1,4 +1,4 @@
全部木材: 全部木材:
桦木 萃华木 松木 却砂木 竹节 垂香木 杉木 梦见木 枫木 孔雀木 御伽木 辉木 业果木 证悟木 刺葵木 柽木 悬铃木 椴木 白梣木 香柏木 炬木 白栗栎木 灰灰楼林木 燃爆木 桃椰子木 桦木 萃华木 松木 却砂木 竹节 垂香木 杉木 梦见木 枫木 孔雀木 御伽木 辉木 业果木 证悟木 刺葵木 柽木 悬铃木 椴木 白梣木 香柏木 炬木 白栗栎木 灰灰楼林木 燃爆木 桃椰子木
涉及炬木、桃椰子木的队伍要求:双风共鸣且琳妮特前台 涉及炬木、桃椰子木的队伍要求:双风共鸣且琳妮特前台

View File

@@ -1,21 +1,21 @@
(async function () { (async function () {
setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI
await sleep(3000); await sleep(3000);
keyPress("F"); keyPress("F");
await sleep(5000); await sleep(5000);
click(1370, 655); click(1370, 655);
await sleep(3000); await sleep(3000);
click(1370, 655); click(1370, 655);
await sleep(3000); await sleep(3000);
click(680,300); click(680,300);
await sleep(3000); await sleep(3000);
click(1760, 1020); click(1760, 1020);
await sleep(3000); await sleep(3000);
click(1160, 780); click(1160, 780);
await sleep(3000); await sleep(3000);
click(1160, 780); click(1160, 780);
await sleep(3000); await sleep(3000);
click(1865, 44); click(1865, 44);
await sleep(3000); await sleep(3000);
log.info("已领取洞天宝钱和好感"); log.info("已领取洞天宝钱和好感");
})(); })();

View File

@@ -1,13 +1,13 @@
{ {
"manifest_version": 1, "manifest_version": 1,
"name": "领取洞天百宝须臾树脂,只领取须臾树脂,前面是领取洞天宝钱和好感", "name": "领取洞天百宝须臾树脂,只领取须臾树脂,前面是领取洞天宝钱和好感",
"version": "1.0", "version": "1.0",
"description": "领取洞天须臾树脂", "description": "领取洞天须臾树脂",
"authors": [ "authors": [
{ {
"name": "风埠", "name": "风埠",
"links": "https://github.com/jhkif" "links": "https://github.com/jhkif"
} }
], ],
"main": "main.js" "main": "main.js"
} }

View File

@@ -1,21 +1,21 @@
(async function () { (async function () {
setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI
keyPress("F"); keyPress("F");
await sleep(1000); await sleep(1000);
keyPress("F"); keyPress("F");
await sleep(1500); await sleep(1500);
click(960, 540); click(960, 540);
await sleep(1000); await sleep(1000);
click(1750, 1010); click(1750, 1010);
await sleep(5000); await sleep(5000);
click(975, 900); click(975, 900);
await sleep(1000); await sleep(1000);
click(1356, 804); //再见 click(1356, 804); //再见
log.info("点击再见1"); log.info("点击再见1");
await sleep(2000); await sleep(2000);
click(1356, 804); //再见 click(1356, 804); //再见
log.info("点击再见2"); log.info("点击再见2");
keyPress("Escape"); keyPress("Escape");
log.info("已完成合成浓缩树脂"); log.info("已完成合成浓缩树脂");
})(); })();

View File

@@ -1,12 +1,12 @@
{ {
"manifest_version": 1, "manifest_version": 1,
"name": "合成浓缩树脂", "name": "合成浓缩树脂",
"version": "1.1", "version": "1.1",
"description": "用于合成浓缩树脂", "description": "用于合成浓缩树脂",
"authors": [ "authors": [
{ {
"name": "鹤望兰" "name": "鹤望兰"
} }
], ],
"main": "main.js" "main": "main.js"
} }

Some files were not shown because too many files have changed in this diff Show More