[How To] AutoIt ImageSearch ( am Metin2 Beispiel )

06/04/2010 01:55 The Angerfist#31
Hey, hab mir mal einen Spammbot geschrieben mit 3 imagesearch´s. Allerdings findet der nur die ersten 2. Muss ich noch was einstellen damit der 3 findet?
Momentan schauts so aus:

€ hab selbst erledigt
06/07/2010 17:44 Madonis#32
Bekommst ein dickes danke und ein Push :)
06/08/2010 14:10 Herr.Vorragend#33
Bei mri kommt immer die meldung Line 19 variable isnt declarned oder so was ist falsch?(das fettgedruckte)

Code:
#include <ImageSearch.au3>



HotKeySet("{NUMPAD2}","starten")
HotKeySet("{NUMPAD3}","beenden")


While 1
sleep(1)
WEnd
$x1=0
$y1=0
$x2=0
$y2=0

Func starten()
While 1
[B]$result=_Imagesearch("PM.PNG",1,$x1,$y1,20)[/B]
if $result=1 Then
MouseClick("LEFT",$x1,$y1,1)
sleep(5000)
EndIF
$result2=_Imagesearch("antworten.PNG",1,$x1,$y1,20)
if $result2=1 Then
MouseClick("LEFT",$x1,$y1,1)
sleep(5000)
send("hi")

EndIf
$result3=_Imagesearch("senden.PNG",1,$x1,$y1,20)
if $result3=1 Then
MouseClick("LEFT",$x1,$y1,1)
sleep(5000)

EndIf
WEnd
EndFunc

Func beenden()
exit 0
EndFunc
06/21/2010 01:42 schlitzohr#34
Hy Leute, ich suche nun schon ne weile nach meinem Problem, nur iwie auf nix gestossen.

Ich bin derzeit dabei, nen Bot für ein Spiel zu schreiben.
Das Spiel läuft im Fenstermodus.

Mit der _Imagesearch funktion findet er ja Bilder, allerdings iwie nur die, die auf dem Desk sind. Nicht die im Game. Also zb den Windows-Start button findet er ohne probs. Theoretisch habe ich mir gedacht, müsste man das Fenster iwie declarieren, damit er weiss, dass er in diesem Fenster suchen soll. Aber eben auch, egal welche auflösung, egal, wo es sich befindet. Mit der Funktion "Winactivate" funzt es nciht.

Frage 1: Muss ich dem Bot sagen, dass er dieses Fenster absuchen soll?
Frage 2: Wenn ja, WIE???? xDD

Bin langsam echt am verzweifeln.
Hoffe, mir kann jemand helfen.
Vielen Dank im vorraus.

Mfg
08/17/2010 14:30 FreeCoder#35
\ImageSearch.au3(91,31) : WARNING: $fenster: possibly used before declaration.
$state = WinGetState($fenster,


Bekomme ich immer^^.
08/19/2010 19:15 cooler7878#36
Sehr gutes Tutorial aber ein ganz klein wenig klugscheissen muss sein
es heißt nicht inkludieren sondern einbinden ^^. Aber sonst richtig gutes Tut kriegst ein THX!^^
08/24/2010 10:04 scansi#37
bei mir führt er die aktion nur einmal aus, danach macht er nichts mehr. auch, wenn ich das script nochmals ausführe. woran kann das liegen?
12/07/2010 15:03 AzIo#38
hau alles in ne while schleife^^
While 1
"dein script"
WEnd
12/12/2010 20:44 King_OF#39
Quote:
Originally Posted by AutoI Error
Line 40 (File "C:\Program Files(x86)\AutoIt3\Include\ImageSearch.au3"):

if $result[0]="0" then return 0
if $result^ ERROR

Error: Subscript used with non-Array variable.
Könnte mir jemand weiterhelfen? Habe keine Ahnung mit Fehlermeldungen deines Programms.
12/12/2010 21:40 omer36#40
anscheinend haste 64bit !?

kopiere die .dll in dein system 32 ordner,
kopiee die imagesearch.au3 in dein includes ordner von autoit,

kopiere diese beiden sachen in dem selben ordner wie deine neue.au3
öffne deine neue.au3 und schreib ganz oben das hier:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

und vllt noch

#RequireAdmin
12/14/2010 15:12 King_OF#41
Danke für die Antwort, habe alles gemacht wie du es gesagt hast, aber es kommt immer dieselbe Fehlermeldung.

[Only registered and activated users can see links. Click Here To Register...]

Mein Bot sieht inzwischen so aus:
Code:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include<ImageSearch.au3>
$input = InputBox("Galaxy Gate klicker","Wie oft soll geklickt werden?")

MsgBox ( 0, "Info", "Das Programm wird mit Alt+G gestartet und mit Alt+B beendet.")
HotKeySet ( "!g", "start")
HotKeySet ( "!b", "beenden")
$x1=0
$y1=0
$x2=0
$y2=0

While 1
	sleep (1)
WEnd

Func start()
While 1
		For $i=1 to $input
		$result=_ImageSearch("GGButton.png",1,$x1,$y1,0)
		If $result=1 Then
			MouseClick ( "left", $x1, $y1)
			sleep (1000)
			$result2=_ImageSearch("MultiButton.png",1,$x2,$y2,0)
			If $result2=1 Then
				MouseClick ( "left", $x2, $y2,0)
			EndIf
		EndIf
	Next
	WEnd
EndFunc
Func beenden ()
	exit 0
EndFunc
12/15/2010 12:28 kamarun#42
ähm hi bei mir geht das ihrgen wie nicht also mein script

Quote:
#include<ImageSearch.au3>




HotKeySet("{F5}","starten")
HotKeySet("{F6}","beenden")
$x1=0
$y1=0


While 1
Sleep(1)
WEnd

Func starten()
While 1
$result=_ImageSearch("money.tga",1,$x1,$y1,0)
If $result=1 Then
MouseClick("LEFT",$x1,$y1)
sleep(500)
EndIf

WEnd
EndFunc

Func beenden()
Exit 0
EndFunc

dann bekomme ich den fehler

Quote:
>C:\Program Files (x86)\AutoIt3\SciTE\..\au3check.exe "C:\Users\teufel\Desktop\MonyBOT\BOT test.au3"
AutoIt3 Syntax Checker v1.54.8 Copyright (c) Tylo 2007

C:\Users\teufel\Desktop\MonyBOT\ImageSearch.au3(91 ,31) : WARNING: $fenster: possibly used before declaration.
$state = WinGetState($fenster,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

ich möchte eigentlich nur das wenn er auf dem bildschirm von metin das geldstück sieht hintläuft und anklick

aber wo liegt das problem jetzt mit dem $state = WinGetState($fenster,

das kapier ich nicht help please


ne hab daran nix verändert aber ich lad sie noch mal neu runter
12/15/2010 15:18 omer36#43
haste etwas in der imagesearch.au3 verändert?

lade die nochmal neu...
12/15/2010 17:02 King_OF#44
Quote:
Originally Posted by King_OF View Post
Danke für die Antwort, habe alles gemacht wie du es gesagt hast, aber es kommt immer dieselbe Fehlermeldung.

[Only registered and activated users can see links. Click Here To Register...]

Mein Bot sieht inzwischen so aus:
Code:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include<ImageSearch.au3>
$input = InputBox("Galaxy Gate klicker","Wie oft soll geklickt werden?")

MsgBox ( 0, "Info", "Das Programm wird mit Alt+G gestartet und mit Alt+B beendet.")
HotKeySet ( "!g", "start")
HotKeySet ( "!b", "beenden")
$x1=0
$y1=0
$x2=0
$y2=0

While 1
	sleep (1)
WEnd

Func start()
While 1
		For $i=1 to $input
		$result=_ImageSearch("GGButton.png",1,$x1,$y1,0)
		If $result=1 Then
			MouseClick ( "left", $x1, $y1)
			sleep (1000)
			$result2=_ImageSearch("MultiButton.png",1,$x2,$y2,0)
			If $result2=1 Then
				MouseClick ( "left", $x2, $y2,0)
			EndIf
		EndIf
	Next
	WEnd
EndFunc
Func beenden ()
	exit 0
EndFunc

Habe immer noch keine Antwort auf mein Problem bekommen. Ich hoffe, ihr könnt mir weiterhelfen.
12/15/2010 17:36 omer36#45
sicher dass du alles gemacht hast?

ich seh aber kein #RequireAdmin in deiner source...