Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Guides & Templates
You last visited: Today at 05:39

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

Advertisement



[Tutorial] Angelbot mit AutoIt

Discussion on [Tutorial] Angelbot mit AutoIt within the Metin2 Guides & Templates forum part of the Metin2 category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2008
Posts: 260
Received Thanks: 302
Talking [Tutorial] Angelbot mit AutoIt

Ich schreib hier mal ein Tutorial für einen Angelbot mit vielen optionalen Funktionen. Ich weiß, es gibt schon n paar Tuts dazu, aber die gefallen mir nicht so (ist meine Meinung).

Vorraussetzungen:

- sehr sinnvoll wären AutoIt Kenntnisse, ganz ohne wirds schwer werden
- AutoIt installiert haben (am besten noch einen Editor)
- Natürlich Lust auf das Tutorial
- Viel Zeit
- Und am besten etwas zum Essen und Trinken


Bemerkung:

Dieses Tutorial ist nicht dazu da, einfach ein Script abzukopieren und nicht viel dabei zu lernen. Ihr solltet dabei ja auch was lernen. Also wer sagt, "gib doch mal das gesamte Script", der soll sich erstmal (mehr) mit AutoIt beschäftigen und dann nochmal dieses Tutorial versuchen. Denn wenn ihr das Script nur kopieren solltet, dann wurde ich auch nur das Script posten und nicht ein Tutorial schreiben.
Falls ihr Befehle, usw. nicht kennt, schlagt diese am Besten in der AutoIt Hilfe nach oder fragt Google.

Das Grundscript:

So nun endlich zum Script.
Zuerst erstellt ihr euer Script und nennt es wie ihr wollt.
Wie man ein AutoIt Script erstellt werde ich wohl hier nicht mehr erklären müssen.
Wir können jetzt mit den ersten Zeilen beginnen. Wir beginnen gleich mit unserer ersten Funktion. Die Hauptfunktion. Ich nenne sie einfach mal _Main. Diese lassen wir erstmal leer.



In dieser Funktion werden dann später alle anderen Funktionen für den Bot aufgerufen. Damit die Funktion auch aufgerufen wird fügen wir noch



in unser Script ein. Wenn wir unser Script jetzt Compilen und ausführen passiert genau: Nichts. Das müssen wir natürlich ändern. Wir füllen uns unsere Hauptfunktion aber erstmal mit den Nebenfunktionen. Dafür sollte man sich Gedanken über den Ablauf des Bots machen. Mein Ablauf sieht wie folgt aus:
- Ködersuche
- Köder benutzen
- Angel hineinwerfen
- Auf die Blase warten
- Die Angel herausziehen

Natürlich könnten da noch ein paar Abläufe mehr dazukommen, aber jetzt erstmal der Grundablauf. Am besten erstellen wir für jeden Ablaufspunkt eine Funktion und fügen einen Aufruf der jeweiligen Funktion in der Hauptfunktion (_Main) ein. So in etwa:



Das macht ihr mit jeder Ablauffunktion. Wählt sinnvolle und gut beschreibende Namen.

Wenn ihr fertig seid gehts schon an die erste Nebenfunktion. Ich habe sie _KoederSuche genannt und sie soll, wer hätte es gedacht, nach Ködern suchen. Ich bevorzuge dafür die Leiste unten. Wenn wir das Angelsymbol auf ein Feld machen, dann bleiben noch 7 Felder á 200 Köder, wer jetzt gut rechnen kann weiß, wieviele das dann insgesamt sind.
OK, Spaß beiseite, also 1400 Köder sollten eigentlich reichen. Um die Köder auch zu erkennen kann man zur einfachsten Methode, die Pixel Methode greifen. Das werden wir auch tun. Dafür müssen wir erstmal die Koordinaten der Slots herausfinden. Zum Glück hat AutoIt dafür ein schlaues Tool namens "AutoIt Window Info". Ihr findet es im AutoIt Ordner als "Au3Info.exe". Wenn ihr es offen habt, solltet ihr zunächst die Optionen verändern.



Stellt wie bei 1. Zu sehen die Option Coord Mode auf -> Client und wie bei 2. zu sehen macht ihr einen Haken bei Magnify. Damit die Koordinaten dann von AutoIt auch im Client Modus benutz werden, fügt ihr am Anfang des Scripts noch diese beiden Zeilen ein:



Diese bewirken, dass AutoIt den Clientmodus (dafür steht die 2) für die Pixel und die Mausfunktionen verwendet.
Nun aber zu unseren Coords für die Köder. Dazu setzen wir uns einen Köder auf unserer Leiste unten auf die 1. Dann geht ihr mit eurer Maus ungefähr auf die Mitte des Symbols (am besten wählt ihr eine Farbe die sich stark von der Hintergrundfarbe (also wenn der Slot leer ist) unterscheidet) und drückt, während das Window Info Tool offen ist: STRG + ALT + F um die aktuellen Werte zu freezen. Jetzt geht ihr im Window Info auf den Tab Mouse und könnt dort die gefreezte Mausposition und die sich darunter befindende Farbe sehen. Notiert euch diese. Dann setzt ihr auf den 2. Slot die gleiche Köderart und drückt nocheinmal STRG + ALT + F um wieder zu entfreezen. Jetzt geht ihr mit der Maus über den Köder auf dem 2. Slot und bewegt die Maus solange ein bisschen rum bis im Window Info Tool bei Color die EXAKT gleiche Farbe wie zuvor aufgeschrieben erscheint. Dann drückt ihr erneut STRG + ALT + F und schreibt euch nun aber nur die Werte bei Position auf. Die 2. Zahl (die nach dem Komma) sollte gleich wie beim 2. Scan sein. Falls das nicht so sein sollte, dann versucht einfach nochmal zu Scannen. Nun habt ihr die ersten 2 Positionen für die Köder. Die für die Tasten 3 und 4 müsst ihr jetzt nicht mehr Scannen (wer will kanns machen), sondern könnt ihr ganz "einfach" ausrechnen.
Zuerst noch etwas zur Verständnis:
Die Position, die ihr im Window Info sehen könnt, sieht ja folgendermaßen aus: 123, 456
Dabei ist die Zahl vor dem Komma (123) die X-Koordinate und die nach dem Komma (456) die Y-Koordinate.

Nun unsere Rechnung:
2. X-Koordinate (die vom 2. Slot) - 1. X-Koordinate (die vom 1. Slot) = ???

Beispiel:
130 - 120 = 10

Das Ergebnis ist unser Abstand zwischen den Slots. Also ist die X-Coord vom 3. Slot: Die X vom 2. + unser errechneter Abstand. Genau so dann beim 4. Slot mit X vom 3. + Abstand. Die Y-Koordinate bleibt bei allen Werten gleich.

Jetzt haben wir die Koordinaten von den ersten 4 Slots. Fehlen noch die 3 letzen (F1-F3, F4 habe ich für die Angelfertigkeit vorgesehen). Dabei geht ihr einfach wie zuvor auch vor. Sollte nicht allzuschwer sein.

Wenn ihr alle Koordinaten habt, können wir sie zunächst im Script einfügen. Dazu ist ein Array sehr praktisch. Wer nicht weiß was einen Array ist, der schaut in der "AutoIt3.chm" im AutoIt Ordner nach.
Zunächst deklarieren wir unsere Array so:



Es gibt 2 Dimensionen. Die erste ist für die Anzahl unserer Koordinaten und die 2. für X und Y. Wer sich nun frägt, warum denn 8 bei der Anzahl, wir haben doch nur 7 Slots, der liegt eigentlich richtig. Da aber die Dimensionen bei Array immer bei 0 beginnen verwende ich eins mehr und benutze 0 dann bei der Anzahl nicht (es gibt ja auch kein 0. Slot). Bei X und Y ist aber X 0 und Y 1.
Der erste Slot wird so deklariert:




Beim 2. Slot ist dann die erste Zahl nicht 1 sondern 2. usw.
Also so:




Es fehlt noch unsere notierte Farbe. Diese deklarieren wir mit einer Variable:




Statt den "?" setzt ihr natürlich euren gefundenen Farbwert ein.


Da wir unsere Koordinaten und die Farbe des Köders jetzt deklariert haben, können wir sie in unserer Funktion _KoederSuche jetzt verwenden.
Um alle Slots darauf zu überprüfen, ob ein Köder vorhanden ist, verwenden wir eine For-Schleife.



Die 1. Zeile der Schleife. $i wird bei jedem Durchlauf um 1 erhöht bis einschließlich 7. Ubound gibt die Anzahl der Indexes zurück, also bei uns 8 und das - 1 ist 7




Hier wird überprüft, ob die Pixelfarbe von dem Slot gleich ist, wie die zuvor deklarierte Variable (dann ist also ein Köder auf dem Slot und er kann verwendet werden)




Wenn also die If-Bedingung von oben zutrifft, wird $i (also die Slot Nummer) zurückgegeben.




Dann noch If und die For-Schleife beenden.




Und wenn die For-Schleife durchgelaufen ist (also kein Köder mehr da ist) dann wird 0 zurückgegeben.

Somit ist unsere _KoederSuche Funktion schon fertig. Was wir noch ändern müssen ist, dass der Rückgabewert von der Funktion auch gespeichert wird. Also schreiben wir "$KoederSlot = " vor den Aufruf von der _KoederSuche Funktion in der Funktion _Main.




Jetzt zur nächsten Funktion. _NimmKoeder habe ich sie genannt. In ihr wird der zuvor gefundene Köder benutzt. Um diese Variable auch benutzen zu können fügen wir der Funktion einen Parameter hinzu.




Diesen müssen wir auch noch in der _Main Funktion angeben. Also:



So kann dann der von _KoederSuche zurückgegebene Wert in _NimmKoeder verwendet werden.
Jetzt zum Inhalt der Funktion _NimmKoeder:



Wenn die SlotNr höher als 4 ist (also mind. 5) dann muss die jeweilige F-Taste verwendet werden.
Wenn die SlotNr = 0 ist (also kein Köder gefunden wurde kommt eine MessageBox und der Bot beendet sich.

Jetzt muss auch noch der Köder genommen werden. Das geschieht so:



Die Taste wird für 500 ms gedrückt.

Der Köder wird nun genommen. Jetzt muss noch die Angel rein. Eine sehr einfache Funktion. Ich nenn sie _AngelHinein.



Ist eigentlich nichts dazu zu sagen.

Nun müssen wir auf die Angelblase warten.
Dazu ist die Funktion _BlaseWarten (bei mir, ihr könnt die Funktionen auch anderst nennen).
Dazu müssen wir die Farbe der Blase mit AutoIt Window Info suchen und freezen. Es sollte ein weißer Farbwert der Blase sein. Diesen deklarieren wir oben im Script bei den anderen Variablen



Für die "?" wieder den Wert eintragen.

Die Funktion _BlaseWarten sieht so aus:



Ihr müsst aber noch einen Bereich im Fenster, in dem ein Teil der Blase ist festlegen. Dazu nehmt ihr wieder das Window Info Tool und freezt euch einmal die linke obere Ecke eines gedachten Rechteckes und dann noch die rechte untere Ecke. Natürlich die Werte notieren. Das Rechteck sollte nicht zu groß sein und es muss ein weißer Teil der Blase darin sein, wenn die Blase erscheint. (Wer das mit der PixelSearch Funktion und den Parametern nicht versteht, der schaut sich erstmal die Funktion in Ruhe an). Das "If Not @error" bedeutet soviel wie "wenn kein Fehler ist", also wenn ein Weißer Pixel gefunden wurde, dann wird die While Schleife verlassen und es geht weiter in der _Main Funktion.

Jetzt kommt die letzte Funktion. Das Herausziehen der Angel. Bei mir: _Rausziehen()
Auch so wie das Reinwerfen sehr simpel:



Das etwas besondere ist die zufällige Zeit für das Herausziehen. Den Min- und Maxwert müssen wir noch oben im Script deklarieren. Der Wert ist in ms anzugeben (1000 ms = 1s). Wählt irgendwelche Zeiten (z.B Min= 2000 und Max=3000). Ihr könnt sie ja später noch ändern.

Nun sind alle Grunfunktionen fertig. Wenn ihr das Script nun testet sollte alles gut laufen. Nur eine Sache nicht. Es wird nur einmal geangelt. Um aber unendlich lange (bzw. solange Köder da sind) zu angeln können wir einfach eine While Schleife verwenden. Macht "While 1" (ohne "") ganz an den Anfang der Funktion _Main und "WEnd" (ohne "") ganz an das Ende der Funktion _Main. So wird alles dazwischen immer wiederholt. Damit eine Pause zwischen jedem Angelvorgang gemacht wird, schreibt ihr noch Sleep(3000) ans Ende der While 1 Schleife (also über das WEnd). Ihr könnt auch weniger oder mehr als 3s nehmen, aber 3s sind meiner Meinung ganz gut.

Somit wären wir mit den Grundfunktionen fertig.
atze19 is offline  
Thanks
23 Users
Old 08/08/2009, 12:18   #2
 
elite*gold: 0
Join Date: Jun 2008
Posts: 260
Received Thanks: 302
Zusätzliche Funktionen


Zu den Grundfunktionen kann man jetzt noch zusätzliche Sachen einbauen.

Fischkiller

Der Fischkiller soll die Fische, die geangelt wurden sofort töten, sodass mehr Platz im Inventar bleibt und es so gut wie nie voll werden kann.
Dazu brauchen wir wieder unser Window Info Tool. Wir müssen für jeden Fisch den wir killen wollen eine Farbe scanen. Dazu geht ihr mit eurer Maus auf die Mitte eines lebendigen Fisches und freezt den Wert. Dann den Wert notieren und weiter mit dem nächsten Fisch. Es darf keine Farbe doppelt vorkommen! Wenn ihr alle Fische habt (oder nur einen Teil, ihr könnt weitere auch nachträglich hinzufügen) dann müssen wir diese Farbwerte noch deklarieren. Wieder so wie bei den Slots mit einem Array.



Statt dem "?" gebt ihr die Anzahl der verschiedenen Fische + 1 ein. Warum + 1? Weil ja ein Array bei 0 beginnt, wir aber der Einfachheit halber mit 1 anfangen.
Dann könnt ihr eure Farbwerte eintragen:



Statt den ? wieder den Farbwert eintragen und dahinter am Besten als Kommentar den Name des Fisches (z.B Zander).
Wenn ihr das bei allen Fischen habt, müssen wir nurnoch die Funktion schreiben. Die sieht folgendermaßen aus:



Die Koordinaten für den Pixelsearch müsst ihr noch suchen. Nehmt einfach die obere linke und die untere rechte Ecke des Itembereichs im Inventar.

Wenn ein Pixel mit der Farbe eines Fischs gefunden wird, dann klickt der Bot mit der rechten Maustaste drauf. Nun muss die Funktion nurnoch in der _Main Funktion aufgerufen werden. Setzt einfach _FischeToeten() zwischen _Rausziehen() und unser Sleep am ende der While 1 Schleife.
Jetzt werden die Fische auch gleich getötet und das Inventar wird so gut wie nicht voll.

Weitere Funktionen folgen noch!

Falls ihr Fehler findet oder etwas nicht funktioniert, bitte hier sagen, damit ichs ändern kann.

Feedback ist erwünscht
atze19 is offline  
Thanks
19 Users
Old 08/08/2009, 12:24   #3
 
elite*gold: 20
Join Date: Sep 2008
Posts: 2,185
Received Thanks: 411
sieht ganz gut aus
bekommst thx für die arbeit
InelienCewq is offline  
Thanks
1 User
Old 08/09/2009, 20:41   #4
 
elite*gold: 0
Join Date: Jun 2008
Posts: 260
Received Thanks: 302
*PUSH*

Schade, dass so wenige hier posten.
atze19 is offline  
Thanks
1 User
Old 08/19/2009, 13:20   #5
 
Rayser9119's Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 245
Received Thanks: 172
ich find das auch eingelungenes Tut. ich kann aber schon ganz gut mit autoit weiß also was da für mühen hinter stecken! von mir gibts ein THX
Rayser9119 is offline  
Thanks
1 User
Old 10/03/2009, 12:47   #6
 
elite*gold: 137
Join Date: Feb 2008
Posts: 1,177
Received Thanks: 199
danke mein erster angel bot (:

thx
S-youth is offline  
Old 12/17/2009, 18:59   #7
 
DraaaKe's Avatar
 
elite*gold: 99
Join Date: May 2009
Posts: 1,020
Received Thanks: 400
könnte man das nicht kürzer fassen? Also eigentlich muss der ja nur F3 drücken dann ZB F4 für das angelsymbol oder enter^^ Dann nach dem farbwert der blase scannen und sobald dieser kommt 2000millisekunden warten und dann enter dann 3sek warten und von vorne beginnen?
DraaaKe is offline  
Old 12/18/2009, 21:57   #8
 
elite*gold: 0
Join Date: Oct 2009
Posts: 65
Received Thanks: 5
Quote:
Originally Posted by atze19 View Post
in unser Script ein. Wenn wir unser Script jetzt Compilen und ausführen passiert genau: Nichts. Das müssen wir natürlich ändern. Wir füllen uns unsere Hauptfunktion aber erstmal mit den Nebenfunktionen. Dafür sollte man sich Gedanken über den Ablauf des Bots machen. Mein Ablauf sieht wie folgt aus:
- Ködersuche
- Köder benutzen
- Angel hineinwerfen
- Auf die Blase warten
- Die Angel herausziehen

Natürlich könnten da noch ein paar Abläufe mehr dazukommen, aber jetzt erstmal der Grundablauf. Am besten erstellen wir für jeden Ablaufspunkt eine Funktion und fügen einen Aufruf der jeweiligen Funktion in der Hauptfunktion (_Main) ein. So in etwa:



Das macht ihr mit jeder Ablauffunktion. Wählt sinnvolle und gut beschreibende Namen.

Wenn ihr fertig seid gehts...

Quote:
Originally Posted by atze19 View Post
Es fehlt noch unsere notierte Farbe. Diese deklarieren wir mit einer Variable:




Statt den "?" setzt ihr natürlich euren gefundenen Farbwert ein.
1. Solln wir jetzt alles machen wie Angel werfen oder so?

2. Wir sollten 2 Farbwerte messen welcher kommt rein?
Cheat-Penner is offline  
Old 12/19/2009, 01:38   #9
 
elite*gold: 0
Join Date: Sep 2009
Posts: 51
Received Thanks: 8
Also ich find den bot auch gut, wäre aber nicht schlecht, wenn du den gesamten code noch reinstellen würdest, damitr man seinen abgleichen kann.
eXcalibur93 is offline  
Old 12/19/2009, 11:56   #10
 
elite*gold: 0
Join Date: Oct 2009
Posts: 65
Received Thanks: 5
ich habe es genau so gemacht wie du und das hier kam raus (nur zur häflte):

Code:
#cs ----------------------------------------------------------------------------

 Angelbot by Cheat-Penner
 Author: Cheat-Penner

 Script Function:
	Dieser Bot angelt für euch!

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here
Opt("MouseCoordMode",2)
Opt("PixelCoordMode",2)

Func __Main()
EndFunc
_Main()

Func _Main()
	$KoederSlot = _KoederSuche()

EndFunc

Func _KoederSuche()
EndFunc

Func _Main()
	_Koeder benutzen()
	_NimmKoeder($KoederSlot)


EndFunc

Func _Koeder benutzen()
EndFunc

Func _Main()
	_Angel werfen()
EndFunc

Func _Angel werfen()
EndFunc

Func _Main()
	_Auf Blase warten()
EndFunc

Func _Auf Blase warten()
EndFunc

Func _Main()
	_Angel herausziehen()
EndFunc

Func _Angel herausziehen()
EndFunc

Func _Main()
	_Fisch toeten()
EndFunc

Func _Fisch toeten()
EndFunc

#include <Array.au3>
Global $Slot[8][2]
$Slot[1][0] = X
$Slot[1][1] = Y
$Slot[2][0] = X
$Slot[2][1] = Y
$Slot[3][0] = X
$Slot[3][1] = Y
$Slot[4][0] = X
$Slot[4][1] = Y
$Slot[5][0] = X
$Slot[5][1] = Y
$Slot[6][0] = X
$Slot[6][1] = Y
$Slot[7][0] = X
$Slot[7][1] = Y
$Slot[8][0] = X
$Slot[8][1] = Y
_ArrayDisplay($Array, $Angelbot) 

$Koeder = 0x32,108

For $i = 1 to UBound($Slot) - 1

	For $i = 2 to UBound($Slot) - 1
		For $i = 3 to UBound($Slot) - 1
			For $i = 4 to UBound($Slot) - 1
				For $i = 5 to UBound($Slot) - 1
					For $i = 6 to UBound($Slot) - 1
						For $i = 7 to UBound($Slot) - 1
							If PixelGetColor($Slot[$i][0],$Slot[$i[1]) = $Koeder Then
								Return $1
							EndIf
						Next
						Return 0
Cheat-Penner is offline  
Old 12/27/2009, 23:51   #11
 
elite*gold: 0
Join Date: Sep 2009
Posts: 51
Received Thanks: 8
Also hallo, ich hab den Bot auch einmal nach diesem TuT geschieben, jetzt hab ich das problem, dass ich immer eine errormeldung bekomme. Ich weis nicht warum Scite da ein Error sendet:

C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(61 ,20) : ERROR: syntax error
ElseIf $Slotnr = 0
~~~~~~~~~~~~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(67 ,31) : ERROR: syntax error
Send ("{" & $Taste & " DOWN}")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(69 ,29) : ERROR: syntax error
Send ("{" & $Taste & " UP}")
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(80 ,60) : ERROR: syntax error
$Coord = PixelSearch ( 336, 52, 400, 95, $Fischblase, 5 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(82 ,12) : ERROR: 'ExitLoop' not allowed outside loop.
ExitLoop
~~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(85 ,2) : ERROR: syntax error
WEnd
^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3 - 6 error(s), 0 warning(s)

Alos z.B. warum kommt ein Error bei exitloop?, da darf kein Error kommen.
Würde mich über etwas Hilfe freuen, kenn mich mit AutoIt nicht so sehr aus.
eXcalibur93 is offline  
Old 12/30/2009, 01:03   #12
 
Quade's Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 496
Received Thanks: 171
Quote:
Originally Posted by eXcalibur93 View Post

C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(61 ,20) : ERROR: syntax error
ElseIf $Slotnr = 0 Then



C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(67 ,31) : ERROR: syntax error
Send ("{" & $Taste & " DOWN}")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(69 ,29) : ERROR: syntax error
Send ("{" & $Taste & " UP}")

Klappt bei mir... $Taste nicht definiert?


C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(80 ,60) : ERROR: syntax error
$Coord = PixelSearch ( 336, 52, 400, 95, $Fischblase, 5 )

Bin mir nicht sicher, aber wahrscheinlich hast du Fischblase nicht definiert.

C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(82 ,12) : ERROR: 'ExitLoop' not allowed outside loop.
ExitLoop

Wahrscheinlich ein Exitloop außerhalb einer Schleife angebracht?


C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(85 ,2) : ERROR: syntax error
WEnd

WEnd ohne While?
Vllt??
Quade is offline  
Old 01/05/2010, 12:38   #13
 
elite*gold: 0
Join Date: Sep 2009
Posts: 51
Received Thanks: 8
Naja hier der Bot, hab noch den Fischkiller reingemacht. Also das mit dem Then hab ich vergessen mein fehler.
Aber die $taste is ja mit
PHP Code:
$Taste "F" & ( $Slotnr 
eigentlich definiert oder?
Fischblase is au definiert, und Exitloop is in einer While 1 schleife.....
Und naja das WEnd steht au mit einem While...

PHP Code:
Opt "MouseCoordMode")
Opt "PixelCoordMode")
WinActivate "METIN2" )
WinWaitActive "METIN2" )
Global 
$Slot[8][2]
$Slot[1][0] = 443
$Slot
[1][1] = 751
$Slot
[2][0] = 475
$Slot
[2][1] = 751
$Slot
[3][0] = 507
$Slot
[3][1] = 751
$Slot
[4][0] = 539
$Slot
[4][1] = 751
$Slot
[5][0] = 585
$Slot
[5][1] = 751
$Slot
[6][0] = 617
$Slot
[6][1] = 751
$Slot
[7][0] = 649
$Slot
[7][1] = 751
$Slot
[8][0] = 0
$Slot
[8][1] = 0
Global $Fisch[21]
;
$Fisch[1] = ;Aal
;$Fisch[2] = ;Ayu
$Fisch
[3] = 0x212018 ;Bachforelle
;$Fisch[4] = ;Barsch
;$Fisch[5] = ;Flussforelle
;$Fisch[6] = ;Goldfisch
$Fisch
[7] = 0x8C8673 ;Graskarpfen
$Fisch
[8] = 0xFFFFFF ;Grosserzander
$Fisch
[9] = 0xB58A84 ;Karpfen
;$Fisch[10] = ;Katzenfisch
$Fisch
[11] = 0x9C9A84 ;Lachs
;$Fisch[12] = ;Lotusfisch
$Fisch
[13] = 0x4A3418 ;Mandarinfisch
$Fisch
[14] = 0x5A5142 ;Regenbogenforelle
$Fisch
[15] = 0xFFFFF7 ;Rotfeder
;$Fisch[16] = ;Schmerle
;$Fisch[17] = ;Shiri
;$Fisch[18] = ;Spiegelkarpfen
;$Fisch[19] = ;Stint
;$Fisch[20] = ;Tenchi
$Fisch
[21] = 0xF7EBAD ;Zander
$Koeder 
0x422415
$Fischblase 
0xFcF8Fc
$Min 
InputBox "Angelbot""Minimale Zeit in ms?" )
$Max InputBox "Angelbot""Maximale Zeit in ms?" )

_Main()

Func _Main()
    
$Koederslot _Koedersuche()
    
_Nimmkoeder($Koederslot)
    
_Angelhinein()
    
_Blasewarten()
    
_Fischtoeten()
    
_Rausziehen()
EndFunc

    Func _Koedersuche
()
        For 
$i 1 to UBound $Slot ) - 1
            
If PixelGetColor $Slot[$i][0], $Slot[$i][1] ) = $Koeder Then
                
Return $i
            
EndIf
        
Next
        
Return 0
    EndFunc

Func _Nimmkoeder
($Slotnr)
    If 
$Slotnr 4 Then
        $Taste 
"F" & ( $Slotnr )
    ElseIf 
$Slotnr 0 Then
        MsgBox 
0"Angelbot""Keine Köder mehr!" )
        Exit
    Else
        
$Taste $Slotnr
    
EndIf
    
Send ("{" $Taste " DOWN}")
    
Sleep 500 )
    
Send ("{" $Taste " UP}")
EndFunc

Func _Angelhinein
()
    
Send "{F4 DOWN}" )
    
Sleep 500 )
    
Send "{F4 UP}" )
EndFunc

Func _Blasewarten
()
    While 
1
        $Coord 
PixelSearch 3365240095$Fischblase)
        If 
Not @error Then
            ExitLoop
        
EndIf
        
Sleep 100 )
    
WEnd ; @@@@@@@@@ dieses WEnd war gemeintda is aber nen While!
EndFunc

Func _Rausziehen
()
    
$Wartezeit Random $Min$Max)
    
Sleep $Wartezeit )
    
Send "{F4 DOWN}" )
    
Sleep 500 )
    
Send "{F4 UP}" )
EndFunc

Func _Fischtoeten
()
    For 
$e 1 To UBound $Fisch ) -1
        $Coord2 
PixelSearch 8774501005578$Fisch[$e], 032 )
        If 
Not @error Then
            MouseClick 
"right"$Coord2[0], $Coord2[1], 1)
        EndIf
    
Next
EndFunc 
eXcalibur93 is offline  
Old 01/09/2010, 16:32   #14
 
elite*gold: 0
Join Date: Jul 2009
Posts: 2,583
Received Thanks: 808
Danke hat mir geholfen THX kriegste
Loveskill is offline  
Old 01/09/2010, 16:38   #15
 
elite*gold: 20
Join Date: Jul 2008
Posts: 1,108
Received Thanks: 172
Quote:
Originally Posted by eXcalibur93 View Post
Also hallo, ich hab den Bot auch einmal nach diesem TuT geschieben, jetzt hab ich das problem, dass ich immer eine errormeldung bekomme. Ich weis nicht warum Scite da ein Error sendet:

C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(61 ,20) : ERROR: syntax error
ElseIf $Slotnr = 0
~~~~~~~~~~~~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(67 ,31) : ERROR: syntax error
Send ("{" & $Taste & " DOWN}")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(69 ,29) : ERROR: syntax error
Send ("{" & $Taste & " UP}")
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(80 ,60) : ERROR: syntax error
$Coord = PixelSearch ( 336, 52, 400, 95, $Fischblase, 5 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(82 ,12) : ERROR: 'ExitLoop' not allowed outside loop.
ExitLoop
~~~~~~~~^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3(85 ,2) : ERROR: syntax error
WEnd
^
C:\Dokumente und Einstellungen\Konrad\Desktop\AutoIt\epvpbot.au3 - 6 error(s), 0 warning(s)

Alos z.B. warum kommt ein Error bei exitloop?, da darf kein Error kommen.
Würde mich über etwas Hilfe freuen, kenn mich mit AutoIt nicht so sehr aus.
Würde mich wundern wenn das alle fehler wären

Ich hab im Anhand mal eine Datei hochgeladen die eure AutiIT scripts überprüft, nach Fehlern absucht und die Zeile und den Fehler im Script makiert. Es werden immer BackUp's von eurem Script erstellt

So ist die Fehlersuche einfacher


freddy2001 is offline  
Reply


Similar Threads Similar Threads
AutoIt Neuling (Angelbot)
04/03/2010 - Metin2 - 3 Replies
Hey Leute, Ich hatte heute Mittag nix zu tun. Da hab ich mir AutoIt runtergeladen...ich hatte sowas nie zuvor & den begriff "AutoIt" hab ich hier aufgeschnappt. Also ich habe mal ein wenig damit Rumprobiert...Ich kam dann dazu Mir spammer zu erstellen...klappt auch. Mit beliebigem Zeitabstand oder durchgehend. Mit ENTER funktion oder ohne (also zb ohne yang aufheben) & (mit im Rufchat schreiben) Aber ich wollte mal nen Angelbot machen...Kann mir jemand hilfe leisten? Weil wie erkennt...
Angelbot mit AutoIT
12/19/2009 - AutoIt - 3 Replies
Also kennt jemand einen Angelbot wo alles drinnsteht? Aber da soll man auch was lernen also nicht das man da einfach nur was kopiert. Ich habe schon das hier gefunden http://www.elitepvpers.com/forum/metin2-guides-temp lates/298767-tutorial-angelbot-mit-autoit.html#pos t3676827 aber der macht das nicht mal nach der reinfolge. Und er sagt jetzt mach ihr das bis 7! Doch dann sagt er wenn ihr das EINE fertig habt... Kennt jemand ein gutes?
Angelbot Autoit
07/28/2009 - AutoIt - 10 Replies
Hi ich will in Metin2 eine Art angelvot machen!!(für mich) Nur ich ich habe ein prob. ich will sagen das der angelbot den Wurm auffüllen soll aber erst wenn er auf f3 leer ist mein script bisher: .... $f3worm = PixelGetColor (541,609) $wormff3 = 0x382926 $coord = PixelSearch( 0, 0, 800, 600, 0xA47867) If Not @error Then



All times are GMT +1. The time now is 05:39.


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.