Atack.py
import numpy as np.
import cv2.
import time.
import pyautogui.
from interception import interception, MAX_DEVICES, key_stroke, interception_key_state
from deneme import*
from clicksend import*
# İzlenen alanların koordinatları.
x1_mob, y1_mob = 789, 9 # Mobun isminin izlenen alanın sol üst köşesinin koordinatları.
x2_mob, y2_mob = 1172, 30 # Mobun isminin izlenen alanın sağ alt köşesinin koordinatları.
# Tanımlanan ekran görüntüsünün adı.
tanımlanan_mob_ekran_goruntusu_adı = "mob_names.png"
tanımlanan_mob_kırmızı_piksel_sayısı = 124.
# Kırmızı piksel sayısını hesaplayan fonksiyon (OpenCV kullanılarak güncellendi)
def count_red_pixels(image):
# Kırmızı renk aralığını belirt.
lower_red = np.array([239, 52, 100])
upper_red = np.array([239, 52, 100])
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Kırmızı pikselleri içeren maske oluştur.
red_mask = cv2.inRange(rgb_image, lower_red, upper_red)
# Kırmızı piksel sayısını say.
red_pixel_count = cv2.countNonZero(red_mask)
return red_pixel_count.
# Mob saldırısı gerçekleştirme işlevi.
def mob_attack():
# Ana döngü.
# Fareyi ve klavyeyi bul.
context = interception()
keyboard = 0
for i in range(MAX_DEVICES):
if interception.is_keyboard(i):
keyboard = i
break.
try:
while True:
# Z tuşuna bas.
stroke_z_down = key_stroke(0x2C, interception_key_state.INTERCEPTION_KEY_DOWN.value, 0) # Z tuşu.
context.send(keyboard, stroke_z_down)
time.sleep(0.5) # Kısa bir süre beklet.
stroke_z_up = key_stroke(0x2C, interception_key_state.INTERCEPTION_KEY_UP.value, 0) # Z tuşu.
context.send(keyboard, stroke_z_up)
# Ekran görüntüsünü al.
game_screenshot_mob = np.array(pyautogui.screenshot(region=(x1_mob, y1_mob, x2_mob - x1_mob, y2_mob - y1_mob)))
game_screenshot_mob = cv2.cvtColor(game_screenshot_mob, cv2.COLOR_RGB2BGR)
# Belirtilen bölgedeki kırmızı piksellerin sayısını hesapla.
red_pixel_count_mob = count_red_pixels(game_screenshot_mob)
print("Oyundaki belirtilen bölgedeki kırmızı piksellerin sayısı:", red_pixel_count_mob)
# Tanımlanan resimdeki kırmızı piksel sayısıyla eşleşip eşleşmediğini kontrol et.
if red_pixel_count_mob >= tanımlanan_mob_kırmızı_piksel_sayısı:
print("Eşleşme bulundu. Atack yapılabilir.")
# Atack işlemini gerçekleştir.
stroke_r_down = key_stroke(0x13, interception_key_state.INTERCEPTION_KEY_DOWN.value, 0) # R tuşu.
context.send(keyboard, stroke_r_down)
time.sleep(0.08) # 130 ms beklet.
stroke_r_up = key_stroke(0x13, interception_key_state.INTERCEPTION_KEY_UP.value, 0) # R tuşu.
context.send(keyboard, stroke_r_up)
time.sleep(0.035) # 35 ms beklet.
stroke_2_down = key_stroke(0x03, interception_key_state.INTERCEPTION_KEY_DOWN.value, 0) # 2 tuşu.
context.send(keyboard, stroke_2_down)
time.sleep(0.06) # 130 ms beklet.
stroke_2_up = key_stroke(0x03, interception_key_state.INTERCEPTION_KEY_UP.value, 0) # 2 tuşu.
context.send(keyboard, stroke_2_up)
time.sleep(0.05) # 50 ms beklet.
else:
print("Eşleşme bulunamadı. Atack başlatılamaz.")
time.sleep(1) # Bekleme süresi eklendi.
except KeyboardInterrupt:
print("İşlem kullanıcı tarafından sonlandırıldı.")