Es enthällt die elementaren Sachen um einfache Bots zu schreiben.
Ich hoffe das hilft den Beginnern etwas
Code:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.12.1
Author: Terror
Script Function:
Anfänger Tut
#ce ----------------------------------------------------------------------------
;Kommentare können für eine Zeile mit ";" oder für mehrere Zeilen mit "#cs" - "#ce" gemacht werden.
;###############################################################################
;################################# F1 FOR HELP #################################
;###############################################################################
HotKeySet("1","_end") ;mit der Taste "1" kann man die Funktion "_end" "callen" (abrufen)
HotKeySet("{F8}","_start") ;mit der Taste "F8" hingegen die Funktion "_start" (auf die Klammer achten)!
Func _start() ;Beginn der Funktion "_start"
WinActivate("Guild Wars") ;richtet den Fokus auf das Fenster "Guild Wars" (ruft ein Fenster in den Vordergrund)
WinWaitActive("Guild Wars") ;wartet solang bis "Guild Wars" aktiviert ist (im Vordergrund)
Sleep(2000) ;um Nachruckler bei leistungsschwachen Systemen mit einzurechnen pausiert das Au3 - Script für 2000 Millisekunden
;lass Platz zwischen "unterschiedlichen" Algorithmen für die Übersicht
Opt("SendKeyDelay",Random(30,75)) ;Opt gibt ein Optionen zum einstellen (verändern von Standartwerten
#cs <--- Kommentarbeginn
Bei diesem Beispiel ist Opt auf "SendKeyDelay" gerichtet das heißt mit dem Wert nach dem Komma setze ich statt
dem Standartwert 5 Millisekunden einen zufälligen Wert zwischen 30 - 75 Millisekunden.
Wofür das ganze?
Es spart Zeilen wenn man es so macht und gibt Übersicht!
Ein Beispiel für genau den gleichen Text ist
Send("H")
Sleep(Random(30,75)
Send("a")
Sleep(Random(30,75)
usw.
#ce <--- Kommentarende
Send("{enter}") ;sendet an die momentan aktivierte Anwendung Enter in diesem Fall "Guild Wars"
Send("Hallo, ich teste etwas aus ;)") ;sendet den Text
Send("{enter}") ; <--- Ende Text (geizt nicht mit Kommentaren =D)
;eine andere Variante nur finde ich es so unübersichtlich: Send("{enter}Hallo, ich teste etwas aus :){enter}")
Opt("SendKeyDelay",5) ;wieder der Standartwert (5)
$random_1_5 = Random(1,5,1)
#cs $random_1_5 ist eine Variabel. In Au3 erstellt man Variabeln mit dem "$" Zeichen.
Eine Variabel ist ein Speicherort eines Wertes, einer Information.
In diesem Fall der zufällige Zahlenwert 1-5.
Diesen Wert schreibt man der Variabel durch das "=" zu!
#ce
If $random_1_5 == 1 Then
#cs eine If - Abfrage überprüft eine Bedingung, hier ob der Wert der Variabel == "1" ist.
Wichtig ist das "=" nicht mit "==" vertauscht wird!
"=" schreibt einen Wert zu "==" überprüft ob der Wert gleich ist
#ce
Send("{w down}") ;sollte sich selbst erklären =D
Sleep(Random(4000,4200)) ;Bei Random immer erst den kleinen Wert eintragen, dann den großen
Send("{w up}") ;
ElseIf $random_1_5 <> 1 And $random_1_5 <> 2 Then
#cs die If Else Abfrage ist noch nicht zuende
Hier wird überprüft ob der Wert <> 1 UND <> 2 ist!
#ce
$maus_position = MouseGetPos() ;findet die aktuelle Mausposition heraus (Wert wird in der Variabel gespeichert)
MsgBox(0,"Die Position meiner Maus ^^","X = "& $maus_position[0] & "| Y = " & $maus_position[1]) ;Position der Maus
;wird in Arrays wiedergegeben. Ein Array ist ein Feld, es kann durch Dim erstellt werden.
Else ;spricht alle anderen Optionen der If - Abfrage an die noch nicht abgefragt wurden.
PixelSearch(0,0,500,500,0xFFCC55) ;Sucht nach einem Feld von 0,0,500,500 nach der Farbe 0xFFCC55
If @error Then MsgBox(0,"Farbe","Die Farbe wurde nicht gefunden") ;@error usw. spricht die letzte Aktion an, hier PixelSearch
If Not @error Then MsgBox(0,"Farbe","Die Farbe wurde gefunden")
EndIf ;Ende der If - Abfrage
$pixel_color = PixelGetColor(20,20) ;findet die Farbe des Pixels 20,20 heraus und speichert den Wert in der Variabel
While PixelGetColor(20,20) == $pixel_color ;While ist eine Schleife mit einem Ausdruck
#cs Alle Befehle werden bis zum WEnd solange wiederholt bis die Farbe vom PixelGetColor
anders ist als der zuvor eingespeicherte Wert in $pixel_color.
Hier wird das Sleep(100) immer wiederholt
#ce
Sleep(100)
WEnd ;<--- Ende der Schleife
For $i = 1 To 5 Step + 1 ;eine Schleife die 5x etwas wiederholt
#cs $i = 1 gibt an von wo der Countdown gestartet wird, hier ist es 1
To 5 (Zu 5) [von 1 - 5]
der Schritt + 1 ist halt das immer nur ein Schritt gemacht wird
#ce
MouseClick("left",20,20) ;klickt auf den Pixel 20,20
Send("{space}")
Next ;For - Next wird alles wiederholt
_call_test();eine Funktion wird "gecallt", Funktionen müssen "gecallt" werden damit der Code der Funktion durchlaufen wird
EndFunc ;Ende der Funktion "_start"
Func _call_test()
;abrufen von Variabeln
$ebene_0 = "ist überall in der Funktion 'wirksam'"
$ebene_1 = "ist nur hier oder in einer höheren Ebene 'wirksam'"
$ebene_2 = "ist nur hier oder in einer höheren Ebene 'wirksam'"
ToolTip($ebene_2,0,0) ;diese Variabel kann nicht tiefer abgerufen werden
ToolTip($ebene_1,0,0) ;diese Variabel kann nicht tiefer abgerufen werden
ToolTip($ebene_0,0,0) ;diese Variabel kann nicht tiefer abgerufen werden
ToolTip($ebene_2,0,0) ;höher ist aber kein Problem
ToolTip($ebene_1,0,0) ;*
ToolTip($ebene_0,0,0) ;*
EndFunc
Func _func_with_input($wert) ;eine Funktion mit zusätzliger Eingabe
MsgBox(0,"Eingabe",$wert) ;zeigt den eingegebenen Wert
EndFunc
_func_with_input(5) ;Es sollte eine Msgbox mit 5 erscheinen
Func _end() ;gib Funktionen und Variabeln immer eindeutige Namen!
Exit ;beendet das Au3 - Script
EndFunc
While True ;eine Schleife die nicht erfüllt werden kann dh. sie ist dauerhaft
Sleep(100)
WEnd ;<--- Ende der Schleife
Exit ;dieses Exit ist wirkungslos da das Programm dort nicht ankommt!
#cs Dieser Code ist nicht in einer Funktion also wird er ausgeführt sobald das Programm
bei ihm ankommt.
Wenn ihr ein Programm schreibt welches über Hotkeys arbeitet braucht ihr ein solches
dauerhaftes Sleep da das Script sonst einfach nur startet und wieder beendet da es ja
keine Anweisung hat.
#ce






