传奇私服法师挂机脚本

和之前战士差不多的功能,挂机地图是尸魔洞2层。玩了两天,腻了,游戏也删了。把脚本记录下来,好歹算是学习按键精灵的过程。

功能

自动打怪、捡物、买双倍卷轴、买药,自动修复装备。

脚本

//设置大漠路径以及字库名
Set dm = createobject("dm.dmsoft")
dm.SetPath ("d:")
dm_ret = dm.SetDict(0,"lanhuo.txt")

//绑定窗口和模式
hwnd = dm.GetMousePointWindow()
dm_ret = dm.BindWindow(hwnd, "dx2", "windows", "windows", 0)

//初始化跑图路径
Dim nn
nn=1

Rem 开始

Call 买物品()
Call 打宝箱()
Call 打身边怪()
Call 捡身边物()
Call 打半屏怪()
Delay 1000
Call 捡全屏物()
Call 打全屏怪()
Call 找怪()
Call 跑图()
Goto 开始

Sub 打宝箱()
dm_ret = dm.FindStrFast(0, 0, 800, 438, "宝|箱", "ffffff-000000", 1.0, intX, intY)
If intX >= 0 and intY >= 0 Then 
    dm.MoveTo intX + 20, intY + 10
    Delay 20
    dm.KeyPress 113
    Delay 1500
    Goto 开始
End If
End Sub
Sub 打身边怪()
    //身边怪物(名字判断)
    dm_ret = dm.FindStrFast(279,119,508,294, "恶|灵", "ffffff-000000", 1.0, intX, intY)
    If intX >= 0 and intY >= 0 Then 
        dm.MoveTo 390, 230
        Delay 20
        dm.KeyPress 113
        Delay 500
        dm.MoveToEx 20, 400, 5, 5
        Delay 500
        dm.MoveToEx 20, 400, 5, 5
        Delay 500
        Goto 开始
    End If
End Sub
Sub 打半屏怪()
     //半屏怪物(名字判断)
    dm_ret = dm.FindStrFast(155,76,661,358, "恶|灵", "ffffff-000000", 1.0, intX, intY)
    If intX >= 0 and intY >= 0 Then 
        dm.MoveTo intX + 20, intY + 20
        Delay 20
        dm.KeyPress 113
        Delay 500
        dm.MoveToEx 20, 400, 5, 5
        Delay 500
        dm.MoveToEx 20, 400, 5, 5
        Delay 500
        Goto 开始
    End If
End Sub
Sub 打全屏怪()
    //全屏怪物(名字判断)
    dm_ret = dm.FindStrFast(0, 0, 800, 438, "恶|灵", "ffffff-000000", 1.0, intX, intY)
    If intX >= 0 and intY >= 0 Then 
        dm.MoveTo intX + 20, intY + 20
        Delay 20
        dm.KeyPress 113
        Delay 500
        dm.MoveToEx 20, 400, 5, 5
        Delay 500
        dm.MoveToEx 20, 400, 5, 5
        Delay 500
        Goto 开始
    End If
End Sub
Sub 捡身边物()
    //身边物品
    dm_ret = dm.FindStrFast(213,63,574,354, "神|强|金", "ff0000-000000|ffffff-000000|88ddee-000000", 1.0, intX, intY)
    If intX >= 0 and intY >= 0 Then
        dm.MoveTo intX + 20, intY + 20
        Delay 200
        dm.LeftClick 
        Delay 100
        dm.MoveToEx 20, 400, 5, 5
        Delay 100
        dm.MoveToEx 20, 400, 5, 5
        Delay 700
        Goto 开始
    End If
End Sub
Sub 捡全屏物()
    //全屏物品
    dm_ret = dm.FindStrFast(0, 0, 800, 438, "神|强|金", "ff0000-000000|ffffff-000000|88ddee-000000", 1.0, intX, intY)
    If intX >= 0 and intY >= 0 Then
        dm.MoveTo intX + 20, intY + 20
        Delay 200
        dm.LeftClick 
        Delay 100
        dm.MoveToEx 20, 400, 5, 5
        Delay 100
        dm.MoveToEx 20, 400, 5, 5
        Delay 700
        Goto 开始
    End If
End Sub
Sub 找怪()
    //小地图找怪
    dm_ret = dm.FindMultiColor(608,0,800,160,"ff0000","0|1|ff0000,0|2|ff0000,0|3|ff0000,1|1|ff0000",1.0,0,intX,intY)
    If intX >= 0 and intY >= 0 Then 
        i=1
        For 5
            dm.MoveTo intX + i, intY + i
            dm.RightClick 
            i = i + 1
            Delay 100
        Next
    End If
    Delay 1000
    //判断是否有怪,有怪停止移动
    dm_ret = dm.FindStrFast(0, 0, 800, 438, "恶|灵", "ffffff-000000", 1.0, intX, intY)
    If intX >= 0 and intY >= 0 Then 
        dm.MoveTo 390, 230
        Delay 20
        dm.RightClick 
        Goto 开始
    Else 
        For 3
            Delay 1000
            dm_ret = dm.FindStrFast(0, 0, 800, 438, "恶|灵", "ffffff-000000", 1.0, intA, intB)
            If intA >= 0 and intB >= 0 Then 
                dm.MoveTo 390, 230
                Delay 20
                dm.RightClick 
                Goto 开始
            End If
        Next
    End If 
End Sub
Sub 买物品()
    hong = dm.Ocr(304, 425, 318, 440, "ffffff-000000", 1.0)
    lan = dm.Ocr(346, 423, 366, 439, "ffffff-000000", 1.0)
    suiji=dm.Ocr(517,424,536,438, "ffffff-000000", 1.0)
    TracePrint "红:" & hong & "蓝:" & lan & "随机:" & suiji
    If hong = 0 Then 
        Delay 1000
        hong = dm.Ocr(304, 425, 318, 440, "ffffff-000000", 1.0)
        If hong = 0 Then 
            Call 买红()
        End If
    End If
    If lan = 0 Then 
        Delay 1000
        lan = dm.Ocr(346, 423, 366, 439, "ffffff-000000", 1.0)
        If lan = 0 Then 
            Call 买蓝()
        End If
    End If
    If suiji = 0 Then 
        Delay 1000
        suiji=dm.Ocr(517,424,536,438, "ffffff-000000", 1.0)
        If suiji = 0 Then 
            Call 买随机()
        End If
    End If
    dm_ret = dm.FindMultiColor(0, 0, 800, 438, "440000", "1|0|993300,2|0|dd7700,3|0|ffaa00,4|0|eebb00", 1.0, 0, intX, intY)
 If dm_ret = 0 Then 
 Call 买双倍()
 End If
End Sub
Sub 买红()
 dm.MoveTo 766,566
 Delay 20
 dm.LeftClick 
 Delay 2000
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "金币区", "efd6ad-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "金创药", "00ff00-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 //加号
 dm_ret = dm.FindMultiColor(0, 0, 800, 438, "080000","0|1|f7de39,0|2|f7de39,0|3|080000,0|4|6b5239", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 TracePrint 123
 dm.MoveTo intX-30,intY
 Delay 200
 dm.LeftClick 
 Delay 20
 dm.KeyPress 48
 End If
 Delay 1000
 //付费购买按钮
 dm_ret = dm.FindMultiColor(0, 0, 800, 438, "8c8439", "0|1|fff76b,0|2|efe763,0|3|efe763,0|4|efe763", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 //确定按钮
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "确定", "efd6ad-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 //打开背包
 dm.MoveTo 693, 399
 Delay 20
 dm.LeftClick
 Delay 1000
 //解开红药
 dm_ret = dm.FindMultiColor(0, 0, 800, 600, "7b3118", "1|0|6b3118,2|0|6b3118,3|0|7b3118,4|0|942918", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX, intY
 Delay 2000
 dm.RightClick 
 Delay 2000
 End If
 //修理装备
 dm_ret = dm.FindMultiColor(0, 0, 800, 600, "d6c6ad", "1|0|bda57b,2|0|efc68c,3|0|f7f7de,4|0|b5a594", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX, intY
 Delay 2000
 dm.RightClick 
 Delay 2000
 End If
 dm.KeyPress 27
 Delay 1000
 dm.KeyPress 27
 Delay 1000
 dm.KeyPress 27
 dm.MoveToEx 20, 400, 5, 5
End Sub
Sub 买蓝()
 dm.MoveTo 766,566
 Delay 20
 dm.LeftClick 
 Delay 2000
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "金币区", "efd6ad-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "魔法药", "00ff00-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 //加号
 dm_ret = dm.FindMultiColor(0, 0, 800, 438, "080000","0|1|f7de39,0|2|f7de39,0|3|080000,0|4|6b5239", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 TracePrint 123
 dm.MoveTo intX-30,intY
 Delay 200
 dm.LeftClick 
 Delay 20
 dm.KeyPress 48
 End If
 Delay 1000
 //付费购买按钮
 dm_ret = dm.FindMultiColor(0, 0, 800, 438, "8c8439", "0|1|fff76b,0|2|efe763,0|3|efe763,0|4|efe763", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 //确定按钮
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "确定", "efd6ad-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 dm.MoveTo 693, 399
 Delay 20
 dm.LeftClick 
 Delay 1000
 //解开蓝药
 dm_ret = dm.FindMultiColor(0, 0, 800, 600, "104284", "1|0|291884,2|0|291884,3|0|215aa5,4|0|738cff", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX, intY
 Delay 2000
 dm.RightClick 
 Delay 2000
 End If
 dm_ret = dm.FindMultiColor(0, 0, 800, 600, "d6c6ad", "1|0|bda57b,2|0|efc68c,3|0|f7f7de,4|0|b5a594", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX, intY
 Delay 2000
 dm.RightClick 
 Delay 2000
 End If
 dm.KeyPress 27
 Delay 1000
 dm.KeyPress 27
 Delay 1000
 dm.KeyPress 27
 dm.MoveToEx 20, 400, 5, 5
End Sub
Sub 买随机()
 dm.MoveTo 766,566
 Delay 20
 dm.LeftClick 
 Delay 2000
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "金币区", "efd6ad-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "随机传送石", "00ff00-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 dm_ret = dm.FindMultiColor(0, 0, 800, 438, "8c8439", "0|1|fff76b,0|2|efe763,0|3|efe763,0|4|efe763", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 //确定按钮
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "确定", "efd6ad-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 dm.MoveTo 693, 399
 Delay 20
 dm.LeftClick 
 Delay 1000
 dm_ret = dm.FindMultiColor(0, 0, 800, 600, "d6c6ad", "1|0|bda57b,2|0|efc68c,3|0|f7f7de,4|0|b5a594", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX, intY
 Delay 2000
 dm.RightClick 
 Delay 2000
 End If
 dm.KeyPress 27
 Delay 1000
 dm.KeyPress 27
 Delay 1000
 dm.KeyPress 27
 dm.MoveToEx 20, 400, 5, 5
End Sub
Sub 买双倍()
 dm.MoveTo 766,566
 Delay 20
 dm.LeftClick 
 Delay 2000
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "金币区", "efd6ad-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "双倍秘籍", "00ff00-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 dm_ret = dm.FindMultiColor(0, 0, 800, 438, "8c8439", "0|1|fff76b,0|2|efe763,0|3|efe763,0|4|efe763", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 //确定按钮
 dm_ret = dm.FindStrFast(0, 0, 800, 438, "确定", "efd6ad-000000", 1.0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX + 20, intY + 10
 Delay 20
 dm.LeftClick 
 End If
 Delay 1000
 dm.MoveTo 693, 399
 Delay 20
 dm.LeftClick 
 Delay 1000
 dm_ret = dm.FindMultiColor(0, 0, 800, 600, "ce3129", "0|1|ff5a5a,0|2|ff5a5a,0|3|d65a52,0|4|ce3129", 1.0, 0, intX, intY)
 If intX >= 0 and intY >= 0 Then 
 dm.MoveTo intX, intY
 Delay 2000
 dm.RightClick 
 Delay 2000
 End If
 dm.KeyPress 27
 Delay 1000
 dm.KeyPress 27
 Delay 1000
 dm.KeyPress 27
 dm.MoveToEx 20, 400, 5, 5
End Sub
Sub 自动()
    dm.KeyDown 17
    Delay 20
    dm.KeyPress 76
    Delay 20
    dm.KeyUp 17
End Sub
Sub 跑图()
zuobiao = dm.Ocr(68,583,129,599, "ffffff-000000", 1.0)
zuobiaox = mid(zuobiao,1,instr(zuobiao, ":")-1)
zuobiaoy = mid(zuobiao, instr(zuobiao, ":") + 1, 3)
If 86 > zuobiaox > 76 and 43 > zuobiaoy > 33 Then 
 nn=2
ElseIf  53 > zuobiaox > 43 and 33 > zuobiaoy > 22 Then
 nn = 3
ElseIf 25 > zuobiaox > 15 and 60 > zuobiaoy > 50 Then
 nn = 4
ElseIf 65 > zuobiaox > 55 and 87 > zuobiaoy > 77 Then
 nn = 1
End If
Select case nn
Case 1
 dm.MoveTo 750, 68
 Delay 20
 dm.RightClick 
 Delay 1000
Case 2
 dm.MoveTo 700, 57
 Delay 20
 dm.RightClick 
 Delay 1000
Case 3
 dm.MoveTo 659, 85
 Delay 20
 dm.RightClick 
 Delay 1000
Case 4
 dm.MoveTo 720, 112
 Delay 20
 dm.RightClick 
 Delay 1000
End Select
//判断是否有怪,有怪停止移动
dm_ret = dm.FindStrFast(0, 0, 800, 438, "恶|灵|宝|箱", "ffffff-000000", 1.0, intX, intY)
If intX >= 0 and intY >= 0 Then 
    dm.MoveTo 390, 230
    Delay 20
    dm.RightClick 
    Goto 开始
Else 
    For 3
        Delay 1000
        dm_ret = dm.FindStrFast(0, 0, 800, 438, "恶|灵", "ffffff-000000", 1.0, intA, intB)
        If intA >= 0 and intB >= 0 Then 
            dm.MoveTo 390, 230
            Delay 20
            dm.RightClick 
            Goto 开始
        End If
    Next
End If 
End Sub
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 好像现在外挂都过不了登陆器,包括找罗楠拿的收费挂也不行,只好自己写一个挂机脚本。 说明 按键精灵+大漠插件制作,职...
    禾白小三飘阅读 42,809评论 5 8
  • ----------------------- 页面 1----------------------- 2013 ...
    长春傳齐3阅读 4,102评论 0 1
  • 信手拈来按键帮你来简介:在介绍信手拈按键帮你来之前,我们先要说一下ahk(AutoHotkey)这个编程语言,Au...
    妹妹好想你阅读 569评论 0 0
  • 我的悟空回答 感谢邀请!你正确呼吸了吗? 这是一份特别精美的圣诞节礼物,希望你能收到! 做任何事情都能非常的享受!...
    邱礼芳阅读 674评论 0 2
  • “学会第二种语言,就拥有了第二个灵魂。”这是神圣罗马皇帝查理曼的名句。也是小编一直喜欢的一句话。如他所言,学习一门...
    布诺思教育BONUS阅读 7,192评论 0 1