游戏辅助:用按键精灵制作DNF遍历背包卖物脚本

游戏挂机一段时间,号子上的背包满了怎么办?我们需要清理背包,该分解的分解该卖的卖。
清理背包第一步:遍历背包
第二步:判断背包格里是否有物品
第三步:判断物品的名称等级
第四步:执行清包操作。
具体该怎么操作呢?我们一起来学习下。

操作方法

  • 01

    第一步:单重循环搞定背包遍历

  • 02

    以dnf游戏为例,小编的号,背包格数是 8*4 总共32格 单重循环遍历大致思路: 1、取第一格背包的中心点坐标。 2、获取一格背包的宽度和高度是多少。 3、 遍历公式:第二格背包中心x坐标=背包第一格中心X坐标 + (2 mod 背包总列数) * 每格宽 第二格背包中心y坐标=背包第一格中心Y坐标 + (2\ 背包总列数) * 每格高 注意:为什么x坐标添加的每隔宽用 mod取余呢? 因为背包横向走的时候,x坐标是在变化,而背包竖向走的时候,也就是从第一行最后一格跳转到第二行第一格的时候,x坐标是不变的。如图:

  • 03

    单重循环遍历背包代码: Call 横向自上往下背包遍历(1, 32, 8, 489, 277, 30, 30)//调用背包遍历 Sub 横向自上往下背包遍历(开始格数,结束格数,背包总列数,背包第一格中心X坐标,背包第一格中心Y坐标,每格宽,每格高) For i = 开始格数-1 To 结束格数-1 //因为数组下标是0起始,所以这里开始格数要减去1 MoveTo 背包第一格中心X坐标 + (i mod 背包总列数) * 每格宽, 背包第一格中心Y坐标 + (i \ 背包总列数) * 每格高 TracePrint (背包第一格中心X坐标 + (i mod 背包总列数) * 每格宽)&","&(背包第一格中心Y坐标 + (i \ 背包总列数) * 每格高) Delay 500 //移动到这格后,这里写你在这格要做的事情的代码 Next End Sub

  • 04

    第二步:判断当前背包格子里是否有物品

  • 05

    我们观察上面两张图,如果格子里没有物品,鼠标移动上去之后是没有物品属性显示的。所以,装备两个字可以看见。如果格子里有物品,那么装备两个字就会被遮挡。(游戏里不变的参照物是很多的,童鞋们也可以取其他的参照物来代替装备两个字) 好了,我们发现这个特点之后,就可以进行判断,找到装备两个字就说明格子里没有物品,反之则有物品。 小编使用的是,大漠插件来找字。 首先,建立一个字库。DNF游戏的字体是系统字体,小编的系统是宋体9号字。

  • 06

    然后,按照图里的步骤建立好字库以后,将字库文件添加到按键精灵附件中。 判断当前背包是否有物品代码: Call 横向自上往下背包遍历(1, 32, 8, 489, 277, 30, 30)//调用背包遍历 Sub 横向自上往下背包遍历(开始格数,结束格数,背包总列数,背包第一格中心X坐标,背包第一格中心Y坐标,每格宽,每格高) For i = 开始格数-1 To 结束格数-1//因为数组下标是0起始,所以这里开始格数要减去1 j=j+1//记录当前遍历到的格数 MoveTo 背包第一格中心X坐标 + (i mod 背包总列数) * 每格宽, 背包第一格中心Y坐标 + (i \ 背包总列数) * 每格高 TracePrint (背包第一格中心X坐标 + (i mod 背包总列数) * 每格宽)&","&(背包第一格中心Y坐标 + (i \ 背包总列数) * 每格高) Delay 500 w = dm.Ocr(478, 238, 511,253,"ffffb8",1.0) If w= "装备" Then    //找装备字眼,如果没有找到,说明背包格子里有东西 TracePrint "第"& j & "格没物品" Else TracePrint "第" & j & "格有物品" End If Next End Sub

  • 07

    第三步,判断物品名称 要如何判断物品名称呢?遍历背包的时候,发现格子里有物品的时候,我们开始判断物品的名称。但是,这些物品的属性窗口并不是固定显示在一个地方

  • 08

    细心的童鞋很快就能发现,这里的物品属性框有两种,一种显示的是当前物品的信息,一种显示的是角色现在穿戴物的物品属性。 而且,“穿戴中的物品"这几个字是没有变化的

  • 09

    判断物品名称大致思路: 1、 用大漠插件找字,找“穿戴中的物品” 这几个字,找到之后记录它的坐标值。所以这里不使用dm.ocr找字,使用dm.FindStr来找字。 拓展知识:dm.ocr找字,是在你不知道要找什么字的情况下,通过定义查找范围和字体颜色去找字,返回值就是找到的文字。 dm.FindStr找字,是你知道你要找什么字,然后定义查找范围和字体颜色去找字,返回值是文字所在的坐标。 2、 通过“穿戴中的物品”这几个字所在的坐标,计算物品名称的出现的范围。 3、 用dm.ocr找字在获取到的物品名称范围内进行找字。 4、 找到之后,可以继续查找物品的其他属性,耐久属性等等,来判断出售分解还是其他,由于种类很多,小编就不写这类代码了。 注意:如果身上并没有穿戴装备,那么物品属性就只会显示当前物品属性,“穿戴中的物品”这几个字无法找到,这样的情况可以在代码里继续做判断,找不到“穿戴中的物品”时,可以去找物品重量后面的单位KG(为什么前面不找KG呢?因为当有两个物品属性窗口的时候,当前物品属性窗口和穿戴中的物品属性窗口中都有KG字样,有两个的话,就无法确定位置。) 全部代码: call register() PutAttachment "G:\test", "DNF.txt" //释放字库文件到G:\test文件夹里 dm_ret = dm.SetDict(0, "G:\test\DNF.txt") //加载字库文件 hwnd= Plugin.Window.Find("地下城与勇士", 0) Call Plugin.Window.Size(hwnd,800,600) Call Plugin.Window.move(hwnd, 0, 0) Call Plugin.Window.Active(hwnd) Delay 1000 KeyPress "I", 1 Call 横向自上往下背包遍历(1, 32, 8, 489, 277, 30, 30)//调用背包遍历 Sub 横向自上往下背包遍历(开始格数,结束格数,背包总列数,背包第一格中心X坐标,背包第一格中心Y坐标,每格宽,每格高) For i = 开始格数 - 1 To 结束格数 - 1 j=i+1 MoveTo 背包第一格中心X坐标 + (i mod 背包总列数) * 每格宽, 背包第一格中心Y坐标 + (i \ 背包总列数) * 每格高 TracePrint (背包第一格中心X坐标 + (i mod 背包总列数) * 每格宽)&","&(背包第一格中心Y坐标 + (i \ 背包总列数) * 每格高) Delay 500 w = dm.Ocr(478, 238, 511,253,"ffffb8",1.0) If w= "装备" Then    //找装备字眼,如果没有找到,说明背包格子里有东西 TracePrint "第"& j & "格没物品" Else TracePrint "第" & j & "格有物品" dm_ret = dm.FindStr(423, 22, 771, 342, "穿戴中的物品", "e8cda4", 1.0, intX, intY)//查找穿戴中的物品,找到之后获取它的坐标,以它的坐标为基点去找当前物品的名称。 If intX >= 0 and intY >= 0 Then s = dm.Ocr( intX-300,intY,intX-60,intY+50, "68d5ed|b36bff", 1.0)//蓝色装备和粉色装备都找 MessageBox s End  if End If Next End Sub Sub register()  //注册大漠 Set ws = createobject("Wscript.Shell") ws.run "regsvr32 atl.dll /s" Set ws = nothing PutAttachment "G:\test", "dm.dll" PutAttachment ".\Plugin" ,"RegDll.dll" call Plugin.RegDll.Reg ( "G:\test\dm.dll") Set dm = createobject("dm.dmsoft") ver = dm.ver() If len(ver) = 0 Then MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限" EndScript End If End Sub

(0)

相关推荐

  • 按键精灵制作DNF刷图找怪的脚本思路

    按键精灵制作DNF刷图找怪的脚本思路 操作方法 01 DNF 找怪刷图的脚本制作对我这个新手来说有点难.刷一个图还好,多个呢,地下城怪那么多,用修改工具修改怪物颜色找色 ,太麻烦. 02 于是乎我最近 ...

  • 游戏辅助:按键精灵脚本如何适应不同的分辨率

    让游戏脚本开发作者们最头疼的一个问题:脚本如何适应不同的分辨率. 我们都知道,进入游戏之前,可以选择游戏窗口分辨率.不同的分辨率里,物品的坐标,图片的大小有可能会不同哦~ 操作方法 01 解惑: 游戏 ...

  • 教你用按键精灵制作定时提醒小工具!

    按键精灵是时下最热门的动作脚本开发软件,国内多数主流游戏辅助也是用该程序制作。但你以为按键精灵的功能仅限于此吗?那你就打错特错了。动作脚本适用范围广泛,提高我们的办公效率,为生活提供便捷功能都是按键脚 ...

  • 按键精灵自动申请QQ帐号的脚本设置方法

    按键精灵是一款功能非常强大的软件,相信很多人都会使用这款软件来制作一些指定动作脚本,来减少自己的工作重复量,比如,可以自动登录QQ,自动登录各类邮箱.自动清除Prefetch文件夹内容.而更加强大的是 ...

  • 如何使用按键精灵制作游戏辅助脚本

    按键精灵2014 游戏辅助制作软件 操作方法 01 打开按键精灵的桌面快捷键 02 进入到编辑器页面 03 主要是分为三个区:功能按钮区,脚本列表区,脚本属性 功能有新建,删除,修改,会员,神盾等 脚 ...

  • 用按键精灵制作游戏脚本之前后台坐标关联教程

    各位大大在切换前后台命令的时候,有没有遇到坐标切换呢~ 有没有发现前后台的命令,对同一个窗体内容,居然坐标不同!! 今天~院刊就跟大家普及下前台坐标与相对应的后台坐标知识~ 操作方法 01 什么是前台 ...

  • 按键精灵如何添加重复命令/怎么重复脚本

    按键精灵如何添加重复命令,按键精灵怎么重复脚本 操作方法 01 在桌面的快捷打开方式里我们找到打开按键软件. 02 进入软件后,我们接着进入我的脚本. 03 在我的脚本,找到你要添加重复命令的脚本. ...

  • 怎么使用按键精灵制作自动按键或点击脚本

    新建一个脚本 设置你需要按什么键,单键组合键都有。设置好了点击插入! 鼠标抓图,点击抓抓按钮后,鼠标移动到你想点击的位置,按下Ctrl+Alt+1生成坐标1,Ctrl+Alt+2便是生存坐标2,以此类 ...

  • 如何用按键精灵2014制作鼠标连点器

    在玩各种不同的游戏过程中,经常需要鼠标一直点击怪物或者是合成材料的确定按钮,在这个时候相信大多数的朋友都会选择鼠标连点器.那你知道它是如何制作出来的吗? 操作方法 01 一.进入编辑器 在主界面上点击 ...