-------------------------------------------------------------------
'By:qingfengzhixia
'QQ:360689878
'EMail:qingfengzhixia1@163.com
'Date:2011-5-30
'AD:承接DNF脚本
'--------------------------------------------------------------------------
UserVar DNFpath="D:\Program Files\腾讯游戏\地下城与勇士\start\DNFchina.exe" "游戏路径"
UserVar qq="360689878" "QQ帐号"
UserVar psw="qingfengzhixia1@163.com" "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 移动并点击(447, 367, 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, 子标题)