我的按键精灵脚本---热血江湖篇支持2.0版

资料集   2008-04-10 22:54   阅读7   评论0  
字号:    
#这是按键精灵生成的脚本源文件
#在理解各条命令的基础上,您可以修改这个文件的内容
#您修改的结果将会在普通视图上有所反映
 
UserVar F1=1 单攻技能(F?)
F1=111+F1
UserVar F2=2 持续技能(F?)
F2=111+F2
UserVar F3=3  加红技能(F?)
F3=111+F3
UserVar F4=4 加蓝技能(F?)
F4=111+F4
UserVar F7=7  捡东西(F?)
F7=111+F7
UserVar F8=8   回城幅(F?)
F8=111+F8
UserVar LiTime=90  防止无怪打默认90秒
Rem BeginProcedure
Gosub BloodBlue
Gosub LookDown
Gosub AngleReset
VBS userx=0:usery=0
Gosub 读取坐标
VBS userx=curx:usery=cury
Delay 10
Expre="("&cstr(userx)&"."&cstr(usery)&")"
SayExpression Expre
VBS LaTime1=time
Delay 100
//KeyPress 13 1
Rem BeginGame
Gosub BloodBlue
MoveTo 1300 350
Delay 100
MoveTo 510,458
Delay 100
LeftClick 1
VBSCall FindColorEx(346,217,681,552,"3130E7",1,0.8,xMon,yMon)
//VBSCall FindPic(346,217,681,552,"D:\Program Files\按键精灵\script\Xuetiao2.bmp",0.7,xMon,yMon)
If xMon>0
    Gosub HaveMon
    VBS LaTime1=time
    //一个怪死亡时的时间
Else
    VBS NoTime=time
    If DateDiff("s",LaTime1,NoTime)>LiTime
        //如果上个怪死亡到限定时间内没打怪进行小动
        //妳补了长时间没怪回位;
        //可改成随机引怪
        Gosub SmallMove
    EndIf
    //Gosub PickUp  加这项减少了搜索怪物的速度
EndIf
Goto BeginGame
Sub HaveMon
    UserVar Passive=DropList{0|1}=0 打被动怪(1)不打(0)
    VBS HitTime=30
    // 打死一个怪的时间默认30秒
    VBS La2Time=time
    Rem MoveMon
    If Passive=1
        KeyPress F1 1
        Delay 1000
    EndIf
    Rem FightMon
    KeyPress F2 1
    Delay 1000
    Gosub BloodBlue
    KeyPress F2 1
    Delay 1000
    VBSCall FindColorEx(346,217,681,552,"3130E7",1,0.8,xMon,yMon)
    // VBSCall FindPic(346,217,681,552,D:\Program Files\按键精灵\script\Xuetiao2,0.7,xMon,yMon)
    If xMon>0
        VBS NoTime=time
        If DateDiff("s",La2Time,NoTime)>HitTime
            //防止卡怪
            Goto BeginGame
        EndIf
        Goto FightMon
    EndIf
    Gosub PickUp
    //捡东西;回位
Return HaveMon
Sub SmallMove
    MoveTo 410,510
    Delay 100
    LeftClick 1
    Gosub JudgeApart
Return SmallMove
Sub PickUp
    KeyPress F7,1
    Delay 1000
    Gosub JudgeApart
Return PickUp
Sub JudgeApart
    UserVar LimitLgth=5    锁定范围至少=5
    Delay 10
    Gosub 读取坐标
    ApartlLength=sqr((curx-userx)^2+(cury-usery)^2)
    Delay 10
    If ApartlLength>LimitLgth
        Gosub MovePosition
    EndIf
Return JudgeApart
Sub MovePosition
    Gosub BloodBlue
    Gosub LookDown
    Gosub 读取坐标
    VBS JuLi1=sqr((curx-userx)^2+(cury-usery)^2)
    Rem 移动
    If JuLi1>5
        Rem 测试方位
        VBSCall FindColorEx(346,217,681,552,"3130E7",1,0.8,xMon,yMon)
        If xMon>0
            Goto MoveMon
        EndIf
        VBS x1=curx
        VBS y1=cury
        MoveTo 512+160 393+160
        Delay 20
        LeftClick 2
        Delay 400
        Gosub BloodBlue
        Delay 300
        Gosub 读取坐标
        VBS x2=curx
        VBS y2=cury
        VBS JuLi2=sqr((curx-userx)^2+(cury-usery)^2)
        If JuLi2<5
            VBS JuLi1=JuLi2
            Goto 移动
        EndIf
        VBS dX=x2-x1
        VBS dY=y2-y1
        VBS Cosa=160*(dX-dY)/((dX)^2+(dY)^2)
        VBS Sina=160*(-dX-dY)/((dX)^2+(dY)^2)
        VBS pX=userx-x2
        VBS pY=usery-y2
        VBS lX=int(pX*Cosa-pY*Sina)
        VBS lY=int(-pX*Sina-pY*Cosa)
        VBS js=1
        If sqr((lX^2+lY^2))>350
            Rem 计数
            VBS js=js*2
            lX=int(lX/2)
            lY=int(lY/2)
            If sqr((lX^2+lY^2))>350
                Goto 计数
            EndIf
        EndIf
        If js>4
            VBS js=4
        EndIf
        For js
            MoveTo 512+lX 393+lY
            Delay 20
            LeftClick 2
            Delay 700
        EndFor
        Delay 200
        Gosub 读取坐标
        VBS JuLi3=sqr((curx-userx)^2+(cury-usery)^2)
        If JuLi3<5
            VBS JuLi1=JuLi3
            Goto 移动
        Else
            SayString JuLi3&"......"
            Goto 测试方位
        EndIf
    EndIf
    Gosub AngleReset
    //    SayString "嘻嘻!!"
    //    Delay 100
    //  KeyPress 13 1
    //  Delay 50
Return MovePosition
Sub LookDown
    MoveTo 510,30
    Delay 100
    RightDown 1
    Delay 300
    MoveR 0,620
    Delay 200
    RightUp 1
    Delay 300
    MoveTo 510,458
    Delay 100
Return LookDown
Sub AngleReset
    VBSCall Call FindColor(470,180,550,380,"00ffff",x1,y1)
    If abs(y1-318)>8
        Gosub 调整角度
    EndIf
Return AngleReset
Sub 调整角度
    VBS bz=0
    Rem 调整角度开始
    VBS bz=bz+1
    If bz>20
    Return 调整角度
EndIf
If int(bz/5)=bz/5
    Gosub BloodBlue
EndIf
VBSCall Call FindColor(450,200,550,380,"00ffff",x1,y1)
If (y1-318)>0
    MoveTo 512 380+40
    Delay 100
    RightDown 2
    Delay 100
    MoveTo 512 380+30
    Delay 100
    RightUp 1
    Delay 100
EndIf
If (y1-318)<0
    MoveTo 512 380+40
    Delay 100
    RightDown 2
    Delay 100
    MoveTo 512 380+50
    Delay 100
    RightUp 1
    Delay 100
EndIf
VBSCall Call FindColor(450,200,550,380,"00ffff",x2,y2)
If ABS(y2-318)>8
    Goto 调整角度开始
EndIf
Return 调整角度
Sub BloodBlue
    Delay 20
    IfColor 40,10,182c42,0
        KeyPress F3 1
    EndIf
    IfColor 37,21,313429,0
        KeyPress F4 1
    EndIf
EndIf
Return BloodBlue
Sub 读取坐标
    VBS nx=865
    //坐标符号"["左上角点X
    VBS ny=23
    //读取坐标赋初值 坐标符号"["左上角点Y
    nx=nx+4:ny=ny+1:strnum="":strxy=""
    curx=0:cury=0
    //点只有一个
    point=0
    //点只有一个
    VBS MINl=0
    // (坐标颜色分量MIN)左边两位(填十进制)
    VBS MAXl=24
    //(坐标颜色分量MAX)左边两位(填十进制)
    VBS MINm=0
    //(坐标颜色分量MIN)中间两位(填十进制)
    VBS MAXm=36
    // (坐标颜色分量MAX)中间两位(填十进制)
    VBS MINr=160
    //(坐标颜色分量MIN)右边两位(填十进制)
    VBS MAXr=255
    //(坐标颜色分量MAX)右边两位(填十进制)
    hexlMIN=hex(MINl)
    hexlMAX=hex(MAXl)
    hexmMIN=hex(MINm)
    hexmMAX=hex(MAXm)
    hexrMIN=hex(MINr)
    hexrMAX=hex(MAXr)
    //读取坐标赋初值
    dim pcolor(12)
    Rem 读数
    VBSCall GetPixelColor(nx+2,ny-1)
    pcolor(12)=GetPixelColor(nx+2,ny-1)
    pcolorL=left(pcolor(12),2):pcolorM=mid(pcolor(12),3,2):pcolorR=right(pcolor(12),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(12)=1
    Else
        pcolor(12)=0
    EndIf
    If pcolor(12)=1
        strnum="]"
        Goto 读取结束
    EndIf
    VBSCall GetPixelColor(nx+1,ny+1)
    pcolor(2)=GetPixelColor(nx+1,ny+1)
    pcolorL=left(pcolor(2),2):pcolorM=mid(pcolor(2),3,2):pcolorR=right(pcolor(2),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(2)=1
    Else
        pcolor(2)=0
    EndIf
    If pcolor(2)=1
        strnum="1"
        Goto 合并
    EndIf
    VBSCall GetPixelColor(nx,ny+7)
    pcolor(11)=GetPixelColor(nx,ny+7)
    pcolorL=left(pcolor(11),2):pcolorM=mid(pcolor(11),3,2):pcolorR=right(pcolor(11),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(11)=1
    Else
        pcolor(11)=0
    EndIf
    If pcolor(11)=1
        strnum="2"
        Goto 合并
    EndIf
    VBSCall GetPixelColor(nx+1,ny+2)
    pcolor(5)=GetPixelColor(nx+1,ny+2)
    pcolorL=left(pcolor(5),2):pcolorM=mid(pcolor(5),3,2):pcolorR=right(pcolor(5),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(5)=1
    Else
        pcolor(5)=0
    EndIf
    If pcolor(5)=1
        strnum="4"
        Goto 合并
    EndIf
    VBSCall GetPixelColor(nx,ny)
    pcolor(0)=GetPixelColor(nx,ny)
    pcolorL=left(pcolor(0),2):pcolorM=mid(pcolor(0),3,2):pcolorR=right(pcolor(0),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(0)=1
    Else
        pcolor(0)=0
    EndIf
    VBSCall GetPixelColor(nx,ny+2)
    pcolor(4)=GetPixelColor(nx,ny+2)
    pcolorL=left(pcolor(4),2):pcolorM=mid(pcolor(4),3,2):pcolorR=right(pcolor(4),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(4)=1
    Else
        pcolor(4)=0
    EndIf
    If pcolor(0)=1 and pcolor(4)=1
        strnum="5"
        Goto 合并
    EndIf
    VBSCall GetPixelColor(nx+3,ny+1)
    pcolor(3)=GetPixelColor(nx+3,ny+1)
    pcolorL=left(pcolor(3),2):pcolorM=mid(pcolor(3),3,2):pcolorR=right(pcolor(3),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(3)=1
    Else
        pcolor(3)=0
    EndIf
    VBSCall GetPixelColor(nx,ny+5)
    pcolor(10)=GetPixelColor(nx,ny+5)
    pcolorL=left(pcolor(10),2):pcolorM=mid(pcolor(10),3,2):pcolorR=right(pcolor(10),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(10)=1
    Else
        pcolor(10)=0
    EndIf
    If pcolor(3)=1 and pcolor(10)=1
        strnum="6"
        Goto 合并
    EndIf
    If pcolor(0)=1 and pcolor(3)=1
        strnum="7"
        Goto 合并
    EndIf
    VBSCall GetPixelColor(nx+1,ny+4)
    pcolor(9)=GetPixelColor(nx+1,ny+4)
    pcolorL=left(pcolor(9),2):pcolorM=mid(pcolor(9),3,2):pcolorR=right(pcolor(9),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(9)=1
    Else
        pcolor(9)=0
    EndIf
    If pcolor(9)=1
        strnum="9"
        Goto 合并
    EndIf
    VBSCall GetPixelColor(nx+4,ny+3)
    pcolor(7)=GetPixelColor(nx+4,ny+3)
    pcolorL=left(pcolor(7),2):pcolorM=mid(pcolor(7),3,2):pcolorR=right(pcolor(7),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(7)=1
    Else
        pcolor(7)=0
    EndIf
    VBSCall GetPixelColor(nx,ny+4)
    pcolor(8)=GetPixelColor(nx,ny+4)
    pcolorL=left(pcolor(8),2):pcolorM=mid(pcolor(8),3,2):pcolorR=right(pcolor(8),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(8)=1
    Else
        pcolor(8)=0
    EndIf
    If pcolor(7)=1 and pcolor(8)=1
        strnum="0"
        Goto 合并
    EndIf
    If pcolor(4)=1
        strnum="8"
        Goto 合并
    EndIf
    VBSCall GetPixelColor(nx,ny+3)
    pcolor(6)=GetPixelColor(nx,ny+3)
    pcolorL=left(pcolor(6),2):pcolorM=mid(pcolor(6),3,2):pcolorR=right(pcolor(6),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(6)=1
    Else
        pcolor(6)=0
    EndIf
    If pcolor(6)=1
        strnum="-"
        Goto 合并
    EndIf
    VBSCall GetPixelColor(nx+1,ny)
    pcolor(1)=GetPixelColor(nx+1,ny)
    pcolorL=left(pcolor(1),2):pcolorM=mid(pcolor(1),3,2):pcolorR=right(pcolor(1),2)
    If pcolorL>=hexlMIN and pcolorL<=hexlMAX and pcolorM>=hexmMIN and pcolorM<=hexmMAX and pcolorR>=hexrMIN and pcolorR<=hexrMAX
        pcolor(1)=1
    Else
        pcolor(1)=0
    EndIf
    If pcolor(1)=1
        strnum="3"
        Goto 合并
    EndIf
    If point=0
        strnum="."
        point=1
        Goto 合并
    EndIf
    Rem 合并
    strxy = strxy&strnum
    nx=nx+6
    Goto 读数
    Rem 读取结束
    i=InStr(strxy,".")
    If i>1
        If IsNumeric(Left(strXY,i-1)) And IsNumeric(Mid(strxy,i+1))
            curx=CLng(Left(strxy,i-1))
            cury=CLng(Mid(strxy,i+1))
        EndIf
    EndIf
    Rem 结束
    //myway="我的坐标是"&cstr(curx)&"."&cstr(cury)
    //SayExpression myway
    // Delay 100
    //    KeyPress 13 1
EndIf
Return 读取坐标
 

评论(?)
阅读(?)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
网易公司版权所有 ©1997-2009