Skip to content

Commit 55f5879

Browse files
JS脚本:好友尘歌壶双倍好感
1 parent 50f1147 commit 55f5879

File tree

3 files changed

+135
-0
lines changed

3 files changed

+135
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
(async function () {
2+
3+
async function RequestToVisitSereniteaPot() {
4+
setGameMetrics(3840, 2160, 1.5);
5+
await sleep(2000);
6+
keyPress("VK_ESCAPE");
7+
await sleep(2000);
8+
click(1020,840);
9+
await sleep(2000);
10+
11+
let y_avatar = 355; //好友头像按钮起始Y坐标
12+
let y_request = 489; //申请造访按钮起始Y坐标
13+
const x_avatar = 415;
14+
const x_request = 920;
15+
const avatar_increment = 250; //两按钮相隔坐标
16+
const request_increment = 249; //两按钮相隔坐标
17+
const request_fixed_value = 1118; //第四~七位好友申请造访按钮Y坐标
18+
const total_clicks = 14;
19+
let request_count = 0;
20+
21+
// 先申请造访首位好友的尘歌壶
22+
log.info("正在申请造访第 1 位好友尘歌壶");
23+
click(x_avatar, y_avatar);
24+
await sleep(1000);
25+
click(x_request, y_request);
26+
await sleep(1000);
27+
28+
// 依次申请造访第二~七位好友的尘歌壶
29+
for (let i = 2; i < total_clicks; i++) {
30+
if (i % 2 === 0) {
31+
// 偶数索引,递增 y_avatar
32+
y_avatar += avatar_increment;
33+
log.info(`正在申请造访第 ${i/2+1} 位好友尘歌壶`);
34+
click(x_avatar, y_avatar);
35+
await sleep(1000);
36+
} else {
37+
// 奇数索引,递增 y_request
38+
if (request_count < 3) {
39+
// 前 3 次递增 249
40+
y_request += request_increment;
41+
} else {
42+
// 第四次及以后设为 1118
43+
y_request = request_fixed_value;
44+
}
45+
request_count++;
46+
click(x_request, y_request);
47+
await sleep(1000);
48+
}
49+
}
50+
log.info("等待界面响应");
51+
await sleep(10000);
52+
}
53+
54+
async function pageDown() {
55+
//暂无计划,还是联系一下好友开放尘歌壶吧
56+
}
57+
58+
async function claimEncounterPointsRewards() {
59+
setGameMetrics(3840, 2160, 1.5);
60+
log.info("正在打开冒险之证领取历练点奖励");
61+
await sleep(2000);
62+
keyPress("VK_ESCAPE");
63+
await sleep(2000);
64+
click(400,1650);
65+
await sleep(2000);
66+
67+
setGameMetrics(3840, 2160, 2); //领历练点这小节是抄来的
68+
click(580, 680);
69+
await sleep(1000);
70+
click(3110, 1508);
71+
await sleep(1000);
72+
click(3110, 1508);
73+
await sleep(1500);
74+
keyPress("Escape");
75+
log.info("已领取历练点奖励");
76+
}
77+
78+
async function ReturnToBigWorld() {
79+
setGameMetrics(3840, 2160, 1.5);
80+
log.info("正在返回大世界");
81+
await sleep(2000);
82+
keyPress("VK_ESCAPE");
83+
await sleep(2000);
84+
click(1330,1660);
85+
await sleep(2000);
86+
click(3300,2030);
87+
await sleep(20000);
88+
}
89+
90+
log.warn("注意:队伍中小于等于两人时,才会触发双倍奖励");
91+
await sleep(1500);
92+
log.warn("注意:队伍中小于等于两人时,才会触发双倍奖励");
93+
await sleep(1500);
94+
log.warn("注意:队伍中小于等于两人时,才会触发双倍奖励");
95+
await sleep(1500);
96+
97+
if (!!settings.partyName) {
98+
try {
99+
log.info("正在传送回七天神像切换队伍");
100+
await genshin.tp(2297.60, -824.45);
101+
log.info("正在尝试切换至" + settings.partyName);
102+
await genshin.switchParty(settings.partyName);
103+
} catch {
104+
log.warn("队伍切换失败,可能处于联机模式或其他不可切换状态");
105+
await genshin.returnMainUi();
106+
}
107+
} else {
108+
await genshin.returnMainUi();
109+
}
110+
await RequestToVisitSereniteaPot();
111+
await claimEncounterPointsRewards();
112+
await sleep(1500);
113+
await genshin.returnMainUi();
114+
await ReturnToBigWorld();
115+
})();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"manifest_version": 1,
3+
"name": "历练点双倍好感",
4+
"version": "1.0",
5+
"description": "进入好友尘歌壶,用历练点领取双倍好感",
6+
"authors": [
7+
{
8+
"name": "起个名字好难的喵"
9+
}
10+
],
11+
"settings_ui": "settings.json",
12+
"main": "main.js"
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[
2+
{
3+
"name": "partyName",
4+
"type": "input-text",
5+
"label": "(选填)需要切换的队伍名称"
6+
}
7+
]

0 commit comments

Comments
 (0)