Skip to content

Commit 82ec391

Browse files
committed
feat: swipe to find servant caster
1 parent 9540748 commit 82ec391

10 files changed

Lines changed: 115 additions & 26 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,4 @@ dist
102102

103103
# TernJS port file
104104
.tern-port
105+
.DS_Store

assets/friends/caster/1.jpg

15.7 KB
Loading

assets/friends/caster/2.jpg

16.1 KB
Loading

assets/friends/caster/3.jpg

15.9 KB
Loading

assets/friends/caster/4.jpg

15.5 KB
Loading

attack.js

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ if (!requestScreenCapture(true)) {
88
sleep(300)
99

1010
var utils = require('./utils')
11+
var finder = require('./finder')
1112
var defaults = require('./default')
1213
var getCommands = require('./commands')
1314

@@ -16,6 +17,7 @@ setScreenMetrics(1080, 2340)
1617
var click1 = utils.click
1718
var sleep1 = utils.sleep
1819
var readImage = utils.readImage
20+
var findServant = finder.findServant
1921
// autojs 这个 node 版本 const 分析的不对,没办法还是用 var 吧
2022
var findButton = utils.findButton
2123

@@ -32,7 +34,7 @@ const Card1= [475,764]
3234
const Card2 = [855,764]
3335

3436
const NextImage = readImage('./assets/next.jpg')
35-
const HelpImage = readImage('./assets/help-v2.jpg')
37+
const HelpImage = readImage('./assets/caster-1.jpg')
3638
const GoldAppleImage = readImage('./assets/gold_apple.jpg')
3739
const Attack = readImage('./assets/attack.jpg')
3840

@@ -92,22 +94,7 @@ function eatApple() {
9294
}
9395

9496
function clickRefresh() {
95-
let p = findButton(HelpImage, {maxTimes:10, threshold: 0.7})
96-
while (!p) {
97-
click1(1566,183)
98-
sleep1(300)
99-
click1(1576,842)
100-
sleep1(3000)
101-
p = findButton(HelpImage, {maxTimes:100, threshold: 0.7})
102-
if (p) {
103-
break
104-
}
105-
sleep1(15000)
106-
toast('接着找')
107-
}
108-
click1(p[0],p[1])
109-
toast('找到啦')
110-
sleep1(3000)
97+
findServant('caster')
11198
}
11299

113100

commands.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
21
var utils = require('./utils')
32

43
setScreenMetrics(1080, 2340)
54

6-
const click2 = utils.click
7-
const sleep2 = utils.sleep
5+
var click2 = utils.click
6+
var sleep2 = utils.sleep
87

98
const SkillY = 880
109
const MasterSkillY = 479

finder.js

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
// 查找助战
2+
3+
var servants = {
4+
caster: 4
5+
}
6+
7+
var utils = require('./utils')
8+
var swipe1 = utils.swipe
9+
var click1 = utils.click
10+
var sleep1 = utils.sleep
11+
var readImage = utils.readImage
12+
// autojs 这个 node 版本 const 分析的不对,没办法还是用 var 吧
13+
var findButton = utils.findButton
14+
var images = {}
15+
16+
function initImages () {
17+
for (let key in servants) {
18+
images[key] = []
19+
for (let i = 1; i <= servants[key]; i++) {
20+
images[key].push(readImage(getWholePath(key, i)))
21+
}
22+
}
23+
}
24+
25+
function getWholePath(servant, idx) {
26+
return './assets/friends/' + servant + '/' + idx + '.jpg'
27+
}
28+
29+
function findServant(servant) {
30+
const imageList = images[servant]
31+
let p = null
32+
for (let i = 0; i < imageList.length; i++) {
33+
// 就搜一次就够了
34+
p = findButton(imageList[i], {maxTimes: 1, threshold: 0.9})
35+
if (p) {
36+
return p
37+
}
38+
}
39+
return p
40+
}
41+
42+
function findServantAndSwipe(servant) {
43+
let p = null
44+
for (let i = 0; i < 5; i++) {
45+
p = findServant(servant)
46+
sleep(300)
47+
if (p) {
48+
return p
49+
}
50+
swipe1(1600, 1000, 1600, 500, 600)
51+
sleep(200)
52+
}
53+
return p
54+
}
55+
56+
function find(servant) {
57+
p = findServantAndSwipe(servant)
58+
59+
while (!p) {
60+
click1(1566,183)
61+
sleep1(300)
62+
click1(1576,842)
63+
sleep1(3000)
64+
65+
p = findServantAndSwipe(servant)
66+
if (p) {
67+
break
68+
}
69+
sleep1(15000)
70+
toast('接着找')
71+
}
72+
click1(p[0],p[1])
73+
toast('找到啦 ' + p[0] + ',' + p[1])
74+
sleep1(3000)
75+
}
76+
77+
events.on('exit', function() {
78+
for (let key in images) {
79+
images[key]
80+
for (let i = 0; i <= images[key].length; i++) {
81+
images[key][i].recycle()
82+
}
83+
}
84+
})
85+
86+
// 直接初始化一波
87+
initImages()
88+
89+
exports.findServant = find

project.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@
3636
},
3737
"scripts": {},
3838
"versionCode": 1,
39-
"versionName": "0.0.8"
39+
"versionName": "0.0.9.alpha.1"
4040
}

utils.js

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@ var sleep1 = function(t) {
99
sleep(t + random(0, 80))
1010
}
1111

12+
var swipe1 = function(x1, y1, x2, y2, duration) {
13+
const _x1 = x1 + random(-10, 10)
14+
const _x2 = x2 + random(-10, 10)
15+
const _y1 = y1 + random(-10, 10)
16+
const _y2 = y2 + random(-10, 10)
17+
const _duration = duration + random(-100, 100)
18+
swipe(_x1, _y1, _x2, _y2, _duration)
19+
}
20+
1221
var readImage = function(img) {
1322
const b = images.read(img)
1423
return b
@@ -20,11 +29,14 @@ var findButton = function (b, options) {
2029
const threshold = options ? options.threshold || 0.7 : 0.7
2130

2231
for (let i = 0; i < maxTimes; i++) {
23-
const point = findImage(captureScreen(), b, { threshold: threshold })
24-
if (point) {
25-
return [point.x, point.y]
26-
}
27-
sleep1(interval)
32+
const h = captureScreen().getHeight()
33+
const w = captureScreen().getWidth()
34+
const point = findImage(captureScreen(), b, { threshold: threshold })
35+
36+
if (point) {
37+
return [Math.floor(point.x / h * 1080), Math.floor(point.y / w * 2340)]
38+
}
39+
sleep1(interval)
2840
}
2941
return false
3042
}
@@ -41,3 +53,4 @@ exports.sleep = sleep1
4153
exports.readImage = readImage
4254
exports.findButton = findButton
4355
exports.stopExecution = stopExecution
56+
exports.swipe = swipe1

0 commit comments

Comments
 (0)