//↑多线程“后台”,无限多开
//Dim hwnd,dm_ret,intX,intY,zx,zy,s
//Dim B_遍历,S_遍历,i
DimEnv 准备,aa,YY
准备="开始"
YY=5
//↑环境变量“准备”,用来判断,单个线程,是否,运行成功
Call 注册()
//<>------------------------------
B_遍历 = dm.EnumWindow(0,"倩女幽魂","MainWnd",1+2)
TracePrint B_遍历
S_遍历 = split(B_遍历,",")
Delay 50
//↑获取,每一个游戏,窗口句柄
//<>------------------------------
For i=0 to UBound(S_遍历)
aa=Int(S_遍历(i))
TracePrint aa
//↑环境变量“aa”,传递“窗口句柄”
Delay 50
BeginThread 指挥中心
YY=YY+10
Delay 1000
Next
//
Do
Delay 1000
Loop While 7=7
//↑全部“多线程”启动完成,让主程序,进入死循环
//<>--------------------------------------------------------------------<>
//<>------------------------------子程序------------------------------<>
//<>--------------------------------------------------------------------<>
Sub 注册()
PutAttachment ".\plugin","*.dll"
PutAttachment ".\plugin\大漠梦想","*.bmp"
PutAttachment ".\plugin\大漠梦想","*.txt"
PutAttachment ".\plugin\大漠梦想","dm.dll"
//↑PutAttachment释放附件
Call Plugin.RegDll.Reg(".\plugin\大漠梦想\dm.dll")
set dm = createobject("dm.dmsoft")
dm.SetPath ".\plugin\大漠梦想"
//↑大漠·注册
dm.SetDict 0,"倩女幽魂.txt"
//↑相对路径……第一个·字库
Delay 40
End Sub
//
Sub OnScriptExit()
dm_ret = dm.UnBindWindow()
End Sub
//
Sub 绑定()
Do
dm_ret = dm.SetWindowState(hwnd,12)
//↑设置“窗口”状态
dm.MoveWindow hwnd,-10,YY
//↑移动“窗口”到指定位置,允许移到“屏幕”外
Delay 500
dm_ret = dm.BindWindow(hwnd,"dx2","windows2","windows",0)
Delay 200
If dm_ret=1 Then
Exit Do
End If
Loop While 7=7
//↑如果,成功,退出Do循环
//↑如果,失败,就一直绑定,直到成功
End Sub
//
Sub 初始化()
For 20
dm.WheelDown
Delay 5
Next
//
For 4
dm.KeyPress 27
Delay 5
Next
//↑鼠标“滚轮”向下,“Esc”键
End Sub
//
Sub 左键单击(zx,zy)
dm.MoveTo zx,zy
Delay 50
dm.LeftClick
End Sub
//
Sub 任务界面()
Do
Call 初始化()
dm.KeyPress 67
Delay 200
//↑按一次“C”键
For 10
s = dm.Ocr(7, 192,142, 221,"be9850-0A0A0A",1.0)
Delay 50
If s="已接任务" or s="可接任务" or s="已接任务可接任务" Then
Exit Do
End If
Next
Loop While 7=7
//↑出现“任务界面”,退出循环
Call 左键单击(38,208)
Delay 400
//↑打开,已接任务
dm_ret = dm.FindStr(0, 183,667, 607,"新手","ffffff-0A0A0A",1.0,intX,intY)
If intX > 0 And intY > 0 Then
Call 左键单击(intX+5,intY+4)
Delay 1000
Else
Call 左键单击(105,208)
Delay 400
//↑打开,可接任务
End If
//
dm_ret = dm.FindStr(0, 183,667, 607,"新手","ff9900-0A0A0A",1.0,intX,intY)
If intX > 0 And intY > 0 Then
Call 左键单击(intX+5,intY+4)
Delay 1000
End If
//
dm_ret = dm.FindStr(0, 183,667, 607,"下划线","00ff00-0A0A0A",1.0,intX,intY)
If intX > 0 And intY > 0 Then
Call 左键单击(intX+5,intY-4)
Delay 2000
End If
//↑点击,任务“NPC”
End Sub
//
Sub 新任务()
dm_ret = dm.FindPic(0, 183,667, 607,"新手.bmp","0A0A0A",0.9,3,intX,intY)
If intX > 0 And intY > 0 Then
Call 左键单击(intX+5,intY+4)
Delay 1000
End If
//↑接受,新任务
dm_ret = dm.FindStr(0, 183,667, 607,"接受","f9d082-0A0A0A",1.0,intX,intY)
If intX > 0 And intY > 0 Then
Call 左键单击(intX+5,intY+4)
Delay 200
End If
//↑接受,按钮
dm_ret = dm.FindStr(0, 183,667, 607,"取消","9be4d7-0A0A0A",1.0,intX,intY)
If intX > 0 And intY > 0 Then
Call 左键单击(intX+5,intY+4)
Delay 200
End If
//↑确定、取消,提示框
dm_ret = dm.FindStr(0, 183,667, 607,"奖励","2aa100-0A0A0A",1.0,intX,intY)
If intX > 0 And intY > 0 Then
dm_ret = dm.FindPic(intX,intY,intX+160,intY+81,"黑色.bmp","0A0A0A",0.9,3,intX,intY)
If intX >= 0 and intY >= 0 Then
Call 左键单击(intX,intY)
Delay 200
End If
End If
//↑选择,奖励(多选一)
dm_ret = dm.FindStr(0, 183,667, 607,"完成","f9d082-0A0A0A",1.0,intX,intY)
If intX > 0 And intY > 0 Then
Call 左键单击(intX+5,intY+4)
Delay 200
End If
//↑完成,按钮
End Sub
//
Sub 指挥中心()
hwnd=aa
TracePrint hwnd
set dm = createobject("dm.dmsoft")
//↑每一个线程,必须创建一个,大漠对象
dm.SetPath ".\plugin\大漠梦想"
//↑指定,大漠“相对路径”
dm.SetDict 0,"倩女幽魂.txt"
//↑相对路径……第一个·字库
Delay 50
//
Call 绑定()
准备="成功"
Do
Call 初始化()
dm_ret = dm.FindStr(0,0,2000,2000,"交付","ffff00-0A0A0A",1.0,intX,intY)
If intX > 0 And intY > 0 Then
Call 左键单击(intX+5,intY+4)
Delay 2000
Else
Call 任务界面()
End If
//↑找到“交付”,表示,任务已完成,点击“交付”
//↑否则,打开,任务界面,查看“新任务”
Call 新任务()
//↑接受,新任务
dm_ret = dm.FindStr(0,0,2000,2000,"凤蝶","ffffff-0A0A0A",1.0,intX,intY)
If intX > 0 And intY > 0 Then
Exit Do
End If
//↑找到“凤蝶”,表示任务,到此为止
Loop While 7=7
End Sub
[按键精灵的一段代码-无限多开的,我看不懂:~有没高人给转换成TC代码] |