游戏脚本 — TC + 大漠入门
游戏脚本一般情况指的都是基于图像识别的前端脚本,而非内存挂。
即识别游戏窗口内容,判断是否需要执行某些操作来打到自动化目的的。
废话不多说,直接开干。
为什么选择 TC + 大漠 的组合
游戏脚本工具就这么几种,按键精灵、易语言都是常用的游戏脚本工具,那么我为什么会选择TC呢
- 按键 和 TC 都很容易上手,我最开始是用按键写的,完成脚本功能啥的没有任何问题,但是和TC相比,生成出单包exe更麻烦一些,不像TC只需要一个生成按钮就可以。
- 易语言的开发界面和中文的开发语言,不太适合以后转战其他编程语言,TC则有中英文两种开发方式。
- 按键和易语言知名度更高一些,可能更容易被游戏识别为外挂,虽然他们都有各自的保护方式。但是我不会用  ̄□ ̄||
选择大漠的原因就简单多了,因为他稳定,各方面。
本文基于 TC7.0 + 大漠3.1123(最后一个免费版本)
上代码
注册 dm.dll 到系统
1 | regdll("rc:dm.dll", true) |
绑定窗口句柄
1 | hwnd = dm.FindWindow("","记事本") |
识图
- 使用TC右上角工具箱的”AB抓抓”
- 在图像中选择我们需要的游戏窗口句柄
- 框选截取我们需要识别的图片并保存
- 调用DM接口来识图
1
2
3
4
5dm.FindPic(0,0,2000,2000,"1.bmp|2.bmp|3.bmp","000000",0.9,0,intX,intY)
// 这里找了三张图,用竖线分割
if(intX >= 0 && intY >= 0)
messagebox("找到")
end
识字
识字稍微麻烦一些
- 先根据 “识图1-3” 的步骤保存需要识字的图片
- 打开大漠综合工具,加载刚才保存的图片
- 选取文字部分颜色
- 提取点阵(单个或多个都可)(单个是把所有文字看做一个整体,多个是一个字一个字的定义)
- 选择点阵并定义对应点阵的内容 P.S.记得看下右上角的字库文件是不是你需要使用的那个字库
- 调用DM接口来识字
1
2
3
4
5dm.FindStr(0,0,2000,2000,"快速制透明图","000000-000000",1.0,intX,intY)
// "快速制透明图"是需要识别的文字,"000000-000000"是刚刚大漠综合工具中色彩描述的部分—"RGB-偏色"
if(intX >= 0 && intY >= 0)
messagebox("找到")
end
鼠标键盘操作
1 | dm.MoveTo(x,y) |
适用范围
基本上只要是你自己可以用鼠标键盘操作的步骤都可以用脚本实现,只是需要考虑流程上更加完善
如果有什么疑问可以留言探讨
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Geneliunx!
评论