für die nächste Zeit habe ich vor, verschiedenne AutoIt Tutorials zu posten.
Kurz zur Erläuterung des Titels:
Am Anfang des Titels kann [AutoIt] (Wie in diesem Fall), oder auch z.B. [C++] usw. stehen. Das zeigt die verwendete Programmiersprache im Tutorial.
Am Ende des Titels können folgende Schwierigkeitsgrade stehen:
- [Anfänger]
- [Fortgeschrittener]
- [Experte]
Und nun kommen wir zum Tutorial!
Inhalt:
- Was ist ein "Bot"?
- Voraussetzungen
- Erklärung der Befehle
- Bot programmieren
---------------------------------
Was ist ein Bot?
Ein "Bot" (vom eng. "Roboter") ist ein Computerprogramm, das sich wiederholende Aufgaben selbstständig abarbeitet, ohne dabei auf menschliche Benutzer angewiesen zu sein.
---------------------------------
Voraussetzungen
Bei dem Programmieren dieses Bots, bedarf es keiner großen Voraussetzung des könnens usw. Man sollte lediglich die "Befehle und Kontrollstrukturen" kennen, die beim Programmieren verwendet werden:
- HotKeySet
- Global
- $Pause, $Pixel (Variablen)
- While...WEnd (Kontrollstrukturen)
- Sleep
- Func
- If...Then (Kontrollstrukturen)
- ExitLoop
- Exit
- PixelSearch
- IsArray
- MouseMove
- MouseClick
---------------------------------
Erklärung der Befehle
HotKeySet: Setzt einen HotKey, um eine selbsterstellte Funktion aufzurufen.
Global: Deklariert eine Variable, Konstante oder definiert ein Array.
$Pause, $Pixel: Variable -> Speichert Strings ein Integer (englisch für "ganze Zahl" von lat. "numerus integer")
While...WEnd: Schleife, die auf einem Ausdruck basiert.
Sleep: Pausiert die Skript Ausführung.
Func...EndFunc: Definiert eine Benutzerfunktion, die Null oder mehr Argumente aufnimmt.
If...Then...EndIf : Führt Anweisungen konditionell aus.
ExitLoop: Beendet eine While-, Do- oder For-Schleife.
Exit: Beendet das Skript.
PixelSearch: Durchsucht ein Rechteck von Pixeln nach einer vorgegebenen Farbe.
IsArray: Überprüft, ob eine Variable ein Array ist. -> Begriffserklärung Wikipedia.de
MouseMove: Bewegt den Mauszeiger.
MouseClick: Führt einen Mausklick aus.
Quelle:

---------------------------------
Bot Programmieren
Zu erst sollte man sich überlegen, für was der Bot zum Schluss gut sein soll
Ich habe mich entschieden, einen
-Bot zu programmieren.Fangen wir an, wie man anhand des Links der zum Spiel führt gesehen hat, muss der Bot den grünen Ball finden und diesem mit der Maus nachfahren und ggf. anklicken...
Aber als erstes, müssen wir den Bot ja irgendwie starten können, nicht?
Dafür legen wir uns drei "HotKeySet" an. Eines zum Start, eines zum pausieren und eines zum beenden des Bots:
Danach müssen die Funktionen, die mit dem "HotKeySet" aufgerufen werden, auch noch erstellt werden:
So, wenn man das Script nun starten würde, so würde nichts passieren.
Um das zu ändern, muss unter die "HotKeySet"-Region noch eine "While"-Schleife gebaut werden:
Wenn in dieser "While"-Schleife kein "Sleep" mit 250 Millisekunden angegeben wäre, würde die CPU durch diesen Bot stark belastet werden, natürlich nur solange der Bot in dieser Schleife gehangen wäre.
Jetzt fangen wir an, die "_Start()" Funktion zu befüllen:
Die "While"-Schleife in der Funktion sorgt dafür, dass mit Hilfe von "PixelSearch" immer wieder nach dem Ball gesucht wird, und mit Hilfe von "MouseMove" und "MouseClick" immer wieder dem Ball nachgefahren und dann geklickt wird.
Mit "IsArray" wird geprüft, ob die Variable "$Pixel" ein Array ist, also ob die Variable für "MouseMove" und "MouseClick" verwendet werden kann.
Das große "X" und "Y" bei "PixelSearch" sind die Positionen:
Jetzt fehlt noch die Farbe vom Ball:
ACHTUNG: Die Positionen und die Farbe, sollte nie abgeschrieben werden!
Nun zur "_Stop" Funktion, diese ist ganz leicht aufgebaut. Wenn die Funktion ausgelöst wird, beendet das Script:
Nun zur "_Pause" Funktion. Zunächst muss aber nach der "HotKeySet"-Region noch das hinzugefügt werden:
Das "Global" dient dazu die Variable "$Pause = 0" überall im Skript zugänglich zu machen.
Die "While"-Schleife und die "_Start()" Funktion muss noch nach der "_Pause" Funktion angepasst werden. "Warum $Pause = 0 in der Haupt-While-Schleife?" -> Ganz einfach! In der "_Start()" Funktion wird geprüft, ob die Variable "$Pause" auf 1 gesetzt ist. Wenn das der Fall ist, dann gibt die Abfrage den Befehl "ExitLoop", damit wird die laufende "While"-Schleife abgebrochen und demnach auch die "_Start()" Funktion. Nun hängt der Bot wieder in der "Haupt-While-Schleife" und hier muss die Variable "$Pause" ja schließlich wieder auf "0" gesetzt werden.
Soooo, fast fertig
Haaajjjaaaaaa
Die Variable "$Pause" beim Starten dieser Funktion auf 1 gesetzt, und dieser Wert stoppt wiederum die "_Start()" Funktion!
Nun noch ein Screenshot des ganzen Scriptes:
Sooo nun, is das Tutorial fertig
Hoffe ihr habt was daraus gelernt, und gebt dieses Wissen auch an andere weiter

Disclaimer/Haftungausschluss:
Hiermit hafte ich NICHT für eventuell mögliche Schäden am System!
Quellen:

bzw. 
ACHTUNG:
Dieses Tutorial darf in ungeänderter Form nicht verbreitet werden!
Ein Link hierher ist jedoch erwünscht







