按键精灵DNF自动登录脚本源码

运行环境:分辨率:1440×900 色深:32位 操作系统:Microsoft Windows XP 按键精灵版本:9.21.10865

UserVar DNFpath="F:\游戏\地下城与勇士\start\DNFchina.exe" "游戏路径"  
UserVar qq=956406180 "QQ帐号"    
UserVar psw="12345687" "QQ密码(登录过程中不要打开Caps Lock键)"    
UserVar MyDQ=DropList{"否":"0"|"是":"1"}=1 "是否启用自定义大区和服务器"    
UserVar Region="四川区" "输入大区名称(可不用加引号)"    
UserVar Server="四川1区" "输入服务器名称(可不用加引号)"    
UserVar Delay_move=300 "鼠标移动的延迟"    
UserVar Delay_click=300 "点击的延迟"    
UserVar Delay_window=400 "弹出窗口的延迟"    
UserVar V_input=10 "密码输入速度"    
UserVar tdPD=DropList{"最佳状态":"最佳状态"}=0 "选择频道方式"    
UserVar Num_role=1 "第几个角色(最大第8个)"  
    
//▓▓▓▓▓▓▓▓▓▓▓ 自定义变量判断 ▓▓▓▓▓▓▓▓▓▓    
If Plugin.File.ExistFile(DNFpath) = 0 Then      
    MsgBox "游戏路径不正确", 16, "提示"    
    EndScript       
End If    
//▓▓▓▓▓▓▓▓▓▓▓全局变量初始化 ▓▓▓▓▓▓▓▓▓▓▓    
For j = 1 To 2    
    For i = 1 To 4    
        If i + (j - 1) * 4 = Cint(Num_role) Then     
            Role_x = i : Role_y = j    
        End If    
    Next    
Next    
//▓▓▓▓▓▓▓▓▓▓▓主    程    序 ▓▓▓▓▓▓▓▓▓▓▓    
RunApp DNFpath    
Delay 1000    
Call 等待窗口("选大区")    
Delay 1000    
Call 点击子窗口("地下城与勇士", Region)    
Call 点击子窗口("地下城与勇士", Server)    
Call 移动并点击(560, 540, 0, 1)  '确认    
Delay 2000    
//●●●●●●●● 输密码 ●●●●●●●●    
Call 等待窗口("输密码")    
Call 移动并点击(420, 380, 0, 1)  '账号窗口    
KeyPress "BackSpace", 15    
SayString QQ       
Delay 300    
KeyPress "Tab", 1     
Call Lib.键盘.KeyList(psw, 0, 20)    
Call 移动并点击(570, 380, 0, 1)  '[登录游戏]    
Delay 2000    
//●●●●●●●● 择频道 ●●●●●●●●    
Call 等待窗口("择频道")    
Delay 1000    
Do    
    Delay 50    
    IfColor Ux+104, Uy+138, "A9C3C8" ,0  Then   '是否在读取频道信息'    
        Exit Do     
    End If    
Loop    
Array_PD = Array("00FF00", "00B1FF", "0080FF", "0000FF")  '顺畅,良好,普通,拥挤    
If tdPD = "最佳状态" Then     
    Do     
        Delay 50    
        For i = 0 To UBound(Array_PD)    
            Delay 50    
            FindColor Ux, Uy, Ux + 640, Uy + 480, Array_PD(i), intX, intY '不同频道状态不同的颜色'    
            If intX > 0 Then     
                Call 移动并点击(intX - Ux, intY - Uy, 0, 1)    
                Exit Do     
            End If    
        Next    
       If i = UBound(Array_PD) + 1 Then '表示爆满    
            Call 移动并点击(560, 400, 0, 1) '刷新页面    
            Delay Delay_window    
        End If    
    Loop    
End If     
Delay Delay_click    
Call 移动并点击(320, 445, 0, 1)  '[游戏开始]    
Delay 2000    
//●●●●●●●● 挑角色 ●●●●●●●●    
Call 等待窗口("挑角色")    
Delay 1000    
Do    
    Delay 50    
    IfColor Ux + 401, Uy + 195, "8DEDFF", 1 Then  '判断是否在读取信息'    
        Exit Do     
    End If    
Loop    
Call 移动并点击(115 + (role_x - 1) * 130, 135 + (role_y - 1) * 185, 0, 1)    '选择角色    
Call 移动并点击(320, 445, 0, 1)  '[游戏开始]    
EndScript     
//▓▓▓▓▓▓▓▓▓▓▓ 子    程    序 ▓▓▓▓▓▓▓▓▓▓▓    
Sub 点击子窗口(父标题, 子标题)    
    Dim Hwnd, HwndEx, Coord, MyArray    
    Do     
        Delay 50    
        Hwnd = Plugin.Window.Find(0, 父标题)    
        HwndEx = Plugin.Window.FindEx(Hwnd, 0, 0, 子标题)    
        If HwndEx <> 0 Then    
            Coord = Plugin.Window.GetClientRect(HwndEx)    
            MyArray = Split(Coord, "|", - 1 , 1)    
            Do     
                Delay 100    
                IfColor Cint(MyArray(0)) + 10, Cint(MyArray(1)) + 10, "676767", 1 Then    
                                   Call 移动并点击(Cint(MyArray(0)) + Cint(MyArray(2)) / 2 - Ux, Cint(MyArray(1)) + Cint(MyArray(3)) / 2 - Uy, 0, 1)    
                    Exit Do     
                End If    
            Loop     
            Delay Delay_window    
            Exit Sub     
        Else     
            MsgBox "出错:找不到子窗口" & 标题, 16, "提示"    
            EndScript     
        End If     
    Loop     
End Sub     
Sub 等待窗口(窗口名)    
    Dim Array_name, Hwnd, Coord, MyArray, i, k    
    Dim Array_Feature_form(3)    
    Array_Feature_form(0) =  "选大区,71,86,C9FFFF,71,86,C9FFFF"    
    Array_Feature_form(1) =  "输密码,90,480,FFFFFF,660,469,18FF9F"    
    Array_Feature_form(2) =  "择频道,332,13,B3F2FF,333,13,B3F2FF"    
    Array_Feature_form(3) =  "挑角色,337,26,78D7F4,337,26,78D7F4,337,26,78D7F4,337,26,78D7F4"     
    For i = 0 To UBound(Array_Feature_form)    
        Array_name = Split(Array_Feature_form(i), ",", - 1 , 1)    
        If Array_name(0) = 窗口名 Then     
            Do    
                Delay 50     
                Hwnd = Plugin.Window.Find(0, "地下城与勇士")    
                Coord = Plugin.Window.GetClientRect(Hwnd)      
                MyArray = Split(Coord, "|", - 1 , 1)    
                If Cint(MyArray(2)) = 687 or Cint(MyArray(2)) = 640 Then      
                    Ux = Cint(MyArray(0)) : Uy = Cint(MyArray(1))    
                    For k = 0 To (UBound(Array_name) - 6) / 6    
                        IfColor Ux + Array_name(k * 6 + 1), Uy + Array_name(k * 6 + 2), Array_name(k * 6 + 3),0 Then     
                            IfColor Ux + Array_name(k * 6 + 4), Uy + Array_name(k * 6 + 5), Array_name(k * 6 + 6),0 Then     
                                Exit Sub    
                            End If     
                        End If                              
                    Next    
                End If    
            Loop     
        End If    
    Next     
End Sub    
Sub 移动并点击(横坐标, 纵坐标, 操作方式, 左击次数)    
    //点击次数: 0表示不点击    
    //操作方式:【0前台模式,1后台模式】    
    If 操作方式 = 0 Then     
        横坐标 = Ux + 横坐标 : 纵坐标 = Uy + 纵坐标    
        MoveTo 横坐标, 纵坐标    
        Delay Delay_move    
        If 左击次数 <> 0 Then     
            For 左击次数    
                LeftDown 1    
                Delay 100    
                LeftUp 1    
                Delay Delay_click    
            Next     
        End If    
    End If         
End Sub    
Dim MyHour,MyVar  
rem aaa  
Delay 3000  
Goto aaa
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

按键精灵DNF自动登录脚本源码》有0个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注