Sosyal açıldı! Bir göz at → Hemen gir →

⭐ Python makro oto rpr oto hp mp basit örnekler

Accsmarket

KY Kıdemli Üye
KAYIT
5 Ağu 2024
Mesajlar
261
Tepki puanı
1
Yeni başlamak isteyenlere basit örnek


PyAutoGUI fare ve klavye kontrollerini otomatikleştirmek için güçlü bir araçtır.


Kod:
pip install pyautogui
Oyun Ekranında İlgili Bölgelerin Koordinatlarını Belirleme

PyAutoGUI'deki position() fonksiyonunu kullanarak bu koordinatları belirleyebiliriz.

Kod:
Kod:
import pyautogui

print(pyautogui.position())  # Mouse imlecinin bulunduğu koordinatları yazdırır
Bu komutu çalıştırarak imlecinizi ilgili noktalara getirin ve koordinatları not edin.

PyAutoGUI ile Otomasyon Scripti Oluşturma

Şimdi, belirlediğimiz koordinatlarla otomasyon scriptimizi yazalım. Bu örnekte, silahın dayanıklılığı belirli bir seviyeye düştüğünde tamir işlemini gerçekleştireceğiz ve tekrar yaratık alanına döneceğiz.
Kod:
Kod:
import pyautogui
import time

# Fonksiyonlar
def check_durability():
    # Dayanıklılığı kontrol etme (bu kısım oyunun nasıl bilgi verdiğine bağlı)
    # Örnek olarak dayanıklılığı ekrandan okuyarak kontrol edebilirsiniz (OCR kullanılabilir)
    return pyautogui.locateOnScreen('durability_warning.png') is not None

def repair_weapon():
    # Tamir etmek için kasabaya gitme
    pyautogui.click(x=1000, y=500)  # Kasaba simgesi
    time.sleep(5)  # Kasabaya gitme süresi

    # Sundries NPC ile etkileşim
    pyautogui.click(x=800, y=600)  # Sundries NPC
    time.sleep(2)

    # Tamir etme
    pyautogui.click(x=900, y=700)  # Tamir seçeneği
    time.sleep(2)

    # Geri dönme
    pyautogui.click(x=1000, y=500)  # Yaratık alanı
    time.sleep(5)

def main():
    while True:
        if check_durability():
            repair_weapon()
        # Bekleme süresi
        time.sleep(10)

if __name__ == "__main__":
    main()
Notlar
  1. Durability Kontrolü: Dayanıklılığı kontrol etme kısmı oyununuzun nasıl bilgi verdiğine bağlı olarak değişebilir. Bu örnekte, dayanıklılığın azaldığını belirten bir görüntü (durability_warning.png) tespit edilerek dayanıklılık kontrolü yapılmıştır. Gerekirse OCR (Optical Character Recognition) kullanarak dayanıklılık değerini okuyabilirsiniz.
  2. Koordinatlar: Koordinatlar, sizin oyundaki ilgili noktalara göre değişecektir. Belirlediğiniz koordinatları scriptte kullanmalısınız.
  3. Bekleme Süreleri: Oyundaki yükleme sürelerine göre time.sleep() fonksiyonlarıyla bekleme sürelerini ayarlamanız gerekebilir.
OTO HP MP

Yukardaki örnekde PyAutoGUI kütüphanesini yüklemiştik şimdi OpenCV kütüphanesini yüklüyoruz

Kod:
pip install pyautogui opencv-python
1. Can ve Mana Seviyelerini İzlemek için Ekran Görüntüsü Alma
Can ve mana barlarının ekran görüntüsünü belirli aralıklarla alarak bu görüntüleri analiz edeceğiz.

Kod:
Kod:
import pyautogui
import cv2
import numpy as np
import time

# Can ve mana barlarının bulunduğu bölgelerin koordinatları
HEALTH_BAR_REGION = (100, 50, 200, 20)  # X, Y, Width, Height
MANA_BAR_REGION = (100, 80, 200, 20)

# Kırmızı ve mavi renklerin aralıkları (BGR formatında)
RED_LOWER = np.array([0, 0, 150])
RED_UPPER = np.array([50, 50, 255])
BLUE_LOWER = np.array([150, 0, 0])
BLUE_UPPER = np.array([255, 50, 50])

def get_bar_percentage(region, lower_color, upper_color):
    screenshot = pyautogui.screenshot(region=region)
    frame = np.array(screenshot)
    mask = cv2.inRange(frame, lower_color, upper_color)
    percentage = cv2.countNonZero(mask) / (region[2] * region[3])
    return percentage

def use_health_potion():
    pyautogui.press('1')  # Can potunun kısayolu

def use_mana_potion():
    pyautogui.press('2')  # Mana potunun kısayolu

def main():
    while True:
        health_percentage = get_bar_percentage(HEALTH_BAR_REGION, RED_LOWER, RED_UPPER)
        mana_percentage = get_bar_percentage(MANA_BAR_REGION, BLUE_LOWER, BLUE_UPPER)
        
        if health_percentage < 0.3:  # Can %30'un altına düştüğünde
            use_health_potion()
        
        if mana_percentage < 0.3:  # Mana %30'un altına düştüğünde
            use_mana_potion()
        
        time.sleep(1)  # Her 1 saniyede bir kontrol et

if __name__ == "__main__":
    main()
  1. Can ve Mana Barlarının Koordinatları: HEALTH_BAR_REGION ve MANA_BAR_REGION ile can ve mana barlarının ekran üzerindeki bölgelerini belirledik. Bu koordinatları oyununuza göre ayarlamanız gerekebilir.
  2. Renk Aralıkları: Can ve mana barlarının kırmızı ve mavi renk aralıklarını RED_LOWER, RED_UPPER, BLUE_LOWER, BLUE_UPPER ile tanımladık. Bu değerleri oyununuza göre ayarlayabilirsiniz.
  3. Ekran Görüntüsü ve Renk Tespiti: get_bar_percentage fonksiyonu, belirli bir bölgede verilen renk aralığındaki piksel yoğunluğunu hesaplar.
  4. Can ve Mana Kullanımı: use_health_potion ve use_mana_potion fonksiyonları, can ve mana potlarının kısayollarını kullanarak bu işlemleri gerçekleştirir.
  5. Ana Döngü: main fonksiyonunda her 1 saniyede bir can ve mana seviyeleri kontrol edilerek gerekli işlemler yapılır.
Otomatik seçilen yaratıga vurma

Adımlar
  1. Hedef Yaratığın Görüntüsünü Alma
  2. Ekranda Hedef Yaratığı Tanıma
  3. Hedef Yaratığı Otomatik Vurma
1. Hedef Yaratığın Görüntüsünü Alma
Öncelikle, hedef yaratığın (örneğin troll) ekran görüntüsünü alın ve bu görüntüyü bir dosya olarak kaydedin. Bu dosya daha sonra hedef yaratığı tanımak için kullanılacaktır.

2. Ekranda Hedef Yaratığı Tanıma
OpenCV kullanarak belirli bir yaratığı tanımak için görüntü eşleştirme işlemi yapacağız. Hedef yaratığın görüntüsünü tanımlamak için bu görüntüyü yükleyip ekranda arayacağız.

3. Hedef Yaratığı Otomatik Vurma
Hedef yaratığı tanıdıktan sonra, PyAutoGUI ile yaratığa tıklayıp saldırı işlemini gerçekleştireceğiz.

Örnek Kod

Kod:
Kod:
import pyautogui
import cv2
import numpy as np
import time

# Hedef yaratığın ekran görüntüsü dosyasının yolu
TARGET_IMAGE_PATH = 'troll.png'

# Hedef yaratığı tespit etmek için bir eşik değeri
THRESHOLD = 0.8

def locate_target(image_path):
    screenshot = pyautogui.screenshot()
    screenshot = cv2.cvtColor(np.array(screenshot), cv2.COLOR_BGR2RGB)
    
    target_image = cv2.imread(image_path, cv2.IMREAD_COLOR)
    result = cv2.matchTemplate(screenshot, target_image, cv2.TM_CCOEFF_NORMED)
    locations = np.where(result >= THRESHOLD)
    
    if len(locations[0]) > 0:
        return pyautogui.center(locations)
    return None

def attack_target(target_location):
    if target_location:
        pyautogui.click(target_location)  # Hedefe tıklama
        pyautogui.press('space')  # Saldırı tuşu (oyuna göre değişebilir)

def main():
    while True:
        target_location = locate_target(TARGET_IMAGE_PATH)
        if target_location:
            attack_target(target_location)
        time.sleep(1)  # Her 1 saniyede bir kontrol et

if __name__ == "__main__":
    main()
  1. locate_target: Bu fonksiyon, ekran görüntüsünü alır ve hedef yaratığın görüntüsünü ekranda arar. Eğer hedef yaratık tespit edilirse, hedefin merkezi koordinatları döndürülür.
  2. attack_target: Bu fonksiyon, hedef yaratığın bulunduğu koordinatlara tıklayarak ve saldırı tuşuna basarak yaratığa saldırır.
  3. main: Ana döngüde, belirli aralıklarla hedef yaratığı kontrol edip saldırı işlemini gerçekleştirir.
  • TARGET_IMAGE_PATH: Hedef yaratığın görüntüsünün dosya yolunu belirtin. Bu görüntü, belirli bir yaratığın ekran görüntüsü olmalıdır.
  • THRESHOLD: Eşleştirme işlemi için bir eşik değeri kullanılır. Bu değer, hedef yaratığın doğru bir şekilde tanınması için ayarlanmalıdır.
  • Saldırı Tuşu: pyautogui.press('space') komutu, saldırı işlemini gerçekleştirir. Bu tuşu oyununuzda saldırı için kullandığınız tuşa göre değiştirebilirsiniz.
  • Koordinat Ayarları: pyautogui.center(locations) fonksiyonu, hedefin merkezi koordinatlarını döndürür. Eğer bu şekilde doğru sonuç alamıyorsanız, locations değişkenini kullanarak farklı koordinat hesaplamaları yapabilirsiniz.
 
Anasayfa Kayıt ol Giriş yap
Üst Alt