Hayır, hala bir banwave yaşanmadı. Kullandığınız hilelerin dt olması demek arduinonun fixlendiği anlamına gelmiyor arkadaşlar
py 3.9.0
arduino IDE 2.1.1,
usb host shield ile kullanıyordum kanka hatta 3 aydan fazla kullandım rage de oynadım legitte oynadım kaynak kodlarını atarım şimdi sana en son yaptığım işlem k tuşuna triger mantığını atadım
anlamışsındır bunu mouse left ve LEFT ALT ile aim alıyor (bunu 3 4 aydan fazla kullandım bansız)"
import cv2
from mss import mss
import numpy as np
import win32api
import serial
fov = 33
center = fov / 2
xspd = 0.39
yspd = 0.39
sct = mss()
screenshot = sct.monitors[1]
screenshot['left'] = int((screenshot['width'] / 2) - (fov / 2))
screenshot['top'] = int((screenshot['height'] / 2) - (fov / 2))
screenshot['width'] = fov
screenshot['height'] = fov
# Purple color range in HSV format
lower = np.array([140, 110, 150])
upper = np.array([150, 195, 255])
#hızlı
# lower = np.array([110, 111, 140])
# upper = np.array([150, 165, 255])
arduino = serial.Serial('COM3', 115200)
print("Ready!")
def mousemove(x, y):
if x < 0:
x = x + 256
if y < 0:
y = y + 256
pax = [int(x), int(y)]
arduino.write(pax)
while True:
if win32api.GetAsyncKeyState(0x01) < 0 or win32api.GetAsyncKeyState(0xA4) < 0:
img = np.array(sct.grab(screenshot))
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv, lower, upper)
kernel = np.ones((3, 3), np.uint8)
dilated = cv2.dilate(mask, kernel, iterations=5)
_, thresh = cv2.threshold(dilated, 60, 255, cv2.THRESH_BINARY)
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
if len(contours) > 0:
# If purple color is detected, move the mouse to the target
largest_contour = max(contours, key=cv2.contourArea)
M = cv2.moments(largest_contour)
if M["m00"] > 0:
center_x = int(M["m10"] / M["m00"])
center_y = int(M["m01"] / M["m00"])
diff_x = center_x - center +1.5
diff_y = center_y - center -4.2
target_x = diff_x * xspd
target_y = diff_y * yspd
mousemove(target_x, target_y)
" sonra gpt ile "
import cv2
from mss import mss
import numpy as np
import win32api
import win32con
import serial
import time
fov = 33
center = fov / 2
xspd = 0.48
yspd = 0.48
speed_multiplier = 1.9 # Hedefe ulaşma hızını kontrol etmek için çarpan
press_interval = 0.2 # Basma aralığı (saniye)
sct = mss()
screenshot = sct.monitors[1]
screenshot['left'] = int((screenshot['width'] / 2) - (fov / 2))
screenshot['top'] = int((screenshot['height'] / 2) - (fov / 2))
screenshot['width'] = fov
screenshot['height'] = fov
sub_fov = fov // 4 # İkinci FOV'nin boyutu, ana FOV'nin yarısı olarak ayarlanır
# Ana FOV için renk aralığı
lower = np.array([140, 120, 150])
upper = np.array([150, 175, 255])
# İkinci FOV için renk aralığı
sub_lower = np.array([140, 110, 150])
sub_upper = np.array([150, 195, 255])
arduino = serial.Serial('COM2', 115200)
print("Ready!")
def mousemove(x, y):
if x < 0:
x = x + 256
if y < 0:
y = y + 256
pax = [int(x), int(y)]
arduino.write(pax)
last_press_time = 0
while True:
if win32api.GetAsyncKeyState(0x01) < 0 or win32api.GetAsyncKeyState(0xA4) < 0:
img = np.array(sct.grab(screenshot))
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv, lower, upper)
kernel = np.ones((3, 3), np.uint8)
dilated = cv2.dilate(mask, kernel, iterations=5)
_, thresh = cv2.threshold(dilated, 60, 255, cv2.THRESH_BINARY)
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
if len(contours) > 0:
# Ana FOV içinde mor renk algılandığında hedefe doğru hareket et
largest_contour = max(contours, key=cv2.contourArea)
M = cv2.moments(largest_contour)
if M["m00"] > 0:
center_x = int(M["m10"] / M["m00"])
center_y = int(M["m01"] / M["m00"])
diff_x = center_x - center + 1.5
diff_y = center_y - center - 5.8
target_x = diff_x * xspd *speed_multiplier
target_y = diff_y * yspd* speed_multiplier
mousemove(target_x, target_y)
sub_screenshot = screenshot.copy()
sub_screenshot['left'] = int(screenshot['left'] + (fov / 2) - (sub_fov / 2))
sub_screenshot['top'] = int(screenshot['top'] + (fov / 2) - (sub_fov / 2))
sub_screenshot['width'] = sub_fov
sub_screenshot['height'] = sub_fov
sub_img = np.array(sct.grab(sub_screenshot))
sub_hsv = cv2.cvtColor(sub_img, cv2.COLOR_BGR2HSV)
sub_mask = cv2.inRange(sub_hsv, sub_lower, sub_upper)
if np.any(sub_mask):
# İkinci FOV içinde belirli bir renk algılandığında "K" tuşuna bas (belirli bir sürede)
current_time = time.time()
if current_time - last_press_time >= press_interval:
win32api.keybd_event(ord('K'), 0, 0, 0) # "K" tuşuna basma
win32api.keybd_event(ord('K'), 0, win32con.KEYEVENTF_KEYUP, 0) # "K" tuşunu bırakma
last_press_time = current_time
sub_screenshot = screenshot.copy()
sub_screenshot['left'] = int(screenshot['left'] + (fov / 2) - (sub_fov / 2))
sub_screenshot['top'] = int(screenshot['top'] + (fov / 2) - (sub_fov / 2))
sub_screenshot['width'] = sub_fov
sub_screenshot['height'] = sub_fov
sub_img = np.array(sct.grab(sub_screenshot))
sub_hsv = cv2.cvtColor(sub_img, cv2.COLOR_BGR2HSV)
sub_mask = cv2.inRange(sub_hsv, sub_lower, sub_upper)
if np.any(sub_mask):
# İkinci FOV içinde belirli bir renk algılandığında "K" tuşuna bas (belirli bir sürede)
current_time = time.time()
if current_time - last_press_time >= press_interval:
win32api.keybd_event(ord('K'), 0, 0, 0) # "K" tuşuna basma
win32api.keybd_event(ord('K'), 0, win32con.KEYEVENTF_KEYUP, 0) # "K" tuşunu bırakma
last_press_time = current_time
" bunu yaptım yaklaşık 2 3 hafta oynadım ban yedim