|
You last visited: Today at 21:19
Advertisement
Kleines Problem brauche Hilfe
Discussion on Kleines Problem brauche Hilfe within the AutoIt forum part of the Coders Den category.
10/12/2013, 16:52
|
#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
|
|
|
10/12/2013, 16:57
|
#2
|
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
|
|
|
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 ^^
|
|
|
10/13/2013, 19:30
|
#4
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by relax90
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
|
|
|
 |
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.
|
|