仅做学习交流,非盈利,侵联删(狗头保命)
2023-06-26 测试可用
一、概述
1.1 效果
总的来说,这种方式是通过图像识别来完成的,不侵入游戏,不读取内存,安全不被检测。
1.2 前置知识
- 游戏中有各种不同的q械,不同的q械后坐力不一样,射速也不同。相同的q械,装上不同的配件后,后坐力也会发生变化。
- q械的y轴上移是固定的,x轴是随机的,因此我们程序只移动鼠标y轴。x轴游戏中手动操作。
1.3 实现原理简述
- 通过python中的pynput模块监听键盘鼠标。
监听鼠标左键按下,这个时候开始移动鼠标。左键抬起,终止移动。
监听键盘按键,比如tab键,这时打开背包,截屏开始识别装备栏。
-
通过python的pyautogui模块来截屏,可以截取屏幕指定位置。
-
通过python的opencv模块来处理截取的图片。
-
通过SSIM算法来对比图片相似度,获取到装备栏的武器、配件。
-
通过python的pydirectinput操作鼠标移动。
二、详解
2.1 pynput监听键盘
import pynput.keyboard as keyboard
# 监听键盘
def listen_keybord():
listener = keyboard.Listener(on_press=onPressed, on_release=onRelease)
listener.start()
pynput的监听为异步事件,但是会被阻塞,所以如果事件处理事件过长,得用异步处理。
2.2 监听事件
创建了c_equipment类来封装武器信息。
重点在tab键的监听,使用异步来检测装备信息。
def onRelease(key):
try:
if '1' == key.char:
c_equipment.switch = 1 #主武器1
elif '2' == key.char:
c_equipment.switch = 2 #主武器2
elif '3' == key.char:
c_equipment.switch = 3 #手q switch=3的时候不压q
elif '4' == key.char:
c_equipment.switch = 3 #刀具
elif '5' == key.char:
c_equipment.switch = 3 #手雷
except AttributeError:
if 'tab' == key.name: #tab键异步操作检测
asyncHandle()
elif 'num_lock' == key.name: #小键盘锁用来控制程序开关
changeOpen

该文章介绍了一个使用Python编程实现的游戏辅助工具,通过图像识别技术调整鼠标移动来抵消PUBG中武器的后坐力。它利用pynput监听键盘和鼠标事件,pyautogui截屏及opencv处理图片,通过SSIM算法比较武器和配件的相似度。玩家在游戏过程中,工具能自动识别并适应不同武器的后坐力模式,动态调整鼠标移动,提高射击精度。
最低0.47元/天 解锁文章
896





