dnf分解师吧 关注:7,114贴子:44,226

想自己做自动分解的同学进来看看~

只看楼主收藏回复

在这里我写一个 按键精灵9 的简单教程。没有按键精灵的请自行百度,下载。
主要讲这么几个问题
1.按键命令的书写
2.找图,找点的使用
3.简单的判断
4.REM/GOTO 标记/跳转的使用
如果全部都会了就别看了。
还有,一章一层楼,请勿插楼...


IP属地:浙江1楼2012-01-13 15:55回复
    3楼
    找图,找点的使用:(很重要)
    这个是写分解脚本的关键。我先说下找图

    这个就是找图命令插入的地方。截图的话请使用QQ截图或者按键自带的抓抓(按键的上方有)
    特别注意,你所需要在这个区域寻找的图片必须是bmp格式。这个是人家找图算法的原因,我们不用管
    这里可以看到一个屏幕区域 ,里面可以写左上角,右上角,左下角,右下角的坐标
    其实就是说你需要找的图片的区域。
    比如说一张图片,出现在DNF中,而DNF的游戏大小只有640*480。那么书写的时候四个坐标的话只要写 0,0,640,480,就够了,因为这张图片不可能出现在游戏外,就算出现在游戏外也和我们没有关系。这么写的话速度肯定比默认的区域找的快
    下面的路径不解释...插入后是这样的代码
    FindPic 0,0,1024,768,"Attachment:\神盾.bmp",0.9,intX,intY
    If intX > 0 And intY > 0 Then
    End If
    这个是源文件代码。第一行的意思是找图片。前面是区域,中间是找图片的那个图片的路径。后面的0.9是相似度(看上面的图)
    最后的intX 和 intY其实是变量。
    事实上IntX就是找到图片后图片左上角坐标的X,intY就是 图片左上角坐标的Y。
    第二行是一个IF判断。大概意思是说 如果intX和intY同时大于0则....
    其实这里少了个else,我会在4楼详细说明、
    我已经说过了,intX,intY是图片的坐标。如果说intX和intY等于或者小于0就说明找不到图片。大于就说明找得到 图片
    第三行End If是IF语句结束用的。方便脚本识别。那么我们可以在第二行的下面书写命令
    比如模拟点击鼠标什么的...
    找图的用处很多。最多的就是判断。举个例子。我脚本移动到了赛利亚房间,但是我并不知道游戏有木有出错,到底有没有到赛利亚房间。那么我就可以在赛利亚房间截图,然后用找图。找到图片就说明角色成功移动到了赛利亚房间,反正则是没有移动到赛利亚房间
    ==============分割线=================
    找点
    找点其实比找图好用。因为找图在整个区域中寻找一张图片,而找点只是取一个点的坐标的颜色罢了
    找点我不详细说明了。实际上思路就是找多个固定的坐标的颜色。如果颜色和你自己获取的一样的话就能做到类似于找图的效果,但是比找图速度快
    这段写的自己头昏...等我吧剩下的发完不懂直接问我把...我不适合写教程呐


    IP属地:浙江4楼2012-01-13 16:38
    回复
      别插楼啊骚年...
      判断....
      接下来我简单的写吧。反正经常逛贴吧,不懂直接问.
      判断就是说上面的IF语句。中文翻译为如果
      格式如下
      IF 表达式 then
      结果符合时
      ELSE
      结果不符合时
      End IF
      表达式的话我也说不大清楚。举个例子好了、
      if a>=0 then
      Msgbox "变量A大于等于0"
      else
      Msgbox "变量A小于0"
      End If
      这个的意思就是判断变量A的值、如果大于且等于0则弹出信息框 变量A大于等于0
      反之则弹出信息框 变量A小于0...具体上自己研究
      ESLE就是否则。直接用按键插入命令是没有的,需要自己在源代码里手动书写
      最后,REM/GOTO的使用
      REM和GOTO不复杂,请养成手动书写的好习惯。
      我在这里把他作为子程序来用。按键的子程序没有研究,估计也有点烦。毕竟有返回值和参数的设定
      REM的意思是标记。GOTO 意思是跳转
      举个例子
      Msgbox "1"
      REM A
      Msgbox "2"
      GOTO A
      我可以很明确的说,这个脚本会弹出提示1一遍,然后无限弹出提示2..为什么自己看...
      所谓拿标记跳转来当子程序用就是说用标记跳转吧整个脚本分开
      比如说到赛利亚房间做一个标记,分解做一个标记,修理做一个标记,然后根据IF来判断什么时候跳转到什么地方达到脚本无限循环的效果、
      头昏...暂时就说这么多,不懂欢迎提问...我不擅长写教程,大家凑合吧
      


      IP属地:浙江6楼2012-01-13 16:56
      收起回复
        Hwnd = Plugin.Window.Find("地下城与勇士", "地下城与勇士")
        If Hwnd <> 0 Then
        Call Plugin.Window.Move(Hwnd, 0, 0)
        Else
        MsgBox "找不到DNF"End If
        这个是用来吧DNF移动到屏幕左上角的命令...差点忘了


        IP属地:浙江8楼2012-01-13 17:02
        收起回复
          汗。。


          来自手机贴吧9楼2012-01-13 17:09
          回复
            其实关键是这里不让发程序,误报严重...这种找图写的源码放出来也没有用,效率也不行...我用的虽然不错,不过我没发现什么杀毒软件不去报毒...
            发出来会被删帖封号的说


            IP属地:浙江10楼2012-01-13 17:15
            收起回复
              楼主发个编好的脚本给我吧,看不懂……508889633@qq.com


              来自掌上百度11楼2012-01-13 18:50
              回复

                楼主能发下么,lvchao0210@126.com 谢谢楼主,我看不懂哦


                IP属地:内蒙古12楼2012-01-13 23:24
                回复
                  看不懂


                  13楼2012-01-14 08:37
                  回复
                    吗的 。 这跟数学一样啊
                    呜呜呜.数学学的跟JB一样的挥泪离去


                    IP属地:陕西14楼2012-01-18 00:51
                    收起回复
                      LZ 求个包裹32格的左边和分解一次的时间
                      谢谢了


                      15楼2012-01-18 14:35
                      回复
                        LZ 求个包裹32格的坐标 有延迟打错字了


                        16楼2012-01-18 14:38
                        回复
                          @夜丶凄凉____ 精一下,此贴不错。


                          IP属地:浙江18楼2012-01-19 00:41
                          回复