pyautogui roblox 未注册点击

问题描述 投票:0回答:1

嗨,所以我想在 Python 中创建一个脚本,当它检测到某种颜色时,它会在给定位置单击,但 roblox 没有检测到单击或它在其他位置注册,我怎么知道我可以使用除 pyautogui 之外的其他内容,但什么?也对代码中的注释感到抱歉(这是波兰语)

import pyautogui
import pygetwindow as gw
from PIL import ImageGrab
import time
import colorsys

def get_mouse_position():
    return pyautogui.position()

def move_to_position(x, y):
    pyautogui.moveTo(x, y, duration=0.5)

def click_after_checking(click_position):
    move_to_position(*click_position)
    pyautogui.click()

def hex_to_rgb(hex_color):
    hex_color = hex_color.lstrip("#")
    rgb = tuple(int(hex_color[i:i + 2], 16) for i in (0, 2, 4))
    return rgb

def rgb_to_hsl(rgb_color):
    hsl = colorsys.rgb_to_hls(rgb_color[0] / 255.0, rgb_color[1] / 255.0, rgb_color[2] / 255.0)
    return hsl

def color_distance(hsl1, hsl2):
    return sum((a - b) ** 2 for a, b in zip(hsl1, hsl2)) ** 0.5

def detect_color_and_click(target_color, check_and_click_positions, final_click_position):
    target_hsl = rgb_to_hsl(hex_to_rgb(target_color))
    screenshot = ImageGrab.grab()

    for i, (check_position, click_position) in enumerate(check_and_click_positions):
        pixel_color = screenshot.getpixel(check_position)
        pixel_hsl = rgb_to_hsl(pixel_color)
        distance = color_distance(target_hsl, pixel_hsl)

        if distance < 0.2:  # Dystans kolorów poniżej 0.2 uznawany jest za podobny
            print(f"[{i+1}/{len(check_and_click_positions)}] Znaleziono podobny kolor na pozycji {check_position}, przemieszczam myszkę i klikam")
            click_after_checking(click_position)
            time.sleep(1)  # Dodaj opóźnienie po każdym sprawdzeniu koloru

    # Przesuń myszkę do ostatecznej pozycji po sprawdzeniu wszystkich kolorów
    print(f"Sprawdzenie wszystkich kolorów zakończone, przemieszczam myszkę do ostatecznej pozycji {final_click_position}")
    move_to_position(*final_click_position)
    pyautogui.click()
    time.sleep(1)  # Dodaj opóźnienie po kliknięciu w ostateczne miejsce

# Przykładowy kolor do porównania (fioletowy)
target_color = "#A73DEF"

check_and_click_positions = [((455, 502), (457, 480)),
                              ((700, 502), (700, 476))]  # Lista par pozycji do sprawdzenia i kliknięcia ((check_x, check_y), (click_x, click_y))

final_click_position = (497, 137)  # Ostateczna pozycja do kliknięcia (x, y)

while True:
    detect_color_and_click(target_color, check_and_click_positions, final_click_position)
    time.sleep(2) 
python
1个回答
0
投票

我最近也遇到了同样的问题。由于 Roblox 的反作弊系统,该库无法在 Roblox 上运行(哇,他们的反作弊系统第一次发挥作用)

© www.soinside.com 2019 - 2024. All rights reserved.