⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vc中写外挂.txt

📁 讲述了外挂的制作初步知识
💻 TXT
字号:
1.问题:最近看到很多人在玩 大家来找茬,于是自己也下载玩了一下,但是由于基础太差,经常都是输多赢少。于是我想到了用OpenCV写个外挂,说干就干。

2.分析:大家来找茬游戏规则简单,只需找出两幅图像的不同点,由此,可以将左右两幅图进行对比,用异或运算将不同点找出。这部分不难,难的主要是定位两幅图的位置,经实验,游戏是两幅图的y方向不边,x方向会随机发生改变,故如果确定两幅图的位置成了这个程序的难点。

3.编程:

第一步,将当前屏幕截取下来。

第二步,分析图像,找出两幅图的具体位置。这里需要点技巧,我是用两幅图像相减去除背景,通过图像处理,将两幅图像

的位置找出。

//两图像相减

 

cvSub(  t,pImg, d, NULL );

//双重循环进行像素操作,找到相减后图像的两幅图像的起始位置

for(int i=304;i<400;i++){
        if(x1!=0)
            break;
    for(j=180;j<(793+179-7);j++){
            s=cvGet2D(temp1,i,j); 
    if(s.val[0]==255)
    {
            if(xx!=0)
        {
            x1=j;
            break;
        }
        xx=j;
        yy=i;
        j=573; 

    } 

第三步,通过找到的坐标进行左右两幅图像的异或运算,产生我们要的结果。

 

找到坐标后截取到左边的图像




右边的图像 




输出结果  

cvXor( right,left, left, NULL ); //异或运算

第四步,将异或后的图像显示在游戏中的图像上。

 

void CGameDlg::OnTimer(UINT nIDEvent) //用定时器不断对图像进行刷新显示
{ 

    CBitmap bmp; 
    bmp.Attach(bitmap);
    CDC dcMemory; 

    CWnd* pwnd = GetDesktopWindow(); 

//获取当前桌面的设备上下文 

CDC* pDC = pwnd->GetWindowDC(); 

dcMemory.CreateCompatibleDC(pDC); 
dcMemory.SelectObject(&bmp); 
pDC->BitBlt(xx,yy,381,286,&dcMemory,0,0,SRCCOPY); 
ReleaseDC(pDC); 
    CDialog::OnTimer(nIDEvent);

}

到此大功告成!

最后我想说的是,玩游戏是种乐趣,做外挂也是种乐趣,但是不到情非得已的时候,请不要随便使用外挂,破坏游戏的公平性。

此文章只供参考,转载请注明:本文作者:longlongago     博客地址:http://blog.csdn.net/longlongago2000

有问题可留言或发邮件讨论。


文章出处:http://www.diybl.com/course/3_program/vc/vc_js/2008520/117201.html

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -