• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

返回列表 12345678» / 9
发新话题 回复该主题

[技术交流] 【院刊】-【201504期】你一定想不到的解决鼠标飘移方法!!! [复制链接]

1#

解决鼠标飘移~~SO EASY!!


本文按键学院提供技术支持








按键学院交流群(1群已满):376122403

零基础学按键精灵群(2群):372671254





小编最近想要写个问道游戏的脚本,但是遇到了一个很令人抓狂并且头疼的问题
就是诡异的——鼠标飘移现象。
据小编的了解,这个鼠标飘移现象并不仅仅在问道游戏中会出现,像是梦幻西游、桃花源记等等游戏都有存在鼠标飘移的情况。
那具体什么是鼠标飘移呢?接下来就由小编带大家了解什么是鼠标飘移,并且解决鼠标飘移。



什么是鼠标飘移现象?
 

鼠标飘移就是使用 MoveTo 命令想要在游戏中把鼠标移动到指定的坐标点的时候,游戏中的鼠标却诡异的随机移动到该坐标周围的点。
接着给大家举个“栗子”看看到底神马是鼠标飘移

比如想要移动到图中红框的部分点击,关闭掉这个窗口

您所在的用户组无法下载或查看附件


使用抓抓工具获得这个关闭按钮的坐标是 (394,100),那正常情况下的代码该如何写呢?
  1. MoveTo 394, 100
  2. LeftClick 1
复制代码
但是!!如果直接按照这个代码执行的话就会下面的现象
您所在的用户组无法下载或查看附件
您所在的用户组无法下载或查看附件
您所在的用户组无法下载或查看附件
您所在的用户组无法下载或查看附件


童鞋们注意到了么?不管执行代码多少次,结果游戏中的鼠标就是一直在坐标点周围 “晃悠” 就是不点击我们指定的那个点。
小编当时遇到这个问题的时候简直是抓狂了!

如果鼠标移动的位置都不准确的话,那整个脚本之后的操作基本上都无法继续下去了,难道就要放弃这个脚本么

No!!!俗话说的好 “道高一尺,魔高一丈” 经过咱们的按键工程师07 大大的研究,成功的解决了鼠标飘移的问题!

下面就让我们来看看如何处理鼠标飘移~~

解决思路
 

1、先用MoveTo 移动到指定坐标
2、在游戏中利用找图或者找色命令,找到游戏鼠标特征,从而得出鼠标当前位置
3、计算指定坐标和鼠标当前位置的差值
4、使用相对移动命令MoveR移动鼠标

具体步骤
 


1、先使用移动命令移动到指定的坐标
  1. moveto x, y
复制代码
2、这时候游戏中实际的鼠标位置和目标点其实是有偏移的,我们需要先找到游戏鼠标的实际所在的位置

游戏中鼠标的样子是一把剑的形状
您所在的用户组无法下载或查看附件
我们就是要通过找到这把剑的位置来确定游戏中鼠标的实际位置
但是这把剑是会一直转动的,这该如何去找呢?

其实细心的童鞋可以发现这把剑的剑柄的部分是不动的
您所在的用户组无法下载或查看附件
那我们就可以通过多点找色的方式去找到这个剑柄了。
  1. XY = FindMultiColor(0, 0, 1024, 768, "886020", "5|3|e0d078,6|5|c09c68,3|4|887038,-1|2|584028", 1.0, 1)
  2. ZB = InStr(XY, "|")
  3. //下面这句将字符串转换成数值
  4. intX = Clng(Left(XY, ZB - 1)): intY = Clng(Right(XY, Len(XY) - ZB))
复制代码
注意:这里得到的坐标是剑柄的位置,游戏中鼠标是根据剑尖来判定位置的,所以在实际的使用中还需要减去一些距离才能得到剑尖的坐标点。

3、接着计算指定的坐标和鼠标当前坐标的差值。
  1. x轴的坐标差是:x - (intX-22)
  2. y轴的坐标差是:y - (intY-22)
复制代码
代码里的22就是剑柄的坐标和剑尖的距离,intX-22 的结果就是剑尖的x坐标。intY-22 就是剑尖的y坐标。

4、之后用相对移动命令去移动即可
  1. MoveR x - (intX-22),y - (intY-22)
复制代码
完整代码
 

我们可以把这个计算过程定义成一个函数,这样可以在之后的脚本中很方便的去调用他
  1. Function 移动(x, y)
  2. //加入最大循环次数判断是否鼠标跑出画面
  3. Dim tmp1 '计数变量
  4. moveto x, y
  5. Delay 100
  6. //定位鼠标
  7. Do
  8. //多点找色,找鼠标剑柄,加偏色
  9. XY = FindMultiColor(0, 0, 1024, 768, "886020", "5|3|e0d078,6|5|c09c68,3|4|887038,-1|2|584028", 1.0, 1)
  10. ZB = InStr(XY, "|")
  11. //下面这句将字符串转换成数值
  12. intX = Clng(Left(XY, ZB - 1)): intY = Clng(Right(XY, Len(XY) - ZB))
  13. If intX >= 0 and intY >= 0 Then
  14. TracePrint "找到" & intX & "," & intY
  15. Exit Do
  16. Else
  17. TracePrint "未找到"
  18. tmp1 = tmp1 + 1
  19. End If
  20. Delay 10
  21. If tmp1 >= 20 Then
  22. TracePrint "无法定位鼠标位置,重置鼠标位置"
  23. moveto 400, 300
  24. Delay 300
  25. //重置计数变量
  26. tmp1 = 0
  27. End If
  28. Loop
  29. TracePrint "次数"&tmp1
  30. Delay 50
  31. TracePrint "坐标差:" & x - (intX-22) & "," & y - (intY-22)
  32. MoveR x - (intX-22),y - (intY-22)
  33. End Function
复制代码

除了这个通过计算差值的方法外,还有没有其他的方法用来解决鼠标飘移呢?
答案当然是有啦!!
而且方法比这个上面的方法要 简单粗暴!


后台移动鼠标解决飘移
 

后台命令的话直接就可以准确的移动操作,不需要单独的去计算差值
  1. Call register() //注册大漠
  2. hwnd = dm.GetMousePointWindow()
  3. dm_ret = dm.BindWindow(hwnd,"dx","windows2","dx",1) //大漠绑定窗口
  4. dm.moveto x,y
  5. dm.leftclick
  6. Sub register() //注册大漠
  7. Set ws = createobject("Wscript.Shell")
  8. ws.run "regsvr32 atl.dll /s"
  9. Set ws = nothing
  10. PutAttachment "G:\test", "dm.dll"
  11. PutAttachment ".\Plugin" ,"RegDll.dll"
  12. call Plugin.RegDll.Reg ( "G:\test\dm.dll")
  13. Set dm = createobject("dm.dmsoft")
  14. ver = dm.ver()
  15. If len(ver) = 0 Then
  16. MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
  17. EndScript
  18. End If
  19. End Sub
复制代码

这里还需要补充一点:这个后台的方法并不是所有游戏都能适用的,只有部分游戏使用后台方式可以避免出现鼠标飘移。

具体是哪些游戏,那就只能童鞋们自己测试了。




 

谢谢大家阅读,记得给小编送支花花 ! 顺手点个


[tr=rgb(143, 188, 143)]

按键精灵安卓班(第一期)大肆招生啦~

回实战班:回合制通用教学火热报名

招生对象:零基础用户,快速学会按键精灵安卓版
招生人数:70人
【报名时间】:3/18——4/6
【学费】:128RMB
【学习日期】:1个月(2015.4.6-2015.4.27)
【上课时间】:周1、周3、周5 19:30--21:30
【上课导师】:梦幻小飞侠
【实战游戏】:[天天富翁]、[三国之刃]、[梦幻西游]、[TL**]

本期重点:回合制游戏--神武
学习时效:终生有效
上课时间:周2、周4、周6的 20:00--22:00
导师:工程师07
技术支持:果儿(院刊编辑)
点我进入按键学院报名啦 招生细节进群咨询招生办主任:2群-372671254(优先加入) 1群-376122403





    已有5评分我要评分查看所有评分

    本主题由 超级版主 瑞祥幽冥狼 于 2023/5/13 8:51:49 执行 审核帖子 操作
    按键学院免费交流群:376122403

    按键学院招生计划
    按键学院系统教程
    2#


    3#

    不错

    4#

    很棒!

    5#

    sass

    6#

    很可疑

    7#

    我来看看你

    8#

    】-【201504期】你一定想不到的解决鼠

    9#

    这么NB呢?

    10#

    简单粗暴

    11#

    定想不到的解决鼠标飘

    12#

    看看

    13#

    看看又不会怀孕

    22059173593859179
    14#

    学习学习

    15#

    来看看

    16#

    111111122

    17#

    dm.LeftClick

    18#

    {:5_127:}{:5_127:}{:5_127:}{:5_127:}{:5_127:}

    19#

    怎么来呢~~

    20#

    感谢楼主

    发新话题 回复该主题