Üye
Merhaba beyler ve bayanlar valorant için bir colorbot yapıyorum ama bazı sorunlarım var ilk önce kodu şöyle gösteriyim -->
kod bu şekilde mantığı basit zaten ama sorun şurda mouseyi hızlandırmak için delta_x ve y deki çarpanı 0.1 ile 0.4 arasında tuttuğumda hedefi tam isabet bulabiliyor ama 0.4 üstüne çıktığımda hedefi 1-2 adım ıskalamaya başlıyor yani nasıl hem çok hızlı olup hem de nasıl çok isabetli olucak şekilde düzenleyebilirim teşekkürler şimdiden yardımcı olucaklar için
Python:
import struct
from multiprocessing import shared_memory
import time
def read_shm_and_move_mouse():
input_width = 99 # Giriş çözünürlüğü genişliği
input_height = 99 # Giriş çözünürlüğü yüksekliği
screen_width = 1920 # Gerçek ekran genişliği
screen_height = 1080 # Gerçek ekran yüksekliği
REFERENCE_DPI = 1600
REFERENCE_SENSITIVITY = 4.5
REFERENCE_CODE_PIXELS = 1000
REFERENCE_GAME_PIXELS = 446
# Kullanıcı ayarları
current_dpi = 1600
current_sensitivity = 0.4
game_pixels = REFERENCE_GAME_PIXELS * (current_sensitivity / REFERENCE_SENSITIVITY)
scale_ratio = REFERENCE_CODE_PIXELS / game_pixels
center_screen_x = screen_width // 2
center_screen_y = screen_height // 2
previous_data = None
try:
shm = shared_memory.SharedMemory(name="shm_xywh")
print("Paylaşımlı bellek bağlandı!")
while True:
data = bytes(shm.buf[:16])
if any(data):
try:
x, y, w, h = struct.unpack("4i", data)
if previous_data is None or previous_data == (x, y, w, h):
previous_data = (x, y, w, h)
continue
center_x = round(x + w / 2)
center_y = round(y + h / 2 - (h * 0.4))
scaled_x = center_x * (screen_width / input_width)
scaled_y = center_y * (screen_height / input_height)
delta_x = -int((center_screen_x - scaled_x) / scale_ratio)
delta_y = -int((center_screen_y - scaled_y) / scale_ratio)
delta_x = int(delta_x * 0.9)
delta_y = int(delta_y * 0.9)
print(f"Delta hesaplandı: delta_x={delta_x}, delta_y={delta_y}")
send_mouse_movements(delta_x, delta_y)
previous_data = (x, y, w, h)
except struct.error:
print("Veri yapısı hatalı, atlanıyor...")
except FileNotFoundError:
print("Paylaşımlı bellek bulunamadı!")
except Exception as e:
print(f"Bir hata oluştu: {e}")
finally:
shm.close()
def send_mouse_movements(delta_x, delta_y):
step_size = 127
while delta_x != 0 or delta_y != 0:
step_x = max(-step_size, min(step_size, delta_x))
step_y = max(-step_size, min(step_size, delta_y))
move_mouse(step_x, step_y)
delta_x -= step_x
delta_y -= step_y
def move_mouse(delta_x, delta_y):
hid_device = "/dev/hidg0"
try:
with open(hid_device, 'wb') as device:
report = struct.pack("bbbb", 0x00, delta_x, delta_y, 0x00)
device.write(report)
print(f"Mouse hareket ettirildi: delta_x={delta_x}, delta_y={delta_y}")
report = struct.pack("bbbb", 0x00, 0x00, 0x00, 0x00)
device.write(report)
except Exception as e:
print(f"HID cihazına veri gönderilemedi: {e}")
if __name__ == "__main__":
read_shm_and_move_mouse()
Son düzenleme: