准备弄一个挂机小工具自动刷宝典经验,把自动拿牌分享出来[分辨率基于1920X1080]游戏选择无边框模式
运行原理:
1、对屏幕进行截图
2、在屏幕截图中寻找需要自动购买的棋子并返回坐标
3、对坐标进行点击[无法后台]
至于所有棋子的截图,我是通过游戏中F12多次截图,然后通过ps的自动化批处理快速拿到的,然后一个一个改名的,后续版本更新也可以像这样操作,但是感觉还是有点麻烦……
使用说明:把你想要自动购买的棋子填写到auto.ini文件中
因为我是根据英雄的名字来填写,而不是自己选择可能会导致填写错误,所以做了判断,如果你填写错误会跳过对该棋子的自动购买并且提示
[Python] 纯文本查看 复制代码 import multiprocessing
import os
from time import sleep
import cv2
import numpy as np
import pyautogui
class AutoClick:
def __init__(self):
self.auto_hero_list = []
self.hero_list = []
self.coordinate_list = []
def start(self):
with open('auto.ini') as fp:
name = fp.read().splitlines()
for path_name in name:
all_name = os.listdir('./hero')
path_name = path_name + ".png"
if path_name in all_name:
self.hero_list.append('./hero/' + path_name)
self.auto_hero_list.append(path_name.split('.')[0])
else:
pyautogui.alert(f'您填写的{path_name}不存在,跳过对{path_name}的自动购买!!')
print(f'{path_name}不存在,请检查名称!')
continue
m1 = multiprocessing.Process(target=self.execution)
m1.start()
def execution(self):
while True:
print(f'自动购买:{self.auto_hero_list}')
self.img_recognition()
def img_recognition(self):
pyautogui.screenshot().save('./screenshot.png')
img = cv2.imread('./screenshot.png')
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
for img_path in self.hero_list:
temp = cv2.imread(img_path, 0)
res = cv2.matchTemplate(img_gray, temp, cv2.TM_CCORR_NORMED)
threshold = 0.95
loc = np.where(res >= threshold)
for pt in zip(*loc[::-1]):
pyautogui.mouseDown(pt[0], pt[1])
sleep(0.03)
pyautogui.mouseUp(pt[0], pt[1])
os.system('cls')
if __name__ == '__main__':
auto = AutoClick()
auto.start()
源码和这次版本棋子的截图放在里面了⬇
云顶自动拿牌.rar
(194.15 KB, 下载次数: 169)
蓝奏下载地址:https://anyhg.lanzouy.com/iGScU0e9efeh
|