Python实战项目(二)用python写枪战游戏-枪林弹雨的辅助程序

声明:本文章纯属个人学习所作,切勿用于非法渠道。转载请注明原文链接。

最近闲得无聊,在qq微端上找游戏玩,偶然看见一个枪战游戏,名字叫枪林弹雨,体验一把之后,我只想吐槽这个游戏基本上都是在抄袭生死狙击的游戏模式,里面有外挂,各种锁血飞天遁地外挂搞得我心态快炸,好在不是很多,但是我的狙却玩的很菜,遇见大神打到我怀疑是不是开挂,一气之下,我觉得,我要写个辅助(比游戏中的外挂低级一点)

源代码放在文章最后(有些代码内容可能需要修改,所以建议你先看完文章再复制代码),注意适当游戏,切勿沉迷~

游戏界面如下:

(一)分析

我先认清一下自己的实力,emmmm…开启分析模式
我只能做到分析屏幕狙击枪瞄准镜准星周围某点的rgb色值,然后根据对战人物衣服的rgb色值,进行比较,确认后调用pyautogui瞬间点击鼠标,击杀对手
但是这样也会有几个缺点:

  • 对于分辨率不同的电脑,瞄准镜准星所在坐标肯定不同,这就需要自己亲自动手得出坐标
  • 在游戏中几乎所有玩家都是两种人物衣服,所以这样的话就会出现将队友误判为敌人而开枪浪费子弹(解决方法:尽量不拿枪对着队友)
  • 某些地图中颜色与人物衣服相似

这些缺点要靠自己来测量与避免,这里就不再用程序实现。

(二)准备

这是两个常用人物

人物图片展示,分析rgb色值(qq的屏幕截图有这个功能),取色值时被我发现人物的全身几乎所有rgb色值元组中元素全部小于100(除了一些露出肉的部分和枪械的颜色),这是一个可以判断的重要条件。
我的电脑分辨率为1920*1080,测得准星坐标大约在(966,,555)附近
此时需要估计几个范围区域,分别是(956,555)(966,545)(966,565)(956,545),你在使用过程中要注意自己测得的坐标也要试着将纵横坐标减去一些,预估几个点区域。

请确保已经安装pyautogui库!

(三)开始编写!~

首先声明一些要用到的量,导入ctypes和pyautogui

from ctypes import *
import time,pyautogui
#坐标列表,可以根据你的测量结果进行更改,越准确越好
pos_list = [(956,555),(966,545),(966,565),(956,,545)]
#概率标记
mark = 0

写返回rgb三元组的函数,这里用到了ctypes库

def get_color(x, y):gdi32 = windll.gdi32user32 = windll.user32hdc = user32.GetDC(None)  # 获取颜色值pixel = gdi32.GetPixel(hdc, x, y)  # 提取RGB值r = pixel & 0x0000ffg = (pixel & 0x00ff00) >> 8b = pixel >> 16return (r, g, b)

程序主循环体一直运行传参到get_color()函数,并处理返回指定坐标的rgb三元组,如果每个元素值小于100,则mark的值加一,
当然,还需要考虑如果这四个坐标参数的落点概率问题,设置如果mark/4即落点概率大于等于50%时就可以进行射击,否则就不射击。

#设置等待15秒玩家开启全屏模式
time.sleep(15)
while True:for i in pos_list:#获得rgb值t = get_color(i[0],i[1])#处理rgb值,判断元素相加是否小于300if t[0]<100 and t[1]<100 and t[2]<100:mark+=1else:continueif mark/4 >= 0.5:pyautogui.click()

整体代码(强烈建议运行时游戏开启全屏模式):

from ctypes import *
import time,pyautogui
#坐标列表,可以根据你的测量结果进行更改,越准确越好
pos_list = [(956,555),(966,545),(966,565),(956,,545)]
#概率标记
mark = 0def get_color(x, y):gdi32 = windll.gdi32user32 = windll.user32hdc = user32.GetDC(None)  # 获取颜色值pixel = gdi32.GetPixel(hdc, x, y)  # 提取RGB值r = pixel & 0x0000ffg = (pixel & 0x00ff00) >> 8b = pixel >> 16return (r, g, b)time.sleep(15)
while True:for i in pos_list:#获得rgb值t = get_color(i[0],i[1])#处理rgb值,判断元素相加是否小于300if t[0]<100 and t[1]<100 and t[2]<100:mark+=1else:continueif mark/4 >= 0.5:pyautogui.click()

这是一个简单的游戏辅助(好不好用我不敢说),但只应用了如下知识:

  • 使用ctypes库获取屏幕某点坐标rgb色值
  • pyautogui操纵鼠标点击
  • 函数的传参与返回值

到这里就结束啦~后续有时间的话,我再优化一下在上面说到的那几个缺点。

Python实战项目(二)写一个枪林弹雨的辅助外挂相关推荐

  1. python项目归纳总结-这4个Python实战项目,让你瞬间读懂Python!

    原标题:这4个Python实战项目,让你瞬间读懂Python! 来自:https://www.toutiao.com/a6593456515221291528/ Python 是一种极具可读性和通用性 ...

  2. python有趣的小项目-有趣的十个Python实战项目,让你瞬间爱上Python!

    前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...

  3. python项目实战干货_干货 | 这4个Python实战项目,让你瞬间读懂Python!

    Python是一种极具可读性和通用性的编程语言.Python这个名字的灵感来自于英国喜剧团体Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Python易于设置, ...

  4. python十个运维实战项目_干货 | 这4个Python实战项目,让你瞬间读懂Python!

    Python是一种极具可读性和通用性的编程语言.Python这个名字的灵感来自于英国喜剧团体Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Python易于设置, ...

  5. python项目开发实例-有趣的十个Python实战项目,让你瞬间爱上Python!

    前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...

  6. python能做什么项目-这十个Python实战项目,让你瞬间读懂Python!

    前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...

  7. 精选100个Python实战项目案例,送给零基础小白的你

    前言 随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那句话了:"人生苦短,我用 Python!",正是因 ...

  8. 有趣的十个Python实战项目,让你瞬间爱上Python!

    前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...

  9. python十个实例-有趣的十个Python实战项目,让你瞬间爱上Python!

    前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...

最新文章

  1. 磐创AI - 专注机器学习技术分享
  2. git_修改git历史提交记录
  3. 在线机房改造类项目建设难点的研究
  4. 小赋诗歌一首,以感学生时代结束
  5. 【Linux】一步一步学Linux——dirs命令(了解)(24)
  6. java 常用流_Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数...
  7. 三大特性--多态和多态性
  8. java在循环中删除数组元素,在循环Perl中删除数组中的元素
  9. 大数据分析技术有哪些应用步骤
  10. hduoj 2602Bone Collector
  11. 《电脑音乐制作实战指南:伴奏、录歌、MTV全攻略》——2.3 提取VCD、DVD视频中的音频...
  12. 无人机pid调节顺口溜
  13. 把filedia设置为0可以不弹出对话框保存文件
  14. 2022微软苏州Software Engineer校招暑期实习生一面
  15. 新成员入群监控自动发送邮件效果如何实现?
  16. 两年数据对比柱形图_同期数据对比,你会做这样特殊的柱形图吗?趋势、差异值一目了然...
  17. opengl 读取obj模型
  18. python自学之《21天学通Python》(2)
  19. 怎么在苹果手机上进行时间管理?
  20. python 批量替换当前.txt文本内容

热门文章

  1. shell uname命令
  2. Java中Required request body is missing问题解决
  3. 大数据智能推荐促进内容生态建设 今日头条与时尚集团战略合作
  4. 网络 卧槽!牛皮了,面试官居然把TCP三次握手四次挥手问的这么详细
  5. html2canvas 截长图并导出图片
  6. 实验一 添加最简单的Linux内核模块kello
  7. 大话主席(superslide和 touchslide)插件的使用
  8. 第一次蓝牙TWS调试项目
  9. 索爱音乐手机-W800c
  10. EasyRecovery16MAC苹果版本Photo最新版数据恢复软件