Puhhhh ich bin am verzweifeln, über Stunden gegoogelt und in anderen Forums gesucht. Ich bekomme einfach nicht diese Fehlermeldung weg:
Quote:
ImageSearch.au3 (44) : ==> Subscript used with non-Array variable.:
if $result[0]="0" then return 0
if $result^ ERROR
Schon viel ausprobiert ...
Ich habe Windows 7 - 64 bit
1. In meinem Ordner sind: mein Script, ImageSearch.au3, ImageSearchDLL.dll und die sstart.bmp
2. Füge ich #RequireAdmin hinzu, bekomm ich zwar nicht die mehr die Fehlermeldung, aber beim drücken der Func crashed die Anwendung.
3. mit der ImageSearchDLL.dll.64bit funktioniert es auch nicht.
4. Füge ich #AutoIt3Wrapper_UseX64=n hinzu, funktioniert es auch nicht.
5. es per Rechtsklick -> Run Script (x86) starten, geht auch nicht.
Kann es vllt sein das ich ImageSearch.au3, ImageSearchDLL.dll veraltet sind ? Den ich finde einige deads links, könnte vllt falsch sein ?
Ein anderer meint auf 64bit Versionen geht es einfach nicht ?
Hier mal der Code:
Code:
#include <ImageSearch.au3>
$x = 0
$y = 0
HotKeySet("{F3}", "test")
While True
WEnd
Func test()
While 1
$start= _ImageSearch("sstart.bmp",1,$x,$y,0)
If $start[0] = 1 Then
MsgBox(0,"","Gefunden")
If @error Then
MsgBox(0,"","Nicht gefunden")
EndIf
EndIf
WEnd
EndFunc
ich glaub das ist ein Fehler da müsste normal nur $start hin oder ? , der code ist nur kopiert von papierkorb um es zu verstehen. Da es aber nicht mal funktioniert, hab ich das Problem damit.
Quote:
2.) fehlerhafte imagesearch.au3?
Kann ich dir nicht sagen ich hab sie irgendwo runter geladen, dazu muss man aber erwähnen das von 10 Links - 8 oder so tot waren.
Weist du wo ich eine 100% worked imagesearch.au3 her bekomme, um dies auszuschließen ( kann mir natürlich eine weitere aus dem Web suchen, aber wer weis ob die 100% ist ) ?
Du könntest nach einem Pattern von Pixel nachscannen, ist schneller und braucht diese schlechte UDF nicht.
Ich hab die UDF auch noch nie gebraucht und die ist wirklich schlecht^^
Du könntest zb. Mehrere Pixelsearch und Pixelgetcolor verwenden um den stand des balkens abzufragen. Daraus könntest du dir einen algorythmus bauen der zum start immer schaut wo die lebenspunkte anzeige ist und wie voll.
Du könntest im arbeitsspeicher nach der addresse suchen
ich hab die ImageSearch.au3 auch einmal benutzt und bekam diesen fehler. mit der suchfunktion habe ich dann die antwort gefunden.
an deinem script war von anfang an alles richtig. nur die udf hatte eine macke. die zeile 40 in der udf ersetzt du am besten durch das:
Ich hab mich mal an einen kleinen such algo rangesetzt der jetzt auch funktioniert.
Er sucht den bildschirm ab bis er den pixel gefunden hat. dann "generiert" er die coordinaten an denen man überprüfen kann wie voll die anzeige ist. Bei fragen einfach hier schreiben oder skype.
Ich weis jetzt auch nicht ob genau das gesucht war aber vielleicht kann man es ja gebrauchen
als beispiel habe ich diese rote leiste benutzt :
(am besten downloaden wegen des roten icons im epvp img tab)
MsgBox(0,"","Wenn ok gedrückt wird startet die func")
$array = _Pixel_Search_Pattern("0xED1B24",360) If IsArray($array) Then _ArrayDisplay($array) Else MsgBox(0,"","Error :(") EndIf
; #FUNCTION# ==================================================================================================================== ; Name ..........: _Pixel_Search_Pattern ; Description ...: Sucht eine pixel region ; .: Es wird von oben links nach unten rechts gesucht deswegen ist der erste fund die oberste linke kante der region ; Syntax ........: _Pixel_Search_Pattern($hex_Color, $px_lenght[, $px_step = 10[, $pixels = 10]]) ; Parameters ....: $hex_Color - Decimal oder hex color code ; $px_lenght - länge des objects (der hp bar) ; $px_step - [optional] pixel nach rechts die es beim suchen gehen soll (10) ; $pixels - [optional] pixel nach rechts bei der ersten suche ; Return values .: Array mit coordinaten ; .: array[0] = y achse ; array[1*n] = x achse ; Author ........: FlutterShy ; =============================================================================================================================== Func _Pixel_Search_Pattern($hex_Color,$px_lenght,$px_step = 10,$pixels = 10) Do $px = _Pixel_Search($hex_Color) sleep(10) Until $px <> False $px_pattern = True Dim $px_array[$px_lenght / $px_step + 1] $px_array[0] = $px[1] $i_px_count = 1 Do $px_get = _Pixel_GetColor($px[0] + $pixels,$px[1]) If $px_get <> $hex_Color Then $px_pattern = False Else $px_array[$i_px_count] = $px[0] + $pixels $i_px_count += 1 EndIf $pixels += $px_step If $pixels > $px_lenght Then $px_pattern = False EndIf Until $px_pattern = False If IsArray($px_array) Then Return $px_array Else Return False EndIf EndFunc
Func _Pixel_Search($hex_Color) $icoords = PixelSearch(0,0,@DesktopHeight,@DesktopWidth,$hex_Color,0,1) If IsArray($icoords) Then Return $icoords Else Return False EndIf EndFunc
Func _Pixel_GetColor($px_x,$px_y) $px_color = PixelGetColor($px_x,$px_y) If Not @error And $px_color <> "" And $px_color <> "-1" Then Return $px_color Else Return False EndIf EndFunc
Edit : Um das ganze etwas performanter zu implementieren könnte man vorher mit pixelchecksum schauen ob sich überhaupt was geändert hat
Ich suche eher etwas so was:
Die Spielkarte hat die Lebenspunkte als Zahl z.B. 4, die Karte ist auch nicht immer am selben Platz.
Er soll den Bildschirm überprüfen ob eine der Karten die Zahl 4 hat ( wollte ich mit ImageSearch 4.bmp machen ) und dann darauf klicken, danach noch eine 3er und 2er suchen und jeweils was machen.
Wenn ich eure guten Tipps verstehe, dann müsste ich mir von der Zahl z.B. 4 einfach 4-12 Pixel raussuchen.
Code:
$pos = PixelSearch(2,2,1350,760,FARBE,0) ;wie kann ich hier jetzt z.b. das Muster von den 4-12 Pixeln eintragen ?
If isArray($pos) then
MouseMove($pos[0],$pos[1],0)
MouseClick("Left")
EndIf
Oder denke ich gerade in eine ganz falsche Richtung ? Ihr seht ich bin noch ein rechter Frischling, aber willig zu lernen. Vllt kann mir einer einen Code schicken, wie es sein sollte oder wie es noch einfacher geht, anhand diesem könnte ich daraus lernen.
Ich möchte hier von keinem verlangen einen kompleten Code für alles zu bekommen.
Einfach mal nur wie ich das mit der "4" hinbekomme, ohne ImageSearch zu benützen. Vllt ist meine jetzige Denkweise gar nicht falsch, sondern mir fehlt nur die Erfahrung/Wissen.
Mit lebenspunkte bringe ich sofort lebensbalken in verbindung ^^
Ich würd schon fast sagen das solltest du mit der Img search .au3 lösen.
Außer wenn nur eine zahl gleichzeitig am bildschirm ist und die (von den pixeln her) einzigartig ist dann könnte man sie auch so suchen aber hier wäre imgsearch einfacher
So mit ImageSearch hab ich soweit keine Probleme, auf meinem Desktop macht er das was ich will, aber sobald ich das auch im Spiel machen will, geht es nicht mehr.
Könnte es sein das es nur aufn Desktop funktioniert ?
Das Spiel evt. ein Blocker gegen so was hat ?
Code:
WinActive("[Hearthstone]") ;funktioniert irgendwie nicht
If _ImageSearch("data/uben.bmp",1,$x,$y,0) = 1 Then
MouseClick("left", $x, $y)
EndIf
ImageSearch Problem 12/22/2013 - AutoIt - 6 Replies Servus Leute,
ich würde mich echt freuen wenn ihr mir zeigen könntet wo der Fehler ist. Ich kann ihn einfach nicht finden. Er soll einfach nur eine MsgBox anzeigen, wenn er das Bild gefunden hat.
#Include <ImageSearch.au3>
HotKeySet ("{F6}","_START")
Global $y = 0, $x = 0
ImageSearch Problem 08/13/2013 - AutoIt - 0 Replies Huhu Leute, habe nen echt verzwicktes ImageSearch Problem...
Ich versuche nachdem ich nen Button gedrückt habe ein Funktion zu callen, was auch funktioniert, hier die Function:
$y = 0
$x = 0
Func _Agni()
Sleep(1000)
$agni2 = _ImageSearch("Gods\Agni.bmp",1,$y,$x,0)
If $agni2=1 Then
MouseMove($y,$x,1)
ImageSearch Problem 12/23/2010 - AutoIt - 0 Replies Hallo,
und zwar mein problem ist die Transparenz, was ich finden will ist sowas:
Directupload.net - Dkcow6vd6.png
Hier dieses "Rough" rausfiltern. Nur ist zwischen den Buchstaben ein Hintergrund.
Jetzt hab ich schon versucht das "Rough" mit einem schwarzen Hintergrund zu belegen und das schwarz als transparent angeben. Leider funktioniert das überhaupt nicht.
bsp bild:
Problem: ImageSearch 11/22/2010 - AutoIt - 10 Replies Hallo, ich wollte gerne das ImageSearch (http://www.elitepvpers.com/forum/metin2-guides-tem plates/123505-guide-autoit-imagesearch.html) von AutoIt probieren.
Dies ist mein Script:
#include <ImageSearch.au3>
$x1=0
$y1=0
$result = _ImageSearch("test.png",1,$x1,$y1,0)
if $result=1 Then
MsgBox(0,"Geklappt!")
Imagesearch Problem 09/18/2009 - GW Bots - 16 Replies Hi,
sorry, dass ich nochmal nerven muss:rolleyes:ich hab mal Imagesearch ausprobiert aber irgendwie klappt das bei mir in Guild Wars nicht...:(
Kann mir einer bitte sagen woran das liegt?:confused:
#include <ImageSearch.au3>
$x1 = 0
$y1 = 0