(python)cf火线瞄准红名自动开枪

这篇具有很好参考价值的文章主要介绍了(python)cf火线瞄准红名自动开枪。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 前言

以下代码只可用于私服,不可商用,代码完全开源,这个应该cf系列第四篇了,目前已经写了ai瞄准,罗技鼠标宏,这篇功能相比前俩个更简单一些,因为代码不多所以就不写类与功能函数了,直接直捣黄龙,我还写了一些辅助脚本,可以用来获取鼠标当前坐标和颜色的,改新的分辨率可以用得上

所需准备:罗技驱动的.dll文件与之对应的罗技驱动版本,链接我放下面了

链接:https://pan.baidu.com/s/1pd2RjNW6QoOSDRs_3gm1Tw?pwd=6666 
提取码:6666

注意事项:这里游戏内分辨率必须是1280*720,我的位置坐标参数就是根据这个分辨率调整的

二. 代码

2.1 驱动代码

这部分代码主要就是调用.dll文件,用里面封装好的方法,比如移动鼠标,点击鼠标,键盘等等,主要实现的功能就是进行射击操作,也就是自动鼠标点击左键

import ctypes
import os


try:
    # 获取当前绝对路径
    root = os.path.abspath(os.path.dirname(__file__))
    driver = ctypes.CDLL(f'{root}/logitech.driver.dll')
    ok = driver.device_open() == 1  # 该驱动每个进程可打开一个实例
    if not ok:
        print('错误, GHUB驱动没有找到')
except FileNotFoundError:
    print(f'错误, DLL 文件没有找到')



class Logitech:

    class mouse:

        """
        code: 1:左键, 2:中键, 3:右键
        """

        @staticmethod
        def press(code):
            if not ok:
                return
            driver.mouse_down(code)

        @staticmethod
        def release(code):
            if not ok:
                return
            driver.mouse_up(code)

        @staticmethod
        def click(code):
            if not ok:
                return
            driver.mouse_down(code)
            driver.mouse_up(code)

        @staticmethod
        def scroll(a):
            """
            鼠标滚轮
            """
            if not ok:
                return
            driver.scroll(a)

        @staticmethod
        def move(x, y):
            """
            相对移动, 绝对移动需配合 pywin32 的 win32gui 中的 GetCursorPos 计算位置
            pip install pywin32 -i https://pypi.tuna.tsinghua.edu.cn/simple
            x: 水平移动的方向和距离, 正数向右, 负数向左
            y: 垂直移动的方向和距离
            """
            if not ok:
                return
            if x == 0 and y == 0:
                return
            driver.moveR(x, y, True)

    class keyboard:

        """
        键盘按键函数中,传入的参数采用的是键盘按键对应的键码
        code: 'a'-'z':A键-Z键, '0'-'9':0-9
        """

        @staticmethod
        def press(code):

            if not ok:
                return
            driver.key_down(code)

        @staticmethod
        def release(code):
            if not ok:
                return
            driver.key_up(code)

        @staticmethod
        def click(code):
            if not ok:
                return
            driver.key_down(code)
            driver.key_up(code)



class RunLogitechTwo:
    def __init__(self):
        self.log_mouse = Logitech.mouse
        pass

    def quick_move(self):
        # time.sleep(random.randint(1, 3))
        self.log_mouse.click(1)
        # print('hahaha')


2.2 红名识别代码

代码思路:利用mss库的mss()功能函数,进行时对当前屏幕进行截图,设置了字典monitor参数,里面包含左上角坐标,宽高,用来控制截屏的范围,我这里对敌人红名出现的地方中央截取了16个像素,这16个像素中一定会有红色像素格出现,一旦其中一个符合rgb范围要求就跳出循环不执行剩下像素的判断,节省资源也防止一直开枪

for循环部分讲解:俩层for循环就是为了遍历截取的16个像素的RGB值进行判断,第二个for循环的bgr属性(分解的每个像素)是有含4个值的,分别是R,B,G,通透度,我们只取前三个就够了通透度不用管,np.array()会将16个像素值分成二维数组(4*4)类似于矩阵的形状,所以俩层for循环就够了

开枪延迟:这个开枪延迟一定要加上,要不然肯定会过快,进行检测,速度大家自行修改尝试就行了,我这个是喷子的延迟,大炮可以调的更长一些,火线还有个问题就是你可能在瞄准那个人附近的时候就开始出现红名了,所以也要通过设置这个开枪延迟来平衡自动开枪时机

吐槽:你在瞄准敌人的时候,他的名字是渐变的,从暗红色-红色-亮红色-橘色,这个RGB范围让我一顿好找

import logitech_test
from mss import mss
import numpy as np
import time
import random




if __name__ == "__main__":
    # 设置检测区域,这里截取整个屏幕
    monitor = {"top": 405, "left": 635, "width": 4, "height": 4}
    # monitor = {"top": 490, "left": 910, "width": 200, "height": 200}  # 反人类的设计,正常左上,他上左
    obj = logitech_test.RunLogitechTwo()
    # 设置目标颜色(示例:红色)
    target_color = np.array([163, 57, 49])  # RGB颜色值
    # 创建截屏对象
    sct = mss()
    while True:
        flag=False
        # 获取屏幕截图
        screen_shot = sct.grab(monitor)
        # 展示
        scr_img = np.array(screen_shot)

        for each_pic in scr_img:
            for bgr in each_pic:
                b, g, r = bgr[:3]
                # rgb参数145,245,47,80,20,57
                if r >= 140 and r <= 245 and g >= 45 and g <= 80 and b >= 20 and b <= 60:
                    time.sleep(random.randint(2, 5) * 0.01)
                    obj.quick_move()
                    flag = True
                    break
            if flag:
                break

三. 辅助工具

下面的脚本是用来时时获取鼠标当前位置的坐标x,y和rgb值的,用于改分辨率时候算参数用的

import pyautogui
from PIL import Image


def test_b():
    # obj = RunLogitechTwo()
    # 默认屏幕为1280 * 720,屏幕中心位置如下
    # x = 640   # 1.18
    # y = 360   # 32.66666
    # 屏幕检测区域
    # region_to_check = (590, 310, 690, 430)
    # x = 636
    # y = 410
    while True:
        x, y = pyautogui.position()  # 获取鼠标当前位置

        # region = (600, 400, 80, 20)
        im = pyautogui.screenshot()  # 返回屏幕的截图,是一个Pillow的image对象

        r,g,b = im.getpixel((x,y))
        print("x:", x, "y:", y, "r:", r,"-g:", g,"-b:", b)


        # img = Image.new('RGB', (300, 300), im.getpixel((x, y)))  # 用获取的颜色创建一张图片
        # img.show()  # 展示当前图片


if __name__ == '__main__':
    test_b()

四. 成品展示

因为有人建议我将这个集成为一个app更好一些,代码不算很多,就抽时间集成了一下,图片如下

这里我给了几个参数可修改

游戏分辨率:因为有的人可能改了分辨率就不会找位置了,所以我加了这个参数,会自适应找到位置,也可以点击计算面积获得比较适合当前分辨率的红名面积 

红名面积:也就是扫描的范围,这个如果你电脑配置不错,你可以开大点,但是一般计算面积自适应的就够用了

开火反应速率:这个用来控制你秒到红名之后,开枪之前的间隔,过快可能会进小黑屋1小时冷静一下,玩JU的话我建议7-10就行,因为火线的机制是秒到人身体附近就会出现红名了,所以你在玩JU架点的时候可能会有人慢慢蹭出来,这样你先瞄到的就是空气了,所以适当加一些延迟,其他步枪和喷子就默认就行了,不需要考虑这个

最后,对此有兴趣或疑问的可以发我邮箱信息,看到会回复的

(python)cf火线瞄准红名自动开枪,cf,python,图像处理,驱动开发

五. 总结

重要的事情多说一遍,如果你想用我这个代码,游戏内分辨率一定要调整为1280*720,因为我取像素位置就是根据这个分辨率来的,如果你想用别的分辨率自己重新计算一下就行了,也不难,重新找一下新分辨率下的红名出现坐标位置,如果你找不到新的分辨率红名坐标位置,我建议你可以把电脑分辨率调整为和游戏一样的分辨率,然后在游戏中截屏,将截屏的照片设为全屏,再开启辅助工具取坐标和rgb,这样就能准确得知了(我就是这样做的)

最后,如果还有什么不懂的或者困难或者改进也可以邮箱联系我一起进步,874302104@qq.com文章来源地址https://www.toymoban.com/news/detail-665820.html

到了这里,关于(python)cf火线瞄准红名自动开枪的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第十五篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读Python 自动化处理图像在各行各业的应用场景

    Python 自动化操作处理图像在众多行业中发挥着关键作用,其强大的图像处理能力、丰富的库支持以及高度可定制化的特性,使得它成为实现图像相关任务自动化的重要工具。Python 自动化操作图像在计算机视觉、人工智能、医疗、制造、农业、电商、艺术、媒体等多个行业均

    2024年04月16日
    浏览(69)
  • Python-Pytorch框架-实现AI自动瞄准(下)

    OpenCV与Ptorch框架搭建一个利用目标骨骼关键点检测实现AI自动瞄准的娱乐项目(该项目仅供学习OpenCV、Ptorch框架、游戏自动化等参考)。 该项目思路大致分为如下步骤: 利用Pywin32以及OpenCV获取游戏窗口图像 数据集获取(本文为17骨骼关键点) 搭建Ptorch训练框架 利用深度学习

    2023年04月08日
    浏览(41)
  • 【图像处理】使用自动编码器进行图像降噪(改进版)

    阿里雷扎·凯沙瓦尔兹

    2024年02月15日
    浏览(70)
  • 图像ISP处理——自动曝光AE算法

            图像ISP(图像信号处理)是指对通过摄像头捕捉到的图像进行处理和优化的算法。这些算法旨在改善图像的质量,增强细节,降低噪音等。以下是一些常见的图像ISP算法: 自动白平衡(AWB): 调整图像的色彩平衡,确保白色在不同光照条件下看起来相同。 自动曝

    2024年04月10日
    浏览(37)
  • python --opencv图像处理(图像腐蚀与图像膨胀)

    图像的腐蚀( Erosion )和膨胀( Dilation )是两种基本的形态学运算,主要用来寻找图像中的极大区域和极小区域。 又出来新名词了:形态学。 图像处理中指的形态学,往往表示的是数学形态学。数学形态学( Mathematical morphology ) 是一门建立在格论和拓扑学基础之上的图像

    2024年02月08日
    浏览(67)
  • Python图像处理丨图像缩放、旋转、翻转与图像平移

    摘要: 本篇文章主要讲解Python调用OpenCV实现图像位移操作、旋转和翻转效果,包括四部分知识:图像缩放、图像旋转、图像翻转、图像平移。 本文分享自华为云社区《[Python图像处理] 六.图像缩放、图像旋转、图像翻转与图像平移》,作者:eastmount 。 本篇文章主要讲解Pyth

    2024年02月06日
    浏览(57)
  • 【图像处理】使用 Python 进行图像增强

            图像增强技术的深度和复杂性往往在一系列捕获和共享中被忽视。从傅里叶变换到白平衡和直方图处理,各种方法都可以将普通照片转换为引人注目的图像。这篇博文旨在解开这些技术。         我在节日期间拍了一张照片,在夜间庆祝活动中。遗憾的是,图

    2024年02月16日
    浏览(76)
  • python图像处理实战(一)—图像基础

    🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?type=blog  🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初晴之时,所有的蜻蜓振翅和雨后惊雷,都归你。 目录 一、前言 二、认识图像  三、用到的库  (1)Numpy

    2024年02月09日
    浏览(47)
  • Python案例分析|使用Python图像处理库Pillow处理图像文件

    本案例通过使用Python图像处理库Pillow,帮助大家进一步了解Python的基本概念:模块、对象、方法和函数的使用 使用Python语言解决实际问题时,往往需要使用由第三方开发的开源Python软件库。 本案例使用图像处理库Pillow中的模块、对象来处理图像:实现读取图像、获取图像信

    2024年02月16日
    浏览(49)
  • Python图像处理【23】分布式图像处理

    Python 已逐渐成为数据分析/处理领域中的主要语言,这得益于 Python 丰富的第三方库,但是,这些库的设计并未在分布式上进行扩展。 Dask 是为了原生地扩展这些 Python 库及其生态系统而开发的,它能够与现有的 Python 生态系统兼容,将其扩展到多核计算机和分布式集群中。

    2024年03月23日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包