加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

战舰少女R脚本制作

(2018-03-21 15:18:33)
标签:

脚本

安卓脚本

手游脚本

分类: 技术教程
先上流程图
http://s6/mw690/002wcImPzy7j4dqW1mZ45&690

http://s13/mw690/002wcImPzy7j4dqTk9C6c&690
虽然之前没有接触过安卓脚本这边,不过在我浅薄的程序知识中,程序事实上在本质是相同的(除了汇编)。程序执行流程无外乎还是那几种循环与调用,程序的数据无外乎还是那几种数据结构。所以,写程序前,先画流程图,了解有哪些环节、哪些部分,再设计算法解决这些流程中需要的操作,最终debug。这些就是我们脚本制作的基本过程了。
在安卓脚本代码的书写中,我发现,与相对于其他程序涉及甚多的计算不同,脚本程序最重要的核心在于让程序了解到目前的处境,然后根据判断执行对应的方案。这样的一个流程基本覆盖整个脚本的每一个环节。我们需要让脚本如我们玩家在玩游戏时的状况一样,即“分析当前状况,做出反应”。
分析当前状况:我们需要的就是通过颜色判断、图像识别、文字识别,对当前画面做出分析。这个过程已经有现成的函数,直接调用,不复杂。根据函数返回值,我们就可以判断出当前状况。
做出反应:即模拟点击,一点都不复杂,只是找触控点有些繁琐。

以下为目前v.1版本代码,还有些bug以及子程序合并的问题,以后陆续修正。

 NormalText Code 
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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
Delay 2000
Dim screenX,screenY,deviceID,colorDep,shijian,zhishou
screenX GetScreenX()
screenY GetScreenY()
colorDep GetScreenColorDep()
deviceID GetDeviceID()
shijian Now()
zhishou=0
TracePrint "手机分辨率是:" screenX "*" screenY Chr(10) "手机色深是:" colorDep "位" Chr(10) "手机IMEI号是:" deviceID Chr(10) "当前时间是是:" shijian
Delay 1000 

//--------------------------------------------------------------------------------------------

While 1
    If zhishou Then 
    TracePrint "初次启动,直接开始行动吧,gogogo!"
    zhishou zhishou 1
    TracePrint "先进行演习"
    Call goyanxi()
    Delay 4000
    TracePrint "进行战役"
    Call gozhanyi()
    
Else 
    TracePrint "非初次启动,进入无人值守模式,运行次数为" zhishou "次"
    TracePrint "检查任务"
    Delay 21600000
    
End If
Wend


//--------------------------------------------------------------------------------------------
Sub gozhanyi()
    Dim jici=1
    Touch 750, 1444, 100
    Delay 4000
    Touch 545, 105, 100
    Delay 3000
    Touch 100, 1550, 100
    Delay 3000
    Touch 740, 1480, 100
    Delay 3000
    While jici<10
        Dim xzhou,buji,sunsang

        Delay 3000
        For xzhou 60 To 750 Step 138
            TracePrint "逐一检查补给情况"
            buji CmpColor(xzhou, 350, "101084", 0.8)
            If buji -1 Then 
            TracePrint "补给不足啦,赶紧补充"
            Touch 970, 1800, 100
            Delay 3000
            Touch 290, 1250, 200
            Delay 3000
            Touch 880,1475,100
            Exit For
            End If
        Delay 2000  
        Next
        Touch 820, 1810, 100
        Delay 2000
        For xzhou 258 To 1258 Step 200
            TracePrint "逐一检查损失情况"
            sunsang CmpColor(458, xzhou, "0808BD", 0.8)
            If sunsang -1 Then 
            TracePrint "有船只受伤,赶紧修复"
            Touch 640, xzhou, 100
            Delay 2000
            
            End If
        Delay 2000  
        Next
        Touch 880, 1475, 100
        Delay 2000
        TracePrint "一切ok,出发"
        Touch 90,1100,100
        Delay 2000
        Call zhandou(5)
        jici jici 1
        Delay 2000
        Touch 740, 1480, 100
        Delay 3000
    Wend

    
    
    TracePrint"行动结束,回港!"
    Touch 50, 100, 100
    
End Sub

//--------------------------------------------------------------------------------------------
Sub goyanxi()
    Dim yzhou,cunzai,meiyou
    Touch 750, 1444, 100
    Delay 4000
    Touch 830, 100, 100
    Delay 3000
    yzhou 215
    meiyou 0
    While meiyou 5
        TracePrint "寻找敌人"
        cunzai CmpColor(yzhou, 1580, "3A81E6|297DDE", 0.9)
        If cunzai -1 Then 
            TracePrint "找到演习对象,进入战斗"
            Delay 500
            Touch yzhou, 1690, 100
            Delay 500
            Call ttzhandou()
            yzhou 215
        Else 
            TracePrint "没有发现,寻找下一个"
            yzhou yzhou 175
            meiyou meiyou 
        End If
        Delay 1000
    Wend
    TracePrint"行动结束,回港!"
    Touch 50, 100, 100
    
End Sub

//--------------------------------------------------------------------------------------------
Sub ttzhandou()
    Dim xzhou,buji,sunsang
    Delay 3000
    For xzhou 480 To 1480 Step 200
            TracePrint "逐一检查补给情况"
            buji CmpColor(620, xzhou, "292DA4", 0.8)
            If buji -1 Then 
            TracePrint "补给不足啦,赶紧补充"
            Touch 910, 1460, 100
            Delay 2000
            Touch 230, 910, 100
            Delay 2000
            Touch 820, 1810, 100
            Delay 2000
            Exit For
            End If
    Next
    
    Delay 2000
    For xzhou 285 To 1360 Step 200
            TracePrint "逐一检查损失情况"
            sunsang CmpColor(460, xzhou, "0808BD", 0.8)
            If sunsang -1 Then 
            TracePrint "有船只受伤,赶紧修复"
            Touch 650, xzhou, 100
            Delay 2000
            
            End If
    Delay 2000  
    Next
    Touch 880,1475,100
    TracePrint "一切ok,出发"
    Delay 2000
    Touch 100, 950, 100
    Delay 6000    
    Call zhandou(2)

        
End Sub


Sub zhandou(zx)
    
    Delay 4000
    Dim yvdi,zhengxing,dengdai,jiance
    yvdi CmpColor(250, 1300, "428AEF", 0.8)
    If yvdi -1 Then 
        TracePrint "敌人发现!战斗!"
        Touch 220, 1340, 100
        Delay 2000
    Else 
        TracePrint "似乎未找到,索敌不够啊"
        Delay 2000
        
    End If
    Delay 2000
    zhengxing CmpColor(735, 1690, "52C642", 0.8)

    If zhengxing -1 Then 
        TracePrint "选择阵型"
        Select Case zx
            Case 1
            Case 2
                TracePrint "闪避"
                Touch 735, 1690, 100
                Delay 2000
            Case 3
            Case 4
            Case 5
                TracePrint "反潜"
                Touch 150, 1550, 100
                Delay 2000  
        End Select
    End If
    
    While 1
        
        Delay 2000
        TracePrint "等待发现夜战"
        dengdai CmpColor(370, 720, "3A86E6", 0.9)
        Delay 2000
        jiance CmpColor(370, 720, "3A86E6", 0.9)
        If dengdai >-1 and jiance >-1 Then 
            TracePrint "发现夜战"
            Exit While
            
        End If
        
    Wend
    Delay 2000
    Touch 345, 1135, 100
    Delay 5000
    Touch 88, 1730, 100
    Delay 5000
    Touch 88, 1730, 100
    Delay 2000
    TracePrint "战斗结束,返回"
    
    
End Sub




0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有