外挂开发 读取游戏屏幕判断游戏状态

本文介绍如何在非即时战斗游戏中通过读取和对比游戏屏幕来判断游戏状态,避免使用可能被反外挂检测的插件,提供初级代码,并建议进行优化封装,以实现更高效的画面读取和识图功能。
摘要由CSDN通过智能技术生成

         在非即时战斗游戏中,为了对游戏人物和场景进行判断,需要对游戏界面进行对比,通过对比结果做出相应的操作。很多人好奇说为什么不用大漠插件和天使插件来进行处理,这样来的更便捷更强大,代码永远都是自己写的比较灵活,因为插件容易被反外挂程序检测到,所以自己掌握代码是最灵活的做法。以下代码是初级代码,自己优化封装可以通过内存读取RGB对比,快速实现识图,速度非常的话,比传统的GetPixel快了N倍。

1.画面读取:

	byte BitMap[4];
	CDC *pDC;//屏幕DC
	pDC = CDC::FromHandle(GetDC(NULL));//获取当前整个屏幕DC
	int BitPerPixel = pDC->GetDeviceCaps(BITSPIXEL);//获得颜色模式
	int Width = pDC->GetDeviceCaps(HORZRES);//获取屏幕宽度
	int Height = pDC->GetDeviceCaps(VERTRES);//获取屏幕高度
	CDC memDC;//内存DC
	memDC.CreateCompatibleDC(pDC);
	CBitmap memBitmap, *oldmemBitmap;//建立和屏幕兼容的bitmap
	//创建BitMap的X.Y
	memBitmap.CreateCompatibleBitmap(pDC, Width, Height);
	oldmemBitmap = memDC.SelectObject(&memBitmap);//将memBitmap选入内存DC
	//设置开始截图图片的区域
	//参数1.2:开始截取的X.Y
	//参数2.3:最终截取的X.Y
	//参数6.7:从X.Y开始截取
	memDC.BitBlt
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值