Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 21:19

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

Advertisement



Kleines Problem brauche Hilfe

Discussion on Kleines Problem brauche Hilfe within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2012
Posts: 36
Received Thanks: 0
Kleines Problem brauche Hilfe

Hallo,
ich habe ein kleines Problem mit einem Code ( ich weis er ist für Könner schwachsinnig weils viel zu umständlich geschrieben ist aber nur so versteh ich ihn ^^ )

Ich habe eine Funktion geschrieben für einen kleinen Bot leider kommt immer die Meldung Func has no matching endfunc statement und weis nicht warum das so ist.

Hier ist der Code.
Code:
Func Gegnersuchen()
			    $result1 = _ImageSearch ("Bogenschütze.bmp",1,$x1,$y1,0)
	  If 		$result1 = 1 Then
			    Return True
		 ElseIf
			   $result2 = _ImageSearch ("Schwert.bmp",1,$x2,$y2,0)	
			If $result2 = 1 Then
			   Return True
		 ElseIf
			   $result3 = _Imagesearch ("Skelett.bmp",1,$x3,$y3,0)
			If $result3 = 1 Then
			   Return True
		 ElseIf
			   $result4 = _Imagesearch ("Skelett2.bmp",1,$x4,$y4,0)
			If $result4 = 1 Then
			   Return True
		 ElseIf
			   $result5 = _Imagesearch ("Skelett3.bmp",1,$x5,$y5,0)
			If $result5 = 1 Then
			   Return True
		 ElseIf
			   $result6 = _Imagesearch ("Speerkämpfer.bmp",1,$x6,$y6,0)
			If $result6 = 1 Then
			   Return True
		 ElseIf
			   $result7 = _Imagesearch ("Wurm.bmp",1,$x7,$y7,0)
			If $result7 = 1 Then
			   Return True
		 ElseIf $collectTreasure Then
			   $result8 = _Imagesearch ("Schatztruhe.bmp",1,$x8,$y8)
			If $result8 = 1 Then
			Return True
		 EndIf
		 Else
			   Return False
		 EndIf
EndFunc

Schonmal danke
relax90 is offline  
Old 10/12/2013, 16:57   #2
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
So ist es teilweise richtig
Code:
Func Gegnersuchen()
			    $result1 = _ImageSearch ("Bogenschütze.bmp",1,$x1,$y1,0)
	  If 		$result1 = 1 Then
			    Return True
		 ElseIf
			   $result2 = _ImageSearch ("Schwert.bmp",1,$x2,$y2,0)	
			If $result2 = 1 Then
			   Return True
		 ElseIf
			   $result3 = _Imagesearch ("Skelett.bmp",1,$x3,$y3,0)
			If $result3 = 1 Then
			   Return True
		 ElseIf
			   $result4 = _Imagesearch ("Skelett2.bmp",1,$x4,$y4,0)
			If $result4 = 1 Then
			   Return True
		 ElseIf
			   $result5 = _Imagesearch ("Skelett3.bmp",1,$x5,$y5,0)
			If $result5 = 1 Then
			   Return True
		 ElseIf
			   $result6 = _Imagesearch ("Speerkämpfer.bmp",1,$x6,$y6,0)
			If $result6 = 1 Then
			   Return True
		 ElseIf
			   $result7 = _Imagesearch ("Wurm.bmp",1,$x7,$y7,0)
			If $result7 = 1 Then
			   Return True
		 ElseIf $collectTreasure Then
			   $result8 = _Imagesearch ("Schatztruhe.bmp",1,$x8,$y8)
			If $result8 = 1 Then
			Return True
		 Else
			   Return False
		 EndIf
EndFunc
Das EndIf vor dem Else muss weg, desweiteren fehlen extrem viele EndIfs, weil du die einzeiligen If-Verzweigungen auf 2 Zeilen packst.
Code:
If $result8 = 1 Then
Return True
Das ist falsch, das unten hier ist richtig
Code:
If $result8 = 1 Then Return True
alpines is offline  
Old 10/12/2013, 17:41   #3
 
elite*gold: 0
Join Date: Apr 2012
Posts: 36
Received Thanks: 0
habe es nun so abgeändert wie Sie mir geschrieben haben allerdings gibt er mir immernoch den gleichen Fehlercode

Code:
Func Gegnersuchen()
			    $result1 = _ImageSearch ("Bogenschütze.bmp",1,$x1,$y1,0)
	  If 		$result1 = 1 Then Return True
		 ElseIf
			   $result2 = _ImageSearch ("Schwert.bmp",1,$x2,$y2,0)	
			If $result2 = 1 Then Return True
		 ElseIf
			   $result3 = _Imagesearch ("Skelett.bmp",1,$x3,$y3,0)
			If $result3 = 1 Then Return True
		 ElseIf
			   $result4 = _Imagesearch ("Skelett2.bmp",1,$x4,$y4,0)
			If $result4 = 1 Then Return True
		 ElseIf
			   $result5 = _Imagesearch ("Skelett3.bmp",1,$x5,$y5,0)
			If $result5 = 1 Then Return True
		 ElseIf
			   $result6 = _Imagesearch ("Speerkämpfer.bmp",1,$x6,$y6,0)
			If $result6 = 1 Then Return True
		 ElseIf
			   $result7 = _Imagesearch ("Wurm.bmp",1,$x7,$y7,0)
			If $result7 = 1 Then Return True
		 ElseIf $collectTreasure Then
			   $result8 = _Imagesearch ("Schatztruhe.bmp",1,$x8,$y8)
			If $result8 = 1 Then Return True
		 EndIf
		 Else
			   Return False
EndFunc
normalerweise sollte das doch richtig sein diese Funktion macht keine weiter Funktion auf. Es gibt auch einen Anfang und ein Ende.

Okay ich habe bereits herausgefunden, dass ich erst die ganzen Funktionen einfügen muss damit es funktioniert ^^
Wollte ursprünglich erst schauen, dass die Funktionen alle i.O. sind und mich dann an den schweren Teil machen nämlich das ganze zusammen laufen lassen ^^
relax90 is offline  
Old 10/13/2013, 19:30   #4
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by relax90 View Post
habe es nun so abgeändert wie Sie mir geschrieben haben allerdings gibt er mir immernoch den gleichen Fehlercode

Code:
Func Gegnersuchen()
			    $result1 = _ImageSearch ("Bogenschütze.bmp",1,$x1,$y1,0)
	  If 		$result1 = 1 Then Return True
		 ElseIf
			   $result2 = _ImageSearch ("Schwert.bmp",1,$x2,$y2,0)	
			If $result2 = 1 Then Return True
		 ElseIf
			   $result3 = _Imagesearch ("Skelett.bmp",1,$x3,$y3,0)
			If $result3 = 1 Then Return True
		 ElseIf
			   $result4 = _Imagesearch ("Skelett2.bmp",1,$x4,$y4,0)
			If $result4 = 1 Then Return True
		 ElseIf
			   $result5 = _Imagesearch ("Skelett3.bmp",1,$x5,$y5,0)
			If $result5 = 1 Then Return True
		 ElseIf
			   $result6 = _Imagesearch ("Speerkämpfer.bmp",1,$x6,$y6,0)
			If $result6 = 1 Then Return True
		 ElseIf
			   $result7 = _Imagesearch ("Wurm.bmp",1,$x7,$y7,0)
			If $result7 = 1 Then Return True
		 ElseIf $collectTreasure Then
			   $result8 = _Imagesearch ("Schatztruhe.bmp",1,$x8,$y8)
			If $result8 = 1 Then Return True
		 EndIf
		 Else
			   Return False
EndFunc
normalerweise sollte das doch richtig sein diese Funktion macht keine weiter Funktion auf. Es gibt auch einen Anfang und ein Ende.

Okay ich habe bereits herausgefunden, dass ich erst die ganzen Funktionen einfügen muss damit es funktioniert ^^
Wollte ursprünglich erst schauen, dass die Funktionen alle i.O. sind und mich dann an den schweren Teil machen nämlich das ganze zusammen laufen lassen ^^
1. ElseIf ist eine normale abfrage und erwartet somit eine expression und vorallem ein Then

bsp:
Code:
Dim $x=5
If $x=1 Then
	ConsoleWrite("$x = 1"&@CRLF)
ElseIf $x=5 Then
	ConsoleWrite("$x = 5"&@CRLF)
EndIf
2. was soll dieses ganze sinnlose gerüst dort überhaupt?
alles was du tust ist überprüfen ob werte 1 sind.... ist das der fall wird wahr zurück gegeben... ist es nicht der fall wird false zurück gegeben...

das erledigt man in funktionen so:
Code:
Func Gegnersuchen()
	If _ImageSearch ("Bogenschütze.bmp",1,$x1,$y1,0) = 1 Then Return True
	If _ImageSearch ("Schwert.bmp",1,$x2,$y2,0) = 1 Then Return True
	If _Imagesearch ("Skelett.bmp",1,$x3,$y3,0) = 1 Then Return True
	If _Imagesearch ("Skelett2.bmp",1,$x4,$y4,0) = 1 Then Return True
	If _Imagesearch ("Skelett3.bmp",1,$x5,$y5,0) = 1 Then Return True
	If _Imagesearch ("Speerkämpfer.bmp",1,$x6,$y6,0) = 1 Then Return True
	If _Imagesearch ("Wurm.bmp",1,$x7,$y7,0) = 1 Then Return True
	If $collectTreasure And _Imagesearch ("Schatztruhe.bmp",1,$x8,$y8) = 1 Then Return True
	Return False
EndFunc
3. du arbeitest mit 8 verschiedenen bildern mit jeweils unterschiedlichen x und y werten.
das ganze arbeitet man ordnungsgemäß mit einem array ab und erhält am ende
Code:
Dim $array[8][3] = [["Bogenschütze.bmp",100,100],...,["Schatztruhe.bmp",800,800]]
Func Gegnersuchen($array) ;$array[index][bild,x,y]
	For $i=0 To UBound($array)-1
		_ImageSearch($array[$i][0],1, $array[$i][1], $array[$i][2],0) = 1 Then Return True
	Next
	Return False
EndFunc
lolkop is offline  
Reply


Similar Threads Similar Threads
Kleines Gehäuse ! brauche Hilfe!
04/13/2013 - Hardware Discussions / Questions - 4 Replies
Hallo Leute , habe heute den Lenovo Thinkcentre 58m bekommen (buisness Pc mit kleinem Gehäuse) Da noch platz für eine low profil Grafikkarte ist wollte ich sie einbauen hab auch ein neues NT dazu bestellt .. aber i.wie ist mir das gehäuse zu klein! Kann ich diesen Pc ist ein größeres Gehäuse bauen ohne Probleme?
Hilfe, hab mal wieder nen kleines problem!
03/17/2013 - Minecraft - 4 Replies
Ich mit meinen Problemen ^^: folgende plugins: AuthMe.jar Bedhealth.jar ButtercakeV1.jar ButtonPromote.jar ClearChat.jar EpicBossRecoded.jar Essentials.jar
[HILFE] Kleines Quest Problem
07/29/2012 - Metin2 Private Server - 3 Replies
Hi comm, ich will das die andern Spieler Erfahren wenn ein Boss gekillt wurde. Hier ein Besipiel: quest 591_kill begin state start begin when 591.kill begin notice_all(pc.get_name().. " hat den Brutalen Hauptmann getötet!") end end
Kleines Problem! Brauche Hilfe!
09/13/2011 - Metin2 Private Server - 4 Replies
Hei liebe Com! Ich hab ein kleines problem! Seht einfach mal auf dem Bild: http://www.bilder-hochladen.net/files/big/in0a-1- c4ca.jpg Diese komischen Codes die da immer kommen, wenn ich ein tier angreife, die kann man doch InGame mit einem Befehl wegkriegen! Aber der befehl find ich niergends mehr! Könnt ihr mir den bitte sagen ???? DANKEEEE :D



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


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.