前面我们讲述了一个按键精灵的实现,现在的问题如何监视HP 既血的变化,来控制 补血.

 

 

先看下面几个API函数:

 

 

 

 

.net实现游戏外挂 二[ DllImport ( "gdi32.dll" ) ] 
.net实现游戏外挂 二
private static extern bool BitBlt ( 
.net实现游戏外挂 二     IntPtr hdcDest, 
// 目标设备的句柄 
.net实现游戏外挂 二
     int nXDest, // 目标对象的左上角的X坐标 
.net实现游戏外挂 二
     int nYDest, // 目标对象的左上角的X坐标 
.net实现游戏外挂 二
     int nWidth, // 目标对象的矩形的宽度 
.net实现游戏外挂 二
     int nHeight, // 目标对象的矩形的长度 
.net实现游戏外挂 二
     IntPtr hdcSrc, // 源设备的句柄 
.net实现游戏外挂 二
     int nXSrc, // 源对象的左上角的X坐标 
.net实现游戏外挂 二
     int nYSrc, // 源对象的左上角的X坐标 
.net实现游戏外挂 二
     int dwRop // 光栅的操作值 
.net实现游戏外挂 二
); 
.net实现游戏外挂 二
.net实现游戏外挂 二
.net实现游戏外挂 二
.net实现游戏外挂 二[ DllImport ( 
"gdi32.dll" ) ] 
.net实现游戏外挂 二
private static extern IntPtr CreateDC ( 
.net实现游戏外挂 二     
string lpszDriver, // 驱动名称 
.net实现游戏外挂 二
     string lpszDevice, // 设备名称 
.net实现游戏外挂 二
     string lpszOutput, // 无用,可以设定位"NULL" 
.net实现游戏外挂 二
     IntPtr lpInitData // 任意的打印机数据 
.net实现游戏外挂 二
); 
.net实现游戏外挂 二
.net实现游戏外挂 二
.net实现游戏外挂 二

我们从游戏屏幕上 捕获 左上角用来显示血多少的数值颜色 的变化来实现监视.

 

 

第一个函数BitBlt 就是用来截屏的.前面我们定义了timer2,下在我们来看看他是用来做什么的:

 

 

 

 

我们用temp1 和temp2分别捕获了屏幕上2点的颜色,然后看他们的RGB值,如果他们同时为0xFFFFFF那么就意味这2点都变成了白色,说明,HP直低于200了,这时就需要补血了,于是执行System.Windows.Forms.SendKeys.Send,其中的count和beforeCount 用来缓冲,时间是this.timer2.Interval * 3 .

 

 

这样,一个外挂就实现了!

 

相关文章:

  • 2021-07-24
  • 2021-12-29
  • 2021-09-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-11
猜你喜欢
  • 2021-07-01
  • 2021-07-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-24
  • 2021-12-21
相关资源
相似解决方案