自动分解脚本

社区服务
高级搜索
猴岛论坛DNF地下城与勇士自动分解脚本
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
1个回复

自动分解脚本

楼层直达
bestyt

ZxID:19571069

等级: 少校
举报 只看楼主 使用道具 楼主   发表于: 2012-10-11 0
[Script]
SetSimMode 2//设置为硬件模拟
窗口句柄 = Lib.API.查找窗口句柄("地下城与勇士", "地下城与勇士")
If 窗口句柄 =0 Then
MsgBox "找不到DNF游戏窗口,请打开游戏后在运行脚本!",48,"警告"
ExitScript
Else
Plugin.Window.Move 窗口句柄, 0, 0
End If
//上面的代码用处:寻找DNF窗口句柄,如果找到了则移动DNF窗口到坐标 0,0 找不到DNF窗口句柄则提示游戏没有运行,并且终止脚本
//分割线===以上代码尽量不要修改
Rem A
Call 判断角色()
If 位置 = 1 Then
Call 购买腰带()
Else
If 位置 = 0 Then
Call 到塞莉亚房间()
    Call 购买腰带()
End If
End If
Call 架设分解机()
Call 分解背包()
Call 修理分解()
Goto A
//分割线===以下代码尽量不要修改
Sub 判断角色
Call 点击确定()
//通过找图判断角色位置。1为塞莉亚房间,0为非塞莉亚房间
FindPic 0, 0, 640, 480, "Attachment:\塞莉亚房间.bmp", 0.9, intX, intY
If intX >= 0 and intY >= 0 Then
  位置 = 1
  Else
  位置 = 0
End If
End Sub
Sub 点击确定
//作用:利用循环点击确定按钮,直到没有确定按钮为止
FindPic 0,0,640,480,"Attachment:\确认按钮.bmp",0.9,intX,intY
While intX > 0 and intY > 0
MoveTo intX+10, intY+10
    LeftClick 1
    FindPic 0,0,640,480,"Attachment:\确认按钮.bmp",0.9,intX,intY
Wend
End Sub
Sub 购买腰带
//往下翻页坐标302,370
//首先单击塞莉亚,打开物品店。这里不需要找图,直接用固定的坐标即可
Delay 500
MoveTo 307, 183
    LeftClick 1
    Delay 500
    MoveTo 345, 233
    LeftClick 1
    //打开物品店了。现在开始找腰带。用循环操作
    FindPic 0, 0, 316, 480, "Attachment:\赛利亚腰带.bmp", 0.9, X, Y
    While X = - 1  and Y = - 1
     //如果找不到腰带则往下翻页
         MoveTo 302, 370
            LeftClick 1
            FindPic 0, 0, 316, 480, "Attachment:\赛利亚腰带.bmp", 0.9, X, Y
    Wend
    //找得到就跳出循环。接着用另一个循环来买到不能购买为止
    FindPic 0, 0, 640, 480, "Attachment:\公告.bmp", 0.9, intX, intY
    While intX < 0 and intY < 0
    //利用公告图片判断。如果找到则说明不能继续购买,反之则继续买
    MoveTo X+50, Y+10
    LeftClick 1
    FindPic 0, 0, 640, 480, "Attachment:\公告.bmp", 0.9, intX, intY
    LeftClick 1
    Wend
    Call 点击确定()
    //调用点击确定来关掉公告框,然后关闭购买的物品框
    KeyPress "Esc", 1
    //购买腰带步骤结束。如果需要买别的可以自己改坐标或者图片
End Sub
Sub 到塞莉亚房间
//250,180
//到塞莉亚房间思路:首先判断地图是否打开。如果没有打开则打开地图,反之直接根据坐标移动
FindPic 0, 0, 640, 480, "Attachment:\地图判断.bmp", 0.9, intX, intY
If intX < 0 and intY < 0 Then
MoveTo 288, 458
Delay 100
LeftClick 1
MoveTo 299, 419
Delay 100
LeftClick 1
End If
//打开地图完成。接下来右键点击坐标移动到塞莉亚房间前(DNF不能用寻路直接到塞莉亚房间)
  MoveTo 252, 182
  RightClick 1
  MoveTo 640, 480
  //接下来不停的找点判断是否到了塞莉亚房间前
    颜色 = GetPixelColor(251, 180)    
    While 颜色 <> "FFCF09" and 颜色<>"FFA118"
     //如果颜色不等于就说明没有移动到塞莉亚房间前,那么延迟一会儿继续判断
     Delay 500
        颜色 = GetPixelColor(251, 180)
  MoveTo 252, 182
  RightClick 1
  MoveTo 0, 0
    Wend
    //到这里则说明角色移动到了塞莉亚房前了。那么只要模拟↑就能进去了
     KeyPress "Up", 10
   MoveTo 626, 15
   Delay 100
   LeftClick 1
End Sub
Sub 架设分解机
//架设前让角色移动位置...
FindPic 0, 0, 640, 480, "Attachment:\地图判断.bmp", 0.9, intX, intY
If intX < 0 and intY < 0 Then
MoveTo 288, 458
Delay 100
LeftClick 1
MoveTo 299, 419
Delay 100
LeftClick 1
End If
  KeyPress "Down", 10
  MoveTo 237, 197
  RightClick 1
  MoveTo 0, 0
  颜色 = GetPixelColor(236, 192)
  While 颜色 <> "FFCF09"  and 颜色 <> "FFCE12" and 颜色 <> "FFC50C"
  //如果颜色不等于就说明没有移动到指定位置
  Delay 500
  颜色 = GetPixelColor(236, 192)
  MoveTo 237, 197
  RightClick 1
  MoveTo 0, 0
  Wend
   MoveTo 626, 15
   Delay 100
   LeftClick 1
  X2=-1
  While X2 = - 1
  KeyPress "Esc", 1
  KeyPress "Left", 4
//如果无法开启分解向左走。目测可以一直走到雪域...
  FindPic 0, 0, 640, 480, "Attachment:\分解店.bmp", 0.9, intX, intY
MoveTo 288, 458
Delay 100
LeftClick 1
MoveTo 309, 401
Delay 100
LeftClick 1
  MoveTo 259, 188
  LeftClick 1
  MoveTo 0,0
KeyPress "Num 9", 4
Call 点击确定()
//架设这一步比较烦。毕竟你的分解机可能和人家的重叠,所以要判断分解机是否架设成功很蛋疼
//我决定用随机数的方式来写。
X1 = Int((473 - 49 + 1) * Rnd + 49)
Y1 = Int((416 - 340 + 1) * Rnd + 340)
//生成一个随机的坐标,用来架设分解机
MoveTo X1, Y1
LeftClick 1
Delay 1000
MoveTo 430,240
LeftClick 1
MoveTo 390,240
LeftClick 1
MoveTo 350,240
快乐的小2b〃

ZxID:3633827

等级: 大将
   戒不掉               忘不了 

举报 只看该作者 沙发   发表于: 2012-10-11 0
看不懂  也没这副职业
« 返回列表
发帖 回复