• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.0
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.3
软件大小:29.2M
更新时间:06-14

最新企业版UiBot
立即下载

软件版本:1.1
软件大小:190M
更新时间:01-16

快捷导航

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

登录 注册
发新话题 回复该主题

[讨论] 【按键盒子】逆战自动开枪脚本编写全程分析 [复制链接]

1#
脚本源文件下载:
逆战-自动压枪.txt (, 下载次数:4437)



核心原理

窗口定位:
网络游戏窗口化之后左上角都有该游戏的LOGO,利用这个LOGO我们可以定位窗口的位置。当然也可以利用游戏窗口内某个固定UI来定位窗口,比如等级之类的。

射击动作触发:
FPS射击类游戏一般都有个开枪的通用方法,就是判断准星附近是否出现红名。利用游戏窗口中准星相对画面位置固定的特点,可以在固定区域中判断是否出现红名,如果发现,则触发开枪操作。

游戏环境:
windows7X32位系统
游戏默认设置,分辨率1280X768


步骤:

1、体验
手动操作游戏玩几个小时,深层次体验游戏机制。体验实际游戏操作的各个流程和一些小细节(当然要注意适当休息)



2、操作分析

体验过程中发现触发人工开枪操作的一般是准星附近出现红名,所以对于自动开枪这个主功能就有了实现的思路——特定区域出现红色后进行相关操作。
在使用**连射时枪口会向上自动偏移,遂打开按键精灵录制功能录制了手动压枪口的鼠标操作,完毕后对其分析,初步研究出压枪动作的基本原理:有规律地向下相对移动鼠标,以抵消游戏内偏移。


3、获取素材

进入正题,由于盒子在游戏全屏后无法找色,所以直接写窗口化状态下的盒子脚本。这时候只需要获取一些特定情况下的截图即可
平常状态下,将游戏窗口移到坐标为0.0的位置上(不清楚如何移动窗口的请站内搜索如何移动窗口到0,0位置),然后截图



4、素材处理

素材已备好,现在可以从上面获取所需的相关信息了
首先是左上角的LOGO截取
截取左上角的LOGO后,打开画图软件,将画布尺寸调到最小,如图(白色部分):


然后将截取的LOGO黏贴进去


使用放大镜将图片放到最大


将LOGO附近不需要识别的位置涂成某个单一颜色(个人习惯涂成深绿色),并且适当缩小此图片,让外边框尽量越窄越好,LOGO图片本身不一定要原封不动,可以对此做适当剪裁,但是要保持特征


处理完毕之后另存为“逆战.bmp”,新建盒子脚本并且添加此图片为附件,在脚本中编写找图命令:
  1. FindPic 0,0,1280,768,"Attachment:\逆战3.bmp",0.85,x,y
  2. If x >= 0
  3. MessageBox x&","&y
  4. End If
复制代码
写入盒子中,切出游戏窗口,运行盒子,弹窗中的既是此定位图的坐标,脚本中的其他坐标都需以此坐标为原点


5、关键位置坐标获取

画图软件有个非常好用的功能,鼠标移到图像任意位置,左下角的状态栏都会显示该处的像素位置,如果是全屏幕截图,则像素位置就是该点坐标。
下图中显示鼠标所指的位置为107,85的像素位置,图片尺寸为1920X1080
利用这个特性我们就可以轻易定位我们想要的特征区域的坐标。


然后利用鼠标在下图所示区域内获取区域左上角和右下角的坐标,并且与之前得到的弹窗坐标相差。即可得出此处相对于定位LOGO图的相对坐标。


如法炮制准星的区域左上角和右下角坐标



6、代码编写
  1. //游戏使用默认设置,游戏窗口分辨率为:1280X768
  2. //进入房间前运行脚本,如果进入房间后请按ESC,再运行脚本
  3. t1=Rnd Mod 5
  4. FindPic 0,0,1280,768,"Attachment:\逆战.bmp",0.85,x,y
  5. If x <= 0
  6. MessageBox "未找到游戏窗口"
  7. End If

  8. While 1=1
  9. //判断绿色准星是否存在,以此判定是否使用狙击枪
  10. FindColorEx x + 616, y + 360, x + 650, y + 400,&H00FD00,0,0.85,x1,y1
  11. If x1 > 0
  12. Gosub 多发
  13. Else
  14. Gosub 单发
  15. End If
  16. Delay 30

  17. EndWhile


  18. Sub 多发
  19. FindColorEx x + 596, y + 457, x + 678, y + 476,&H0101DF,0,0.85,x1,y1
  20. If x1 > 0
  21. //使用压枪打法,间隔时间下压枪口
  22. Delay 10+t1
  23. LeftDown 1
  24. For i=0 To 10 Step 1
  25. Delay 40
  26. MoveR 0,1
  27. Next
  28. LeftUp 1
  29. End If
  30. End Sub

  31. Sub 单发
  32. FindColorEx x + 596, y + 457, x + 678, y + 476,&H0101DF,0,0.85,x1,y1
  33. If x1 > 0
  34. //一次只开一枪
  35. Delay 10+t1
  36. LeftClick 1
  37. End If
  38. End Sub
复制代码

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

    本主题由 管理员 青黛 于 2018/4/10 18:29:10 执行 审核帖子 操作
    2#

    占楼咯哈哈

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



      按键新手交流QQ群:247815564

      3#

      学习了!回家试验试验去!

      4#

      强悍

      5#

      试验试验去

      6#


      脚本订购 软件设计 请联系 QQ:1762272313 添加请注明原因!
      脚本订购起步价:100 RMB 非诚勿扰 点击打开淘宝店铺
      承接: 小型/中型 个人/工作室 项目脚本开发
      提示: 电脑版 / 安卓版[仅限图色脚本 外挂免谈]
      软件保障条约:【暂不收徒 不无偿指导 !谢谢支持】
      1:脚本维护与更新视情况收费一定的费用!
      2:所有定制均需订金,否则勿扰. 非诚勿扰 !
      3:天下没有白吃的午餐.所以别浪费彼此宝贵的时间.
      4:天道酬勤 ,人道酬诚 .人无信则不立.
      7#

      楼主可以加下QQ么。需要你的助攻。谢谢了。
      675559614

      8#

      l楼主你好,不知道是我小白。还是哪里出了问题从盒子到手已经1周多了,不管是照你的思路自己弄还是直接照搬你的东西。我的盒子就是不管用~~~~哎。帮帮我呀

      9#

      我把自己弄丢了 发表于 2014-3-17 15:37
      l楼主你好,不知道是我小白。还是哪里出了问题从盒子到手已经1周多了,不管是照你的思路自己弄还是直接照搬 ...


      首先,先确定一下系统是否能识别盒子,插入按键盒子后启动盒子管理器是否能够出现以下画面?


      如果能显示已连接说明盒子是正常的,接下来现在并且导入这个帖子中的源码,写入脚本后点“加载器”按钮,选择“加载器-默认.exe”即可。
      需要注意的一点是系统跟游戏分辨率设置必须跟帖子里要求的一样才能正常运行。

      10#

      l楼主救命呀。我都搞得纠结了,还是不行呀。每一步都是仔细按照你说的做的。
      而且 导入人家的。也不管用 不会是盒子坏掉了吧

      AY8_6LE7(G$LH9C4AE{XAUA.jpg (, 下载次数:9)

      (2014/3/17 16:43:04 上传)

      AY8_6LE7(G$LH9C4AE{XAUA.jpg

      11#

      我把自己弄丢了 发表于 2014-3-17 16:45
      l楼主救命呀。我都搞得纠结了,还是不行呀。每一步都是仔细按照你说的做的。
      而且 导入人家的。也不管用 ...


      你可以先新建空白脚本文件,然后写个简单命令,比如MoveTo 5,500
      接着保存,写入盒子,启动加载器测试是否能移动鼠标。

      12#

      兄弟工程师07 发表于 2014-3-17 16:50
      你可以先新建空白脚本文件,然后写个简单命令,比如MoveTo 5,500
      接着保存,写入盒子,启动加载器测试是 ...


      恩恩 我试试

      13#

      可以移动

      14#

      看了后觉得难度不大

      15#

      全屏不能找色?这...

      青春的梦想已黯然失色,我又背起行囊走向远方.当远方的天空出现祥云,我将踏着祥云实现梦想
      16#

      厉害 0.0 v.v

      17#

      学习咯 啊

      18#

      请问楼主,我不理解定义步长有什么用。

      19#

      楼主为什么不**呀?

      20#

      该用户帖子内容已被屏蔽

      发新话题 回复该主题