我的自描外挂制作日志——FPS类游戏的自瞄【优化改进1】

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 我的自描外挂制作日志——FPS类游戏的自瞄【优化改进1】

前言

  在上篇文章中已完成实验猜想,今天要工作的核心是如何优化外挂的使用,今日工作的重点主要是优化如下功能项:

1.添加是否启动&结束按钮(指定建的输入或者关闭);

2. 添加鼠标右键触发自动瞄准机制(不必要时不进行自描实现,节省系统资源);

3. 剔除输出演示图像,仅进行鼠标的位置控制。

  考虑到在实际应用自描的过程中,我们不需要自描时在图像中把人物框出来,在实际应用中其基本逻辑如下:

  1. 打开游戏,进入游戏缓冲界面;
  2. 打开外挂;
  3. 获取游戏画面
  4. 判断游戏画面中是否存在目标物
  5. 外挂判断鼠标右键是否被执行
  6. 当鼠标右键被执行的时则执行“自描”,否则不执行;
  7. 不显示绘制目标框,只控制鼠标的移动

系统实施优化

获取游戏画面:

  对游戏视频画面处理和对视频处理有一定的差异,对视频处理我们可以直接进行读取视频然而在玩游戏的时候我们需要对游戏画面进行获取,这里获取游戏画面的频率注意以下,这个频率是你使用显示器刷新频率 我们可以通过opencv, pyautogui 实现屏幕截取和处理,后面我们就可以对获取的视频画面进行检测判断了。截图代码如下:

java

复制代码

import cv2
import numpy as np
import pyautogui
ScreenImg = pyautogui.screenshot()
ScreenImg  = cv2.cvtColor(np.array(ScreenImg ), cv2.COLOR_RGB2BGR)
cv2.imshow("ScreenImg ", ScreenImg 
cv2.waitKey(0)

右健执行自描

  在这个阶段我们已初步完成了获取游戏视频画面进行检测游戏内目标物是否存在和对目标物的中心坐标输出。考虑到一直执行目标检测和移动鼠标会耗费大量内存,以及在游戏中会有不好的体验感,这里我将做如下的优化:

  1. 对截图部分我们应当选择不显示,在使用yolo进行目标检测的时候只需要输出鼠标的位置坐标即可;
  2. 构建多线程,当右健(或其他指定按键)被执行时则执行后续的目标检测和移动鼠标。

python

复制代码

# 检测键盘是否被按下
def on_press(key):
    global BUG
    """定义按下时候的响应,参数传入key"""
    try:
        print(f'{key.char} down')
        if key.char == '1':
            BUG = True
            print(f'{key.char} down')
    except AttributeError:
        pass
def on_release(key):
    """定义释放时候的响应"""
    global BUG
    print(f'{key} up')
    try:
        print(f'{key.char} down')
        if key.char == '1':
            BUG = False
            print(f'{key.char} down')
    except AttributeError:
        pass
# 监听写法2
def listen_key_nblock():
    # mouse.Listener()
    listener = keyboard.Listener(
        on_press=on_press, on_release=on_release
    )
    listener.start()  # 启动线程


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
10天前
|
存储 人工智能 关系型数据库
拥抱Data+AI|玩家去哪儿了?解码Data+AI如何助力游戏日志智能分析
本文为阿里云瑶池数据库「拥抱Data+AI」系列连载第2篇,基于真实客户案例和最佳实践,探讨如何利用阿里云Data+AI解决方案应对游戏行业挑战,通过AI为游戏行业注入新的活力。文章详细介绍了日志数据的实时接入、高效查询、开源开放及AI场景落地,展示了完整的Data+AI解决方案及其实际应用效果。
|
11天前
|
存储 人工智能 关系型数据库
拥抱Data+AI|玩家去哪儿了?解码Data+AI如何助力游戏日志智能分析
「拥抱Data+AI」系列第2篇:阿里云DMS+AnalyticDB助力游戏日志数据分析与预测
拥抱Data+AI|玩家去哪儿了?解码Data+AI如何助力游戏日志智能分析
|
15天前
|
JSON 监控 JavaScript
Node.js-API 限流与日志优化
Node.js-API 限流与日志优化
|
1月前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
45 3
|
1月前
|
存储 监控 固态存储
如何监控和优化 WAL 日志文件的存储空间使用?
如何监控和优化 WAL 日志文件的存储空间使用?
|
2月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
46 2
|
2月前
|
监控
莉莉丝-游戏用户日志分析
莉莉丝游戏用户日志分析案例图
|
2月前
|
缓存 监控 算法
分析慢日志文件来优化 PHP 脚本的性能
分析慢日志文件来优化 PHP 脚本的性能
|
2月前
|
存储 运维 监控
超级好用的C++实用库之日志类
超级好用的C++实用库之日志类
41 0
|
3月前
|
运维 监控 安全
在Linux中,如何管理和优化日志文件?
在Linux中,如何管理和优化日志文件?