同步AutoCommission更新 (#2600)

* 同步AutoCommission更新

* Update version to 0.98.14 in manifest.json

* Refine update instructions in checkVersion.js

Update log message to provide clearer instructions for users after an update.

---------

Co-authored-by: DarkFlameMaster <actions@github.com>
This commit is contained in:
DarkFlameMaster
2025-12-31 16:01:06 +08:00
committed by GitHub
parent 3a0b50b951
commit 44b608ccb0
9 changed files with 117 additions and 36 deletions

View File

@@ -46,7 +46,7 @@
"type": "对话",
"data": {
"skipCount": 1,
"priorityOptions": ["关于礼物"],
"priorityOptions": ["关于礼物", "我付了"],
"npcWhiteList": ["玛乔丽"]
},
"note": "与玛乔丽对话"

View File

@@ -1,9 +1,5 @@
// 原神每日委托自动执行脚本 - 常量定义模块
var Constants = {
// 版本和编译信息
VERSION: "0.98.13",
BUILD_TIME: "2025.12.26",
// 文件路径常量
SUPPORT_LIST_PATH: "name.json",
OUTPUT_DIR: "Data",

View File

@@ -0,0 +1,69 @@
/**
* 检查是否需要更新版本
* @param {string} currentVersion 当前版本号 (如 "1.2.3")
* @param {string} latestVersion 最新版本号 (如 "1.2.4")
* @returns {boolean} 返回是否需要更新: true表示需要更新, false表示不需要更新
*/
var needUpdate = function (currentVersion, latestVersion) {
// 将版本号字符串分割成数字数组
const currentParts = currentVersion.split('.').map(Number);
const latestParts = latestVersion.split('.').map(Number);
// 获取较长的版本号长度
const maxLength = Math.max(currentParts.length, latestParts.length);
// 逐位比较版本号
for (let i = 0; i < maxLength; i++) {
const currentPart = currentParts[i] || 0; // 如果不存在则默认为0
const latestPart = latestParts[i] || 0; // 如果不存在则默认为0
if (currentPart < latestPart) {
return true; // 当前版本小于最新版本,需要更新
} else if (currentPart > latestPart) {
return false; // 当前版本大于最新版本,不需要更新
}
}
return false; // 两个版本号相等,不需要更新
};
var printVersion = async function () {
try {
let currentVersion = JSON.parse(file.readTextSync("manifest.json")).version;
log.info(`当前版本为:{x}`, currentVersion);
let response = await http.request(
"GET",
"https://cnb.cool/bettergi/bettergi-scripts-list/-/git/raw/release/repo/js/AutoCommission/manifest.json"
);
let latestVersion = JSON.parse(response.body).version;
if (needUpdate(currentVersion, latestVersion)) {
log.info("=".repeat(20));
log.info(" ");
log.info("{text}:{v}", "发现新版本!", latestVersion);
log.info(" ");
log.info("=".repeat(20));
log.info(`更新方式:软件左侧菜单 -> 全自动 -> JS脚本 -> 脚本仓库 -> 更新仓库`);
log.info(`更新完毕后 {text1} 在左侧找到 {txt2} -> 上方点击 {txt3} -> 找到本脚本并点击 -> 右侧点击{txt4}`,
"打开仓库",
"Javascript 脚本",
"已订阅",
"再次订阅"
);
await sleep(10000);
}
} catch (error) {
if (error.message.includes("不允许使用HTTP请求")) {
log.warn("获取版本号失败,请在调度器中右键本脚本 -> 修改通用设置 -> JS HTTP权限-> 禁用改为启用")
log.info(`==== 不影响脚本正常运行 ====`);
} else if (error.message.includes("A task was canceled")) {
// pass
} else {
log.error(`获取新版本号出错:${error}`);
log.info(`==== 不影响脚本正常运行 ====`);
}
await sleep(5000);
}
}

View File

@@ -221,9 +221,18 @@ var CommissionRecognition = {
await sleep(300);
keyUp("VK_ESCAPE");
await sleep(1200);
await genshin.setBigMapZoomLevel(2);
// 获取地图坐标并保存
var bigMapPosition = genshin.getPositionFromBigMap();
let scale = 2.0
let bigMapPosition
while (scale <= 5.0) {
try {
await genshin.setBigMapZoomLevel(scale);
bigMapPosition = genshin.getPositionFromBigMap();
break;
} catch {
scale += 0.1;
}
await sleep(100);
}
if (bigMapPosition) {
commission.CommissionPosition = bigMapPosition;
log.info(
@@ -391,9 +400,18 @@ var CommissionRecognition = {
await sleep(300);
keyUp("VK_ESCAPE");
await sleep(1200);
await genshin.setBigMapZoomLevel(2);
// 获取地图坐标并保存
var bigMapPosition = genshin.getPositionFromBigMap();
let scale = 2.0
let bigMapPosition
while (scale <= 5.0) {
try {
await genshin.setBigMapZoomLevel(scale);
bigMapPosition = genshin.getPositionFromBigMap();
break;
} catch {
scale += 0.1;
}
await sleep(100);
}
if (bigMapPosition) {
fourthCommission.CommissionPosition = bigMapPosition;
log.info(

View File

@@ -90,7 +90,6 @@ var Core = {
return commissions;
} catch (error) {
log.error("Identification函数出现错误: {error}", error.message);
await Utils.errorlog();
return [];
}
},
@@ -381,7 +380,6 @@ var Core = {
return completedCount > 0;
} catch (error) {
log.error("执行委托追踪时出错: {error}", error.message);
await Utils.errorlog();
return false;
}
},
@@ -389,8 +387,6 @@ var Core = {
// 主流程执行函数
executeMainProcess: async function() {
try {
log.debug("版本: {version}", Constants.VERSION);
var settings = await Utils.getSetting();
if (settings.skipRecognition) {
@@ -414,7 +410,6 @@ var Core = {
}
} catch (error) {
log.error("执行出错: {error}", error.message);
await Utils.errorlog();
}
},
};

View File

@@ -127,9 +127,18 @@ var Execute = {
await sleep(300);
keyUp("VK_ESCAPE");
await sleep(1200);
await genshin.setBigMapZoomLevel(2);
// 获取地图坐标并保存
var bigMapPosition = genshin.getPositionFromBigMap();
let scale = 2.0
let bigMapPosition
while (scale <= 5.0) {
try {
await genshin.setBigMapZoomLevel(scale);
bigMapPosition = genshin.getPositionFromBigMap();
break;
} catch {
scale += 0.1;
}
await sleep(100);
}
if (bigMapPosition) {
currentCommissionPosition = bigMapPosition;
log.info(

View File

@@ -188,7 +188,7 @@ var Utils = {
var captureRegion = captureGameRegion();
var OCRresults = await captureRegion.findMulti(locationOcrRo);
captureRegion.dispose();
log.debug("OCR结果: {OCRresults}", Array.from(OCRresults).map(r => r.text) );
return OCRresults;
} catch (error) {
log.error("easyOCR识别出错: {error}", error.message);
@@ -281,15 +281,6 @@ var Utils = {
}
},
// 输出版本和编译时间信息
errorlog: async function () {
// 输出版本和编译时间信息
log.info("=".repeat(20));
log.info("版本: {version}", Constants.VERSION);
log.info("编译时间: {buildTime}", Constants.BUILD_TIME);
log.info("=".repeat(20));
},
// 睡眠函数包装
sleep: function (ms) {
return sleep(ms);

View File

@@ -12,6 +12,7 @@ eval(file.readTextSync("lib/commission-basic.js"));
eval(file.readTextSync("lib/commission-recognition.js"));
eval(file.readTextSync("lib/commission-data.js"));
eval(file.readTextSync("lib/step-processor-loader.js"));
eval(file.readTextSync("lib/checkVersion.js"));
// === BGI标准脚本入口匿名立即执行异步函数必须是文件的最后一个表达式 ===
// 测试用代码
@@ -71,11 +72,8 @@ const test = async () => {
(async function () {
try {
// 输出版本和编译时间信息
log.info("=".repeat(20));
log.info("版本: {version}", Constants.VERSION);
log.info("编译时间: {buildTime}", Constants.BUILD_TIME);
log.info("=".repeat(20));
// 检查更新
await printVersion()
// 加载步骤处理器
log.info("正在加载步骤处理器...");

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 1,
"name": "(对话+成就)全自动蒙德地区每日委托",
"version": "0.98.13",
"version": "0.98.14",
"tags": ["委托","对话","战斗","成就","历练点"],
"description": "自动完成每日委托、自动识别委托内容、自动追踪战斗委托、自动完成对话委托、自动获得到隐藏成就。使用前请阅读README.md获取详细说明和常见问题解答。目前项目急需人手,有意者可加群。感谢云闲vsv & 换苏伟u & 小鹰划船不用桨 & 塔台 & 未知_ 的共同开发",
"authors": [
@@ -11,5 +11,10 @@
}
],
"settings_ui": "settings.json",
"main": "main.js"
"main": "main.js",
"http_allowed_urls": [
"https://cnb.cool/bettergi/bettergi-scripts-list/*",
"https://github.com/babalae/bettergi-scripts-list/*",
"https://github.com/1004452714/AutoCommission/*"
]
}