mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-04-29 23:19:59 +08:00
* refactor(ActivitySwitchNotice): 优化通知配置构建逻辑 - 将 configNotice 变量改为 let 声明以支持动态更新 - 新增 async 函数 buildConfigNotice 用于构建通知配置 - 在 sendNotice 函数中调用 buildConfigNotice 确保配置最新 - 在 sendText 函数中添加 buildConfigNotice 调用保证配置同步 * refactor(utils): 导出工具函数并移除全局挂载 - 将 activity.js 中的 activityMain 函数改为导出函数 - 将 campaignArea.js 中的 ocrDailyCommission、ocrWeeklyCount、campaignAreaMain、dailyCommissionMain 函数改为导出函数 - 将 mapMission.js 中的 ocrMapMission、openMap、mapMission 函数改为导出函数 - 将 tool.js 中的 findTextAndClick、getDayOfWeek 函数改为导出函数 - 将 uid.js 中的 saveOnlyNumber、ocrUID、compareUid、checkUid、check 函数改为导出函数 - 将 ws.js 中的 send、sendText 函数改为导出函数 - 移除所有 utils 文件中对 this 对象的挂载操作 - 在 main.js 中导入新的工具函数并移除重复定义的函数 * fix(ActivitySwitchNotice): 修复圣遗物空间检查功能中的显示和逻辑问题 - 修正圣遗物空间不足提醒消息中的标点符号格式 - 修复圣遗物空间阈值错误日志中的数字格式 - 移除不必要的延时操作以优化执行效率 - 调整代码结构以提高运行性能 fix(ActivitySwitchNotice): 修复圣遗物空间检查功能中的显示和逻辑问题 - 修正圣遗物空间不足提醒消息中的标点符号格式 - 修复圣遗物空间阈值错误日志中的数字格式 - 移除不必要的延时操作以优化执行效率 - 调整代码结构以提高运行性能 refactor(ActivitySwitchNotice): 优化圣遗物检查功能中的延迟配置 - 将硬编码的延迟时间替换为可配置的常量 - 统一延迟时间管理,提高代码可维护性 - 保持原有功能逻辑不变的情况下提升代码质量 feat(ActivitySwitchNotice): 更新版本并新增圣遗物空间检测提醒功能 - 将插件版本从 0.1.3 更新至 0.1.5 - 新增圣遗物剩余空间检测提醒功能 - 在版本历史中添加 0.1.5 版本记录 fix(ActivitySwitchNotice): 修复圣遗物剩余空间阈值解析错误 - 添加 try-catch 块处理 parseInt 异常情况 - 当阈值格式错误时默认使用 400 的阈值 - 添加警告日志记录格式错误的阈值设置 - 确保程序在无效配置下仍能正常运行 feat(bag): 添加圣遗物背包空间检查功能 - 新增 HolyRelics.js 工具模块实现圣遗物数量检查逻辑 - 集成 OCR 识别功能用于获取圣遗物数量信息 - 添加背包空间不足提醒功能,可自定义阈值 - 在 main.js 中集成圣遗物检查流程 - 添加新的配置选项包括打开背包按键和圣遗物阈值设置 - 扩展工具类增加 findText、findImg 和 OcrFind 等通用识别方法 - 实现自动打开背包并处理过期物品弹窗功能 * fix(HolyRelics): 修复圣遗物背包空间检测功能 - 添加了进入圣遗物背包的点击状态验证,避免无法进入时继续执行 - 增强了OCR文本解析逻辑,添加了字符串分割长度验证和数值解析校验 - 优化了阈值参数解析,在main.js中添加了更安全的数值转换和错误处理 - 修复了工具函数中资源释放问题,在isInMainUI函数中使用try-finally确保资源被正确释放 - 更新了提醒消息文本,明确标识阈值设置参数
114 lines
2.8 KiB
JavaScript
114 lines
2.8 KiB
JavaScript
/*
|
||
const commonPath = 'assets/'
|
||
const commonMap = new Map([
|
||
['main_ui', {
|
||
path: `${commonPath}`,
|
||
name: 'paimon_menu',
|
||
type: '.png',
|
||
}],
|
||
])
|
||
const genshinJson = {
|
||
width: 1920,//genshin.width,
|
||
height: 1080,//genshin.height,
|
||
}
|
||
|
||
/!**
|
||
* 根据键值获取JSON路径
|
||
* @param {string} key - 要查找的键值
|
||
* @returns {any} 返回与键值对应的JSON路径值
|
||
*!/
|
||
function getJsonPath(key) {
|
||
return commonMap.get(key); // 通过commonMap的get方法获取指定键对应的值
|
||
}
|
||
*/
|
||
import {toMainUi,isInMainUI} from "./tool"
|
||
export function saveOnlyNumber(str) {
|
||
str = str ? str : '';
|
||
// 使用正则表达式匹配字符串中的所有数字
|
||
// \d+ 匹配一个或多个数字
|
||
// .join('') 将匹配到的数字数组连接成一个字符串
|
||
// parseInt 将连接后的字符串转换为整数
|
||
return parseInt(str.match(/\d+/g).join(''));
|
||
}
|
||
|
||
export async function ocrUID() {
|
||
let uid_json = {
|
||
x: 1683,
|
||
y: 1051,
|
||
width: 234,
|
||
height: 28,
|
||
}
|
||
let recognitionObjectOcr = RecognitionObject.Ocr(uid_json.x, uid_json.y, uid_json.width, uid_json.height);
|
||
let region3 = captureGameRegion()
|
||
try {
|
||
let res = region3.find(recognitionObjectOcr);
|
||
log.debug(`[OCR识别UID]识别结果: ${res.text}, 原始坐标: x=${res.x}, y=${res.y},width:${res.width},height:${res.height}`);
|
||
//只保留数字
|
||
let uid
|
||
try {
|
||
uid = saveOnlyNumber(res.text)
|
||
} catch (e) {
|
||
log.warn(`识别uid异常:{ket}`, e.message)
|
||
uid = 0
|
||
}
|
||
log.debug(`[OCR识别UID]识别结果: {uid}`, uid);
|
||
return uid
|
||
|
||
} finally {
|
||
region3.Dispose()
|
||
}
|
||
}
|
||
|
||
export async function compareUid(UID = settings.uid) {
|
||
let uid = await ocrUID()
|
||
let setUid = 0
|
||
try {
|
||
setUid = saveOnlyNumber(UID)
|
||
} catch (e) {
|
||
// log.warn(`UID未设置`)
|
||
}
|
||
let compare = uid === setUid
|
||
if (compare) {
|
||
log.debug(`[OCR识别UID]识别结果: {uid} 与设置UID相同`, uid);
|
||
}
|
||
return compare
|
||
}
|
||
|
||
export async function checkUid() {
|
||
let reJson = {
|
||
inMainUI: false,
|
||
isUid: false
|
||
}
|
||
if (isInMainUI()) {
|
||
reJson.isUid = await compareUid()
|
||
}
|
||
return reJson
|
||
}
|
||
|
||
export async function check() {
|
||
let check = false
|
||
if (settings.uid) {
|
||
try {
|
||
await toMainUi();
|
||
} catch (e) {
|
||
log.warn("多次尝试返回主界面失败")
|
||
}
|
||
let checkJson = await checkUid()
|
||
if ((!checkJson.inMainUI) && (!checkJson.isUid)) {
|
||
//尝试直接识别
|
||
checkJson.isUid = await compareUid()
|
||
}
|
||
check = checkJson.isUid
|
||
}
|
||
return check
|
||
}
|
||
|
||
|
||
// export {
|
||
// // toMainUi,
|
||
// // isInMainUI,
|
||
// checkUid,
|
||
// ocrUID,
|
||
// check,
|
||
// compareUid,
|
||
// }
|