CARVIEW |
Select Language
HTTP/2 200
date: Sat, 11 Oct 2025 05:37:27 GMT
content-type: text/html; charset=UTF-8
server: cloudflare
x-frame-options: DENY
x-content-type-options: nosniff
x-xss-protection: 1;mode=block
vary: accept-encoding
cf-cache-status: DYNAMIC
content-encoding: gzip
set-cookie: _csrf-frontend=c5f45357f833555f5c2ca1b8b96c4be8fc431ed5ee4ea19b32a8dd5dc19e4876a%3A2%3A%7Bi%3A0%3Bs%3A14%3A%22_csrf-frontend%22%3Bi%3A1%3Bs%3A32%3A%22mVrX1irnsPIA2AYoD8Y_r01lF7Th6USG%22%3B%7D; HttpOnly; Path=/
cf-ray: 98cc016e3ebb25e0-BLR
Atlyss Fishbot (UI) - Pastebin.com
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #With UI
- import pyautogui
- import win32gui
- import win32process
- import psutil
- import keyboard
- import time
- import pytesseract
- from PIL import Image, ImageGrab
- import pygame
- import re
- import tkinter as tk
- from threading import Thread
- # Set Tesseract path (change if installed elsewhere)
- pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
- # ---===### CONFIGURATION ###===---
- TARGET_PROCESS = "ATLYSS.exe"
- CHECK_X = 1317
- CHECK_Y = 726
- TARGET_RGB = (255, 204, 41)
- RGB_TOLERANCE = 10
- FRAME_DELAY = 1/60 # 60 FPS
- PROCESS_CHECK_INTERVAL = 60 # Check process every 60 loops
- # OCR Configuration
- OCR_REGION = (0, 1395, 600, 43) # (left, top, right, bottom)
- SOUND_FILE = "alert.mp3" # Sound to play when soul pearl detected
- # Initialize pygame mixer
- pygame.mixer.init()
- try:
- sound = pygame.mixer.Sound(SOUND_FILE)
- sound_loaded = True
- except:
- sound_loaded = False
- print(f"[WARNING] Sound file '{SOUND_FILE}' not found - alerts disabled")
- print("-=# ATLYSS FISHBOT #=-")
- print(f"Target: {TARGET_PROCESS}")
- print(f"Pixel Check: ({CHECK_X}, {CHECK_Y}) = rgb{TARGET_RGB}")
- print(f"OCR Region: {OCR_REGION}")
- print(f"Press [O] to test OCR/show region | [L] for sound test | [Q] to stop\n")
- def is_process_active(process_name):
- """Check if target process is the active foreground window"""
- try:
- hwnd = win32gui.GetForegroundWindow()
- _, pid = win32process.GetWindowThreadProcessId(hwnd)
- current_process = psutil.Process(pid).name()
- return (current_process == process_name), current_process
- except:
- return False, "Unknown"
- def color_matches(actual, target, tolerance):
- """Check if RGB color matches within tolerance"""
- return all(abs(actual[i] - target[i]) <= tolerance for i in range(3))
- class CounterUI:
- """Real-time item counter UI with tkinter"""
- def __init__(self, items_dict, catch_times_dict, x=10, y=360, w=400, h=500):
- self.items_dict = items_dict
- self.catch_times_dict = catch_times_dict
- self.root = tk.Tk()
- self.root.title("ATLYSS Fishbot Counter")
- self.root.geometry(f"{w}x{h}+{x}+{y}")
- self.root.attributes('-topmost', True)
- self.root.configure(bg='#1a1a1a')
- self.root.protocol("WM_DELETE_WINDOW", self.on_close)
- # Title
- tk.Label(self.root, text="---===### CATCH COUNTER ###===---",
- bg='#1a1a1a', fg='#00ff00', font=('Consolas', 12, 'bold')).pack(pady=10)
- # Scrollable frame
- canvas = tk.Canvas(self.root, bg='#1a1a1a', highlightthickness=0)
- scrollbar = tk.Scrollbar(self.root, orient="vertical", command=canvas.yview)
- self.scrollable_frame = tk.Frame(canvas, bg='#1a1a1a')
- self.scrollable_frame.bind("<Configure>", lambda e: canvas.configure(scrollregion=canvas.bbox("all")))
- canvas.create_window((0, 0), window=self.scrollable_frame, anchor="nw")
- canvas.configure(yscrollcommand=scrollbar.set)
- canvas.pack(side="left", fill="both", expand=True)
- scrollbar.pack(side="right", fill="y")
- self.item_labels = {}
- self.running = True
- self.update_ui()
- def get_item_color(self, item):
- """Get color for specific item"""
- if item == 'soul pearl':
- return '#00ffff' # Cyan
- elif item == "angela's tear":
- return '#00ff00' # Green
- elif item == 'nothing':
- return '#ff4444' # Red
- else:
- return '#ffffff' # White
- def update_ui(self):
- """Update item counts in real-time"""
- if not self.running:
- return
- # Clear existing labels
- for widget in self.scrollable_frame.winfo_children():
- widget.destroy()
- self.item_labels.clear()
- # Sort items: soul pearl first, angela's tear second, then by count descending, nothing last
- sorted_items = sorted(
- self.items_dict.items(),
- key=lambda x: (
- x[0] != 'soul pearl',
- x[0] != "angela's tear",
- x[0] == 'nothing',
- -x[1]
- )
- )
- # Create labels with updated styling
- for item, count in sorted_items:
- frame = tk.Frame(self.scrollable_frame, bg='#2a2a2a', relief='groove', bd=2)
- frame.pack(fill='x', padx=8, pady=4)
- # Item name and count (left side)
- color = self.get_item_color(item)
- item_label = tk.Label(frame, text=f"{item.upper()}: {count}",
- bg='#2a2a2a', fg=color, font=('Consolas', 11, 'bold'),
- anchor='w', padx=15, pady=8)
- item_label.pack(side='left', fill='both', expand=True)
- # Get time since last catch (right side)
- time_text = ""
- if item in self.catch_times_dict:
- elapsed = time.time() - self.catch_times_dict[item]
- if elapsed < 60:
- time_text = f"{int(elapsed)}s ago"
- elif elapsed < 3600:
- mins = int(elapsed // 60)
- time_text = f"{mins}m ago"
- else:
- hours = int(elapsed // 3600)
- time_text = f"{hours}h ago"
- time_label = tk.Label(frame, text=time_text,
- bg='#2a2a2a', fg='#888888', font=('Consolas', 10),
- anchor='e', padx=15, pady=8)
- time_label.pack(side='right')
- self.item_labels[item] = (item_label, time_label)
- self.root.after(500, self.update_ui)
- def run(self):
- """Run the tkinter main loop"""
- self.root.mainloop()
- def on_close(self):
- """Handle window close event"""
- self.running = False
- self.root.destroy()
- def stop(self):
- """Stop the UI"""
- self.running = False
- try:
- self.root.quit()
- except:
- pass
- def xywh_2_xyxy(x, y, w, h):
- """Convert (x, y, width, height) to (x1, y1, x2, y2)"""
- return (x, y, x+w, y+h)
- def check_for_soul_pearl():
- """Scan OCR region for 'soul pearl' text"""
- try:
- # Convert OCR_REGION from xywh to xyxy
- zone = xywh_2_xyxy(OCR_REGION[0], OCR_REGION[1], OCR_REGION[2], OCR_REGION[3])
- screenshot = ImageGrab.grab(bbox=zone)
- text = pytesseract.image_to_string(screenshot).lower()
- return "soul pearl" in text, text
- except Exception as e:
- print(f"[OCR ERROR] {e}")
- return False, ""
- # Main bot loop
- items_caught = {}
- last_catch_times = {} # Track last catch time for each item
- def bot_loop():
- """Main bot logic running in background thread"""
- loop_count = 0
- process_active = False
- bot_started = False
- try:
- while True:
- # Check process every N loops
- if loop_count % PROCESS_CHECK_INTERVAL == 0:
- process_active, current_process = is_process_active(TARGET_PROCESS)
- if not process_active:
- print(f"[WAITING] Current active process: {current_process}")
- bot_started = False
- elif not bot_started:
- print(f"[FOUND] {TARGET_PROCESS} detected - Starting bot...")
- time.sleep(1) #anti alt-f4
- keyboard.press_and_release('f4')
- bot_started = True
- print("[READY] Initial F4 pressed, monitoring pixel...")
- # Exit on Q key
- if keyboard.is_pressed('q'):
- print("\n[STOPPED] Bot terminated by user")
- input("Press Enter to continue...")
- break
- # Test OCR/sound on O key
- if keyboard.is_pressed('l'):
- if sound_loaded:
- sound.play()
- else:
- print("[TEST] Sound file not loaded")
- time.sleep(0.5) # Debounce
- if keyboard.is_pressed('o'):
- print("[TEST] Manual OCR scan triggered...")
- found, text = check_for_soul_pearl()
- print(f"[OCR TEXT] Extracted: '{text.strip()}'")
- if found:
- print("[SOUL PEARL] Detected! Playing alert...")
- if sound_loaded:
- sound.play()
- else:
- print("[TEST] No 'soul pearl' found in extracted text")
- time.sleep(0.5) # Debounce
- # Bot logic
- if process_active:
- pixel = pyautogui.pixel(CHECK_X, CHECK_Y)
- if color_matches(pixel, TARGET_RGB, RGB_TOLERANCE):
- print(f"[MATCH] Pixel rgb{pixel} detected - Executing actions...")
- # Press F
- keyboard.press_and_release('f')
- # Wait 10 frames
- time.sleep(FRAME_DELAY * 10)
- # Press F4
- keyboard.press_and_release('f4')
- # Check for soul pearl
- found, text = check_for_soul_pearl()
- try:
- if found:
- print("\033[96m[SOUL PEARL] Detected! Playing alert...\033[0m")
- items_caught["soul pearl"] = items_caught.get("soul pearl", 0) + 1
- last_catch_times["soul pearl"] = time.time()
- if sound_loaded:
- sound.play()
- else:
- item = re.search(r'picked up (.*)\. \(\+1\)', text)
- item_name = item.group(1)
- items_caught[item_name] = items_caught.get(item_name, 0) + 1
- last_catch_times[item_name] = time.time()
- print("[OCR] caught item:", item_name)
- except:
- print("[OCR] no item caught")
- items_caught["nothing"] = items_caught.get("nothing", 0) + 1
- last_catch_times["nothing"] = time.time()
- print("[DONE] Actions complete, continuing scan...")
- loop_count += 1
- time.sleep(FRAME_DELAY)
- except KeyboardInterrupt:
- print("\n[STOPPED] Bot terminated")
- except Exception as e:
- print(f"\n[ERROR] {e}")
- # Start bot in background thread
- bot_thread = Thread(target=bot_loop, daemon=True)
- bot_thread.start()
- # Run UI on main thread
- ui = CounterUI(items_caught, last_catch_times, x=2, y=360, w=400, h=700)
- ui.run()
- print("\n"*5 +"[FINAL REPORT]")
- print(f"Items caught: {items_caught}")
- print(f"Total items caught: {sum(items_caught.values())}")
- print(f"Total soul pearls caught: {items_caught.get('soul pearl', 0)}")
- print(f"Total nothing caught: {items_caught.get('nothing', 0)}")
- print("\n"*5)
Tags:
Automation
Advertisement
Add Comment
Please, Sign In to add comment
-
⭐✅ MAKE $2500 IN 15 MIN⭐⭐⭐ T
JavaScript | 6 sec ago | 0.24 KB
-
⭐ ✅ Free Products Method ✅ ✅ NEVER SEEN BEFOR...
JavaScript | 6 sec ago | 0.24 KB
-
✅ Make $2500 in 20 minutes⭐⭐⭐ X
JavaScript | 11 sec ago | 0.24 KB
-
⭐ G2A Bug ⭐ (Get more on BTC swaps) ✅ NEVER S...
JavaScript | 16 sec ago | 0.24 KB
-
⭐✅ Exploit 2500$ in 15 Minutes⭐⭐⭐ V
JavaScript | 17 sec ago | 0.24 KB
-
⭐⭐Exchange Exploit⭐⭐ T
JavaScript | 24 sec ago | 0.24 KB
-
⭐✅ Jack's Profit Method ✅ NEVER SEEN BEF...
JavaScript | 25 sec ago | 0.24 KB
-
Free Crypto Method (NEVER SEEN BEFORE)⭐⭐ D
JavaScript | 28 sec ago | 0.24 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand