mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-03-16 03:33:25 +08:00
[1.1.9]圣遗物批量强化-修复异常识别 (#2630)
* ``` refactor(HolyRelicsUp): 优化圣遗物强化脚本逻辑和文档 - 调整代码格式化,统一空格和分号使用规范 - 将OCR识别延迟时间从600ms增加到800ms以提高识别准确性 - 优化日志输出格式,使用log.info替代info函数 - 添加圣遗物等级验证逻辑,检查预估等级是否为4的倍数 - 在README中添加核心逻辑流程的mermaid图表说明 - 实现强化失败时的错误处理机制 ``` * refactor(HolyRelicsUp): 优化工具模块加载机制 - 将工具模块加载改为异步初始化函数 - 使用循环动态加载 utils 目录下的工具文件 - 添加初始化完成日志输出 - 更新版本号从 1.1.8 到 1.1.9 * fix(core): 修复异常识别问题 - 添加 manifest.json 版本信息读取 - 在初始化时输出版本日志 - 更新 README.md 版本历史记录 * refactor(HolyRelicsUp): 重构代码结构并优化日志输出 - 将 languageUtils.js 的加载移到初始化之前 - 从 utils 数组中移除 languageUtils 模块 - 将 holyRelicPartMapBySift 的调试日志从解析函数中移到初始化函数末尾 - 删除了原来的重复日志输出代码
This commit is contained in:
@@ -6,7 +6,58 @@
|
||||
|
||||
1. **分辨率建议**:请尽量确保原神游戏分辨率为1920x1080(尽量在1K下运行)。虽然脚本已兼容其他分辨率,但其他分辨率未经过充分测试。
|
||||
2. **筛选问题**:圣遗物筛选时选择“全选”可能导致失败,此问题暂时无法解决。
|
||||
## 核心逻辑流程
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
autonumber
|
||||
participant Config as 配置初始化
|
||||
participant Utils as 工具函数
|
||||
participant RelicMgr as 圣遗物管理
|
||||
participant OCRSvc as OCR 服务
|
||||
participant Filter as 过滤决策
|
||||
participant Upgrade as 升级执行
|
||||
|
||||
Config->>Utils: 加载 holyRelicsUpUtils.js
|
||||
Config->>Utils: 加载 languageUtils.js
|
||||
Utils-->>Config: 返回工具函数
|
||||
|
||||
Note over RelicMgr: 初始化圣遗物检测
|
||||
RelicMgr->>OCRSvc: 识别圣遗物信息
|
||||
OCRSvc-->>RelicMgr: 返回圣遗物数据
|
||||
|
||||
Note over RelicMgr: 圣遗物筛选流程
|
||||
loop 每个候选圣遗物
|
||||
Note over RelicMgr: 检查圣遗物类型过滤
|
||||
alt 配置了类型过滤
|
||||
RelicMgr->>Filter: 验证圣遗物类型
|
||||
Filter-->>RelicMgr: 返回类型匹配结果
|
||||
alt 类型不匹配
|
||||
RelicMgr-->>RelicMgr: 跳过该圣遗物
|
||||
end
|
||||
end
|
||||
|
||||
Note over RelicMgr: 检查属性过滤
|
||||
alt 配置了属性条件
|
||||
RelicMgr->>Filter: 验证主词条/副词条
|
||||
Filter->>OCRSvc: OCR校验属性值
|
||||
OCRSvc-->>Filter: 返回属性满足情况
|
||||
alt 属性不满足条件
|
||||
Filter-->>RelicMgr: 跳过该圣遗物
|
||||
else 属性满足条件
|
||||
Filter-->>RelicMgr: 保留该圣遗物
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Note over RelicMgr: 圣遗物筛选完成后
|
||||
RelicMgr->>RelicMgr: 根据配置进行二次筛选
|
||||
alt 满足升级条件
|
||||
RelicMgr->>Upgrade: 执行圣遗物升级
|
||||
else 不满足升级条件
|
||||
RelicMgr-->>RelicMgr: 保留该圣遗物不升级
|
||||
end
|
||||
Upgrade-->> RelicMgr: 升级完成反馈
|
||||
```
|
||||
## 核心功能
|
||||
|
||||
1. **批量强化圣遗物**:支持对圣遗物进行批量强化,自动循环强化直到达到指定等级。
|
||||
@@ -251,6 +302,9 @@
|
||||
|
||||
## 版本历史
|
||||
|
||||
### 1.1.9 (2026-01-05)
|
||||
- **修复**
|
||||
- 异常识别 问题
|
||||
### 1.1.8 (2025-12-09)
|
||||
- **新增** **[1.1.8 新增]**:
|
||||
- 使用固定分辨率值替换动态获取(应 https://github.com/babalae/bettergi-scripts-list/pull/2464 修改)
|
||||
|
||||
@@ -1,7 +1,18 @@
|
||||
// 加载 utils 模块
|
||||
eval(file.readTextSync("./utils/holyRelicsUpUtils.js"));
|
||||
eval(file.readTextSync("./utils/languageUtils.js"));
|
||||
|
||||
eval(file.readTextSync(`utils/languageUtils.js`));
|
||||
|
||||
async function init() {
|
||||
let manifest = JSON.parse(file.readTextSync("manifest.json"));
|
||||
log.info(`版本:{version}`, manifest.version);
|
||||
let utils=[
|
||||
"holyRelicsUpUtils",
|
||||
]
|
||||
for (let util of utils) {
|
||||
eval(file.readTextSync(`utils/${util}.js`));
|
||||
}
|
||||
log.info("初始化完成");
|
||||
warn('holyRelicPartMapBySift==>' + JSON.stringify(Array.from(holyRelicPartMapBySift)), must)
|
||||
}
|
||||
/**
|
||||
* 主方法
|
||||
* @returns {Promise<void>}
|
||||
@@ -278,7 +289,6 @@ const commonHolyRelicPartMapBySift = !config.enableAttributeHolyRelic ? [] : par
|
||||
const holyRelicPartMapBySift = !config.enableAttributeHolyRelic ? [] :
|
||||
(!config.coverSiftAttributeHolyRelic ? parseHolyRelicToMap(config.inputSiftAttributeHolyRelic) :
|
||||
takeDifferentHolyRelicToMap(parseHolyRelicToMap(config.inputSiftAttributeHolyRelic), commonHolyRelicPartMapBySift))
|
||||
warn('holyRelicPartMapBySift==>' + JSON.stringify(Array.from(holyRelicPartMapBySift)), must)
|
||||
|
||||
/**
|
||||
* 属性值替换函数
|
||||
@@ -759,7 +769,7 @@ async function validHitPreamble() {
|
||||
let tmEquipmentStatus = await templateMatchFindByJson(jsonEquipmentStatus)
|
||||
if (isExist(tmEquipmentStatus)) {
|
||||
equipmentStatusOk = true
|
||||
await info(`验证成功==>装备状态-识别成功`,must)
|
||||
await info(`验证成功==>装备状态-识别成功`, must)
|
||||
break
|
||||
}
|
||||
index++
|
||||
@@ -2019,8 +2029,8 @@ const isInMainUI = () => {
|
||||
async function openAggrandizement() {
|
||||
let defaultEnhancedInterface = mana.get("defaultEnhancedInterfaceUp")
|
||||
if (config.defaultEnhancedInterface.includes(defaultEnhancedInterface)) {
|
||||
log.info(`默认强化界面为{s}`,defaultEnhancedInterface)
|
||||
return ;
|
||||
log.info(`默认强化界面为{s}`, defaultEnhancedInterface)
|
||||
return;
|
||||
}
|
||||
let ms = 600
|
||||
// 注释掉的代码:使用模板匹配方法查找强化按钮
|
||||
@@ -2229,7 +2239,7 @@ async function templateMatchHolyRelicsUpFrequency(source = 'HolyRelicsUpFrequenc
|
||||
await wait(300)
|
||||
await infoLog(`{x:${x},y:${y},w:${w},h:${h}}`, source) // 记录OCR识别结果*/
|
||||
// 截取游戏画面并进行OCR识别
|
||||
let ms = 600
|
||||
let ms = 800
|
||||
//x=1172, y=134,width:124,height:41
|
||||
let all = {
|
||||
x: Math.floor(genshinJson.width * 1172 / 1920),
|
||||
@@ -2346,7 +2356,16 @@ async function upOperate(operate, source = 'upOperate', log_off) {
|
||||
upJson.level = templateMatchHolyRelics.level
|
||||
upJson.sumLevel = templateMatchHolyRelics.sumLevel
|
||||
// 输出当前圣遗物等级的日志信息
|
||||
await info(`当前圣遗物等级: ${templateMatchHolyRelics.level}`)
|
||||
log.info(`===`)
|
||||
log.info(`当前圣遗物等级: {templateMatchHolyRelics.level}`,templateMatchHolyRelics.level)
|
||||
log.info(`当前圣遗物预估可提升至: {templateMatchHolyRelics.sumLevel}`,templateMatchHolyRelics.level)
|
||||
if (templateMatchHolyRelics.sumLevel % 4 !== 0) {
|
||||
upJson.errorMsg = '强化失败:狗粮不足'
|
||||
upJson.ok = false;
|
||||
throwError(upJson.errorMsg)
|
||||
return upJson
|
||||
}
|
||||
|
||||
// 检查圣遗物是否已达到满级(20级)
|
||||
if (templateMatchHolyRelics.level === 20 || templateMatchHolyRelics.level >= config.upMax) {
|
||||
upJson.start = false
|
||||
@@ -3253,6 +3272,7 @@ async function toMainUi() {
|
||||
|
||||
|
||||
(async function () {
|
||||
await init()
|
||||
await main()
|
||||
})();
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "圣遗物批量强化",
|
||||
"version": "1.1.8",
|
||||
"version": "1.1.9",
|
||||
"description": "一个批量强化圣遗物的脚本",
|
||||
"settings_ui": "settings.json",
|
||||
"main": "main.js",
|
||||
|
||||
Reference in New Issue
Block a user