按键精灵[天龙八部]后台挂机源码

发布时间:2013-05-16 10:05:43

//===================================

set dm = createobject("dm.dmsoft")

TracePrint dm.Ver()

dm_ret = dm.SetPath ("C:\Documents and Settings\Administrator\桌面\按键\天龙实验") //自行修改,不明白看了大漠你就懂了

dm_ret = dm.SetDict(0, "C:\Documents and Settings\Administrator\桌面\按键\天龙实验\ziku_song9.txt") //自行修改,不明白看了大漠你就懂了

hwnd = dm.EnumWindow(0, "《天龙八部3", "", 1 + 4 + 8 + 16)

dm_ret = dm.SetWindowState(hwnd,12)

dm_ret = dm.SetWindowSize(hwnd,1030,728)

dm_ret = dm.BindWindow(hwnd, "dx", "dx.mouse.state.api", "dx",0) //这个地方是遇到纠结的最多的地方,新手可能会有感触哈。

Delay 1000

If dm_ret = 0 Then

MessageBox "绑定失败"

EndScript

End If

i = 0

Dim fw, HP, MP, CHP

Do

//================找怪========================

Rem 继续找怪

dm.keypress 123

Rem A

dm_ret = dm.CmpColor(441,20,"760c07-000000|0f7207-000000",0.9) //只打绿色和红色名的怪

If dm_ret = 0 Then

Call F1技能

Else

Goto 继续找怪

End If

Loop

//===============================F1===============

Sub F1技能

dm.keypress 112

dm.keypress 113

Call 杀死再换

Call 防卡

Call 人物加血

Call 人物加蓝

Call 宠物加血

Call 捡包

Call 挂机检测

Call 返回挂机点

goto 继续找怪

End Sub

//======================人物加血======================

Sub 人物加血

HP=Form1.HP.Text //输入框相关

dm_ret = dm.CmpColor(67+139*(HP/100),35,"373737-000000",0.9)

If dm_ret = 0 Then

dm.KeyDown 118

Delay 100

dm.KeyUp 118

Delay 500

End If

End Sub

//========================人物加蓝=====================

Sub 人物加蓝

MP=Form1.MP.Text

dm_ret = dm.CmpColor(67+139*(MP/100),44,"373737-000000",0.9) //百分百加血使用的是论坛某位前辈的例子,真是超级简单加好用

If dm_ret = 0 Then

dm.KeyDown 119

Delay 500

dm.KeyUp 119

Delay 500

End If

End Sub

//========================宠物加血=====================

Sub 宠物加血

//========自动出战==============

If Form1.CheckBox6.Value = 1 Then

dm_ret = dm.CmpColor(115,84,"d90a00-000000",0.9) //判断宠物死亡,死亡自动出战

If dm_ret = 1 Then

Call 召唤暂停

End If

End If

CHP=Form1.CHP.Text

dm_ret = dm.CmpColor(115+94*(CHP/100),84,"242424-000000",0.9)

If dm_ret = 0 Then

dm.KeyDown 120

Delay 500

dm.KeyUp 120

Delay 1000

End If

End Sub

//=====================效率太低,没测试====================

Sub 捡包

//例子:Call lib.网游.方形渐开线(400,300,20,20)

Dim x,y,v,i,j,k

x=513: y=337

//设置2点间距离

v=10

i=1

For 30

j=0:k=v

For 2

For i

x=x+j:y=y+k

dm.MoveTo x,y

Delay 40

//LeftClick 1

mouse_tz = dm.GetCursorShape()

If mouse_tz = "6ea90254" Then

dm.MoveTo x, y

Delay 300

dm.RightDown

Delay 200

dm.RightDown

Delay 2000

Exit sub

End If

Next

j=v:k=0

Next

i=i+1:v=v*(-1)

Next

End Sub

Sub 杀死再换 //杀死一个换一个···比较实用,去掉这段就是快速杀怪,打一下换一个

If Form1.CheckBox5.Value = 1 Then

dm_ret = dm.CmpColor(277,36,"d90a00-000000",0.9) //判断怪有没有死亡,死亡继续找怪

If dm_ret = 1 Then

Exit Sub

Else

Goto A

End If

End If

End Sub

//=======================================================================

Sub 召唤暂停 //这个子程序的目的其实可以不要,但是为了提高BB出战的准确率,我加了个这个东西,必须召唤出来了才继续杀怪,不然切怪得速度太快,召唤不出来

Do

dm.keypress 121 //BB出战快捷键

Delay 1000

dm_ret = dm.CmpColor(115,84,"d90a00-000000",0.9) //判断召唤是否成功

If dm_ret = 0 Then

Exit Sub

End If

loop

End Sub

//=================================防卡===================================

Sub 防卡 //这个防卡其实是为了在特殊地形远程人物攻击会卡,无效等情况,攻击之后不减血,立即换怪

If Form1.CheckBox1.Value = 1 Then

Delay 500

i=i+1

If i > 2 Then

dm_ret = dm.CmpColor(451,36,"d90a00-000000",0.9)

If dm_ret = 0 Then

Goto 继续找怪

End If

End If

End If

End Sub

//===============================捡包====================================

Sub 捡包 //说实话3D找色来找包,成功率真的很低。不建议使用

dm_ret = dm.FindColor(0,0,2000,2000,"a3955f-000000",1.0,0,x,y)

If x >= 0 and y >= 0 Then

dm.moveto x, y

Delay 100

dm.RightClick

Else

Exit Sub

End If

End Sub

//=============================验证检测=====================================

Sub 挂机检测

If Form1.CheckBox3.Value = 1 Then

dm_ret = dm.FindStrFast(0,0,2000,2000,"图片","fff263-000000",1.0,x,y)

If x >= 0 and y >= 0 Then

Call Plugin.Media.Play("C:\Documents and Settings\Administrator\桌面\按键\天龙实验\死了都要爱.mp3")

EndScript

End If

End If

End Sub

//===========================回挂机点===============================

Sub 返回挂机点 //这么个玩意真是倾注了我大多的时间··虽然是很简单的玩意··

If Form1.CheckBox4.Value = 1 Then //单选

//==================下拉列表========================

Rem A

select case Form1.ComboBox1.Listindex

Case 0

fw = 5

Case 1

fw = 10

Case 2

fw = 15

Case Else

End Select

//==================上面是下拉列表界面============================

a = dm.Ocr(952,3,973,18, "fdff73-000000", 1.0) //小范围区域内获取X坐标

b = dm.Ocr(973, 3, 1002, 17, "fdff73-000000", 1.0) //小范围区域内获取Y坐标

x0 = Form1.InputBox1.Text

y0 = Form1.InputBox2.Text

If x0 - a > fw or a - x0 > fw or y0 - b > fw or b - y0 > fw Then //FW 是定义的变量,用来决定挂机范围

dm.MoveTo 927, 182

dm.Leftclick

Delay 500

dm_ret = dm.FindStrFast(0, 0, 2000, 2000, "坐标", "fff263-000000", 1.0, x, y)

If intX >= 0 and intY >= 0 Then

dm.MoveTo x + 35, y + 4

dm.LeftClick

Delay 200

dm.SendString hwnd, x0

Delay 200

dm.MoveTo x + 70, y + 1

dm.LeftClick

Delay 200

dm.SendString hwnd, y0

dm_ret = dm.FindStrFast(0,0,2000,2000,"移动","fdeb78-000000",1.0,x,y)

If intX >= 0 and intY >= 0 Then

dm.MoveTo x + 2, y + 2

dm.LeftClick

Delay 200

Rem 检测是否关闭了寻路

dm_ret = dm.FindPic(0,0,2000,2000,"关闭自动寻路.bmp","000000",1.0,3,q,w)

If q >= 0 and w >= 0 Then

dm.MoveTo q + 4, w + 4

dm.LeftClick

Delay 200

dm_ret = dm.FindPic(0,0,2000,2000,"关闭自动寻路.bmp","000000",1.0,3,q,w)

If q >= 0 and w >= 0 Then

Goto 检测是否关闭了寻路

End If

End If

Delay 5000

Goto A

End If

End If

Goto A

Else

Exit Sub

End If

End If

end sub

dm_ret = dm.UnBindwindow()

按键精灵[天龙八部]后台挂机源码

相关推荐