Hallo alle zsm in diesem Tut werde ich euch zeigen wie man einen Angelbot für Metin2 Scriptet.
ACHTUNG ALLE KOORDINATEN DIE ICH EINGETRAGEN HABE SIND FÜR DIE KLEINSTE FENSTERAUFLÖSUNG!!!!!!!
Was brauchen wir?

-Gut wären Autoit Kenntnisse ;D
Erstmal müssen wir gucken was unser Angelbot überhaupt soll
Also :
-Köder suchen, und finden ;D (Am besten aus dem Inventar so kann man mehr Köder benutzen)
-Köder benutzen
-Angel einwerfen
-Auf Fischblase warten und darauf reagieren
-Angel rausziehen
-Und vllt. Noch ein paar Extras wie Autologin oder Fischkiller
Köder suchen/benutzen:
Also: Köder suchen hmmmm was sagt uns das?Wir brauchen eine Funktion mit der wir eine
Bestimmte Farbe eines Köders(In diesem Fall der Wurm) suchen können und zwar im Inventar!
mit
können wir nach einer Farbe suchen also dann mal ran ans Werk ;D
als erstes müssen wir ein paar optionen setzen dammit er
die koordinaten relativ zum Fenster sucht:
PHP Code:
Opt("MouseCoordMode",2)
Opt("PixelCoordMode",2)
AutoItSetOption("WinTitleMatchMode", 4)
so jetzt die Pixelsearch Funktion:
wir deklarieren erstmal die Variable
$Koeder_Farbe mit der Köderfarbe
PHP Code:
$Koeder_Farbe = 0xAD7B6C ; "0xAD7B6C" ist die Köderfarbe
Nun müssen wir den Suchradius von pixelsearch bestimmen
dazu scannen wir oben links und unten rechts mit dem au3Window info tool:
PHP Code:
$Pixelsearch = pixelsearch( 635, 249, 785, 531 ,$Koeder_Farbe,10 )
;Die Pixelsearch funktion wird in der variable $Pixelsearch gespeichert
;die ersten 4 "Parameter" also die Werte die mit dem Komma getrennt wurden sind die koordinaten
;(Die ersten 2 sind die werte die wir bekommen wenn wir das inventar oben links scannen ,
;die nächsten 2 ;zahlen sind das Ergebnis wenn wir unten links scannen
;Danach ,nach welcher Farbe wir suche wollen in diesem fall unsere ;Variable $Koeder_Farbe die wir ja vorher deklariert haben
;zum schluss dann der Abweichwert ,also wie weit die farbe abweichendarf
So nun brauchen wir eine "if" schleife also :
PHP Code:
func _BenutzKoeder()
If IsArray($Pixelsearch) = True Then
Mousemove($Pixelsearch[0], $Pixelsearch[1], 1)
sleep(10)
mouseclick( "right" )
endif
endfunc
Gut also Hier wird gefragt wenn
$Pixelsearch eine Array ist also
isArray Dann
hat die Variable
$Pixelsearch 2 Werte einmal x (
$Pixelsearch[0] und einmal y (
$Pixelsearch[1])
Nun wollen wir die Maus dahin bewegen :
also
Mousemove(
$Pixelsearch[0],
$Pixelsearch[1], 1)
die 1 am ende bestimmt wie schnell die Maus sich bewegen soll
1 = Sehr schnell

Dann warten wir noch 10 Sekunden (
Sleep(10))
und drücken dann rechtsklick(
mouseclick("right"))
das ganze packen wir nochmal in eine Funktion mit dem Namen "_BenutzKoeder()"
So alles zusammengefasst:
PHP Code:
Opt("MouseCoordMode",2)
Opt("PixelCoordMode",2)
AutoItSetOption("WinTitleMatchMode", 4)
$Koeder_Farbe = 0xAD7B6C
func _BenutzKoeder()
$Pixelsearch = pixelsearch( 635, 249, 785, 531 ,$Koeder_Farbe,10 )
If IsArray($Pixelsearch) = True Then
Mousemove($Pixelsearch[0], $Pixelsearch[1], 1)
sleep(10)
mouseclick( "right" )
endif
endfunc
Angel einwerfen :
wir wollen die angel einwerfen ... am besten packen wir die Angelfertigkeit erstmal auf F4.
Nun zum Script
PHP Code:
Func _AngelEinwerfen()
winactivate( "METIN2" )
Send("{F4 DOWN}")
Sleep(500)
Send("{F4 UP}")
EndFunc
also es wird das Fenster "METIN2" aktiviert
dann wird zum aktiven fenster ein tastendruck gesendet
und zwar F4 welcher 500 Millisekunden gedrückt wird
Das ganze packen wir dann noch in die Funktion "_AngelEinwerfen()"
Nun kann unser bot schon den Köder aus dem Inventar suchen/benutzen
und die Angel einwerfen.
Das ganze fügen wir dann noch zum gesammt Script hinzu:
PHP Code:
Opt("MouseCoordMode",2)
Opt("PixelCoordMode",2)
AutoItSetOption("WinTitleMatchMode", 4)
$Koeder_Farbe = 0xAD7B6C
func _BenutzKoeder()
$Pixelsearch = pixelsearch( 635, 249, 785, 531 ,$Koeder_Farbe,10 )
If IsArray($Pixelsearch) = True Then
Mousemove($Pixelsearch[0], $Pixelsearch[1], 1)
sleep(10)
mouseclick( "right" )
endif
endfunc
Func _AngelEinwerfen()
winactivate( "METIN2" )
Send("{F4 DOWN}")
Sleep(500)
Send("{F4 UP}")
EndFunc
Auf Fischblase warten und darauf reagieren :
So also, was wollen wir?
wir wollen das er die ganze Zeit Nach der Fischblase sucht
bis sie gefunden wird.
als erstes müssen wir die Farbe der Fischblase in einer Variable deklarieren:
(Die Farbe bekommt ihr wieder durch das au3windowtool raus, hier ist sie schon vorhanden:
PHP Code:
$FischBlase = 0xFBF7FB
also die ganze Zeit hmm was sagt uns das?
Genau!
wir brauchen eine while schleife
also :
PHP Code:
while 1 ;Mach das und das solange 1 war ist d.h. es wird unendlich oft wiederholt
so, was soll den jetzt die ganze Zeit gemacht werden?
Es soll nach der Fischblase gesucht werden, also benutzen wir wieder Pixelsearch.
Die Koords kriegt ihr mit dem Au3windowtool raus:
Nun zur Funktion
PHP Code:
Pixelsearch( 253, 13, 528, 216, $FischBlase, 10)
;Die ersten 4 Zahlen sind die Koordinaten(wird oben in dem Bild beschrieben)
;Dann die Farbe, die wir ja schon vorher in einer Variable deklariert haben
;Und zum Schluss der Abweichwert(hier 10)
gut nun wollen wir ja etwas machen wenn die Farbe gefunden wurde
das geht so:
PHP Code:
if not @error Then
exitloop
endif
Hier wieder eine If Abfrage also, Wenn kein Fehler(@Error ist eine von Autoit vordefinierte Variable,die soviel heist wie Fehler^^) Dann
exitloop mit
Exitloop wird die
Schleife sozusagen unterbrochen/beendet d.h. das Script geht weiter
und zum schluss noch die if abfrage sozusagen eingrenzen
endif
So jetzt alles zsm (In einer Funktion) :
PHP Code:
Func _Blase()
$FischBlase = 0xFBF7FB
While 1
Pixelsearch( 253, 13, 528, 216, $FischBlase, 10)
If Not @error Then
ExitLoop
EndIf
WEnd
EndFunc
So das fügen wir jetzt noch zu unserem fertigem Script hinzu:
PHP Code:
Opt("MouseCoordMode",2)
Opt("PixelCoordMode",2)
AutoItSetOption("WinTitleMatchMode", 4)
$Koeder_Farbe = 0xAD7B6C
$FischBlase = 0xFBF7FB
func _BenutzKoeder()
$Pixelsearch = pixelsearch( 635, 249, 785, 531 ,$Koeder_Farbe,10 )
If IsArray($Pixelsearch) = True Then
Mousemove($Pixelsearch[0], $Pixelsearch[1], 1)
sleep(10)
mouseclick( "right" )
endif
endfunc
Func _AngelEinwerfen()
winactivate( "METIN2" )
Send("{F4 DOWN}")
Sleep(500)
Send("{F4 UP}")
EndFunc
Func _Blase()
While 1
Pixelsearch( 253, 13, 528, 216, $FischBlase, 10)
If Not @error Then
ExitLoop
EndIf
WEnd
EndFunc
Angel rausziehen
So, also was wollen wir?
wir wollen das er die Angel nach einer bestimmten zeit des wartens rauszieht
das geht im Grunde ganz einfach .
ich finde es aber besser wenn er eine "zufällige" Zeit wartet das heist
z.b. zwischen 2000 und 2500 Millisekunden warten.
Das geht mit dem Befehl random:
PHP Code:
;als erstes speichern wir den Befehl random in einer Variable, und zwar so
$random_variable = random(2000,2500,1)
;Jetzt wird in der Variable eine Zahl zwischen 2000 und 2500 gespeichert
;dank der 1 am ende werden nur ganze Zahlen gespeichert
Der Rest ist eigentlich ganz einfach:
PHP Code:
sleep($random_variable)
;es wird 2000-2500 Millisekunden gewartet
winactivate( "METIN2" )
;Metin2 wird aktiviert
Send("{F4 DOWN}")
Sleep(500)
Send("{F4 UP}")
;Es wird F4 500 Millisekunden gedrückt gehalten
So jetzt alles zusammen in einer Funktion:
PHP Code:
Func _Rausziehen()
$random_Variable = Random(2000,2500,1)
Sleep($random_variable)
winactivate( "METIN2" )
Send("{F4 DOWN}")
Sleep(500)
Send("{F4 UP}")
Endfunc
Nun das Fertige Script :
Ich habe alle Funktionen nochmal in eine Mainfunktion gepackt damit diese leichter zu starten ist
Außerdem wurden noch einige Sleeps eingebaut, da der bot sonst ZU schnell ist
PHP Code:
Opt("MouseCoordMode",2)
Opt("PixelCoordMode",2)
AutoItSetOption("WinTitleMatchMode", 4)
$Koeder_Farbe = 0xAD7B6C
$FischBlase = 0xFBF7FB
while 1
_Main()
wend
func _Main()
_BenutzKoeder()
sleep(200)
_AngelEinwerfen()
_Blase()
_Rausziehen()
sleep(3000)
endfunc
func _BenutzKoeder()
$Pixelsearch = pixelsearch( 635, 249, 785, 531 ,$Koeder_Farbe,10 )
If IsArray($Pixelsearch) = True Then
Mousemove($Pixelsearch[0], $Pixelsearch[1], 1)
sleep(10)
mouseclick( "right" )
endif
endfunc
Func _AngelEinwerfen()
winactivate( "METIN2" )
Send("{F4 DOWN}")
Sleep(500)
Send("{F4 UP}")
EndFunc
Func _Blase()
While 1
Pixelsearch( 253, 13, 528, 216, $FischBlase, 10)
If Not @error Then
ExitLoop
EndIf
WEnd
EndFunc
Func _Rausziehen()
$random_Variable = Random(2000,2500,1)
Sleep($random_variable)
winactivate( "METIN2" )
Send("{F4 DOWN}")
Sleep(500)
Send("{F4 UP}")
Endfunc
So das wars

hoffe ich hab euch geholfen ;D