1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

AUTOIT BOT SCRIPT OFFSETS?

Dieses Thema im Forum "Support & Discussion" wurde erstellt von talolike, 29. Oktober 2018.

  1. talolike

    talolike New Member

    Registriert seit:
    16. Juli 2017
    Beiträge:
    9
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    @krusty wie auf Anfrage möchte ich es dir anhand des Codes schildern! Wie im Code zu sehn verstehe ich die Offsets und Coordinaten von manchen Imagesearch/areas nicht wie - Coordinaten entstehen und wie ich diese Finden/errechenen kann?!

    Code (AutoIt):
    ; # Basic
    Func DetectFullscreenToWindowedOffset($hTitle) ; Returns $Offset[4] left, top, right, bottom (Fullscreen returns 0, 0, Width, Height)
        Local $x1, $x2, $y1, $y2
        Local $Offset[4]
        Local $ClientZero[4] = [0, 0, 0, 0]

        WinActivate($hTitle)
        WinWaitActive($hTitle, "", 5)
        WinActivate($hTitle)
        Local $Client = WinGetPos($hTitle)
        If Not IsArray($Client) Then
            SetGUIStatus("E: ClientSize could not be detected")
            Return ($ClientZero)
        EndIf

        If $Client[2] = @DesktopWidth And $Client[3] = @DesktopHeight Then
            SetGUIStatus("Fullscreen detected (" & $Client[2] & "x" & $Client[3] & ") - No Offsets")
            Return ($Client)
        EndIf

        If Not VisibleCursor() Then CoSe("{LCTRL}")
        Opt("MouseCoordMode", 2)
        MouseMove(0, 0, 0)
        Opt("MouseCoordMode", 1)
        $x1 = MouseGetPos(0)
        $y1 = MouseGetPos(1)
        Opt("MouseCoordMode", 0)
        MouseMove(0, 0, 0)
        Opt("MouseCoordMode", 1)
        $x2 = MouseGetPos(0)
        $y2 = MouseGetPos(1)
        MouseMove($x1, $y1, 0)


        $Offset[0] = $Client[0] + $x1 - $x2
        $Offset[1] = $Client[1] + $y1 - $y2
        $Offset[2] = $Client[0] + $Client[2]
        $Offset[3] = $Client[1] + $Client[3]
        For $i = 0 To 3
            SetGUIStatus("ScreenOffset(" & $i & "): " & $Offset[$i])
        Next

        Return ($Offset)
    EndFunc   ;==>DetectFullscreenToWindowedOffset
     


    Code (AutoIt):
    Func InspectFishingrod()
        Local $equip = "res/fishing/equip_" & $LNG & ".png"
        Local $empty = "res/fishing/rod_empty.png"
        Local $WeaponOffSet[2] = [-10, 400]
        Local $x, $y, $IS = False

        Local $InvA = OCInventory(True)
        If IsArray($InvA) = False Then Return False

        $IS = _ImageSearchArea($equip, 1, $Res[0], $Res[1], $Res[2], $Res[3], $x, $y, 10, "White")
        If $IS = True Then
            SetGUIStatus("Equipment found")
            MouseFreeZone($x - 200, $y - 40, $Res[2], $y + 400, $x, $y - 50)
            Local $WS[4] = [$x + $WeaponOffSet[0] - 24, $y + $WeaponOffSet[1] - 24, $x + $WeaponOffSet[0] + 24, $y + $WeaponOffSet[1] + 24]

            $IS = _ImageSearchArea($empty, 1, $WS[0], $WS[1], $WS[2], $WS[3], $x, $y,203)
     
  2. krusty

    krusty Moderator Mitarbeiter Moderator

    Registriert seit:
    1. Juli 2017
    Beiträge:
    61
    Zustimmungen:
    26
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Wadiya
    Hey talolike,
    sorry für meine späte Antwort.
    Diese erste Funktion berechnet lediglich die Größe eines Fensters.
    Die zweite Funktion sucht zunächst nach dem Bild "equip_???.png".
    Anschließend wird nach dem Bild "rod_empty.png" gesucht, welches um -10x und 400y Koordinaten
    von "equip_???.png" verschoben ist.

    Hast du noch mehr vom Code?
     
    Zuletzt bearbeitet: 2. November 2018
  3. talolike

    talolike New Member

    Registriert seit:
    16. Juli 2017
    Beiträge:
    9
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Ja freilig @krusty :) musste halt in Scite editor oder Notepad++ öffnen kanns leider nicht komplett hier einfügen weil es 4000 Zeichen übersteigt.. oder schau einfach unter dem link: https://github.com/S3anlike/CrayonCode-BDO-FIX/blob/master/CrayonCode_Fishing.au3

    By the way, ist es möglich durch ein Offset finder das irgendwie zu ermittel ich hab da was aber das müsste angepasst werden um das richtige zu suchen
    Code (Text):
    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=\\TEST-PC\D$\Icons\Intellipoint-010.ico
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=Created by Varian L.Styles
    #AutoIt3Wrapper_Run_AU3Check=n
    ;#AutoIt3Wrapper_Run_Obfuscator=y
    ;#Obfuscator_Parameters=/pe/sf/mo/rm
    #AutoIt3Wrapper_Run_Au3Stripper=y  ; Default is n
    #Au3Stripper_Parameters=/pe/sf/mo/rm
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

    #include <Misc.au3>

    Opt('PixelCoordMode', 2)
    Opt('MouseCoordMode', 2)
    Opt('TrayIconDebug', 1)
    Opt('TrayAutoPause', 0)

    _Singleton(@ScriptName, 0)
    ProcessSetPriority(@AutoItPID, 0)
    Global $wPos, $mPos, $mClientPos, $mWindowPos, $Text, $wTitle, $Color

    HotKeySet('{ESC}', '_Quit')

    While 1
        Mouse_Coords()
        ;Sleep(10)
    WEnd

    Func _Quit()
        ToolTip('')
        $Text &= 'Mouse Position/Desktop: ' & $mPos[0] & ',' & $mPos[1] & @CRLF
        $Text &= 'Mouse Position/Window: ' & $mWindowPos[0] & ',' & $mWindowPos[1] & @CRLF
        $Text &= 'Mouse Position/Client: ' & $mClientPos[0] & ',' & $mClientPos[1] & @CRLF
        $wPos = WinGetPos('[ACTIVE]', '')
        $wTitle = StringLeft(WinGetTitle('[ACTIVE]', ''), 15)
        $Text &= '"' & $wTitle & '" Top-Left Coords: ' & $wPos[0] & ',' & $wPos[1] & @CRLF
        $Text &= '"' & $wTitle & '" Window Size: ' & $wPos[2] & ',' & $wPos[3] & @CRLF
        $Text &= 'Color: ' & Hex(PixelGetColor($mClientPos[0], $mClientPos[1]), 6)
        ClipPut($Text)
        MsgBox(0, 'Mouse Position Results', $Text)
        Exit
    EndFunc   ;==>_Quit

    Func Mouse_Coords()
        Local $String
        Opt('MouseCoordMode', 1)
        $mPos = MouseGetPos()
        Opt('MouseCoordMode', 0)
        $mWindowPos = MouseGetPos()
        Opt('MouseCoordMode', 2)
        $mClientPos = MouseGetPos()
        $Color = 'Hex Color: ' & Hex(PixelGetColor($mClientPos[0], $mClientPos[1]), 6)
        $String &= 'Window Title: ' & StringLeft(WinGetTiTle('[ACTIVE]'), 25) & @LF
        $String &= 'Desktop X: ' & $mPos[0] & ' Y: ' & $mPos[1] & @LF
        $String &= 'Window X: ' & $mWindowPos[0] & ' Y: ' & $mWindowPos[1] & @LF
        $String &= 'Client X: ' & $mClientPos[0] & ' Y: ' & $mClientPos[1] & @LF
        ToolTip($String & $Color)
    EndFunc   ;==>Mouse_Coords
     

    Anhänge:

    Zuletzt bearbeitet: 3. November 2018
  4. krusty

    krusty Moderator Mitarbeiter Moderator

    Registriert seit:
    1. Juli 2017
    Beiträge:
    61
    Zustimmungen:
    26
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Ort:
    Wadiya
    Bist du sicher, dass die Offsets nicht mehr aktuell sind?
    Der Code auf Github wurde erst vor ein paar Tagen aktualisiert. Ich möchte mich ungern durch den Code lesen, wenn du einfach updaten kannst ^^
     
  5. talolike

    talolike New Member

    Registriert seit:
    16. Juli 2017
    Beiträge:
    9
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Ja hehe das ist meine github page weil ichs einwenig fixen konnte ^^
    Das ding ist ich check einfach nicht wie man die offsets genau findet im Game..
     

Diese Seite empfehlen

Die Seite wird geladen...