Python kodlamada yardım

Katılım
14 Haziran 2024
Mesajlar
386
Reaksiyon skoru
40
ben yeni yapay zeka ile bir kodlama yaptım ama sorunlu çalışıyor ve ne denersem deniyim düzeltemiyorum minecraftda 5 oyun modu var balık tutmak için ve hepsinde arklı bir hamle ayapman lazım onu kendi algılayıp hangisini nasıl yapması gerektiğini yaptı ama hep biryerde hata oluyor şuan elimde olan kodlamayı aşağıya bırakıyorum eğer bir gelişme olursda o halini güncellerim yardım eden herkese şimdiden teşekkürler



import time
import threading
import cv2
import numpy as np
import pyautogui
import mss

pyautogui.PAUSE = 0.001

SCREEN_W, SCREEN_H = pyautogui.size() # 2560x1440 öneriliyor

BAR_REGION = (
int(SCREEN_W * 0.1),
int(SCREEN_H * 0.38),
int(SCREEN_W * 0.8),
int(SCREEN_H * 0.24),
)

sct = mss.mss()

settings = {
"green_bar": True, # Yeşil bar zamanlama
"click_spam": True, # Sol tık spam
"shift_spam": True, # SHIFT mini-game
"running": True,
}

# HSV aralıkları
YELLOW_LOW = np.array([15, 80, 80])
YELLOW_HIGH = np.array([35, 255, 255])

BLUE_LOW = np.array([90, 40, 40])
BLUE_HIGH = np.array([140, 255, 255])

GREEN_LOW = np.array([40, 80, 80])
GREEN_HIGH = np.array([85, 255, 255])

RED1_LOW = np.array([0, 90, 90])
RED1_HIGH = np.array([10, 255, 255])
RED2_LOW = np.array([170, 90, 90])
RED2_HIGH = np.array([180, 255, 255])

TEXT_GREEN_LOW = np.array([40, 200, 40])
TEXT_GREEN_HIGH = np.array([90, 255, 255])

TEXT_RED_LOW = np.array([0, 0, 180])
TEXT_RED_HIGH = np.array([40, 80, 255])

WHITE_LOW = np.array([0, 0, 210])
WHITE_HIGH = np.array([180, 40, 255])


def grab_region(region):
x, y, w, h = region
monitor = {"left": x, "top": y, "width": w, "height": h}
img = np.array(sct.grab(monitor))[:, :, :3]
return img


def has_bar_frame(img):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
yellow_mask = cv2.inRange(hsv, YELLOW_LOW, YELLOW_HIGH)
blue_mask = cv2.inRange(hsv, BLUE_LOW, BLUE_HIGH)
return yellow_mask.mean() > 3 and blue_mask.mean() > 3


# 1) YEŞİL BAR (kanca yeşile gelince 1 sol tık)
def handle_green_bar(img):
if not settings["green_bar"]:
return False

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
green_mask = cv2.inRange(hsv, GREEN_LOW, GREEN_HIGH)
ys, xs = np.where(green_mask > 0)
if len(xs) < 30:
return False
green_center_x = int(xs.mean())

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thr = cv2.threshold(gray, 210, 255, cv2.THRESH_BINARY)
cnts, _ = cv2.findContours(thr, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

hook_x = None
h, w = img.shape[:2]
for c in cnts:
x, y, cw, ch = cv2.boundingRect(c)
if 4 < cw < 40 and 8 < ch < 60 and h * 0.2 < y < h * 0.8:
hook_x = x + cw // 2
break

if hook_x is None:
return False

if abs(hook_x - green_center_x) <= 20:
pyautogui.click()
time.sleep(0.03)
return True

return False


# 2) SOL TIK SPAM
def handle_click_spam(img):
if not settings["click_spam"]:
return False

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
green_mask = cv2.inRange(hsv, TEXT_GREEN_LOW, TEXT_GREEN_HIGH)
red_mask = cv2.inRange(hsv, TEXT_RED_LOW, TEXT_RED_HIGH)

if green_mask.mean() > 1.5 and red_mask.mean() > 1.5:
end = time.time() + 2.0
while time.time() < end and settings["running"] and settings["click_spam"]:
pyautogui.click()
time.sleep(0.005)
return True
return False


# 3) SHIFT MINI-GAME (senin tarifine göre)
class ShiftState:
def __init__(self):
self.active = False # şu an shift mini-game ekranında mıyız
self.shift_down = False # şu an shift basılı mı
self.pause_until = 0.0 # kırmızı görüldü, bu zamana kadar basma

shift_state = ShiftState()


def is_shift_screen(img):
"""
SHIFT oyununu ayırt et:
- Altın çerçeveli bar var.
- Ortada koyu kutu ve etrafında beyaz SHIFT tuş ikonları (çok beyaz).
- Yeşil yazı yok (click spam değil).
- İnce yeşil bar yok (yeşil bar oyunu değil).
"""
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# Diğer oyun işaretleri varsa bu değil
if cv2.inRange(hsv, TEXT_GREEN_LOW, TEXT_GREEN_HIGH).mean() > 1.0:
return False
if cv2.inRange(hsv, GREEN_LOW, GREEN_HIGH).mean() > 1.0:
return False

# Ortadaki alan
h, w = img.shape[:2]
cx1, cy1 = int(w * 0.2), int(h * 0.0)
cx2, cy2 = int(w * 0.8), int(h * 0.6)
center_hsv = hsv[cy1:cy2, cx1:cx2]

# Beyaz SHIFT tuşları
white_mask = cv2.inRange(center_hsv, WHITE_LOW, WHITE_HIGH)
white_ratio = white_mask.mean()

return white_ratio > 2.0 # yeterince beyaz alan varsa SHIFT ekranı varsay


def detect_red_near_fisher(img):
"""
Balıkçının yanındaki kırmızı efektleri bulmak için:
Barın ortasındaki bölgede kırmızı yoğunluğu var mı bak.
"""
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, w = img.shape[:2]

# Ortadaki küçük alan (balıkçı + yakın çevresi)
rx1, ry1 = int(w * 0.4), int(h * 0.05)
rx2, ry2 = int(w * 0.6), int(h * 0.45)
region = hsv[ry1:ry2, rx1:rx2]

r1 = cv2.inRange(region, RED1_LOW, RED1_HIGH)
r2 = cv2.inRange(region, RED2_LOW, RED2_HIGH)
red_ratio = max(r1.mean(), r2.mean())
return red_ratio > 1.5


def handle_shift_game(img):
if not settings["shift_spam"]:
# Ayar kapalıysa aktifse bile shift'i bırak
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False
shift_state.active = False
return False

now = time.time()
on_shift_screen = is_shift_screen(img)

if not on_shift_screen:
# Ekran değişti: oyun bitti, shift bırak
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False
shift_state.active = False
return False

# Buraya geldiysek shift mini-game içindeyiz
if not shift_state.active:
shift_state.active = True
shift_state.pause_until = 0.0
# oyuna yeni girdik: hemen shift basılı tut
if not shift_state.shift_down:
pyautogui.keyDown("shift")
shift_state.shift_down = True

# Kırmızı efekt var mı?
red_here = detect_red_near_fisher(img)

# Eğer şu an kırmızı görüldüyse: 3 saniye shift bırak
if red_here and now >= shift_state.pause_until:
# kırmızı tetikledi
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False
shift_state.pause_until = now + 3.0
return True

# Eğer kırmızı bekleme süresi dolduysa ve shift basılı değilse:
if now >= shift_state.pause_until:
if not shift_state.shift_down:
pyautogui.keyDown("shift")
shift_state.shift_down = True

# Eğer hâlâ bekleme süresindeysek (pause_until > now):
# shift basılı olmamalı
if now < shift_state.pause_until:
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False

return True # shift ekranındayız, işlendi


def bot_loop():
time.sleep(2)
print("[BOT] Başladı. Menü açık, 'q' ile kapatabilirsin.")
while settings["running"]:
frame = grab_region(BAR_REGION)

if not has_bar_frame(frame):
time.sleep(0.03)
continue

# Öncelik sırası: click spam -> shift -> yeşil bar

if handle_click_spam(frame):
continue

# SHIFT oyununu özel state ile yönet
if handle_shift_game(frame):
# shift ekranındaysak yeşil bar fonksiyonunu karıştırma
time.sleep(0.02)
continue

# Yeşil bar
handle_green_bar(frame)

time.sleep(0.01)

# çıkarken shift bırak
if shift_state.shift_down:
pyautogui.keyUp("shift")
print("[BOT] Durduruldu.")


def print_menu():
print("\n=== Melonya Bot Menü ===")
print(f"1 - Yeşil bar (kanca -> yeşil) : {'AÇIK' if settings['green_bar'] else 'KAPALI'}")
print(f"2 - Sol tık spam mini-game : {'AÇIK' if settings['click_spam'] else 'KAPALI'}")
print(f"3 - SHIFT mini-game : {'AÇIK' if settings['shift_spam'] else 'KAPALI'}")
print("9 - Hepsini AÇ")
print("0 - Hepsini KAPAT")
print("q - Botu kapat")
print("========================")


def menu_loop():
print_menu()
while settings["running"]:
c = input("Seçim: ").strip().lower()
if c == "1":
settings["green_bar"] = not settings["green_bar"]
print(f"[MENÜ] Yeşil bar: {'AÇIK' if settings['green_bar'] else 'KAPALI'}")
elif c == "2":
settings["click_spam"] = not settings["click_spam"]
print(f"[MENÜ] Sol tık spam: {'AÇIK' if settings['click_spam'] else 'KAPALI'}")
elif c == "3":
settings["shift_spam"] = not settings["shift_spam"]
print(f"[MENÜ] SHIFT mini-game: {'AÇIK' if settings['shift_spam'] else 'KAPALI'}")
elif c == "9":
settings["green_bar"] = settings["click_spam"] = settings["shift_spam"] = True
print("[MENÜ] Tüm modlar AÇIK.")
elif c == "0":
settings["green_bar"] = settings["click_spam"] = settings["shift_spam"] = False
print("[MENÜ] Tüm modlar KAPALI.")
elif c == "q":
print("[MENÜ] Çıkış...")
settings["running"] = False
else:
print("[MENÜ] Geçersiz seçim.")
print_menu()


def main():
print("Melonya fishing bot başlıyor. 2 sn sonra aktif.")
bot_thread = threading.Thread(target=bot_loop, daemon=True)
bot_thread.start()
menu_loop()
bot_thread.join()
print("Tamamen kapandı.")

if __name__ == "__main__":
main()
 
bu kodunun düzeltilmiş hali, dene bakalım çalışacak mı?




import time
import threading
import cv2
import numpy as np
import pyautogui
import mss

pyautogui.PAUSE = 0.001

SCREEN_W, SCREEN_H = pyautogui.size()

BAR_REGION = (
int(SCREEN_W * 0.1),
int(SCREEN_H * 0.38),
int(SCREEN_W * 0.8),
int(SCREEN_H * 0.24),
)

sct = mss.mss()

settings = {
"green_bar": True,
"click_spam": True,
"shift_spam": True,
"running": True,
}

YELLOW_LOW = np.array([15, 80, 80])
YELLOW_HIGH = np.array([35, 255, 255])

BLUE_LOW = np.array([90, 40, 40])
BLUE_HIGH = np.array([140, 255, 255])

GREEN_LOW = np.array([40, 80, 80])
GREEN_HIGH = np.array([85, 255, 255])

RED1_LOW = np.array([0, 90, 90])
RED1_HIGH = np.array([10, 255, 255])
RED2_LOW = np.array([170, 90, 90])
RED2_HIGH = np.array([180, 255, 255])

TEXT_GREEN_LOW = np.array([40, 200, 40])
TEXT_GREEN_HIGH = np.array([90, 255, 255])

TEXT_RED_LOW = np.array([0, 0, 180])
TEXT_RED_HIGH = np.array([40, 80, 255])

WHITE_LOW = np.array([0, 0, 210])
WHITE_HIGH = np.array([180, 40, 255])


def grab_region(region):
x, y, w, h = region
monitor = {"left": x, "top": y, "width": w, "height": h}
img = np.array(sct.grab(monitor))[:, :, :3]
return img


def has_bar_frame(img):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
yellow_mask = cv2.inRange(hsv, YELLOW_LOW, YELLOW_HIGH)
blue_mask = cv2.inRange(hsv, BLUE_LOW, BLUE_HIGH)
return yellow_mask.mean() > 3 and blue_mask.mean() > 3


def handle_green_bar(img):
if not settings["green_bar"]:
return False

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
green_mask = cv2.inRange(hsv, GREEN_LOW, GREEN_HIGH)
ys, xs = np.where(green_mask > 0)
if len(xs) < 30:
return False
green_center_x = int(xs.mean())

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thr = cv2.threshold(gray, 210, 255, cv2.THRESH_BINARY)
cnts = cv2.findContours(thr, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]

hook_x = None
h, w = img.shape[:2]
for c in cnts:
x, y, cw, ch = cv2.boundingRect(c)
if 4 < cw < 40 and 8 < ch < 60 and h * 0.2 < y < h * 0.8:
hook_x = x + cw // 2
break

if hook_x is None:
return False

if abs(hook_x - green_center_x) <= 20:
pyautogui.click()
time.sleep(0.03)
return True

return False


def handle_click_spam(img):
if not settings["click_spam"]:
return False

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
green_mask = cv2.inRange(hsv, TEXT_GREEN_LOW, TEXT_GREEN_HIGH)
red_mask = cv2.inRange(hsv, TEXT_RED_LOW, TEXT_RED_HIGH)

if green_mask.mean() > 1.5 and red_mask.mean() > 1.5:
end = time.time() + 2.0
while time.time() < end and settings["running"] and settings["click_spam"]:
pyautogui.click()
time.sleep(0.005)
return True
return False


class ShiftState:
def __init__(self):
self.active = False
self.shift_down = False
self.pause_until = 0.0


shift_state = ShiftState()


def is_shift_screen(img):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

if cv2.inRange(hsv, TEXT_GREEN_LOW, TEXT_GREEN_HIGH).mean() > 1.0:
return False
if cv2.inRange(hsv, GREEN_LOW, GREEN_HIGH).mean() > 1.0:
return False

h, w = img.shape[:2]
cx1, cy1 = int(w * 0.2), 0
cx2, cy2 = int(w * 0.8), int(h * 0.6)
center_hsv = hsv[cy1:cy2, cx1:cx2]

white_mask = cv2.inRange(center_hsv, WHITE_LOW, WHITE_HIGH)
return white_mask.mean() > 2.0


def detect_red_near_fisher(img):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, w = img.shape[:2]

rx1, ry1 = int(w * 0.4), int(h * 0.05)
rx2, ry2 = int(w * 0.6), int(h * 0.45)
region = hsv[ry1:ry2, rx1:rx2]

r1 = cv2.inRange(region, RED1_LOW, RED1_HIGH)
r2 = cv2.inRange(region, RED2_LOW, RED2_HIGH)
return max(r1.mean(), r2.mean()) > 1.5


def handle_shift_game(img):
if not settings["shift_spam"]:
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False
shift_state.active = False
return False

now = time.time()
on_shift_screen = is_shift_screen(img)

if not on_shift_screen:
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False
shift_state.active = False
return False

if not shift_state.active:
shift_state.active = True
shift_state.pause_until = 0.0
if not shift_state.shift_down:
pyautogui.keyDown("shift")
shift_state.shift_down = True

red_here = detect_red_near_fisher(img)

if red_here and now >= shift_state.pause_until:
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False
shift_state.pause_until = now + 3.0
return True

if now >= shift_state.pause_until:
if not shift_state.shift_down:
pyautogui.keyDown("shift")
shift_state.shift_down = True

if now < shift_state.pause_until:
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False

return True


def bot_loop():
time.sleep(2)
print("[BOT] Başladı. Menü açık, 'q' ile kapatabilirsin.")
while settings["running"]:
frame = grab_region(BAR_REGION)

if not has_bar_frame(frame):
time.sleep(0.03)
continue

if handle_click_spam(frame):
continue

if handle_shift_game(frame):
time.sleep(0.02)
continue

handle_green_bar(frame)
time.sleep(0.01)

if shift_state.shift_down:
pyautogui.keyUp("shift")
print("[BOT] Durduruldu.")


def print_menu():
print("\n=== Melonya Bot Menü ===")
print(f"1 - Yeşil bar : {'AÇIK' if settings['green_bar'] else 'KAPALI'}")
print(f"2 - Sol tık spam : {'AÇIK' if settings['click_spam'] else 'KAPALI'}")
print(f"3 - SHIFT mini-game : {'AÇIK' if settings['shift_spam'] else 'KAPALI'}")
print("9 - Hepsi AÇ")
print("0 - Hepsi KAPAT")
print("q - Botu kapat")
print("========================")


def menu_loop():
print_menu()
while settings["running"]:
c = input("Seçim: ").strip().lower()
if c == "1":
settings["green_bar"] = not settings["green_bar"]
print(f"[MENÜ] Yeşil bar: {'AÇIK' if settings['green_bar'] else 'KAPALI'}")
elif c == "2":
settings["click_spam"] = not settings["click_spam"]
print(f"[MENÜ] Sol tık spam: {'AÇIK' if settings['click_spam'] else 'KAPALI'}")
elif c == "3":
settings["shift_spam"] = not settings["shift_spam"]
print(f"[MENÜ] SHIFT mini-game: {'AÇIK' if settings['shift_spam'] else 'KAPALI'}")
elif c == "9":
settings["green_bar"] = settings["click_spam"] = settings["shift_spam"] = True
print("[MENÜ] Tüm modlar AÇIK.")
elif c == "0":
settings["green_bar"] = settings["click_spam"] = settings["shift_spam"] = False
print("[MENÜ] Tüm modlar KAPALI.")
elif c == "q":
print("[MENÜ] Çıkış...")
settings["running"] = False
else:
print("[MENÜ] Geçersiz seçim.")
print_menu()


def main():
print("Melonya fishing bot başlıyor. 2 sn sonra aktif.")
bot_thread = threading.Thread(target=bot_loop, daemon=True)
bot_thread.start()
menu_loop()
bot_thread.join()
print("Tamamen kapandı.")


if __name__ == "__main__":
main()
 
bu kodunun düzeltilmiş hali, dene bakalım çalışacak mı?




import time
import threading
import cv2
import numpy as np
import pyautogui
import mss

pyautogui.PAUSE = 0.001

SCREEN_W, SCREEN_H = pyautogui.size()

BAR_REGION = (
int(SCREEN_W * 0.1),
int(SCREEN_H * 0.38),
int(SCREEN_W * 0.8),
int(SCREEN_H * 0.24),
)

sct = mss.mss()

settings = {
"green_bar": True,
"click_spam": True,
"shift_spam": True,
"running": True,
}

YELLOW_LOW = np.array([15, 80, 80])
YELLOW_HIGH = np.array([35, 255, 255])

BLUE_LOW = np.array([90, 40, 40])
BLUE_HIGH = np.array([140, 255, 255])

GREEN_LOW = np.array([40, 80, 80])
GREEN_HIGH = np.array([85, 255, 255])

RED1_LOW = np.array([0, 90, 90])
RED1_HIGH = np.array([10, 255, 255])
RED2_LOW = np.array([170, 90, 90])
RED2_HIGH = np.array([180, 255, 255])

TEXT_GREEN_LOW = np.array([40, 200, 40])
TEXT_GREEN_HIGH = np.array([90, 255, 255])

TEXT_RED_LOW = np.array([0, 0, 180])
TEXT_RED_HIGH = np.array([40, 80, 255])

WHITE_LOW = np.array([0, 0, 210])
WHITE_HIGH = np.array([180, 40, 255])


def grab_region(region):
x, y, w, h = region
monitor = {"left": x, "top": y, "width": w, "height": h}
img = np.array(sct.grab(monitor))[:, :, :3]
return img


def has_bar_frame(img):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
yellow_mask = cv2.inRange(hsv, YELLOW_LOW, YELLOW_HIGH)
blue_mask = cv2.inRange(hsv, BLUE_LOW, BLUE_HIGH)
return yellow_mask.mean() > 3 and blue_mask.mean() > 3


def handle_green_bar(img):
if not settings["green_bar"]:
return False

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
green_mask = cv2.inRange(hsv, GREEN_LOW, GREEN_HIGH)
ys, xs = np.where(green_mask > 0)
if len(xs) < 30:
return False
green_center_x = int(xs.mean())

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thr = cv2.threshold(gray, 210, 255, cv2.THRESH_BINARY)
cnts = cv2.findContours(thr, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]

hook_x = None
h, w = img.shape[:2]
for c in cnts:
x, y, cw, ch = cv2.boundingRect(c)
if 4 < cw < 40 and 8 < ch < 60 and h * 0.2 < y < h * 0.8:
hook_x = x + cw // 2
break

if hook_x is None:
return False

if abs(hook_x - green_center_x) <= 20:
pyautogui.click()
time.sleep(0.03)
return True

return False


def handle_click_spam(img):
if not settings["click_spam"]:
return False

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
green_mask = cv2.inRange(hsv, TEXT_GREEN_LOW, TEXT_GREEN_HIGH)
red_mask = cv2.inRange(hsv, TEXT_RED_LOW, TEXT_RED_HIGH)

if green_mask.mean() > 1.5 and red_mask.mean() > 1.5:
end = time.time() + 2.0
while time.time() < end and settings["running"] and settings["click_spam"]:
pyautogui.click()
time.sleep(0.005)
return True
return False


class ShiftState:
def __init__(self):
self.active = False
self.shift_down = False
self.pause_until = 0.0


shift_state = ShiftState()


def is_shift_screen(img):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

if cv2.inRange(hsv, TEXT_GREEN_LOW, TEXT_GREEN_HIGH).mean() > 1.0:
return False
if cv2.inRange(hsv, GREEN_LOW, GREEN_HIGH).mean() > 1.0:
return False

h, w = img.shape[:2]
cx1, cy1 = int(w * 0.2), 0
cx2, cy2 = int(w * 0.8), int(h * 0.6)
center_hsv = hsv[cy1:cy2, cx1:cx2]

white_mask = cv2.inRange(center_hsv, WHITE_LOW, WHITE_HIGH)
return white_mask.mean() > 2.0


def detect_red_near_fisher(img):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, w = img.shape[:2]

rx1, ry1 = int(w * 0.4), int(h * 0.05)
rx2, ry2 = int(w * 0.6), int(h * 0.45)
region = hsv[ry1:ry2, rx1:rx2]

r1 = cv2.inRange(region, RED1_LOW, RED1_HIGH)
r2 = cv2.inRange(region, RED2_LOW, RED2_HIGH)
return max(r1.mean(), r2.mean()) > 1.5


def handle_shift_game(img):
if not settings["shift_spam"]:
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False
shift_state.active = False
return False

now = time.time()
on_shift_screen = is_shift_screen(img)

if not on_shift_screen:
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False
shift_state.active = False
return False

if not shift_state.active:
shift_state.active = True
shift_state.pause_until = 0.0
if not shift_state.shift_down:
pyautogui.keyDown("shift")
shift_state.shift_down = True

red_here = detect_red_near_fisher(img)

if red_here and now >= shift_state.pause_until:
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False
shift_state.pause_until = now + 3.0
return True

if now >= shift_state.pause_until:
if not shift_state.shift_down:
pyautogui.keyDown("shift")
shift_state.shift_down = True

if now < shift_state.pause_until:
if shift_state.shift_down:
pyautogui.keyUp("shift")
shift_state.shift_down = False

return True


def bot_loop():
time.sleep(2)
print("[BOT] Başladı. Menü açık, 'q' ile kapatabilirsin.")
while settings["running"]:
frame = grab_region(BAR_REGION)

if not has_bar_frame(frame):
time.sleep(0.03)
continue

if handle_click_spam(frame):
continue

if handle_shift_game(frame):
time.sleep(0.02)
continue

handle_green_bar(frame)
time.sleep(0.01)

if shift_state.shift_down:
pyautogui.keyUp("shift")
print("[BOT] Durduruldu.")


def print_menu():
print("\n=== Melonya Bot Menü ===")
print(f"1 - Yeşil bar : {'AÇIK' if settings['green_bar'] else 'KAPALI'}")
print(f"2 - Sol tık spam : {'AÇIK' if settings['click_spam'] else 'KAPALI'}")
print(f"3 - SHIFT mini-game : {'AÇIK' if settings['shift_spam'] else 'KAPALI'}")
print("9 - Hepsi AÇ")
print("0 - Hepsi KAPAT")
print("q - Botu kapat")
print("========================")


def menu_loop():
print_menu()
while settings["running"]:
c = input("Seçim: ").strip().lower()
if c == "1":
settings["green_bar"] = not settings["green_bar"]
print(f"[MENÜ] Yeşil bar: {'AÇIK' if settings['green_bar'] else 'KAPALI'}")
elif c == "2":
settings["click_spam"] = not settings["click_spam"]
print(f"[MENÜ] Sol tık spam: {'AÇIK' if settings['click_spam'] else 'KAPALI'}")
elif c == "3":
settings["shift_spam"] = not settings["shift_spam"]
print(f"[MENÜ] SHIFT mini-game: {'AÇIK' if settings['shift_spam'] else 'KAPALI'}")
elif c == "9":
settings["green_bar"] = settings["click_spam"] = settings["shift_spam"] = True
print("[MENÜ] Tüm modlar AÇIK.")
elif c == "0":
settings["green_bar"] = settings["click_spam"] = settings["shift_spam"] = False
print("[MENÜ] Tüm modlar KAPALI.")
elif c == "q":
print("[MENÜ] Çıkış...")
settings["running"] = False
else:
print("[MENÜ] Geçersiz seçim.")
print_menu()


def main():
print("Melonya fishing bot başlıyor. 2 sn sonra aktif.")
bot_thread = threading.Thread(target=bot_loop, daemon=True)
bot_thread.start()
menu_loop()
bot_thread.join()
print("Tamamen kapandı.")


if __name__ == "__main__":
main()
File "C:\Users\Downloads\debug_regions.py\melonya_bot.py", line 54
x, y, w, h = region
^
IndentationError: expected an indented block after function definition on line 53
Mesajlar otomatik olarak birleştirildi:

bu hatayı verdi
 
53. Satırda girinti hatası varmış. Onu düzelt. Girintiler boş sütun olmalı. Tab olmamalı. Yön tuşları kullanabilirsin.
 
53. Satırda girinti hatası varmış. Onu düzelt. Girintiler boş sütun olmalı. Tab olmamalı. Yön tuşları kullanabilirsin.
bu kodlamayı yapay zeka ile yaptım benim bilgim yok yapabilecek birisini aradığım için açtım yapamasa bile yardım edebilecek için açtım o yüzden ne bilgim pek yok 😅😅ama teşekkür ederim
 
bu kodlamayı yapay zeka ile yaptım benim bilgim yok yapabilecek birisini aradığım için açtım yapamasa bile yardım edebilecek için açtım o yüzden ne bilgim pek yok 😅😅ama teşekkür ederim
Editör'de satır numaraları yazar. Görünüm ayarlarından açmalısın. Notepad++ kullan. Python kodlarını tanır. (Öğrenmek için bugün ilk adımı atmış oldun.)
 
Yeni mesajlar Yeni Konu Aç  

   

SON KONULAR

Forum istatistikleri

Konular
1,174,437
Mesajlar
10,587,260
Üyeler
186,491
Son üye
umuticoz
Geri
Top