按键精灵之手游《世界2风暴帝国》多分辨率脚本实例

     阅读 1153 次    更新时间:2016/5/8    

 

手游名字:《世界2风暴帝国》
版本:1.9
测试:夜神安卓模拟器2.5版
安卓版按键精灵版本:2.5
脚本支持分辨率:540*960,720*1280,1080*1920
脚本功能:不停加入别人队伍打boss,脚本定时,在队伍中等待定时,选择任务类型,设置任务等级
主要思路:识别界面-进行对应操作
用到的主要命令和函数:获取屏幕分辨率GetScreenX(),判断if...then...elseif...end if,Select Case..case...end Select ,For循环,do循环,GetPixelColor(x,y),分割函数Split(),UBound(),读取UI配置函数以及其他
附加说明:
1.应为安卓版按键精灵不支持不支持直接读取附件中的txt文件所以直接把文本写到脚本的一个变量里
2.GetPixelColor(x,y)命令完全可以用CmpColor(x,y,sim)或者其他找图找色命令替代

 

/*================屏幕===============*/
Dim screenX,screenY
screenX = GetScreenX()
screenY = GetScreenY()
//TracePrint screenX
//TracePrint screenY
If screenX = 540 and screenY = 960 Then
    //Call Main540()
ElseIf screenX = 720 and screenY = 1280 Then
    //Call Main720()
ElseIf screenX = 1080 and screenY = 1920 Then
    //Call Main1080()
Else
    ShowMessage "不支持你手机的分辨率!"
    Delay 3000
    EndScript
End If
Dim px,py,px1,py1
px = screenX / 1080
py = screenY / 1920
px1 = screenX / 540
py1 = screenY / 960
/*================屏幕============*/

/*================UI=================*/
Dim 组队方式,任务类型,队伍中等待时间,挂机时间,任务等级1,任务等级2
组队方式=ReadUIConfig("下拉框1")
任务类型 = ReadUIConfig("下拉框2")
任务等级1=CSng(ReadUIConfig("输入框3"))
任务等级2=CSng(ReadUIConfig("输入框4"))
队伍中等待时间=CSng(ReadUIConfig("输入框1"))
队伍中等待时间=队伍中等待时间*0.5
挂机时间 = CSng(ReadUIConfig("输入框2"))

Select Case 任务类型
    Case 0
         任务类型="All"
    Case 1
         任务类型="44C8FF"//S
    Case 2
         任务类型="FF6CDB"//A
    Case 3
         任务类型="FF9D45"//B
    Case 4
         任务类型="3AD863"//C
    Case 5
         任务类型="FFFFFF"//D
End Select
If 任务等级1 < 1 Then
    任务等级1 = 1
ElseIf 任务等级1 > 55 Then
    任务等级1 = 55
ElseIf 任务等级1 = "" Then
    任务等级1 = 1
End If
If 任务等级2 < 1 Then
    任务等级2 = 1
ElseIf 任务等级2 > 55 Then
    任务等级2 = 55
ElseIf 任务等级2 = "" Then
    任务等级2 = 55
End If
If 队伍中等待时间 <= 5 Then
    队伍中等待时间 = 5
End If
If 挂机时间 < 0 Then
    挂机时间 = 0
ElseIf 挂机时间 > 0 Then
    挂机时间=挂机时间*1000*60//min
End If
/*================UI===============*/

/*================数据===============*/
Dim text1,text2,text5401,text5402,text7201,text7202,text10801,text10802,Coordinate,c,l,m,CoordinateXY,x(1000),y(1000),i
//               1      2      3       4     5      6      7      8      9     10     11     12     13      14     15    16     17     18     19     20      21
text5401 = "0|33,912|279,36|263,59|346,327|183,393|508,860|508,860|173,840|398,471|36,430|221,523|230,523|172,840|207,483|213,523|211,488|232,483|204,488|77,484|442,140|223,806"
text5402 = "0|D7D7D7|C6C6C6|3E1828|949494|23AEFF|656565|00A9E7|575654|191919|464544|676767|A4A4A4|5B5A58|B7B7B7|8F8F8F|515151|B7B7B7|515151|C1C1C1|C6C6C6|B2B2B2"

text7201 = "0|45,1222|374,48|345,80|473,454|244,524|676,1149|675,1148|231,1120|523,624|51,574|295,698|306,698|225,1120|276,644|284,698|281,651|310,644|271,651|102,643|581,126|296,1074"
text7202 = "0|9D9A99|9D9D9D|431A2C|161616|23B0FF|686868|00ADE9|51504E|C5C5C5|575755|707070|636363|555452|ACACAC|7C7C7C|656565|ACACAC|656565|868686|606060|BABABA"
//               1          2       3       4       5       6         7      8        9       10      11      12      13  
text10801= "0|110,1835|1003,130|545,144|683,679|367,785|1030,1718|1025,77|638,1018|791,952|863,145|449,882|450,877|345,1680|412,967|416,876|420,978|463,968|405,979|151,967|916,207|446,1611"
text10802= "0|9E9E9E|EEEEEE|321320|FFFFFF|24AEFF|FEFEFE|AFAFAF|FFFFFF|FAE0D3|F5BEA3|CBCBCB|FEFEFE|4F4F4D|D0D0D0|ECECEC|C2C2C2|FFFFFF|FFFFFF|FAFAFA|FFFFFF|BEBEBE"
If screenX = 540 and screenY = 960 Then
    text1=text5401
    text2=text5402
ElseIf screenX = 720 and screenY = 1280 Then
    text1=text7201
    text2=text7202
ElseIf screenX = 1080 and screenY = 1920 Then
    text1=text10801
    text2=text10802
End If
Function UBound(arr)
    Dim i = -1
    For Each str In arr
        i = i + 1
    Next
    UBound = i
End Function
Coordinate = Split(text1, "|")
c = Split(text2, "|")
l = UBound(Coordinate)
For m = 1 To l
CoordinateXY = Split(Coordinate(m), ",")
    x(m) = CoordinateXY(0)
    y(m) = CoordinateXY(1)
Next
/*================数据============*/

/*================接口===============*/
Call Main()
/*================接口============*/

/*================主体===============*/
Sub 主体()
    i=0
    Dim rColor
    If 组队方式 = 1 and m = 4 Then
        x(m)=340
        y(m)=322
        c(m)="E5E5E5"
    End If
    rColor = GetPixelColor(x(m), y(m))
    If rColor = c(m) Then
        i=m
    End If
End Sub
Sub Main()
    Do
        Do
            Call 主体()
            m = m + 1
            If 组队方式 = 1 Then
                If m = 2 or m=3 Then
                    m=4
                End If
            End If
            If m > l Then
                m=1
            End If
        Loop Until i <> 0
        Call action()
        TracePrint i
        If 挂机时间 <> 0 Then
            If TickCount() > 挂机时间 Then
                EndScript
            End If
        End If
    Loop
End Sub
/*===============主体============*/

/*================执行===============*/
Sub action()
    Select Case i
        Case 1
             Call a1()
        Case 2
             Call a2()
        Case 3
             Call a3()
        Case 4
             Call a4()
        Case 5
             Call a5()
        Case 6
             Call a6()
        Case 7
             Call a7()
        Case 8
             Call a8()
        Case 9
             Call a9()
        Case 10
             Call a10()
        Case 11
             Call a11()
        Case 12
             Call a12()
        Case 13
             Call a13()
        Case 14
             Call a14()
        Case 15
             Call a15()
        Case 16
             Call a16()
        Case 17
             Call a17()
        Case 18
             Call a18()
        Case 19
             Call a19()
        Case 20
             Call a20()
        Case 21
             Call a21()
    End Select
End Sub
Sub a1()
TracePrint 组队方式
    If 组队方式 = 0 Then
        Tap 25*px, 554*py//聊天
        Delay 700
        Tap 539 * px, 101 * py//区域
    ElseIf 组队方式 = 1 Then
        Tap 346*px1, 452*py1
        Tap 361*px1, 367*py1
        Tap 323*px1, 311*py1
        Tap 356*px1, 505*py1
        Tap 362*px1, 555*py1
        Tap 371*px1, 394*py1
        Tap 221*px1, 580*py1
        Tap 223*px1, 636*py1
        Tap 223*px1, 687*py1
    End If
End Sub
Sub a2()
    Tap 539*px,101*py
End Sub
Sub a3()//读取UI
 Dim x,x1,y1,rColor
 Select Case screenX
     Case 540
          x1 = 99
          y1=1078*py
     Case 720
          x1 = 133
          y1=1078*py
     Case 1080
          x1 = 199
          y1=1078*py
 End Select
 
    If 任务类型 = "All" Then
        Tap 215*px, 1078*py
   Else
        Do
            rColor = GetPixelColor(x1, y1)
            If rColor = 任务类型 Then
                Tap 215 * px, 1078 * py
                Delay 200
            x = 200
            Else
                x = x + 1
                Delay 350
            End If
        Loop Until x>100
    End If
End Sub
Sub a4()
Dim rColor,x1,y1,c1
    If screenX = 540 Then
        x1=323
        y1=734
        c1="1F1F1F"   
    ElseIf screenX = 720 Then
        x1=429
        y1=999
        c1="CCCCCC"
    ElseIf screenX = 1080 Then
        x1=665
        y1=1514
        c1="B8B8B8"
    End If
   
    rColor = GetPixelColor(x1,y1)
    If rColor = c1 Then
        Tap 664 * px, 1435 * py
        Delay 300
        Tap 77*px, 905*py
    ElseIf rColor = "000000" Then
        Tap 77*px, 905*py
        Delay 600
        Tap 1042*px,1881*py
    End If
End Sub
Sub a5()
Dim rColor,x,x1,y1,c1
x = 0

    If screenX = 540 Then
        x1=183
        y1=393
        c1="23AEFF"   
    ElseIf screenX = 720 Then
        x1=244
        y1=524
        c1="23B0FF"
    ElseIf screenX = 1080 Then
        x1=367
        y1=785
        c1="24AEFF"
    End If
   
    Do
        i=0      
        rColor = GetPixelColor(x1,y1)
        If rColor = c1 Then
           Delay 2000
           i = 5  
           x = x + 1
           If x > 队伍中等待时间 Then
                  Tap 942*px, 1553*py
               Delay 800
               Tap 452 * px, 874 * py
               If 任务类型 = 1 Then
                   Delay 800
                      Tap 25*px, 554*py
                   Delay 700
                   Tap 539*px, 101*py
               End If
               i=0
           End If
        End If
    Loop Until i <> 5   
End Sub
Sub a6
    Tap 1022*px, 1719*py
End Sub
Sub a7()
Dim rColor,x1,y1,c1
    If screenX = 540 Then
        x1=516
        y1=853
        c1="E3F2FA"   
    ElseIf screenX = 720 Then
        x1=675
        y1=1142
        c1="00ADE9"
    ElseIf screenX = 1080 Then
        x1=1012
        y1=1722
        c1="00AEEA"
    End If
   
    Do
       i=0
       Delay 13000 
       rColor = GetPixelColor(x1,y1)
       If rColor = c1 Then
          i=7
       End If
    Loop Until i<>7
End Sub
Sub a8()
    Tap 227*px, 970*py
    Delay 300
    Tap 227*px, 970*py
    Delay 350
    Tap 227*px, 970*py
End Sub
Sub a9()
    Tap 185*px, 974*py
    Delay 300
    Tap 185*px,974*py
End Sub
Sub a10()
    Tap 74*px, 982*py
    Delay 300
    Tap 74*px, 982*py
    Delay 3000
End Sub
Sub a11()
    Tap 452*px, 874*py
    If 任务类型 = 1 Then
        Delay 800
        Tap 25*px, 554*py
        Delay 700
        Tap 539*px,101*py
    End If
End Sub
Sub a12()
    Tap 465*px,1045*py
End Sub
Sub a13()
    Tap 223*px, 958*py
    Delay 300
    Tap 223*px, 958*py
    Delay 3000
End Sub
Sub a14()
    Tap 416 * px, 964 * py
    Delay 300
    Tap 77*px, 905*py
End Sub
Sub a15()
    Tap 432*px,1047*py
End Sub
Sub a16()
    Tap 416*px,973*py
End Sub
Sub a17()
    Tap 467 * px, 968 * py
    Delay 300
    Tap 77*px, 905*py
End Sub
Sub a18()
    Tap 406*px,975*py
End Sub
Sub a19()
    Tap 151*px,963*py
End Sub
Sub a20()
    Tap 942*px,1781*py
    Delay 800
    Tap 452*px, 874*py
    If 任务类型 = 1 Then
        Delay 800
        Tap 25*px, 554*py
        Delay 700
        Tap 539*px, 101*py
    End If
End Sub
Sub a21()
        If 任务类型 = "44C8FF" Then
            Tap 409*px1,233*py1
        ElseIf 任务类型 = "FF6CDB" Then
            Tap 351*px1,233*py1
        ElseIf 任务类型 = "FF9D45" Then
            Tap 293*px1,233*py1
        ElseIf 任务类型 = "3AD863" Then
            Tap 237*px1,233*py1
        ElseIf 任务类型 = "FFFFFF" Then
            Tap 176*px1,233*py1
        End If
        Delay 200
        If 任务等级1 > 1 Then
            Tap 65 * px1, 841 * py1
            Delay 300
            InputText 任务等级1
            Tap 52 * px1, 906 * py1
            Delay 300
        End If
        If 任务等级2 < 55 Then
            Tap 65 * px1, 916 * py1
            Delay 300
            InputText 任务等级2
            Tap 52 * px1, 906 * py1
            Delay 300
        End If
    Tap 223*px1, 853*py1
    Delay 700
    Tap 456 * px1, 683 * py1
    Delay 500
    Tap 659*px,1442*py
End Sub

/*===============执行============*/

 
 

Copyright 2003-2008 All Rights Reserved 自由风工作室 版权没有 [湘ICP备06002185号]
.