Credits by understood
Hallo, vielleicht können es ja schon viele aber ich werde es noch mal erläutern!
In diesem Tutorial werdet ihr lernen wie...
...man PixelSearch
...man MouseMove/MouseClick Befehle
benutzt!
Wir brauchen für den Bot die Au3 Window Info.
Also, dann können wir ja loslegen.
Link zum Spiel:

schritt 1
Wir erstellen ein neues AutoIt v3 Script wo wir schon die Schleife:
Code:
While 1 WEnd
Schritt 2
So, jetzt müssen wir die 4 Begrenzungen herausfinden für den PixelSearch-Befehl. Dazu brauchen wir das Finder Tool von der Au3 Window Info,[Optional: Freezt die Au3 Window Info] mit dem Finder Tool gehen wir schließlich in die linke obere Ecke des Spiels und wechseln zum Tab „Mouse" und kopieren uns mit einem Doppelklick auf die Position die Werte:
Wenn ihr das gemacht habt, kopiert ihr euch die Werte in den PixelSearch-Befehl rein:
Code:
While 1 $BallPosition = PixelSearch(118, 336 WEnd
Wenn ihr das gemacht habt müssen wir die Farbe des Balles herausfinden, da wir ja nicht das Spiel gestartet haben können wir wohl schlecht die Farbe herausfinden, also das Spiel starten, dann mit dem Finder Tool auf den Ball gehen und Doppelklick auf Colour:
Wenn ihr alles in Schritt 2 befolgt habt dann müsste euer Script so aussehen[Die 4 Begrenzungen können bei euch anders sein weil ihr vielleicht eine andere Auflösung habt und die Farbe auch, denn es mehrere Pixel mit unterschiedlichen Farben im Ball gibt]:
Code:
While 1 $BallPosition = PixelSearch(118, 336, 587, 647, 0xE2FFDB, 15) WEnd
Macht nach der Farbe ein [Komma] und dann 15, das steht für Farbabweichung, weil wenn ihr es ohne macht kann es passieren das euer Bot nicht richtig läuft.
Schritt 3 If IsArray....EndIf:
Jetzt schreiben wir eine If-Abfrage, diese soll abfragen ob die Variable $BallPosition nach dem PixelSearch ein Array ist oder nicht, da ja der Rückgabewert bei Erfolg von PixelSearch in ein Array zurückgegeben wird[Es wird in ein Array zurückgegeben die, die X, Y Koordinaten beinhalten des ersten gefundenen Pixels], also schreiben wir erstmal:
Code:
While 1 $BallPosition = PixelSearch(118, 336, 587, 647, 0xE2FFDB, 15) If IsArray($BallPosition) Then WEnd
Da ja wie ihr wisst Then = Dann heißt, müssen wir schreiben was die Reaktion der If Abfrage wenn $BallPosition wahr ist macht, in unserem Falle wäre es MouseMove, denn er soll ja den Ball verfolgen.
Achtung[!!!], wenn ihr jetzt MouseMove schreibt sollt ihr zuerst die X und Y Koordinaten hinschreiben, da machen wir einfach MouseMove($BallPosition[0], $BallPosition[1], 1) hin, ganz einfach:
Weil ja bei Erfolg[Wie ich euch glaubig schon erklärt habe] von PixelSearch ein Array zurückgegeben wird schreiben wir also die Variable und dahinter für die X Koordinate ein [0] und für die Y Koordinate ein [1], das sieht dann so aus:
Code:
While 1 $BallPosition = PixelSearch(118, 336, 587, 647, 0xE2FFDB, 15) If IsArray($BallPosition) Then MouseMove($BallPosition[0], $BallPosition[1], 1) EndIf WEnd
Da wir ja keine andere Anweisung in der If-Abfrage ausführen wollen schließen wir sie mit EndIf und unser Script sieht in AutoIt so aus:
HotKey's zum anschalten und ausschalten.
So, das ist mein zweiter Teil des Tutorials.
Wir nehmen ganz einfach das Script von grade für CurveBall, dieses Script werden wir so erweitern das man es mit HotKey's beenden, pausieren und starten können.
Step 2.1; HotKey's einfügen:
Also, um ein HotKey einzufügen gibt es den schönen Befehl „HotKeySet("Key", "Function")":
Key = Die Taste(nkombination) die gedrückt werden muss um die jeweilige Funktion aufzurufen.
Function = Das ist die Funktion die mit der Taste aufgerufen wird, bei uns soll es erstmal starten.
Also füllen wir den Befehl so aus: HotKeySet("{s}", "_StartBot").
Das war jetzt unser erster HotKey... Deshalb brauchen wir noch 2 zum pausieren und beenden, also schreiben wir noch: HotKeySet("{p}", "_PauseBot") und HotKeySet("{e}", "_EndeBot"), wenn wir das gemacht haben sollte unser Script so aussehen:
Code:
HotKeySet("{s}", "_StartBot")
HotKeySet("{p}", "_PauseBot")
HotKeySet("{e}", "_EndeBot")
Hauptteil:
So, jetzt müssen wir den Hauptteil des Programmes schreiben, also schreiben wir While 1... WEnd unter der deklarierten $Active Variable, das While 1... WEnd dient auch dazu dass, das Script sich nicht beendet, denn dann können wir unsere HotKey's auch nicht benutzen.
Ok, jetzt schreibt ihr in While 1... WEnd eine If-Abfrage, die soll abfragen ob die Variable $Active = 1 ist, wenn ja soll er den CurveBall Bot laufen lassen, also:
Code:
HotKeySet("{s}", "_StartBot")
HotKeySet("{p}", "_PauseBot")
HotKeySet("{e}", "_EndeBot")
Global $Active = 0
While 1
If $Active = 1 Then
While 1
$BallPosition = PixelSearch(118, 336, 587, 647, 0xE2FFDB, 15)
If IsArray($BallPosition) Then
MouseMove($BallPosition[0], $BallPosition[1], 1)
EndIf
WEnd
EndIf
WEnd
Also, wie ihr gesehen habt fragt er in unserem Hauptteil des Programmes ab ob die Variable $Active = 1 ist und dann startet unser Bot, doch die Variable die wir davor deklariert haben war auf 0 also wird erstmal nichts passieren, dazu haben wir ja die _StartBot und _PauseBot Funktion in unsere HotKey's mit einbezogen. Um die Funktion _StartBot und _PauseBot zunutzen machen wir einfach 2 Funktionen, die eine heißt _StartBot und die andere heißt _PauseBot, also:
Code:
Func _StartBot() EndFunc Func _PauseBot() EndFunc Func _EndeBot() Exit EndFunc
Wir schreiben einfach in _StartBot $Active = 1 und in _PauseBot $Active = 0, das heisst also das unser Hauptteil wenn die Taste S gedrückt worden ist, der Bot startet und wenn wir dann P gedrückt haben dann wird ja $Active = 0 und das heißt das er nichts macht. Sehr sinnvoll finde ich.
So sieht unser CurveBall Bot dann mit HotKey's aus:
S = Start
P = Pause
E = Ende
Code:
HotKeySet("{s}", "_StartBot")
HotKeySet("{p}", "_PauseBot")
HotKeySet("{e}", "_EndeBot")
Global $Active = 0
While 1
If $Active = 1 Then
$BallPosition = PixelSearch(118, 336, 587, 647, 0xE2FFDB, 15)
If IsArray($BallPosition) Then
MouseMove($BallPosition[0], $BallPosition[1], 1)
EndIf
EndIf
WEnd
Func _StartBot()
$Active = 1
EndFunc
Func _PauseBot()
$Active = 0
EndFunc
Func _EndeBot()
Exit
EndFunc
Mit freundlichen Grüßen
chriss
pls thx drücken wenn ich helfen konnte






