C++外挂制作第三课【转】

社区服务
高级搜索
猴岛论坛辅助工具C++外挂制作第三课【转】
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
1个回复

C++外挂制作第三课【转】

楼层直达
ゅ兔子哥

ZxID:2998095

等级: 上将
配偶: 老白兔。
音速图标啊图标6级7R!

举报 只看楼主 使用道具 楼主   发表于: 2009-06-14 0
再继续


上一节说到取游戏窗口的位置,那么取到的窗口坐标是游戏窗口最左上角开始计算的,因为游戏里的小窗口是固定的,所以不管游戏窗口怎么改变位置,相对位置是不会变的。

继续设计,思路:
取到坐标点后,利用取屏幕颜色坐标来获取指定的的颜色,我们就可以作为分析游戏血蓝的信息了。
每次游戏重新启动后,固定位置可能发生变化,那么我们需要一个可以快速获取坐标和颜色的方法,要直观且方便。
所以,我们采取的方法就是 ,利用截屏技术,获取游戏窗口上一部分的游戏画面,把动态的转为静态,再在静态图上获取颜色点。

下面是实现代码:
Private Sub SetPicPixel(mx As Long, my As Long)
    GameFormDC = GetDC(GameFormHwnd)
    Dim i As Long, j As Long, pdx As Long, pdy As Long
    pdx = Picture2.Width
    pdy = Picture2.Height
    BitBlt Picture2.hdc, 0, 0, pdx, pdy, GameFormDC, mx - pdx / 2, my - pdy / 2, SRCCOPY
    SetPixel Picture2.hdc, pdx \ 2, pdy \ 2, vbWhite
    Picture2.Refresh
    ReleaseDC GameFormHwnd, GameFormDC
    Picture3.PaintPicture Picture2.Image, 0, 0, Picture2.Width * (Picture3.Width / Picture2.Width), Picture2.Height * (Picture3.Width / Picture2.Width)
End Sub
在窗口上放置2个PictureBox 控件,名字为 Picture2 和 Picture3
这段代码的功能就是,在已经获取了游戏窗口句柄后,通过API函数,将游戏窗口的一部分画面绘制到Picture2 上,在经过放大处理,绘制到Picture3 上

效果图如下:
 


经过放大以后,就可以利用中间的白点,上下左右移动,获取我们需要的坐标了,当然,相对坐标必须弄清楚,不然取不到正确的坐标。

当取色和取坐标模块完成的时候,我们就可以开始设计真正有用的部分了。
在武林还可以模拟按键的时候,我们用模拟按键最方便,不用去分析游戏庞大的内存,就可以很简单的控制游戏打怪捡物等。

到这里差不多可以设计挂的各个功能了,至于怎么设计,每人的算法可能都不太一样,下面我就把颜色版的完整源码传上来。里面基本上没有注释,呵呵,因为我太懒勒。有什么不明白的地方,回帖或发帖,我隔段时间就回来看看,和大家一起交流交流。

下一节,我们正式进入 内挂的制作学习中
ゅ兔子哥

ZxID:2998095

等级: 上将
配偶: 老白兔。
音速图标啊图标6级7R!

举报 只看该作者 沙发   发表于: 2009-06-15 0
自己顶
« 返回列表
发帖 回复