JS脚本:摧毁圣遗物换摩拉 图像识别改造;JS/地图追踪归档 (#641)

* JS/地图追踪归档

* JS脚本:摧毁圣遗物换摩拉 图像识别改造
This commit is contained in:
起个名字好难的喵
2025-04-25 00:46:06 +08:00
committed by GitHub
parent 6901e9f02f
commit 25397b45c8
43 changed files with 238 additions and 126 deletions

View File

@@ -1,32 +1,32 @@
(async function () { (async function () {
setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI
keyPress("B"); keyPress("B");
await sleep(3000); await sleep(3000);
click(670,40); click(670,40);
await sleep(2000); await sleep(2000);
click(660,1010); click(660,1010);
await sleep(2000); await sleep(2000);
click(300,1020); click(300,1020);
await sleep(1000); await sleep(1000);
click(300,380); click(300,380);
await sleep(400); await sleep(400);
click(300,300); click(300,300);
await sleep(400); await sleep(400);
click(300,220); click(300,220);
await sleep(400); await sleep(400);
click(300,150); click(300,150);
await sleep(800); await sleep(800);
click(340,1010); click(340,1010);
await sleep(800); await sleep(800);
click(1740,1020); click(1740,1020);
await sleep(800); await sleep(800);
click(1180,750); click(1180,750);
await sleep(800); await sleep(800);
click(950,800); click(950,800);
await sleep(800); await sleep(800);
keyPress("Escape"); keyPress("Escape");
await sleep(1000); await sleep(1000);
keyPress("Escape"); keyPress("Escape");
log.info("已分解狗粮"); log.info("已分解狗粮");
})(); })();

View File

@@ -1,12 +1,12 @@
{ {
"manifest_version": 1, "manifest_version": 1,
"name": "分解狗粮", "name": "分解狗粮",
"version": "1.0", "version": "1.0",
"description": "用于分解狗粮", "description": "用于分解狗粮",
"authors": [ "authors": [
{ {
"name": "鹤望兰", "name": "鹤望兰",
} }
], ],
"main": "main.js", "main": "main.js",
} }

View File

@@ -1,30 +1,30 @@
(async function () { (async function () {
setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI setGameMetrics(1920, 1080, 2); // 设置游戏窗口大小和DPI
keyPress("B"); keyPress("B");
await sleep(3000); await sleep(3000);
click(670,40); click(670,40);
await sleep(2000); await sleep(2000);
click(80,1010); click(80,1010);
await sleep(2000); await sleep(2000);
click(170,1020); click(170,1020);
await sleep(1000); await sleep(1000);
click(300,380); click(300,380);
await sleep(400); await sleep(400);
click(300,300); click(300,300);
await sleep(400); await sleep(400);
click(300,220); click(300,220);
await sleep(400); await sleep(400);
click(300,150); click(300,150);
await sleep(800); await sleep(800);
click(340,1010); click(340,1010);
await sleep(800); await sleep(800);
click(1740,1020); click(1740,1020);
await sleep(3000); await sleep(3000);
click(1180,830); click(1180,830);
await sleep(800); await sleep(800);
click(950,800); click(950,800);
await sleep(1000); await sleep(1000);
keyPress("Escape"); keyPress("Escape");
log.info("已摧毁狗粮"); log.info("已摧毁狗粮");
})(); })();

View File

@@ -1,12 +1,12 @@
{ {
"manifest_version": 1, "manifest_version": 1,
"name": "摧毁狗粮", "name": "摧毁狗粮",
"version": "1.0", "version": "1.0",
"description": "用于摧毁狗粮获取摩拉", "description": "用于摧毁狗粮获取摩拉",
"authors": [ "authors": [
{ {
"name": "鹤望兰", "name": "鹤望兰",
} }
], ],
"main": "main.js", "main": "main.js",
} }

View File

@@ -1,33 +1,33 @@
(async function () { (async function () {
setGameMetrics(3840, 2160, 2); setGameMetrics(3840, 2160, 2);
keyPress("b"); keyPress("b");
await sleep(1500); await sleep(1500);
click(1350, 90); click(1350, 90);
await sleep(1240); await sleep(1240);
click(1310, 2030); click(1310, 2030);
await sleep(1000); await sleep(1000);
click(580, 2030); click(580, 2030);
await sleep(1240); await sleep(1240);
click(250, 300); click(250, 300);
await sleep(500); await sleep(500);
click(250, 450); click(250, 450);
await sleep(500); await sleep(500);
click(250, 600); click(250, 600);
await sleep(500); await sleep(500);
click(250, 750); click(250, 750);
await sleep(500); await sleep(500);
click(700, 2030); click(700, 2030);
await sleep(1240); await sleep(1240);
click(3500, 2030); click(3500, 2030);
await sleep(1240); await sleep(1240);
click(2300, 1500); click(2300, 1500);
await sleep(1000); await sleep(1000);
keyPress("Escape"); keyPress("Escape");
await sleep(800); await sleep(800);
keyPress("Escape"); keyPress("Escape");
await sleep(1000); await sleep(1000);
keyPress("Escape"); keyPress("Escape");
await sleep(1000); await sleep(1000);
log.info("已分解狗粮"); log.info("已分解狗粮");
})(); })();

View File

@@ -1,12 +1,12 @@
{ {
"manifest_version": 1, "manifest_version": 1,
"name": "分解狗粮", "name": "分解狗粮",
"version": "1.0", "version": "1.0",
"description": "用于分解狗粮", "description": "用于分解狗粮",
"authors": [ "authors": [
{ {
"name": "HZYgrandma", "name": "HZYgrandma",
} }
], ],
"main": "main.js", "main": "main.js",
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,70 @@
const ArtifactsButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/ArtifactsButton.png"));
const DeleteButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/DeleteButton.png"));
const AutoAddButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/AutoAddButton.png"));
const ConfirmButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/ConfirmButton.png"));
const DestoryButtonRo = RecognitionObject.TemplateMatch(file.ReadImageMatSync("Assets/RecognitionObject/DestoryButton.png"));
/**
* @returns {Promise<void>}
*/
(async function() {
await genshin.returnMainUi();
keyPress("B");
await sleep(1500);
let ArtifactsButton = captureGameRegion().find(ArtifactsButtonRo);
if (ArtifactsButton.isExist()) {
log.info("识别到圣遗物按钮");
ArtifactsButton.click();
await sleep(1500);
}
//计算摧毁次数
if (settings.number > 21){
times = Math.ceil(settings.number/100)
} else if (settings.number <= 21){
times = settings.number
} else {
times = 1
}
try {
for (let i=0 ;i < times ; i++) {
captureGameRegion().find(DeleteButtonRo).click();// 点击摧毁
await sleep(600);
captureGameRegion().find(AutoAddButtonRo).click();// 点击自动添加
await sleep(600);
if (settings.oneStar) {
await sleep(300);
click(150,150);
}
if (settings.twoStar) {
await sleep(300);
click(150,220);
}
if (settings.threeStar) {
await sleep(300);
click(150,300);
}
if (settings.fourStar) {
await sleep(300);
click(150,370);
}
captureGameRegion().find(ConfirmButtonRo).click();// 点击快捷放入
await sleep(600);
captureGameRegion().find(DestoryButtonRo).click();// 点击摧毁
await sleep(600);
captureGameRegion().find(DestoryButtonRo).click();// 弹出页面点击摧毁
await sleep(600);
click(960, 1000);// 点击空白处
await sleep(1000);
}
} catch(ex) {
log.info("背包里的圣遗物已摧毁完毕,提前结束")
} finally {
await genshin.returnMainUi();
}
})();

View File

@@ -0,0 +1,15 @@
{
"manifest_version": 1,
"name": "摧毁圣遗物换摩拉",
"version": "1.0",
"bgiVersion": "0.44.6",
"description": "图像识别改造版",
"authors": [
{
"name": "起个名字好难的喵",
"links":"https://github.com/MisakaAldrich"
}
],
"main": "main.js",
"settings_ui": "settings.json"
}

View File

@@ -0,0 +1,27 @@
[
{
"name": "number",
"type": "input-text",
"label": "摧毁数量(百) 或 摧毁次数"
},
{
"name": "oneStar",
"type": "checkbox",
"label": "摧毁一星圣遗物"
},
{
"name": "twoStar",
"type": "checkbox",
"label": "摧毁二星圣遗物"
},
{
"name": "threeStar",
"type": "checkbox",
"label": "摧毁三星圣遗物"
},
{
"name": "fourStar",
"type": "checkbox",
"label": "摧毁四星圣遗物"
}
]