Merge remote-tracking branch 'upstream/main'
This commit is contained in:
1
.github/workflows/build.yml
vendored
1
.github/workflows/build.yml
vendored
@@ -35,6 +35,7 @@ jobs:
|
|||||||
- run: node ./build/build.js
|
- run: node ./build/build.js
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v5
|
- uses: stefanzweifel/git-auto-commit-action@v5
|
||||||
with:
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
commit_message: update repo.json
|
commit_message: update repo.json
|
||||||
|
|
||||||
upload:
|
upload:
|
||||||
|
|||||||
68
README.md
68
README.md
@@ -2,12 +2,78 @@
|
|||||||
|
|
||||||
[BetterGI](https://github.com/babalae/better-genshin-impact) 的 📜 脚本仓库
|
[BetterGI](https://github.com/babalae/better-genshin-impact) 的 📜 脚本仓库
|
||||||
|
|
||||||
在线版:[bgi.sh](https://bgi.sh)
|
在线版脚本仓库:[bgi.sh](https://bgi.sh)
|
||||||
|
|
||||||
作者Q群:764972801 (非作者请勿加入)
|
作者Q群:764972801 (非作者请勿加入)
|
||||||
|
|
||||||
[如何提交到本仓库?(谁都能看懂的 GitHub Pull Request 使用指南)](https://bgi.huiyadan.com/dev/pr.html)
|
[如何提交到本仓库?(谁都能看懂的 GitHub Pull Request 使用指南)](https://bgi.huiyadan.com/dev/pr.html)
|
||||||
|
|
||||||
|
## 脚本提交说明
|
||||||
|
|
||||||
|
- 战斗脚本提交到 [repo/combat](https://github.com/babalae/bettergi-scripts-list/tree/main/repo/combat) 目录;
|
||||||
|
- JS 脚本提交到 [repo/js](https://github.com/babalae/bettergi-scripts-list/tree/main/repo/js) 目录;
|
||||||
|
- 地图追踪脚本提交到 [repo/pathing](https://github.com/babalae/bettergi-scripts-list/tree/main/repo/pathing) 目录;
|
||||||
|
- 七圣召唤脚本提交到 [repo/tcg](https://github.com/babalae/bettergi-scripts-list/tree/main/repo/tcg) 目录。
|
||||||
|
|
||||||
|
|
||||||
|
## 脚本提交规范
|
||||||
|
为了保证脚本的规范性和可读性,方便用户清晰了解脚本的用途,制定以下脚本命名规则和脚本文件夹命名规则。
|
||||||
|
### 地图追踪脚本
|
||||||
|
#### 文件命名规范
|
||||||
|
确保脚本文件在同一目录下按预期顺序排列,并一目了然地传达关键信息。地图追踪脚本命名需包含以下核心信息:
|
||||||
|
```
|
||||||
|
编号-材料名称-区域(跨区域材料填写)-二级子区域-数量
|
||||||
|
```
|
||||||
|
- 编号
|
||||||
|
- 两位数,如果单个资源脚本数量超过 `100` 可以考虑使用三位数编号或者使用字母加数字编号,如 A01
|
||||||
|
- 编号的排序应遵循以下两种方式之一:
|
||||||
|
- 按传送点位顺序排序。相邻脚本之间优先保证传送的便捷性,这种编号方式考虑整体采集效率。
|
||||||
|
- 按材料获取效率排序。优先选择资源分布密集或容易采集的点,效率高的路径放在靠前编号,这种编号方式考虑编号靠前脚本的采集效率。
|
||||||
|
- 材料名称
|
||||||
|
- 采集物(使用游戏内官方名称命名,如 `慕风蘑菇`,`劫波莲`,不应当使用 `绫华突破材料`等不清晰的名称命名)
|
||||||
|
- 掉落物(因掉落物名称与掉落物等级有关,因此不使用掉落物本身命名,而是使用怪物名称命名)
|
||||||
|
- 区域(指 `蒙德` `璃月` `稻妻` `须弥` `枫丹` `纳塔` `至冬`,仅当材料跨区域需标注)
|
||||||
|
- 二级子区域(细分地点,如 `绝云间`)
|
||||||
|
- 预期采集的数量
|
||||||
|
示例:
|
||||||
|
```
|
||||||
|
01-水晶矿-璃月-绝云间-6个
|
||||||
|
02-水晶矿-璃月-荻花洲-8个
|
||||||
|
```
|
||||||
|
脚本名称仅限上述规定的编号、材料名称、区域、二级子区域,不应包含额外的描述或标点符号。如:
|
||||||
|
```
|
||||||
|
01-水晶矿-璃月-快速路径-绝云间-6个
|
||||||
|
```
|
||||||
|
其他注意事项
|
||||||
|
- 脚本文件名应当和 `json` 文件中的 `name` 字段相同。
|
||||||
|
#### 文件夹命名规范
|
||||||
|
目的:对脚本按材料分类管理,便于版本控制与团队协作。目录结构应当遵循以下原则:
|
||||||
|
|
||||||
|
- 一级目录:以材料名称命名,须与文件命名中的材料名称一致。
|
||||||
|
- 二级子目录(可选):可根据项目或作者划分,如有必要。
|
||||||
|
示例目录结构如下:
|
||||||
|
```
|
||||||
|
repo/pathing/
|
||||||
|
├─ 水晶矿/
|
||||||
|
│ ├─ 01-水晶矿-璃月-绝云间-6个
|
||||||
|
│ └─ 02-水晶矿-璃月-荻花洲-8个
|
||||||
|
└─ 风车菊/
|
||||||
|
└─ 01-风车菊-蒙德-清泉镇-15个
|
||||||
|
```
|
||||||
|
如果脚本和原来的地图追踪脚本存在冲突 按照以下原则处理:
|
||||||
|
- 修复或补充:直接提交到原材料目录。
|
||||||
|
- 路线冲突:新建同名目录并添加作者标识:
|
||||||
|
1. 将旧脚本目录重命名为 `AA@旧作者名`
|
||||||
|
2. 新脚本放入 `AA@你的名字`
|
||||||
|
3. 例:原 `repo/pathing/AA` 重命名为 `repo/pathing/AA@oldauthor` 新目录 `repo/pathing/AA@yourname`
|
||||||
|
|
||||||
|
其他注意事项
|
||||||
|
- 目录名仅限材料官方名称,不添加版本号或其他标识。
|
||||||
|
- 作者标识仅在冲突时追加,格式为“@作者名”,紧随原目录名。
|
||||||
|
|
||||||
|
### 其他
|
||||||
|
因早期对脚本管理较为宽松,因此仓库有部分脚本并不符合命名规范,欢迎通过 PR 规范这些名称。
|
||||||
|
|
||||||
## 相关源码
|
## 相关源码
|
||||||
|
|
||||||
脚本仓库页面的源码:[bettergi-scripts-web](https://github.com/huiyadanli/bettergi-scripts-web)
|
脚本仓库页面的源码:[bettergi-scripts-web](https://github.com/huiyadanli/bettergi-scripts-web)
|
||||||
|
|||||||
@@ -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("已分解狗粮");
|
||||||
})();
|
})();
|
||||||
@@ -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",
|
||||||
}
|
}
|
||||||
@@ -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("已摧毁狗粮");
|
||||||
})();
|
})();
|
||||||
@@ -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",
|
||||||
}
|
}
|
||||||
@@ -1,109 +1,109 @@
|
|||||||
(async function () {
|
(async function () {
|
||||||
//特殊字符键盘映射集
|
//特殊字符键盘映射集
|
||||||
const map = {
|
const map = {
|
||||||
'(': '9',
|
'(': '9',
|
||||||
')': '0',
|
')': '0',
|
||||||
'`': 'VK_OEM_3',
|
'`': 'VK_OEM_3',
|
||||||
'!': '1',
|
'!': '1',
|
||||||
'@': '2',
|
'@': '2',
|
||||||
'#': '3',
|
'#': '3',
|
||||||
'$': '4',
|
'$': '4',
|
||||||
'%': '5',
|
'%': '5',
|
||||||
'^': '6',
|
'^': '6',
|
||||||
'&': '7',
|
'&': '7',
|
||||||
'*': '8',
|
'*': '8',
|
||||||
'_': 'VK_SUBTRACT',
|
'_': 'VK_SUBTRACT',
|
||||||
'-': 'VK_SUBTRACT',
|
'-': 'VK_SUBTRACT',
|
||||||
'+': 'VK_ADD',
|
'+': 'VK_ADD',
|
||||||
'=': 'VK_ADD',
|
'=': 'VK_ADD',
|
||||||
'|': 'VK_SEPARATOR',
|
'|': 'VK_SEPARATOR',
|
||||||
'{': 'VK_OEM_4',
|
'{': 'VK_OEM_4',
|
||||||
'}': 'VK_OEM_6',
|
'}': 'VK_OEM_6',
|
||||||
'[': 'VK_OEM_4',
|
'[': 'VK_OEM_4',
|
||||||
']': 'VK_OEM_6',
|
']': 'VK_OEM_6',
|
||||||
':': 'VK_OEM_1',
|
':': 'VK_OEM_1',
|
||||||
';': 'VK_OEM_1',
|
';': 'VK_OEM_1',
|
||||||
'\'': 'VK_OEM_7',
|
'\'': 'VK_OEM_7',
|
||||||
'"': 'VK_OEM_7',
|
'"': 'VK_OEM_7',
|
||||||
'<': 'VK_OEM_COMMA',
|
'<': 'VK_OEM_COMMA',
|
||||||
'>': 'VK_OEM_PERIOD',
|
'>': 'VK_OEM_PERIOD',
|
||||||
',': 'VK_OEM_COMMA',
|
',': 'VK_OEM_COMMA',
|
||||||
'.': 'VK_OEM_PERIOD',
|
'.': 'VK_OEM_PERIOD',
|
||||||
'?': 'VK_OEM_2',
|
'?': 'VK_OEM_2',
|
||||||
};
|
};
|
||||||
function replaceUsingMap(input) {
|
function replaceUsingMap(input) {
|
||||||
return map[input] || input; // 如果找到映射,返回对应的值;否则返回原值
|
return map[input] || input; // 如果找到映射,返回对应的值;否则返回原值
|
||||||
}
|
}
|
||||||
setGameMetrics(1920, 1080, 2);
|
setGameMetrics(1920, 1080, 2);
|
||||||
await sleep(3000);
|
await sleep(3000);
|
||||||
//同意用户协议
|
//同意用户协议
|
||||||
click(698, 610);
|
click(698, 610);
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
//点击用户名输入框
|
//点击用户名输入框
|
||||||
click(800, 400);
|
click(800, 400);
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
//输入用户名
|
//输入用户名
|
||||||
log.info("输入用户名");
|
log.info("输入用户名");
|
||||||
let username = settings.username;
|
let username = settings.username;
|
||||||
let usernameList = username.split('');
|
let usernameList = username.split('');
|
||||||
usernameList.forEach(element => {
|
usernameList.forEach(element => {
|
||||||
charCode = element.charCodeAt(0);
|
charCode = element.charCodeAt(0);
|
||||||
let arr = [40,41,33,64,35,36,37,94,38,42,95,43,124,123,125,58,34,60,62,63];
|
let arr = [40,41,33,64,35,36,37,94,38,42,95,43,124,123,125,58,34,60,62,63];
|
||||||
if(charCode > 64 && charCode < 91 || arr.includes(charCode)==1){
|
if(charCode > 64 && charCode < 91 || arr.includes(charCode)==1){
|
||||||
element=replaceUsingMap(element);
|
element=replaceUsingMap(element);
|
||||||
keyDown("SHIFT");
|
keyDown("SHIFT");
|
||||||
keyPress(element);
|
keyPress(element);
|
||||||
keyUp("SHIFT");
|
keyUp("SHIFT");
|
||||||
}else{
|
}else{
|
||||||
element=replaceUsingMap(element);
|
element=replaceUsingMap(element);
|
||||||
keyPress(element);
|
keyPress(element);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
log.info("用户名={xx}",username)
|
log.info("用户名={xx}",username)
|
||||||
await sleep(3000);
|
await sleep(3000);
|
||||||
//点击用户名输入框
|
//点击用户名输入框
|
||||||
click(800, 500);
|
click(800, 500);
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
//输入密码
|
//输入密码
|
||||||
log.info("输入密码")
|
log.info("输入密码")
|
||||||
let password = settings.password;
|
let password = settings.password;
|
||||||
let passwordList = password.split('');
|
let passwordList = password.split('');
|
||||||
passwordList.forEach(element => {
|
passwordList.forEach(element => {
|
||||||
charCode = element.charCodeAt(0);
|
charCode = element.charCodeAt(0);
|
||||||
let arr = [40,41,33,64,35,36,37,94,38,42,95,43,124,123,125,58,34,60,62,63];
|
let arr = [40,41,33,64,35,36,37,94,38,42,95,43,124,123,125,58,34,60,62,63];
|
||||||
if(charCode > 64 && charCode < 91 || arr.includes(charCode)==1){
|
if(charCode > 64 && charCode < 91 || arr.includes(charCode)==1){
|
||||||
element=replaceUsingMap(element);
|
element=replaceUsingMap(element);
|
||||||
keyDown("SHIFT");
|
keyDown("SHIFT");
|
||||||
keyPress(element);
|
keyPress(element);
|
||||||
keyUp("SHIFT");
|
keyUp("SHIFT");
|
||||||
}else{
|
}else{
|
||||||
element=replaceUsingMap(element);
|
element=replaceUsingMap(element);
|
||||||
keyPress(element);
|
keyPress(element);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
log.info("密码={xx}",password);
|
log.info("密码={xx}",password);
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
//登录
|
//登录
|
||||||
keyPress("RETURN");
|
keyPress("RETURN");
|
||||||
await sleep(10000);
|
await sleep(10000);
|
||||||
//进入世界
|
//进入世界
|
||||||
click(950, 1000);
|
click(950, 1000);
|
||||||
log.info("进入世界");
|
log.info("进入世界");
|
||||||
await sleep(10000);
|
await sleep(10000);
|
||||||
//进入世界2
|
//进入世界2
|
||||||
click(950, 1000);
|
click(950, 1000);
|
||||||
log.info("进入世界2");
|
log.info("进入世界2");
|
||||||
await sleep(10000);
|
await sleep(10000);
|
||||||
//点击领月卡
|
//点击领月卡
|
||||||
click(950, 1000);
|
click(950, 1000);
|
||||||
log.info("点击领月卡");
|
log.info("点击领月卡");
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
//点击领月卡2
|
//点击领月卡2
|
||||||
click(950, 1000);
|
click(950, 1000);
|
||||||
log.info("点击领月卡2");
|
log.info("点击领月卡2");
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
//点击领月卡2
|
//点击领月卡2
|
||||||
click(950, 1000);
|
click(950, 1000);
|
||||||
log.info("点击领月卡3");
|
log.info("点击领月卡3");
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
})();
|
})();
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"manifest_version": 1,
|
"manifest_version": 1,
|
||||||
"name": "登录游戏",
|
"name": "登录游戏",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"description": "输入账号和密码并进入游戏",
|
"description": "输入账号和密码并进入游戏",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "愚溪",
|
"name": "愚溪",
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"settings_ui": "settings.json",
|
"settings_ui": "settings.json",
|
||||||
"main": "main.js"
|
"main": "main.js"
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "username",
|
"name": "username",
|
||||||
"type": "input-text",
|
"type": "input-text",
|
||||||
"label": "账号"
|
"label": "账号"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "password",
|
"name": "password",
|
||||||
"type": "input-text",
|
"type": "input-text",
|
||||||
"label": "密码"
|
"label": "密码"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
(async function () {
|
(async function () {
|
||||||
setGameMetrics(1920, 1080, 2);
|
setGameMetrics(1920, 1080, 2);
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
keyPress("ESCAPE")
|
keyPress("ESCAPE")
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
click(50, 1030);
|
click(50, 1030);
|
||||||
log.info("退出");
|
log.info("退出");
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
click(1000, 750);
|
click(1000, 750);
|
||||||
log.info("确认");
|
log.info("确认");
|
||||||
await sleep(20000);
|
await sleep(20000);
|
||||||
click(1800, 1000);
|
click(1800, 1000);
|
||||||
log.info("切换账号");
|
log.info("切换账号");
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
click(1000, 550);
|
click(1000, 550);
|
||||||
log.info("确认");
|
log.info("确认");
|
||||||
await sleep(4000);
|
await sleep(4000);
|
||||||
})();
|
})();
|
||||||
@@ -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"
|
||||||
}
|
}
|
||||||
@@ -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("已分解狗粮");
|
||||||
})();
|
})();
|
||||||
@@ -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",
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user