Anasayfa
UO Sunucular
Forumlar
Profilim
Merhaba ,

Size yine özel bir katkı sağlayacak maden kazmak için script paylaşıyorum.

F1-F2-F3-F4 tuşları ile çalışmaktadır. ( Başlat / Durdur )

ALT + 1 = Pickaxe Konumu
ALT + 2 = F1 ile maden başlatırken kazacağı yön için konum (1 adım önü)
ALT + 3 = F2 ile maden başlatırken kazacağı yön için konum (1 adım önü)
ALT + 4 = F3 ile maden başlatırken kazacağı yön için konum (1 adım önü)
ALT + 5 = F4 ile maden başlatırken kazacağı yön için konum (1 adım önü)
#SingleInstance Force
#NoEnv
SendMode, Input
SetBatchLines, -1
#MaxThreadsPerHotkey 1

; ========= Global =========
global devam := false
global aktifSet := 0               ; 2..5 => (koordinat1, koordinatN)
global dosyaYolu := "ayar.ini"
global a1 := "", a2 := "", b1 := "", b2 := ""   ; aktif X/Y çifti

; ========= Kısayollar =========
; F1 = koordinat1 & koordinat2
; F2 = koordinat1 & koordinat3
; F3 = koordinat1 & koordinat4
; F4 = koordinat1 & koordinat5
F1::StartOrToggle(2)
F2::StartOrToggle(3)
F3::StartOrToggle(4)
F4::StartOrToggle(5)

; Acil durdurma
Esc::StopAll()

; Koordinat kaydetme (Alt + 1..5)
!1::SaveCoord(1)
!2::SaveCoord(2)
!3::SaveCoord(3)
!4::SaveCoord(4)
!5::SaveCoord(5)

; Durumu göster (isteğe bağlı): Ctrl+F
^f::
    TrayTip, Otomasyon,
    (Join`n
    Aktif Set: %aktifSet%  (1 & %aktifSet%)
    a=(%a1%,%a2%)  b=(%b1%,%b2%)
    ), 2
return

; ========= Yardımcılar =========
StartOrToggle(idx) {
    global devam, aktifSet
    ; Aynı set çalışıyorsa F tuşuna tekrar basmak durdursun
    if (devam && aktifSet = idx) {
        StopAll()
        return
    }
    ; Yeni set: Koordinatları ATA ve başlat
    if (!SetActivePair(idx)) {
        return
    }
    aktifSet := idx
    devam := true
    SetTimer, Hyper, Off
    SetTimer, Hyper, 50
    TrayTip, Otomasyon, Başladı: koordinat1 & koordinat%idx%, 1
}

StopAll() {
    global devam
    devam := false
    SetTimer, Hyper, Off
    TrayTip, Otomasyon, Durduruldu, 1
}

; INI'den okuyup AKTİF (a1,a2) ve (b1,b2) değerlerini ATAR
SetActivePair(idx) {
    global a1, a2, b1, b2
    if (!GetCoord(1, ax, ay)) {
        TrayTip, Otomasyon, koordinat1 ayarlı değil!, 2
        return false
    }
    if (!GetCoord(idx, bx, by)) {
        TrayTip, Otomasyon, koordinat%idx% ayarlı değil!, 2
        return false
    }
    a1 := ax, a2 := ay
    b1 := bx, b2 := by
    return true
}

; 10ms parçalarla bekler; arada F1..F4/ESC ile anında kesilir
WaitOrStop(ms) {
    global devam
    step := 10, elapsed := 0
    while (elapsed < ms) {
        if (!devam)
            return false
        Sleep, %step%
        elapsed += step
    }
    return true
}

SaveCoord(n) {
    global dosyaYolu
    CoordMode, Mouse, Screen
    MouseGetPos, x, y
    key  := "koordinat" . n
    IniWrite, %x%`,%y%, %dosyaYolu%, Ayar, %key%

    isim := (n = 1) ? "Pickaxe (Kazma) Koordinatı" : "Yürüme Koordinatı"
    Tooltip, % isim " [" key "] = " x "," y
    Sleep, 1200
    Tooltip
}

GetCoord(n, ByRef x, ByRef y) {
    global dosyaYolu
    key := "koordinat" . n
    IniRead, val, %dosyaYolu%, Ayar, %key%,
    if (ErrorLevel || val = "")
        return false
    StringSplit, p, val, `,
    x := p1, y := p2
    if (x = "" || y = "")
        return false
    return true
}

; ========= Ana iş döngüsü =========
Hyper:
if (!devam)
    return

; reentrancy kapat
SetTimer, Hyper, Off

; --- Adım 1 ---
if (!devam)
    return
MouseClick, left, a1, a2, 2
MouseClick, left, b1, b2

; --- Adım 2 ---
if (!WaitOrStop(3000))
    return
if (!devam)
    return
MouseClick, left, a1, a2, 2
MouseClick, left, b1, b2

; --- Adım 3 ---
if (!WaitOrStop(3000))
    return
if (!devam)
    return
MouseClick, left, a1, a2, 2
MouseClick, left, b1, b2

; --- Adım 4 ---
if (!WaitOrStop(3000))
    return
if (!devam)
    return
MouseClick, right, b1, b2

; döngü devamı
if (devam)
    SetTimer, Hyper, 50
return

UO-Dev SPONSOR

UO-Dev SPONSOR

Henüz yorum yapılmamış. Yorum yazabilmek için giriş yapmanız gerekir.

Üyelerin oylama ortalaması (10 dışında) :

Henüz Oylanmamış

Oylar: 0