Also, wie der Name schon sagt werde ich in diesem Tutorial ausführlich die
Pixelfunktionen und den Umgang mit Memoriewerten erläutern, da ja einige
Leute große Schwierigkeiten damit haben, außerdem erhoffe ich mir damit weniger
gebannte accounts durch simple Send-Bots
Was braucht ihr um dieses Tutorial zu verstehen?
-Grundkenntnisse in AutoIT
-Deutsch
-Gesunden Menschenverstand
Gliederung
Code:
-Pixelsearch
-PixelGetColor
-Was sind Memories?
-Wie finde ich diese heraus?
-Wie benutze ich meine gefundenen Memories?
PixelSearch
Nun, dann fangen wir mal mit der Funktion "PixelSearch" an.
PixelSearch kann man für viele Sachen verwendet, auf dem komplizierten Weg für Wayouts,
oder mal nicht auf Guild Wars bezogen, z.B. einen Aimbot für "RapidFire2"
Wenn wir in der AutoIT-Hilfe nachschlagen sehen wir
Code:
PixelSearch ( left, top, right, bottom, color [, shade-variation [, step [, hwnd]]] )
Die Parameter der PixelSearch - Hier mal auf deutsch.
Code:
left = x1 [ x Koordinate der oberen linken Ecke ]
top = y1 [ y Koordinate der oberen linken Ecke ]
right = x2 [ x Koordinate der unteren rechten Ecke ]
bottom = y2 [ x Koordinate der unteren rechten Ecke ]
Code:
color = Farbe [Die Farbe nach der gesucht werden soll]
shadevariation = Farben Variation [ Unterschied der Farbtöne ]
step = Anzahl der zu überspringenden Pixel beim suchen
hwnd = Handle vom Fenster, meiner meinung nach Sinnlos weil das im Hintergrund trotzdem nicht läuft
Also, wie sollen wir diese PixelSearch nun benutzen?
Ist garnicht so schwer..
Wir erstellen uns ein neues *.au3 Skript, dieses nennen wir mal "AimBot"
Dieses können wir vorerst schließen oder minimieren, jetzt öffnen wir Windows Paint.
Ich gehe mal davon aus das das jeder hat.
jetzt nehmen wir die Sprühpistole und machen in verschiedenen Farben ausgemalte Punkte ins Bild.
Jetzt speichern wir das Bild unter "Farbe.jpg".
Bei mir sieht das ganze so aus.
Nun gehen wir zurück ins Au3 Skript und erstellen uns ein simples GUI
mit Buttons, diesen Buttons weisen wir jeweils einen Namen der erstellen Farbe aus dem Bild zu, vielleicht dem Button noch ne Farbe geben. Bei mir sieht das ganze so aus:
Im Skript machen wir die Includes nach ganz oben.. dies müsste dann so aussehen - nachdem wir Nomad noch hinzugefügt haben
PHP Code:
;-Dateien mit einbeziehen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#include-once
Die NomadMemory.au3 gibt es hier:
Nun legen wir uns einen HotKey zum beenden.
PHP Code:
;-Hotkeys Belegen
HotKeySet("{End}", "Ende")
;-Ende
Func Ende()
Exit
EndFunc ;==>Ende
Jetzt suchen wir auf unserem Bild nach den Farben, ebenfalls mit der WindowInfo. Diese schreiben wir dann als Variablen in unser Skript.
PHP Code:
;-Farben
$gruen = 0x1DB350
$blau = 0x10AFF1
$violet = 0x723091
$grau = 0xDCDCDC
$rot = 0xEC201F
$orange = 0xFFBB17
$schwarz = 0x464646
$rosa = 0xFF9CB8
Als nächstes müssen wir die Koordinaten unseres Bildes herausfinden.
Dazu öffnen wir es, und schauen mit der WindowInfo nach wo sich diese befinden und schreiben sie in unser Skript. Sieht bei mir wie folgt aus:
PHP Code:
;-Koordinaten
$x1 = 418
$y1 = 173
$x2 = 1020
$y2 = 671
Nun kommen wir zur Hauptfunktion in dem Skript.
Diese soll die Parameter "Farbe" und "shade" haben.
Außerdem wissen wir das die Funktion mit der Maus zielen soll,
Also nennen wir sie einfach mal "AimTo"
PHP Code:
Func AimTo($Farbe, $shade)
Als erstes suchen wir nach dem Pixel der jeweiligen Farbe.
Dadurch das wir uns soviele Variablen deklariert haben, haben wir nun
den Vorteil das wir die Pixelsearch mit ihren eigenen Parametern angeben können. Nicht vergessen ihr eine Variable zuzuweisen, sonst wirds nix mit der Fehleranalyse
PHP Code:
Func AimTo($Farbe, $shade)
$PS = PixelSearch($x1, $y1, $x2, $y2, $Farbe, $shade)
Nun müssen wir prüfen ob bei der PixelSuche ein Pixel gefunden wurde,
Dies kann man auf mehrere wegen lösen, entweder mit (@error), oder aber mit IsArray. In diesem Fall werde ich es mit IsArray machen.
PHP Code:
Func AimTo($Farbe, $shade)
$PS = PixelSearch($x1, $y1, $x2, $y2, $Farbe, $shade)
If IsArray($PS) = 1 Then
Dies sagt uns also.. Wenn $PS True ist, dann...
Nun also das was kommt.
Wenn wir in der AutoIT Hilfe nachgucken, sehen wir den Rückgabewert von PixelSearch.
Code:
Return Value
Success: Returns a two-element array of pixel's coordinates. (Array[0] = x, Array[1] = y)
Failure: Sets @error to 1 if color is not found.
Das heißt, das wenn wir den Pixel gefunden haben, ein Array [0] & [1] bekommen.
Also:
PHP Code:
Func AimTo($Farbe, $shade)
$PS = PixelSearch($x1, $y1, $x2, $y2, $Farbe, $shade)
If IsArray($PS) = 1 Then
MouseMove($PS[0], $PS[1])
EndIf
EndFunc
Also ist unsere Funktion fertig.
Wir wollen, das wenn wir unser Skript starten, sich gleichzeitig das Bild öffnet..
ShellExecute ist hier die Lösung
PHP Code:
ShellExecute("Farbe.jpg")
Unser Skript sieht also bisher wie folgt aus.
Code:
;-Dateien mit einbeziehen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#include-once
;-Hotkeys Belegen
HotKeySet("{End}", "Ende")
;-Farben
$gruen = 0x1DB350
$blau = 0x10AFF1
$violet = 0x723091
$grau = 0xDCDCDC
$rot = 0xEC201F
$orange = 0xFFBB17
$schwarz = 0x464646
$rosa = 0xFF9CB8
;-Koordinaten
$x1 = 418
$y1 = 173
$x2 = 1020
$y2 = 671
;-Ende
Func Ende()
Exit
EndFunc ;==>Ende
Func AimTo($Farbe, $shade)
$PS = PixelSearch($x1, $y1, $x2, $y2, $Farbe, $shade)
If IsArray($PS) = 1 Then
MouseMove($PS[0], $PS[1])
EndIf
EndFunc
ShellExecute("Farbe.jpg")
Jetzt kopieren/Verschieben wir unseren GUI nach das ShellExecute.
Je nachdem wie ihr euren GUI genannt habt, ein WinActivate dahinter.. dann ists nachher nur halb-so-nervig
Code:
WinActivate("Farben Aimbot [eF_Hacks] Copyright 2009")
Nun die Schleife die unseren GUI sichtbar macht, und gleichzeitig Funktionen zuweißt.
Ich denke das ist selbsterklärend
PHP Code:
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $BlauButton
AimTo($blau, 2)
Case $RosaButton
AimTo($rosa, 2)
Case $VioletButton
AimTo($violet, 2)
Case $OrangeButton
AimTo($orange, 2)
Case $GrauButton
AimTo($grau, 2)
Case $SchwarzButton
AimTo($schwarz, 2)
Case $GruenButton
AimTo($gruen, 2)
Case $RotButton
AimTo($rot, 2)
EndSwitch
WEnd
Der gesamte Code sieht nun wie folgt aus:
PHP Code:
;-Dateien mit einbeziehen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#include-once
;-Hotkeys Belegen
HotKeySet("{End}", "Ende")
;-Farben
$gruen = 0x1DB350
$blau = 0x10AFF1
$violet = 0x723091
$grau = 0xDCDCDC
$rot = 0xEC201F
$orange = 0xFFBB17
$schwarz = 0x464646
$rosa = 0xFF9CB8
;-Koordinaten
$x1 = 418
$y1 = 173
$x2 = 1020
$y2 = 671
;-Ende
Func Ende()
Exit
EndFunc ;==>Ende
Func AimTo($Farbe, $shade)
$PS = PixelSearch($x1, $y1, $x2, $y2, $Farbe, $shade)
If IsArray($PS) = 1 Then
MouseMove($PS[0], $PS[1])
EndIf
EndFunc
ShellExecute("Farbe.jpg")
;-Graphical User Interface
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Farben Aimbot [eF_Hacks] Copyright 2009", 136, 310, 261, 205)
GUISetBkColor(0x99B4D1)
$Group1 = GUICtrlCreateGroup("Farben", 8, 8, 113, 289)
$BlauButton = GUICtrlCreateButton("Blau", 24, 32, 75, 25, 0)
GUICtrlSetBkColor(-1, 0xA6CAF0)
$RotButton = GUICtrlCreateButton("Rot", 24, 64, 75, 25, 0)
GUICtrlSetBkColor(-1, 0xFF0000)
$SchwarzButton = GUICtrlCreateButton("Schwarz", 24, 96, 75, 25, 0)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x000000)
$RosaButton = GUICtrlCreateButton("Rosa", 24, 128, 75, 25, 0)
GUICtrlSetBkColor(-1, 0xFF00FF)
$GruenButton = GUICtrlCreateButton("Grün", 24, 160, 75, 25, 0)
GUICtrlSetBkColor(-1, 0x008000)
$GrauButton = GUICtrlCreateButton("Grau", 24, 192, 75, 25, 0)
GUICtrlSetBkColor(-1, 0xA0A0A4)
$OrangeButton = GUICtrlCreateButton("Orange", 24, 256, 75, 25, 0)
$VioletButton = GUICtrlCreateButton("Violet", 24, 224, 75, 25, 0)
GUICtrlSetBkColor(-1, 0x800080)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
WinActivate("Farben Aimbot [eF_Hacks] Copyright 2009")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $BlauButton
AimTo($blau, 2)
Case $RosaButton
AimTo($rosa, 2)
Case $VioletButton
AimTo($violet, 2)
Case $OrangeButton
AimTo($orange, 2)
Case $GrauButton
AimTo($grau, 2)
Case $SchwarzButton
AimTo($schwarz, 2)
Case $GruenButton
AimTo($gruen, 2)
Case $RotButton
AimTo($rot, 2)
EndSwitch
WEnd
Wenn ihr das nun startet, sollte euer Mauszeiger auf die jeweile Farbe im Bild gehen, sofern sie gefunden wurde und ihr auf einen Button gedrückt habt.
Unten hänge ich mal meine Dateien ran.
PixelGetColor
Also, Wir sind jetzt bei PixelGetColor angekommen.
Meiner Meinung nach lässt sich PixelGetColor nur schwer auf GuildWars anwenden, kann aber
Bei anderen Dingen nützlich sein.. (fragt bitte nicht bei welchen

)
Nun, wir gucken als erstes in unsere über alles geliebte AutoIT Hilfe.
Hier sehen wir:
Code:
PixelGetColor ( x , y [, hwnd] )
Also.. auf Deutsch:
Code:
x = X Koordinate vom Pixel
y = Y Koordinate vom Pixel
hwnd = WinGetHandle => Koordinaten werden relativ zum "hwnd" genommen. Also der Fenstername
Also, wir wollen mal versuchen mit PixelGetColor (ab jetzt nurnoch PGC) die Farbe eines Fenster's herauszufinden.
Dazu erstellen wir uns ein neues Skript, dieses nennen wir "PixelGetColor.au3".
Anfangen tun wir wieder mit den Include Datein.
PHP Code:
;-Dateien mit einbeziehen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include-once
Jetzt erstellen wir uns ein GUI, was nach Zufall eine Farbe auswählt, Farben sind in diesem Fall "Blau" und "Rot".
PHP Code:
;-Zufallszahl (1 oder 2)
$rnd = Random(1, 2, 1)
;-Gui1
#Region ### START Koda GUI section ### Form=
$GUI = GUICreate("Farbe", 109, 93, 0, 0)
If $rnd = 1 Then
GUISetBkColor(0x800000)
Else
GUISetBkColor(0x99B4D1)
EndIf
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Dann den 2. Gui, dieser enthält einen einfachen Button der nachher unsere Funktion aufrufen soll.
PHP Code:
;-Gui2
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Start", 154, 81, 193, 125)
GUISetBkColor(0x99B4D1)
$Group1 = GUICtrlCreateGroup("", 8, 8, 137, 65)
$PGC = GUICtrlCreateButton("PGC", 40, 32, 75, 25, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Jetzt suchen wir uns mal die Farben raus.. in diesem Fall brauchen wir nichtmal die WindowInfo, da unsere Farben ja schon im GUI stehen.. also:
PHP Code:
;-Farben
$Blau = 0x99B4D1
$Rot = 0x800000
Nun kommen wir zum wichtigesten Teil.
Unserer Funktion.
Wir wissen das PixelGetColor die Parameter x und y
benötigt
Und wir wollen mit unserer Funktion die Farbe überprüfen.
Also nennen wir sie FarbCheck, und geben ihr die Parameter x und y.
PHP Code:
Func _FarbCheck($x, $y)
Als nächstes deklarieren wir uns eine Variable, welche für uns eine PixelSuche auf
X/Y durchführt.
PHP Code:
Func _FarbCheck($x, $y)
$PGC = PixelGetColor($x, $y)
Wenn wir in der AutoIT Hilfe gucken sehen wir den Return Wert von PGC.
Code:
Success: Returns decimal value of pixel's color.
Failure: Returns -1 if invalid coordinates.
Also bekommen wir die Farbe als dezimalwert als Return-Wert.
Nun müssen wir mit einem If oder Select-Statement ansetzen.
Ich nehme mal If (ich gehe davon aus das ihr damit erfahrung habt)
Also.
Wenn $PGC = Blau Dann...
Wenn $PGC = Rot Dann...
Wenn nix davon Dann...
PHP Code:
;-Unsere Funktion
Func _FarbCheck($x, $y)
$PGC = PixelGetColor($x, $y)
If $PGC = $Blau Then
MsgBox(0x40, "Blau", "Das Blaue Fenster hat sich geöffnet")
ElseIf $PGC = $Rot Then
MsgBox(0x40, "Rot", "Das Rote Fenster hat sich geöffnet")
Else
MsgBox(0x10, "Keine Ahnung", "Keine Ahnung was da ist, aber eines der beiden Fenster ist es nicht")
EndIf
EndFunc
Nun noch die Schleife die unseren GUI sichtbar und wirksam macht:
PHP Code:
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $PGC
_FarbCheck(41,41)
EndSwitch
WEnd
Code sollte jetzt so aussehen:
Code:
;-Dateien mit einbeziehen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include-once
;-Farben
$Blau = 0x99B4D1
$Rot = 0x800000
;-Unsere Funktion
Func _FarbCheck($x, $y)
$PGC = PixelGetColor($x, $y)
If $PGC = $Blau Then
MsgBox(0x40, "Blau", "Das Blaue Fenster hat sich geöffnet")
ElseIf $PGC = $Rot Then
MsgBox(0x40, "Rot", "Das Rote Fenster hat sich geöffnet")
Else
MsgBox(0x10, "Keine Ahnung", "Keine Ahnung was da ist, aber eines der beiden Fenster ist es nicht")
EndIf
EndFunc
;-Zufallszahl (1 oder 2)
$rnd = Random(1, 2, 1)
;-Gui1
#Region ### START Koda GUI section ### Form=
$GUI = GUICreate("Farbe", 109, 93, 0, 0)
If $rnd = 1 Then
GUISetBkColor(0x800000)
Else
GUISetBkColor(0x99B4D1)
EndIf
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;-Gui2
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Start", 154, 81, 193, 125)
GUISetBkColor(0x99B4D1)
$Group1 = GUICtrlCreateGroup("", 8, 8, 137, 65)
$PGC = GUICtrlCreateButton("PGC", 40, 32, 75, 25, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $PGC
_FarbCheck(41,41)
EndSwitch
WEnd
Gut, wenn wir das jetzt ausführen sollte je nach $rnd(1,2,1) ein Blaues oder Rotes fenster auf 0/0 erscheinen. Wenn wir jetzt auf PGC drücken, dann bekommen wir eine MsgBox mit der Farbe des Fensters.
Dateien sind mit unten dran.
Weitere Funktionen folgen.