Reklama
Pokazuje wyniki od 1 do 10 z 10

Temat: [BOT] Tibia 7.4

  1. #1

    Data rejestracji
    2025
    Posty
    17
    Siła reputacji
    0

    Domyślny [BOT] Tibia 7.4

    Dlaczego mój bot?

    - Bo nie potrafisz zrobić lepszego
    - Bo boty ze skrótem .exe są wykrywalne(servery skanują twoje procesy, mimo, ze często się do tego nie przyznają)
    - Bo lepiej połowić trochę rybek oraz zrobić kilka run podczas wyjścia z psem bądź pójścia do kąpieli
    - Za darmo to i ocet słodki

    Masz pythona? instalowałeś różne biblioteki do niego? znasz się na kodowaniu?

    Dobra załóżmy, że masz to gdzieś i totalnie nie wiesz o czym mowa(ja też) zrób tak:

    1. Zainstaluj Pythona (jeśli jeszcze nie masz)

    • Pobierz ze strony: https://www.python.org/downloads/windows/
    • Podczas instalacji zaznacz opcję „Add Python to PATH”
    • Po instalacji otwórz wiersz polecenia, czyli konsole CMD, włączasz pasek na dole klikasz wyszukaj i wpisujesz CMD, czyli wiersz polecenia, otwarte?

    2. Zainstaluj wymagane biblioteki

    Twój skrypt używa następujących bibliotek:
    📦 Lista wymaganych pakietów:

    • pyautogui
    • pillow (dla ImageGrab i ImageChops)
    • pynput

    🧱 Instalacja wszystkiego naraz:

    Otwórz cmd i wpisz:
    pip install pyautogui pillow pynput
    EWENTUALNIE:
    python -m pip install --upgrade pip
    pip install pyautogui pillow pynput
    Masz już wszystko co trzeba aby odpalić skrypt, chyba nie zbyt skomplikowane =]

    Otwierasz w jakims folderze zwykly notatnik, tam wklepujesz kod czyli:

    Kod :
    import pyautogui
    import time
    import random
    from PIL import ImageGrab, ImageChops
    from pynput import keyboard
    import threading
    import traceback
    
    
    running = True
    paused = False
    mouse_lock = threading.Lock()
    pause_lock = threading.Lock()
    blank_rune_color = None
    
    
    def log_error(e):
        with open("bot_errors.log", "a") as f:
            f.write(traceback.format_exc() + "\n")
    
    
    def on_press(key):
        global paused
        if key == keyboard.Key.f8:
            with pause_lock:
                paused = not paused
            print("▶️ Bot wznowiony." if not paused else "⏸️ Bot zapauzowany.")
    
    
    keyboard.Listener(on_press=on_press).start()
    
    
    def get_position(name):
        input(f"🖱️ Ustaw myszkę na {name} i naciśnij ENTER...")
        pos = pyautogui.position()
        print(f"{name} pozycja: {pos}")
        return pos
    
    
    def is_similar_color(rgb1, rgb2, tolerance=35):
        return all(abs(a - b) <= tolerance for a, b in zip(rgb1, rgb2))
    
    
    def is_water_color(rgb):
        ref = (30, 80, 200)
        return is_similar_color(rgb, ref, tolerance=30)
    
    
    def find_water_tiles(area_top_left, area_bottom_right):
        print("🔍 Szukam kratek z wodą...")
        screenshot = ImageGrab.grab(bbox=(area_top_left[0], area_top_left[1], area_bottom_right[0], area_bottom_right[1]))
        width, height = screenshot.size
        tile_size = 32
        water_tiles = []
    
    
        for y in range(0, height - tile_size, tile_size):
            for x in range(0, width - tile_size, tile_size):
                try:
                    pixel_color = screenshot.getpixel((x + tile_size // 2, y + tile_size // 2))
                    if is_water_color(pixel_color):
                        screen_x = area_top_left[0] + x + tile_size // 2
                        screen_y = area_top_left[1] + y + tile_size // 2
                        water_tiles.append((screen_x, screen_y))
                except:
                    continue
    
    
        print(f"💧 Znaleziono {len(water_tiles)} kratek z wodą.")
        return water_tiles
    
    
    def wait_if_paused():
        while True:
            with pause_lock:
                if not paused:
                    break
            time.sleep(0.5)
    
    
    def fish(fishing_rod_pos, water_tiles):
        global running
        print("🎣 Rozpoczynam łowienie...")
    
    
        while running:
            duration = random.uniform(60, 120)
            print(f"🕒 Nowa runda łowienia: {int(duration)} sekund.")
            start_time = time.time()
    
    
            while time.time() - start_time < duration:
                wait_if_paused()
                try:
                    with mouse_lock:
                        pyautogui.moveTo(fishing_rod_pos)
                        pyautogui.rightClick()
                        time.sleep(random.uniform(0.2, 0.4))
    
    
                        tile = random.choice(water_tiles)
                        pyautogui.moveTo(tile)
                        pyautogui.leftClick()
    
    
                    time.sleep(random.uniform(0.4, 0.8))
                except Exception as e:
                    log_error(e)
                    time.sleep(1)
    
    
            print("⏱️ Koniec rundy łowienia.")
            break_time = random.uniform(300, 780)
            print(f"⏸️ Przerwa przed kolejnym cyklem łowienia: {int(break_time // 60)} minut.")
            time.sleep(break_time)
    
    
    def eat_fish(fish_pos):
        global running
        print("🍽️ Rozpoczynam jedzenie ryb...")
    
    
        while running:
            wait_if_paused()
            time_until_eat = random.uniform(420, 780)
            time.sleep(time_until_eat)
    
    
            click_count = random.randint(5, 9)
            print(f"🍴 Jedzenie ryby ({click_count} razy)")
    
    
            try:
                with mouse_lock:
                    pyautogui.moveTo(fish_pos)
                    for _ in range(click_count):
                        wait_if_paused()
                        pyautogui.rightClick()
                        time.sleep(random.uniform(0.3, 0.7))
            except Exception as e:
                log_error(e)
    
    
    def monitorowanie(monitor_top_left, monitor_bottom_right, check_interval=1.0):
        global running, paused
        print("🖥️ Monitorowanie obszaru pod kątem zmian uruchomione...")
    
    
        prev_screenshot = ImageGrab.grab(bbox=(monitor_top_left[0], monitor_top_left[1], monitor_bottom_right[0], monitor_bottom_right[1]))
        last_trigger_time = 0
        cooldown = 5
    
    
        while running:
            wait_if_paused()
    
    
            current_screenshot = ImageGrab.grab(bbox=(monitor_top_left[0], monitor_top_left[1], monitor_bottom_right[0], monitor_bottom_right[1]))
            diff = ImageChops.difference(prev_screenshot, current_screenshot)
            bbox = diff.getbbox()
    
    
            if bbox and (time.time() - last_trigger_time) > cooldown:
                print("⚠️ Zmiana wykryta! Wysyłam Ctrl + L i wstrzymuję bota.")
                with mouse_lock:
                    pyautogui.keyDown('ctrl')
                    pyautogui.press('l')
                    pyautogui.keyUp('ctrl')
    
    
                with pause_lock:
                    paused = True
                last_trigger_time = time.time()
                prev_screenshot = current_screenshot
    
    
            time.sleep(check_interval)
    
    
    def robienie_run(blank_rune_positions):
        global running, blank_rune_color
        print("🏃‍♂️ Uruchomiono funkcję robienia run.")
    
    
        while running:
            wait_if_paused()
            time.sleep(random.uniform(300, 480))  # ⏱️ Zmieniony interwał: 5–8 minut
    
    
            try:
                wait_if_paused()
                print("🔍 Sprawdzam pozycje Blank Rune...")
                current_color = ImageGrab.grab().getpixel(blank_rune_positions[0])
    
    
                if is_similar_color(current_color, blank_rune_color, tolerance=35):
                    print("✅ Blank Rune znaleziona. Używam F1.")
                    with mouse_lock:
                        pyautogui.press('f1')
    
    
                    time.sleep(random.uniform(0.5, 1.5))  # ⏱️ Czekaj aż F1 zadziała
    
    
                    new_color = ImageGrab.grab().getpixel(blank_rune_positions[0])
                    if is_similar_color(new_color, blank_rune_color, tolerance=35):
                        print("🛑 Blank Rune nadal aktualna – nie przenoszę nowej.")
                        continue
                    else:
                        print("⚠️ Blank Rune zużyta – przenoszę nową.")
                else:
                    print("❌ Blank Rune nie została znaleziona w pierwszej pozycji. Przenoszę nową.")
    
    
                for pos in blank_rune_positions[1:]:
                    wait_if_paused()
                    current_color = ImageGrab.grab().getpixel(pos)
                    if is_similar_color(current_color, blank_rune_color, tolerance=35):
                        print(f"🔄 Przenoszę Blank Rune z pozycji {pos} na pierwszą.")
                        with mouse_lock:
                            pyautogui.moveTo(pos)
                            pyautogui.mouseDown()
                            time.sleep(0.2)
                            pyautogui.moveTo(blank_rune_positions[0])
                            pyautogui.mouseUp()
                        break
            except Exception as e:
                log_error(e)
    
    
    def main():
        global running, blank_rune_color
    
    
        try:
            fishing_rod_pos = get_position("WĘDKĘ (fishing rod)")
            area_top_left = get_position("GÓRNY LEWY róg obszaru wody")
            area_bottom_right = get_position("DOLNY PRAWY róg obszaru wody")
            fish_pos = get_position("Pozycja ryb")
            monitor_top_left = get_position("GÓRNY LEWY róg OBSZARU MONITOROWANEGO")
            monitor_bottom_right = get_position("DOLNY PRAWY róg OBSZARU MONITOROWANEGO")
    
    
            blank_rune_positions = [
                get_position("POZYCJA 1 Blank Rune (główna)"),
                get_position("POZYCJA 2 Blank Rune"),
                get_position("POZYCJA 3 Blank Rune"),
                get_position("POZYCJA 4 Blank Rune")
            ]
    
    
            blank_rune_color = ImageGrab.grab().getpixel(blank_rune_positions[0])
            print(f"🎨 Zapisany kolor Blank Rune: {blank_rune_color}")
    
    
            water_tiles = find_water_tiles(area_top_left, area_bottom_right)
    
    
            if not water_tiles:
                print("❌ Nie znaleziono kratek z wodą.")
            else:
                threading.Thread(target=fish, args=(fishing_rod_pos, water_tiles), daemon=True).start()
                threading.Thread(target=eat_fish, args=(fish_pos,), daemon=True).start()
                threading.Thread(target=monitorowanie, args=(monitor_top_left, monitor_bottom_right), daemon=True).start()
                threading.Thread(target=robienie_run, args=(blank_rune_positions,), daemon=True).start()
    
    
                while running:
                    time.sleep(1)
    
    
        except KeyboardInterrupt:
            running = False
            print("⛔ Bot zatrzymany przez użytkownika.")
        except Exception as e:
            log_error(e)
    
    
    if __name__ == "__main__":
        main()
    plik>zapisz jako>wpisujesz bot.py>linijkę niżej wybierasz wszystkie pliki>tyle, zapisuj i git

    Odpalasz to wyskakuje konsola

    1. Najeżdżasz myszka na wędkę(najlepszy jest torch spot) klikasz enter
    2. Najeżdżasz myszka na górny lewy ekran łowienia klikasz enter
    3. Najeżdżasz myszka na prawy dolny ekran łowienia klikasz enter
    4. Najeżdżasz myszka na miejsce skąd brać food(najlepsze jest miejsce pod tobą, bo jak masz pełny plecak bądź jego brak ryby zlatują pod ciebie) klikasz enter
    5. Najeżdżasz myszka na góra lewo miejsce do śledzenia ekranu(dla mnie jest to okienko battle, dla ciebie może być to cokolwiek) klikasz enter
    6. Najeżdżasz myszka na prawo dół miejsce do śledzenia ekranu(dla mnie jest to okienko battle, dla ciebie może być to cokolwiek) klikasz enter
    7. Najeżdżasz myszka na blank runke w łapie i klikasz enter
    8. Najeżdżasz myszka na miejsce skąd brać blank rune i klikasz enter
    9. Najeżdżasz myszka na 2 miejsce skąd brać blank rune i klikasz enter(ewentualnie)
    10. Najeżdżasz myszka na 3 miejsce skąd brać blank rune i klikasz enter(ewentualnie)

    Po tych krokach bot startuje z łowieniem, robieniem run które masz pod hotkeyem f1, jedzeniem fooda spod siebie oraz jeśli ktoś pojawi się na ekranie wyloguje naszą postać, jak cos nie działa to cos robisz źle testowałem na czystym windowsie i działa

    Skróty klawiszowe
    f8 - pauza bota/wznowienie
    f7 - pauza samego lowienia

    PS: bot ktorym się dzielę jest bezpłatną wersją, jest to podstawowa wersja bota, który przy odrobinie sprytu jest ciężki do wykrycia na jakimkolwiek serverze, każdy z timerów jest losowy, bot wykonuje czynności jak najbardziej zbliżone do czynności które wykonuje człowiek.

    Masz pytania? Pisz w komentarzu :}

  2. #2
    Avatar moth
    Data rejestracji
    2007
    Położenie
    Gdańsk
    Wiek
    39
    Posty
    16,158
    Siła reputacji
    28

    Domyślny

    dzięki wjeżdżam na tibiantisa mam nadzieje że @Tibiarz ; będzie łaskawy skoro i tak zdechlaczek

  3. #3
    Avatar Taca
    Data rejestracji
    2012
    Położenie
    Kraków
    Posty
    10,383
    Siła reputacji
    19

    Domyślny

    pogromca kutasioka
    Cytuj Lord Xivan napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    jak riot games zakrecony niekumaty sam nie wie

  4. Reklama
  5. #4
    Avatar lemurek
    Data rejestracji
    2006
    Wiek
    30
    Posty
    1,820
    Siła reputacji
    20

    Domyślny

    xD

  6. #5
    Avatar Exteriuss
    Data rejestracji
    2009
    Wiek
    32
    Posty
    1,332
    Siła reputacji
    16

    Domyślny

    Haka mialem przez cb
    Okręt wpada w mroczną toń,
    Nam nie straszny w bitwie zgon,
    W dłoni groźnie błyska broń,
    Śmierć już wieńczy naszą skroń,
    Kobiet miałem cały rój,
    Już nie dla mnie ziemski znój !

  7. #6

    Data rejestracji
    2025
    Posty
    17
    Siła reputacji
    0

    Domyślny

    dzieki za eq z twojego 11 sorca na tibiantisie
    Cytuj Exteriuss napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Haka mialem przez cb

  8. Reklama
  9. #7
    Avatar Profesorek
    Data rejestracji
    2009
    Położenie
    Białystok
    Posty
    8,217
    Siła reputacji
    21

    Domyślny

    na tibiantisie smiga elegancko
    Cytuj midas_odwolanie napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Zresztą technicznie konto midas, Ciebie nie obraziło tylko midas_odwołanie, a rzecz się rozchodzi o drugie konto. Anyways dla niektórych tutaj nazywanie biedą, a nie np. rynsztokiem umysłowym (który reprezentują) powinno być komplementem, a nie obrazą.

    https://www.twitch.tv/profesorek_

    https://vocaroo.com/13aFK7qOYBjP

  10. #8

    ⬛★ Użytkownik TORG VIP ★⬛ rosen jest teraz offline
    Avatar rosen
    Data rejestracji
    2014
    Wiek
    56
    Posty
    2,616
    Siła reputacji
    12

    Domyślny


  11. #9

    Data rejestracji
    2025
    Posty
    17
    Siła reputacji
    0

    Domyślny

    Nie ma otsa na którym to nie śmiga, ale testowane było przez 3 tygodnie na tibiantis/tibiara po 10-20h dziennie biegalo
    Cytuj Profesorek napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    na tibiantisie smiga elegancko

  12. Reklama
  13. #10
    Avatar Koczek
    Data rejestracji
    2010
    Wiek
    33
    Posty
    10,903
    Siła reputacji
    23

    Domyślny

    na tibiantisie roty idą lepiej jak na kurasioku
    DZIABNIJ SIĘ ARIS

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. [ELF BOT]Server Save a bot?
    Przez Samouwielbienie w dziale Tibia
    Odpowiedzi: 2
    Ostatni post: 05-03-2010, 18:23

Tagi tego tematu

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •