Wie genau umsetzen?

  • Hi,

    wie der ein oder andere weiß, habe ich zwar erfahrung in der programmierung bin aber serh neu bei AutoIt.

    Ich habe folgendes Problem:

    Ich möchte mit einem Script ein Spiel starten:

    Das Spiel lädt, es kommt ein Intro usw., das dauert ca. 30 Sekunden.
    Danach kommt das Login, es reicht ein "Enter".

    Nach weiteren ca. 2 Minuten kommt das MainMenü
    Dort möchte ich den Eintrag "Join Internet" auswählen, dann wiederum kommt eine Liste mit einer Suchleiste, dort möchte
    ich nun einen Server suchen und auf "Join" gehen.

    Fertig.

    Wie setzt man sowas um?

  • Ich denke mal, dass es dort keine Controls gibt, welche man mit Controlclick anklicken könnte. D.H. erst einmal, Pixelchecksums... und dann vllt mit send und mousemove / click arbeiten.

  • Ich weis ncit ob das jetzt gegen die Forenregeln verstöst aber egal ;)

    Also die einfache (und fehleranfällige) Möglichkeit wäre einfach mit ner Stoppuhr die Zeit zum Laden stoppen, noch ein bisschen dazugeben und dann einfach mit send usw das ganze zu machen.

    Andere Möglichkeit wäre, zu versucen die Controls auszulesen, bzw ob die Voranden sind od so^^. Wie genau kommt auf das Spiel an.

    Dann das einloggen auf dem Server halt auf dem gleichen prinzip.

    mfg

    Computers are like Airconditioning. They don´t work with open Windows.

  • SRO?
    Also wenn es wirklich möglich ist da eine Zuverlässige Anmeldung hinzubekommen, sollte das gegen keine Regel verstossen.
    Es greift ja nicht aktiv ins Spielgeschehen ein.
    Nur wenn es keine Controls zum auslesen gibt, wird das bestimmt ziemlich schwer. Weil eine Stoppuhr und das dann auf Zeit machen? Naja ich weis net.

    MfG
    Der_Doc

  • Weil eine Stoppuhr und das dann auf Zeit machen?

    Wofür gibts den PixelChecksums / PixelSearch / ImageSearch?

    [autoit]


    Do
    Sleep(250)
    Until PixelChecksum(...) = "123123414214214"
    ; oder
    Until PixelGetColor(...) = "0xFF00FF"
    ;usw und so fort..

    [/autoit]

    Dann braucht man auch keine Controls anklicken/auswerten.(Die sowieso nie vorhanden sein werden - es ist immerhin ein spiel und es würde mich wundern, da eine Control zu finden)

    Außerdem bezweifel ich, dass es hier um SRO geht. Das ist doch ein pures MMorpg oder? Wenn man im Hauptmenü "Join Internet" auswählen kann, geh ich mal davon aus, dass man das Spiel uach offline spielen kann ;).

    Es wäre aber trotzdem schön zu erfahren, um welches Spiel es geht. SO kann der eine oder andere villeicht helfen ein Konzept zu erarbeiten.

    zB: Hat das MainMenu einen 100% beweglichen Hintergrund, und der Teil wo man join internet auswählen kann ist auch (halb-)transparent, dann wird das ganze schon wieder schwieriger. Man muss am besten Punkte finden die immer die gleichen Pixel(farben) haben.

  • Hallo!

    es handel sich um eine Modification für Battlefied 2 (ProjectReality/Online und Offline spielbar).

    Es hört sich jetzt doof an, aber ich möchte gerne (bevor ich Spiele (meistens im Clan)) die komplette LogInZeit nutzen
    um noch was zu Trinken oder eine Rauchen da manche Runden sehr lange gehen (Getrunken wird nur in der Küche/Esszimmer niemals am Rechner).

    Es ist halt ziemlich nervig die Ladezeiten und Loginzeiten abzuwarten bevor ich mich auf unseren Server einloggen kann.

    Nutzername und PWD ist schon im Login gespeichert ich brauche da nur ein {ENTER} zu senden, aber wie danach nun
    auf "Join Internet" komme und dann auf den Server joine bleibt mir ein Rätsel...

    Danke für eure Hilfe...

    Achso, was ist SRO?

  • Hier mal ein bisschen "PseudoCode". Ich denke das sollte dir weiterhelfen. Die ganze Arbeit musst natürlich DU machen :P

    PS: SRO = Silkroad Online. Scheinbar fragen hier viele Leute nach Silkroad Bots.

    Spoiler anzeigen
    [autoit]


    Run("Battlefield2.exe")
    WinWait("Battlefield 2")
    If Not WinActive("Battlefield 2") Then WinActivate("Battlefield 2")

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

    Do
    Sleep(100) ; warten,
    Until PixelChecksum(600,300,700,350) = "5293705235235" ; bis eine vordefinierte Prüfsumme an dem Ort gefunden wurde
    ;Im Klartext: Die PixelChecksum ist eine vorher von dir erstellte
    ; Prüfsumme. Also zb. der Join Internet Button, oder irgend eine
    ; andere stelle auf dem Login Screen, die an der gleichen stelle
    ; immer gleich aussieht. Diese kannst du dann (nachdem du sie einmal erstellt hast)
    ; abfragen.
    ; Pseudocode: Warte in 100ms Abständen bis die Fläche zu sehen ist.

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

    MouseClick("left",650,325) ; den Join Internet Button klicken

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

    Do
    Sleep(100)
    Until PixelChecksum(.........) ; bis der nächste screen erscheint.

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

    MouseClick(...) ; auf das Input feld klicken
    Send("Server 1") ; Text eingeben

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

    ;und so weiter.

    [/autoit]
  • Hi,

    hohoho
    und dann gehts mit aimbot weiter ?
    find ich echt klasse :evil:

    lol, wer sagt denn das? Ich möchte mit AutoIt ein Login automatisieren und kein Bot für mich spielen lassen.

    SEuBo: Vielen vielen dank für deine Hilfe! Ich werde mich die nächsten Tage damit ausführlich beschäftigen, gerade dieses "PixelCheckSum" schein sehr interessant zu sein!

    Frohes Fest!