学会百里自瞄,人人都是神枪手!
百里守约自瞄实现的效果如何呢?先来看个动图
你以为这是我自己手动操作打中米莱迪这个地方英雄的吗?
不是的,我所做的仅仅是移动位置,至于开启二技能以及打中敌方米莱迪都是计算机,即电脑自动完成的。
计算机在自动打中敌方英雄的过程中,完成了两步操作,即识别出敌人位置,对敌人位置进行射击。
图上画绿框的部分代表图像识别到的敌人血条,每次百里守约射击时都会根据敌人血条进行推断敌人位置,也就是图中画绿色的小框框部分,那就是百里守约要射击的位置。
每次百里守约只需要开启二功能,百里守约就会自动找到敌人,自动进行射击,很简单吧
也就是对面一出现就爆头,甩狙精准打人
实现原理的解释可能有人说在内存中读取敌人坐标就行了,可是王者荣耀封号就是因为有外挂读写王者内存才被发现的。这里不同,这个就是模拟人在打游戏,就是像人一样看到敌方英雄,然后射击,不存在读写内存,自然也不会被封号了,和你对局的玩家也只能理解你为天秀,看不出任何问题。
如何实现呢?我们可以把百里守约自瞄的实现分成两个部分,即敌人位置识别部分,根据敌人位置推断射击目标点并完成射击部分
实现敌人位置的识别概况我们在游戏中打人很简单,因为我们知道顶着红色血条的就是敌人。然而计算机不知道,因此此处我使用了图像识别原理,对敌人血条进行了识别,以此来让计算机记录敌人出现的坐标。
效果如图:
可以看到无论敌人如何移动,图像判别模块都能准确的跟踪敌人的血条,这意味着只要百里守约开启二技能,二技能范围内有敌人的视野,就能够迅速的射击了
图像识别如何实现的呢?
这里先做个效果演示,具体的实现在文章后面。
实现对敌人的射击概况这里实现随意给出一个坐标点,百里守约能够自动对其进行准确射击
图像识别出敌人的位置只是实现了第一部分功能,第二部分功能则是识别出敌人位置后百里守约要在0.2s内准确射击,命中敌人位置
参考文章开篇时的动图
此处可以参见我的另一篇文章,实现原理不再复述
https://www.toutiao.com/i7041316375201137155/
这篇文章主要讲述如何实现对敌人血条的识别
敌人血条图像识别的原理我使用的是python opencv caffe实现的,实现的原理我不过多讲述,
我相信一般的读者也不会特别在意如何实现的,那就留一句给专业人士听的话吧
使用opencv中的模板匹配进行模糊匹配,筛选出包含血条的少量图形块,然后使用caffe训练出的血条图像识别模型作为判断器进行再次筛选,之所以这样做是为了降低模型识别图形的数量,提高图像识别的效率,得到血条后用此图形块的坐标当做敌人坐标,进行偏移得到敌人位置。然后敌人坐标交付射击模块完成自动瞄准射击。
有兴趣的可以看源代码,已经打包放进这个链接里了
https://download.csdn.net/download/lidashent/75143855