DNF游戏辅助怎么做:用按键精灵制作DNF遍历背
包卖物脚本
来源:按键学院【按键精灵】
游戏挂机一段时间,号子上的背包满了怎么办?我们需要清理背包,该分解的分解该卖
的卖。
清理背包第一步:遍历背包
第二步:判断背包格里是否有物品
第三步:判断物品的名称等级
第四步:执行清包操作。
具体该怎么操作呢?我们一起来学习下。
第一步:单重循环搞定背包遍历
以dnf游戏为例,小编的号,背包格数是8*4总共32格
单重循环遍历大致思路:
1、取第一格背包的中心点坐标。
2、获取一格背包的宽度和高度是多少。
3、遍历公式:第二格背包中心x坐标=背包第一格中心X坐标+(2mod背包总列
数)*每格宽
第二格背包中心y坐标=背包第一格中心Y坐标+(2背包总列数)*每格高
注意:为什么x坐标添加的每隔宽用mod取余呢?因为背包横向走的时候,x坐标
是在变化,而背包竖向走的时候,也就是从第一行最后一格跳转到第二行第一格的时候,x
坐标是不变的。如图:
单重循环遍历背包代码:
Call横向自上往下背包遍历(1,32,8,489,277,30,30)//调用背包遍历
Sub横向自上往下背包遍历(开始格数,结束格数,背包总列数,背包第一格中心X坐标,背包第一格中心Y坐标,每
格宽,每格高)
Fori=开始格数-1To结束格数-1//因为数组下标是0起始,所以这里开始格数要减去1
MoveTo背包第一格中心X坐标+(imod背包总列数)*每格宽,背包第一格中心Y坐标+(i背包
总列数)*每格高
TracePrint(背包第一格中心X坐标+(imod背包总列数)*每格宽)&","&(背包第一格中心Y坐标+(i
背包总列数)*每格高)
Delay500
//移动到这格后,这里写你在这格要做的事情的代码
Next
EndSub
第二步:判断当前背包格子里是否有物品
我们观察上面两张图,如果格子里没有物品,鼠标移动上去之后是没有物品属性显示的。
所以,装备两个字可以看见。如果格子里有物品,那么装备两个字就会被遮挡。(游戏里不
变的参照物是很多的,童鞋们也可以取其他的参照物来代替装备两个字)
好了,我们发现这个特点之后,就可以进行判断,找到装备两个字就说明格子里没有物
品,反之则有物品。
小编使用的是,大漠插件来找字。
首先,建立一个字库。DNF游戏的字体是系统字体,小编的系统是宋体9号字。
然后,按照图里的步骤建立好字库以后,将字库文件添加到按键精灵附件中。
判断当前背包是否有物品代码:
Call横向自上往下背包遍历(1,32,8,489,277,30,30)//调用背包遍历
Sub横向自上往下背包遍历(开始格数,结束格数,背包总列数,背包第一格中心X坐标,背包第一格中心Y坐标,每
格宽,每格高)
Fori=开始格数-1To结束格数-1//因为数组下标是0起始,所以这里开始格数要减去1
j=j+1//记录当前遍历到的格数
MoveTo背包第一格中心X坐标+(imod背包总列数)*每格宽,背包第一格中心Y坐标+(i背包
总列数)*每格高
TracePrint(背包第一格中心X坐标+(imod背包总列数)*每格宽)&","&(背包第一格中心Y坐标+(i
背包总列数)*每格高)
Delay500
w=(478,238,511,253,"ffffb8",1.0)
Ifw="装备"Then//找装备字眼,如果没有找到,说明背包格子里有东西
TracePrint"第"&j&"格没物品"
El
TracePrint"第"&j&"格有物品"
EndIf
Next
EndSub
第三步,判断物品名称
要如何判断物品名称呢?遍历背包的时候,发现格子里有物品的时候,我们开始判断物
品的名称。但是,这些物品的属性窗口并不是固定显示在一个地方
细心的童鞋很快就能发现,这里的物品属性框有两种,一种显示的是当前物品的信息,
一种显示的是角色现在穿戴物的物品属性。
而且,“穿戴中的物品"这几个字是没有变化的
判断物品名称大致思路:
1、用大漠插件找字,找“穿戴中的物品”这几个字,找到之后记录它的坐标值。所
以这里不使用找字,使用r来找字。
拓展知识:找字,是在你不知道要找什么字的情况下,通过定义查找范围和字
体颜色去找字,返回值就是找到的文字。
r找字,是你知道你要找什么字,然后定义查找范围和字体颜色去找字,返
回值是文字所在的坐标。
2、通过“穿戴中的物品”这几个字所在的坐标,计算物品名称的出现的范围。
3、用找字在获取到的物品名称范围内进行找字。
4、找到之后,可以继续查找物品的其他属性,耐久属性等等,来判断出售分解还是其
他,由于种类很多,小编就不写这类代码了。
注意:如果身上并没有穿戴装备,那么物品属性就只会显示当前物品属性,“穿戴中的
物品”这几个字无法找到,这样的情况可以在代码里继续做判断,找不到“穿戴中的物品”
时,可以去找物品重量后面的单位KG(为什么前面不找KG呢?因为当有两个物品属性窗
口的时候,当前物品属性窗口和穿戴中的物品属性窗口中都有KG字样,有两个的话,就无
法确定位置。)
全部代码:
callregister()
PutAttachment"G:test",""//释放字库文件到G:test文件夹里
dm_ret=t(0,"G:")//加载字库文件
hwnd=("地下城与勇士",0)
(hwnd,800,600)
(hwnd,0,0)
(hwnd)
Delay1000
KeyPress"I",1
Call横向自上往下背包遍历(1,32,8,489,277,30,30)//调用背包遍历
Sub横向自上往下背包遍历(开始格数,结束格数,背包总列数,背包第一格中心X坐标,背包第一格中心Y坐标,每
格宽,每格高)
Fori=开始格数-1To结束格数-1
j=i+1
MoveTo背包第一格中心X坐标+(imod背包总列数)*每格宽,背包第一格中心Y坐标+(i背包
总列数)*每格高
TracePrint(背包第一格中心X坐标+(imod背包总列数)*每格宽)&","&(背包第一格中心Y坐标+(i
背包总列数)*每格高)
Delay500
w=(478,238,511,253,"ffffb8",1.0)
Ifw="装备"Then//找装备字眼,如果没有找到,说明背包格子里有东西
TracePrint"第"&j&"格没物品"
El
TracePrint"第"&j&"格有物品"
dm_ret=r(423,22,771,342,"穿戴中的物品","e8cda4",1.0,intX,intY)//查找穿戴中
的物品,找到之后获取它的坐标,以它的坐标为基点去找当前物品的名称。
IfintX>=0andintY>=0Then
s=(intX-300,intY,intX-60,intY+50,"68d5ed|b36bff",1.0)//蓝色装备和粉色装备都找
MessageBoxs
Endif
EndIf
Next
EndSub
Subregister()//注册大漠
Setws=createobject("")
"/s"
Setws=nothing
PutAttachment"G:test",""
PutAttachment".Plugin",""
("G:")
Setdm=createobject("")
ver=()
Iflen(ver)=0Then
MessageBox"插件注册失败,检查系统是否禁用了vbs脚本权限"
EndScript
EndIf
EndSub
本文发布于:2023-03-10 16:45:46,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678437947205918.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:dnf怎么结婚.doc
本文 PDF 下载地址:dnf怎么结婚.pdf
留言与评论(共有 0 条评论) |