-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcommands.js
177 lines (157 loc) · 3.87 KB
/
commands.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
var utils = require('./utils')
setScreenMetrics(1080, 2340)
var click2 = utils.click
var sleep2 = utils.sleep
const SkillY = 846
const MasterSkillY = 479
const ChangeY = 536
const AvatarY = 614
const Avatar1 = [732, AvatarY]
const Avatar2 = [1230, AvatarY]
const Avatar3 = [1660, AvatarY]
const Confirm = [1569,655]
// 从者一号位
const C1S1 = [293,SkillY]
const C1S2 = [390,SkillY]
const C1S3 = [530,SkillY]
// 从者二号位
const R1S1 = [740,SkillY]
const R1S2 = [872,SkillY]
const R1S3 = [1037,SkillY]
// 从者三号位
const C3S1 = [1232,SkillY]
const C3S2 = [1391,SkillY]
const C3S3 = [1500,SkillY]
// 御主技能
const MasterSkillStart = [2110, MasterSkillY]
const MasterSkill1 = [1700, MasterSkillY]
const MasterSkill2 = [1815, MasterSkillY]
const MasterSkill3 = [1968, MasterSkillY]
// 换人坐标点
// 换人是三技能
const ChangeS1 = [495, ChangeY]
const ChangeS2 = [795, ChangeY]
const ChangeS3 = [1096, ChangeY]
const ChangeS4 = [1371, ChangeY]
const ChangeS5 = [1703, ChangeY]
const ChangeS6 = [2008, ChangeY]
const ChangeConfirm = [1353, 958]
function useMasterSkill(i) {
click2(MasterSkillStart[0], MasterSkillStart[1], true)
sleep2(150)
use(i)
}
function use(t) {
var i = t[0]
var avatar = t[1]
click2(i[0],i[1], true)
sleep2(200)
click2(Confirm[0],Confirm[1], true)
sleep2(100)
click2(avatar[0],avatar[1], true)
sleep2(3000)
}
// t: [from, to]
function changeServant(t) {
click2(MasterSkillStart[0], MasterSkillStart[1], true)
sleep2(150)
// 换人服是三技能
click2(MasterSkill3[0], MasterSkill3[1], true)
sleep2(200)
click2(Confirm[0],Confirm[1], true)
sleep2(100)
click2(t[0][0], t[0][1], true)
sleep2(100)
click2(t[1][0], t[1][1], true)
sleep2(100)
click2(ChangeConfirm[0], ChangeConfirm[1], true)
sleep2(3000)
}
const CommandList = {
s: use,
m: useMasterSkill,
c: changeServant
}
const PointList = {
's:1,1': C1S1,
's:1,2': C1S2,
's:1,3': C1S3,
's:2,1': R1S1,
's:2,2': R1S2,
's:2,3': R1S3,
's:3,1': C3S1,
's:3,2': C3S2,
's:3,3': C3S3,
'm:1,0': MasterSkill1,
'm:2,0': MasterSkill2,
'm:3,0': MasterSkill3
}
const AvatarList = {
0: Avatar2, // 默认走 2 号位
1: Avatar1,
2: Avatar2,
3: Avatar3
}
const ChangeList = {
1: ChangeS1,
2: ChangeS2,
3: ChangeS3,
4: ChangeS4,
5: ChangeS5,
6: ChangeS6
}
const translate = function(i) {
switch (i[1]) {
case 's':
return '从者 ' + i[2] + ' 技能 ' + i[3] + ' 给 ' + (i[4] === '0' ? 2 : i[4]) + ' 从者\n'
case 'm':
return '御主技能 ' + i[2] + '给 ' + (i[4] === '0' ? 2 : i[4]) + ' 从者\n'
case 'c':
return '换人 从者 ' + i[2] + '与 ' + i[3] + ' 交换\n'
}
}
/**
* 一行一条指令
* s:1,2,2 表示 从者 1 技能 2 给 从者 2
* m:1,0,2 表示 御主技能 1 给 二号位从者(懒得特殊处理 统一一下格式好了)
* c:1,4,0 表示换人服 1 位换 4 位从者
*
* ---\n
* 区分一面二面和三面
*
* @param {*} text
* @returns resultText 翻译文本
* @returns result 结果
* @rawText
*/
module.exports = function (text) {
let resultText = ''
let result = []
const turns = text.split('---')
for (let i = 0; i < turns.length; i++) {
resultText += '第' + (i + 1) + '面\n'
result.push([])
// 解析命令
turns[i].split('\n').map(i => i.trim()).filter((c) => !!c).forEach(function(command) {
const c = /^(\w):(\d),(\d),(\d)$/.exec(command)
if (!c) {
toast('错误的指令')
console.log('指令错误', command)
return resultText, result
}
resultText += translate(c)
const _r = {f: CommandList[c[1]]}
if (c[1] !== 'c') {
_r['p'] = [PointList[c[0].slice(0,-2)], AvatarList[c[4]]]
} else {
_r['p'] = [ChangeList[c[2]], ChangeList[c[3]]]
}
result[i].push(_r)
})
}
return {
resultText: resultText,
result: result,
rawText: text
}
}