Du hast eine Func in einer Schleife, was nicht zulässlig ist in AutoIt.Quote:
aber vor meiner anpassung (,waren nur die totzeiten beim einsammeln,)
lief das reibungslos. er is von allein in die goon funktion reingegangen und setzte sich dort in die schleife.
ich versuchs trotzdem mal ^^ danke dir
EDIT:
so, der compiler meint jetzt, dass am ende das WEnd fehlt xD
... der rest muss ja nicht mehr in die schleife, da er auch so aufgerufen wird, oder?Code:While 1 Func goon() Sleep(1) Call ("movcamera") call ("ZielSuchen") ; Prozedur aufrufen Sleep (150) EndFunc WEnd
Pack das
Code:
While 1 WEnd
Code:
Func goon()
While 1
Sleep(1)
Call ("movcamera")
call ("ZielSuchen")
Sleep (150)
WEnd
EndFunc
Du kannst keine Func in einer Schleife machen. Im grunde wird eine Func erst dann aufgerufen, wenn du sagst, dass sie aufgerufen werden soll.Quote:
ich verstehe nicht ganz, im grunde hatte ich es doch so. nur, dass ich das in eine funktion gesteckt hab
hätte der bot nach dem, was du sagst, nicht mindestens ein mal die kamera drehen und ein pixel suchen müssen?
(hat er nicht, hätte ich vielleicht dazu sagen können, sry dafür ^^)
Sobald du nach deinen Deklarationen eine Schleife erstellst, weiß Autoit, dass er dort in eine Schleife gehen soll und auf deine Tasten warten muss.
Hier 2 Beispiele:
Code:
HotKeySet("{F5}", "test")
While 1
Sleep(50)
WEnd
Func test()
MsgBox(0, "Test", "Hallo")
EndFunc
wo er 50ms nix macht. Da das While immer 1 sein wird, wiederholt er dass und stürzt nicht ab.
Sobald du F5 drückst, zeigt es dir eine MsgBox an und wenn du dort auf OK drückst geht das Programm zu.
Code:
HotKeySet("{F5}", "test")
Func test()
MsgBox(0, "Test", "Hallo")
EndFunc
keine Schleife hat wo er "bleiben" könnte. Die Func wird erst aufgerufen, wenn du F5 drückst oder iwo anders
im Programm die Func aufrufst. Somit startet es und beendet sich direkt wieder ohne eine MsgBox anzuzeigen.
Du hast in der Func "Farmen" folgenden Codeteil:Quote:
Ich habe versucht $i abzufragen aber es will nicht wirklich funktionieren... Wenn ich den Bot so starte sucht er ein Erz aus und visiert es an danach hängt sich der Bot allerdings auf und macht gar nichts mehr. Ich kann ihn pausieren und auch beenden aber er "greift nicht an" und dreht auch die Kamera nicht weiter.
Code:
While $i <= 1 $target = PixelGetColor(913,37) ; auslesen - Gegner vorhanden ? if $target = "0x818181" then ; Rot im Target $i=1 Else $i=0 endif WEnd
Ist die Farbe "#818181", dann setzte $i auf 1 ansonsten auf 0.
Erkennst du das Problem?
Deine Variable $i wird IMMER kleiner oder gleich 1 sein, da du ihr keinen größeren Wert zuweißt.
Deswegen bleibt er in diese Schleife stecken. Daher, änder die Variable $i in dieser Func zu etwas höherem
anstatt 1 oder du nimmst dort eine andere Variable.