Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 19:23

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Curvball bot how to do

Discussion on Curvball bot how to do within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Sep 2009
Posts: 89
Received Thanks: 82
Curvball bot how to do


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
hinschreiben, in dieser Schleife schreiben wir eine neue Variable die kann bei unserem Tutorial $BallPosition heißen, diese werden wir mit dem PixelSearch-Befehl beschreiben [Variablen-Defination; Wir definieren eine Variable]!

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
Das Gleiche nochmal in der rechten unteren Ecke des Spielfeldes und wieder kopieren.
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
Hier noch ein wichtiger Tipp:
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
Wir hätten auch If IsArray($BallPosition) = True Then hinschreiben können, aber das Then verkürzt die Sache weil es automatisch als wahr dann gilt.
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
Die 1 hinter den X und Y Koordinaten bei MouseMove steht für Geschwindigkeit [1 = das Schnellste bis 100 = das langsamste].
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")
Das wären unsere HotKey's, gleich machen wir mit diesem weiter, aber zuerst schreiben wir Global $Active = 0, diese Variable brauchen wir für die StartBot und PauseBot Funktion.

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
Funktionen StartBot, PauseBot und EndeBot:
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
Beschreiben der Funktionen _StartBot und _PauseBot:
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
Viel Spass noch

Mit freundlichen Grüßen
chriss

pls thx drücken wenn ich helfen konnte
chilz111 is offline  
Thanks
5 Users
Old 03/08/2010, 18:39   #2
 
elite*gold: -320
Join Date: Feb 2010
Posts: 1,773
Received Thanks: 444
o.O wtf ist CurveBall
DaRkFoRgE™ is offline  
Old 03/08/2010, 20:14   #3
 
elite*gold: 0
Join Date: Jan 2010
Posts: 87
Received Thanks: 22
lvl 9 schafft man aber auch ohne bot

aber wenigstenst wird ein bisschen pixelsearch erklärt dafür gibs nen thx
Nachbar88 is offline  
Old 03/09/2010, 15:10   #4
 
antrix99's Avatar
 
elite*gold: 305
Join Date: Apr 2008
Posts: 2,422
Received Thanks: 546
das ist nur copy paste vom offi autoit forum und um genau zu sein ist es von mcpoldy weil ich es selbst schon gesehen habe
antrix99 is offline  
Old 03/09/2010, 15:27   #5
 
elite*gold: 0
Join Date: Sep 2009
Posts: 89
Received Thanks: 82
nein credis von understood lies oben ich habe nie behauptet das ich es geschrieben habe
chilz111 is offline  
Old 03/10/2010, 17:01   #6
 
elite*gold: 1
Join Date: Oct 2008
Posts: 1,078
Received Thanks: 276
Mensch, warum hätte ich das nicht schon vorher machen können xD
Mein Bot vergammelt jetzt auf der Externen

Die Arbeit ist nach gut 5 Minuten Überlegung aber auch fix getan, ich hatte nach na viertel Stunde, wenn nicht weniger, nen funktionstüchtigen Bot, ich denke also, dass so ein Tut überflüssig ist, ne normale Einführung in Pixelsearch hätte da schon gereicht - ähnlich wie die im Einfürungs Tut...

Etwas weiter fortgeschrittenes ist da nämlich leider nicht bei...
.nAno is offline  
Old 03/10/2010, 17:17   #7
 
HardCore.1337's Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
Richtig.
Es gibt bereist genügend TuT´s zu PixelSearch ect.
Das Tut zu CuveBall ist eine gute Idee, hätte aber auch mit jedem anderen Spiel gemacht werden können.

Demnach ist dein Tut nix besonderes, aber auch nicht schlecht geschrieben.
HardCore.1337 is offline  
Old 08/21/2011, 16:00   #8
 
elite*gold: 0
Join Date: Jul 2011
Posts: 48
Received Thanks: 28
juhuuuuu der erste pixelsearch bot der bei mir klappt bist der beste!
xNeoNStyLeZz is offline  
Reply




All times are GMT +1. The time now is 19:24.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.