C++FPS游戏 红名狙 见红开枪源码
针对逆战写的,但狙击十分不稳定,步枪还行。刚学C++ 大家参考交流一下,也希望高手指点,怎么改进。 高手轻喷!注意,全屏游戏,窗口分辨率是1920 乘1080.具体的坐标最好还是自己测试一下,免得分辨率不一样出问题。所以本贴主要提供给小白们一种思路,大家互相学习一下。#include <windows.h>
void jj();//函数声明
下面提供函数部分:
void jj() {
HWND hWnd = ::GetDesktopWindow();
HDC hdc = ::GetDC(hWnd);
int red, green, blue;
while (1)
{
for (int i = 930; i <=980; i++) //多次测试得到,i的取值十分关键,影响成功率,暂时只能得到这个较好的范围。
{
COLORREF p= ::GetPixel(hdc, i, 622);//619-626是名字的纵向宽度。
red = GetRValue(p); //不用取绿色和蓝色了
if (red > 240)//逆战红名是255,0,0.防止背景色干扰 取240.
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); //这里步枪会一直开枪,因为时间间隔太短,检测不到抬起的动作。
Sleep(1000); //杀完人冷静一下。不然好像死循环不太好
break;
}
}
}
}
最后说一下存在的问题,女角色运动太快可能就打不到,更甚者 程序有时候就扫描不到人。
建议搭配烟雾弹打爆破。而且只能架定点狙击。而且影响了鼠标正常开枪,属实鸡肋啊!!!
所以逆战都懒得检测了,你开任你开。。
最后附一张测试时候的图片
好的,非常感谢 mengheeh 发表于 2020-3-4 21:41
好的,非常感谢
怎么这么快,机器人吗{:1_353:} 6666 谢谢分享 6666666666 程序真的很垃圾哈,需要exe的可以+qq786909783,免费发的。大家互相交流! 感谢楼主分享 谢谢大牛
//游戏使用默认设置,游戏窗口分辨率为:1280X720
//进入房间前运行脚本,如果进入房间后请按ESC,再运行脚本
t1=Rnd Mod 5
FindPic 0,0,1920,1080,"Attachment:\逆战图标.bmp",0.85,x,y
If x <= 0
MessageBox "未找到游戏窗口"
End If
While 1=1
//判断绿色准星是否存在,以此判定是否使用狙击枪
FindColorEx x + 600, y + 350, x + 670, y + 410,"33CC00",0,0.85,x1,y1
If x1 > 0
Gosub 多发
Else
Gosub 单发
End If
Delay 30
EndWhile
Sub 单发
//找红名
FindColorEx x + 560, y + 415, x + 1080, y + 455,"0101E0|0000FE|0101BD|0101A2|0404A4|0303BE|0605BE",0,0.90,x1,y1
If x1 > 0 Then
//一次只开一枪
Delay 10+t1
LeftClick 1
End If
End Sub
Sub 多发
//找红名
FindColorEx x + 560, y + 415, x + 1080, y + 455,"0101E0|0000FE|0101BD|0101A2|0404A4|0303BE|0605BE",0,0.90,x1,y1
If x1 > 0 Then
//使用压枪打法,间隔时间下压枪口
Delay 10+t1
LeftDown 1
For i=0 To 10 Step 1
Delay 40
MoveR 0,1
Next
LeftUp 1
End If
End Sub
页:
[1]
2