Automatischer Spielelogin, Array gibt falsche Koordinaten aus!?

  • Hallo,

    wie der ein oder andere mit Sicherheit weiß, schreibe ich gerade ein Tool das mich automatisch in ein Spiel (Battlefied2PR) einloggt.
    Alle X und Y-Koordinaten die ich zur Mausnavigation benötige habe ich in ein Array gespeichert die später dann an MouseMove ausgegeben werden.
    Doch leider entsprechen die aus dem Array gelieferten Werte nicht denen die ich im Array angegeben habe, gebe ich die gleiche Werte manuell an MouseMove klappt das... was liefert das Array dann falsch?

    Hier mal der Code den ich bis jetzt geschrieben habe :
    (es ist erst Version 1, später will ich es Dynamischer für den User gestalten)

    [autoit]

    #comments-start

    [/autoit][autoit][/autoit][autoit]

    **ProjectReality Starter**

    [/autoit][autoit][/autoit][autoit]

    Array:$ScreenCoords enthält die Koordinaten der einzelnen Screens in vorm von X und Y
    #comments-end

    [/autoit][autoit][/autoit][autoit]

    Local $LoadTime[5]
    Local $ScreenCoords[10]
    Local $GameFile = "C:\Programme\EA GAMES\Battlefield 2\mods\pr\pr.exe"

    [/autoit][autoit][/autoit][autoit]

    $LoadTime[0] = 40000
    $LoadTime[1] = 110000
    $LoadTime[2] = 3000
    $LoadTime[3] = 3000
    $LoadTime[4] = 5000
    ;---------------------
    $ScreenCoords[0] = 30
    $ScreenCoords[1] = 719
    $ScreenCoords[2] = 43
    $ScreenCoords[3] = 759
    $ScreenCoords[4] = 53
    $ScreenCoords[5] = 718
    $ScreenCoords[6] = 344
    $ScreenCoords[7] = 214
    $ScreenCoords[8] = 418
    $ScreenCoords[0] = 250 ; <------ DA WAR DER ZWEITE FEHLER!
    Run($GameFile)
    If @error <> 0 Then
    MsgBox(0x10,"Fehler beim Laden von PR","StartLogin kann nicht ausgeführt werden, da"&@CRLF&"die pr.exe nicht im Standardverzeichniss existiert!"& _
    @CRLF&@CRLF&"Standardverzeichnis ist:"&@CRLF&$GameFile)
    Exit
    Else
    MsgBox(0,"StartLogin","StartLogin wird erfolgreich gestartet.....",2)
    MouseMove(0,0)
    Screen1()
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Func Screen1()
    Sleep($LoadTime[0])
    MouseMove(0,0)

    [/autoit][autoit][/autoit][autoit]

    MouseMove($ScreenCoords[0],$ScreenCoords[1]) ;<--------- die Werte werden anscheinend falsch interpretiert... manuelle eingabe geht
    MouseClick("left")
    EndFunc

    [/autoit]

    PS: bevor wieder der ein oder andere auf krumme gedanken kommt: nein, das ist kein BOT

    2 Mal editiert, zuletzt von studroa (1. Januar 2010 um 17:17)

  • Nicht Local deklarieren, sondern Global. Du benutzt die Variablen ja auch in Funktionen.

    Hi,

    omg... ich vollpfosten... habe Local mit Global verwechselt... (bin wohl noch nicht ganz nüchtern)
    Danke dir :thumbup:

  • Hi,

    habe jetzt die Arrays Global deklariert... das Problem besteht leider immernoch... was hat das zu bedeuten?

    Quatsch, habe das Problem gefunden... habe das Array mit 2 mal [0] initialisiert....
    Gelöst!