|
You last visited: Today at 07:30
Advertisement
Autoit Imageseach Ungenau?! Prob
Discussion on Autoit Imageseach Ungenau?! Prob within the AutoIt forum part of the Coders Den category.
04/22/2013, 20:20
|
#1
|
elite*gold: 0
Join Date: Sep 2010
Posts: 145
Received Thanks: 18
|
Autoit Imageseach Ungenau?! Prob
hey sry schon wieder ein Theard von mir 
aber naja immerhin gehts ja jetzt (läuft zumindest)
also für alle die es noch nicht wissen ich wollte mir mit autoit einen
awakebot für flyff schreiben da alle die hier angeboten werden nicht mit /awake funktionieren
hier ist mein scrypt
#AutoIt3Wrapper_UseX64=n
#include<imagesearch.au3>
;hotkeys festlegen
HotKeySet("{f1}","_Exit")
;image bot
$x1=0
$y1=0
Sleep(1000)
While 1
$variable = _ImageSearchMouseArea("C:\Users\GO\Desktop\Game Tools\flyff p server\bots\dex.jpg",0,200,$x1,$y1,40)
If $variable = 1 Then
Exit
Else
Send("{f2}")
EndIf
WEnd
; functions
Func _Exit ()
Exit
EndFunc
und ja es läuft zwar alles aber ich habe das gefühl das der bot das bild nicht erkennt oder so normal müsste er sich ja schließen wenn der es gefunden hat aber er bleibt meistens einfach mittendrin stehen und macht nix mehr (ohne das er sich schließt) bis ich die maus bewege oder so
und wenn dann mal das Bild erscheint (DEX) dann geht er trotzdem nicht zu und macht weiter.
hab wie kann ich denn machen damit er das erkennt und nicht mehr so hängt
hier noch das bild das ich suchen lasse
hab auch schon versucht den hintergrund transparent zu machen aber hatte auch nix geändert
EDIT: hier noch meine imagesearch.au3
Code:
#include-once
; ------------------------------------------------------------------------------
;
; AutoIt Version: 3.0
; Language: English
; Description: Functions that assist with Image Search
; Require that the ImageSearchDLL.dll be loadable
;
; ------------------------------------------------------------------------------
;===============================================================================
;
; Description: Find the position of an image on the desktop
; Syntax: _ImageSearchArea, _ImageSearch
; Parameter(s):
; $findImage - the image to locate on the desktop
; $tolerance - 0 for no tolerance (0-255). Needed when colors of
; image differ from desktop. e.g GIF
; $resultPosition - Set where the returned x,y location of the image is.
; 1 for centre of image, 0 for top left of image
; $x $y - Return the x and y location of the image
;
; Return Value(s): On Success - Returns 1
; On Failure - Returns 0
;
; Note: Use _ImageSearch to search the entire desktop, _ImageSearchArea to specify
; a desktop region to search
;
;===============================================================================
Func _ImageSearch($findImage,$resultPosition,ByRef $x, ByRef $y,$tolerance)
return _ImageSearchArea($findImage,$resultPosition,0,0,@DesktopWidth,@DesktopHeight,$x,$y,$tolerance)
EndFunc
Func _ImageSearchMouseArea($findImage,$resultPosition,$radius,ByRef $x, ByRef $y, $tolerance)
Return _ImageSearchArea($findImage,$resultPosition,MouseGetPos(0)-$radius,MouseGetPos(1)-$radius,MouseGetPos(0)+$radius,MouseGetPos(1)+$radius,$x,$y,$tolerance)
EndFunc
Func _ImageSearchArea($findImage,$resultPosition,$x1,$y1,$right,$bottom,ByRef $x, ByRef $y, $tolerance)
;MsgBox(0,"asd","" & $x1 & " " & $y1 & " " & $right & " " & $bottom)
if $tolerance>0 then $findImage = "*" & $tolerance & " " & $findImage
$result = DllCall("imagesearch.dll","str","ImageSearch","int",$x1,"int",$y1,"int",$right,"int",$bottom,"str",$findImage)
; If error exit
if $result[0]="0" then return 0
; Otherwise get the x,y location of the match and the size of the image to
; compute the centre of search
$array = StringSplit($result[0],"|")
$x=Int(Number($array[2]))
$y=Int(Number($array[3]))
if $resultPosition=1 then
$x=$x + Int(Number($array[4])/2)
$y=$y + Int(Number($array[5])/2)
endif
return 1
EndFunc
;===============================================================================
;
; Description: Wait for a specified number of seconds for an image to appear
;
; Syntax: _WaitForImageSearch, _WaitForImagesSearch
; Parameter(s):
; $waitSecs - seconds to try and find the image
; $findImage - the image to locate on the desktop
; $tolerance - 0 for no tolerance (0-255). Needed when colors of
; image differ from desktop. e.g GIF
; $resultPosition - Set where the returned x,y location of the image is.
; 1 for centre of image, 0 for top left of image
; $x $y - Return the x and y location of the image
;
; Return Value(s): On Success - Returns 1
; On Failure - Returns 0
;
;
;===============================================================================
Func _WaitForImageSearch($findImage,$waitSecs,$resultPosition,ByRef $x, ByRef $y,$tolerance)
$waitSecs = $waitSecs * 1
$startTime=TimerInit()
While TimerDiff($startTime) < $waitSecs
sleep(100)
$result=_ImageSearch($findImage,$resultPosition,$x, $y,$tolerance)
if $result > 0 Then
return 1
EndIf
WEnd
return 0
EndFunc
;===============================================================================
;
; Description: Wait for a specified number of seconds for any of a set of
; images to appear
;
; Syntax: _WaitForImagesSearch
; Parameter(s):
; $waitSecs - seconds to try and find the image
; $findImage - the ARRAY of images to locate on the desktop
; - ARRAY[0] is set to the number of images to loop through
; ARRAY[1] is the first image
; $tolerance - 0 for no tolerance (0-255). Needed when colors of
; image differ from desktop. e.g GIF
; $resultPosition - Set where the returned x,y location of the image is.
; 1 for centre of image, 0 for top left of image
; $x $y - Return the x and y location of the image
;
; Return Value(s): On Success - Returns the index of the successful find
; On Failure - Returns 0
;
;
;===============================================================================
Func _WaitForImagesSearch($findImage,$waitSecs,$resultPosition,ByRef $x, ByRef $y,$tolerance)
$waitSecs = $waitSecs * 1
$startTime=TimerInit()
While TimerDiff($startTime) < $waitSecs
for $i = 1 to $findImage[0]
sleep(100)
$result=_ImageSearch($findImage[$i],$resultPosition,$x, $y,$tolerance)
if $result > 0 Then
return $i
EndIf
Next
WEnd
return 0
EndFunc
brauche unbedingt eure hilfe
vieln dank
|
|
|
04/23/2013, 05:00
|
#2
|
elite*gold: 250
Join Date: Mar 2010
Posts: 840
Received Thanks: 184
|
Poste doch mal bitte deine Imagesearch.au3 aber bitte benutze die Code Tags [code ]Dein Code[/code].
Grund? Wäre mir neu dass es mit "_ImageSearchMouseArea" geht und hab auf die schnelle nichts gefunden.
Versuch es lieber so:
Code:
_ImageSearchArea($findImage,$resultPosition,$x1,$y1,$right,$bottom,ByRef $x, ByRef $y, $tolerance)
sollte dann so aussehen. musst allerdings einen Bereich mit 2 Punkten definieren, in dem er suchen soll:
Code:
_imagesearcharea('Bild1.png',1,Punkt1XKoordinate,Punkt1YKoordinate,Punkt2XKoordinate,Punkt2YKoordinate,$x,$,0)
Zwischen den beiden Punkten wird jetzt ein Rechteck aufgezogen, in dem er nach deinem Bild sucht.
Und dann versuch das mal:
Code:
#AutoIt3Wrapper_UseX64=n
#include <imagesearch.au3>
;hotkeys festlegen
HotKeySet("{f1}","_Exit")
HotKeySet("HOTKEY","_Start")
;image bot
$x1=0
$y1=0
While 1
sleep(10)
Wend
Func _Start()
While 1
DEIN IMAGESEARCH PART
If $variable = 1 Then
ExitLoop
Else
Send("{f2}")
EndIf
WEnd
Exit
Endfunc
Func _Exit ()
Exit
EndFunc
|
|
|
04/23/2013, 09:58
|
#3
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Fehler könnten sein das er das bild überhaupt nicht findet und außerdem ist ImagSearch Ingame recht langsam und das fenster kann nicht im Hintergrund laufen
|
|
|
04/23/2013, 12:08
|
#4
|
elite*gold: 40
Join Date: May 2007
Posts: 631
Received Thanks: 69
|
wie flutter schon meinte das bild wird nicht gefunden
das was du gemacht hast ist soweit schon gut aber das was ich nicht verstehe ist
(if then else)
bei dir
if exit then else
FoGzone hat es ja schon verbessert
ein wichtiger tipp von mir ist
du hast eine ganze anzahl von farben/werten genommen picture = DEX.
mach es dir noch einfacher und nimm noch ein kleineren auschnitt.
was ist damit gemeint?
nehmen wir uns einfach aus dem wort "DEX" den buchstaben "X". der buchstabe "X" kommt auch nur einmal in diesem fenster mit dem farbcode/farbwert vor (einfach angenommen kann auch "D" oder "E" sein)
öffne mit gimp oder CS (Photoshop) das bild und such dir eine markante stelle von dem buchstaben "X" aus. ich würde genau die schnittstelle nehmen wo sich die beiden geraden schneiden.
was jetzt?
zoom soweit an die schnitsetlle heran das du 4x4 / 8x8 / 10x10 pixel auswählen kannst und speicher dies ab und nutze das mal aber nicht verändert, wie hintergrund oder sonst was am bild. es muss ein original sein wovon du dies machst.
hoffe ich habe das gut erklärt bin da eher der legasteniker ^^
|
|
|
04/23/2013, 12:46
|
#5
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
ich glaube auch das pixelsearch nach einem der farbcodes in dem wort DEX ausreicht weil ImageSearch Ingame schei** ist
|
|
|
04/23/2013, 14:26
|
#6
|
elite*gold: 0
Join Date: Sep 2010
Posts: 145
Received Thanks: 18
|
erst einmal danke für eure hilfe leider hab ich das problem immernochnicht gelöst also ich habe bisher ein neues scrypt erstellt wie es FogZone gesagt hat
hier ist es:
Code:
#AutoIt3Wrapper_UseX64=n
#include <imagesearch.au3>
;hotkeys festlegen
HotKeySet("{f1}","_Exit")
HotKeySet("{f3}","_Start")
;image bot
$x1=0
$y1=0
While 1
sleep(10)
Wend
Func _Start()
While 1
$variable = _imagesearcharea("C:\Users\GO\Desktop\Game Tools\flyff p server\bots\dex.jpg",1,1636,201,1903,643,$x1,$y1,100)
If $variable = 1 Then
MsgBox(0,"hey","ok")
ExitLoop
Else
Send("{f2}")
EndIf
WEnd
Exit
Endfunc
Func _Exit ()
Exit
EndFunc
ich habe die koordinaten eingesetzt jedoch kommt nun wenn ich es start will der fehler hier:
das mit dem bild verändern teste ich als nächstes melde mich dann wenn ich fertig bin 
jedoch wärs gut wenn das scrypt erstmal laufen würde
habe auch noch meine imagesearch.au3 geaddet oben
nochmals danke für eure hilfe habt alle schon ne fettes thanks
Alles klar vergesst den fehler habs gefunden das programm funzt jetzt aber ein problem hab ich noch und zwar: er läuft zwar aber genauso wie vorher auch , er bleibt einfach stehen nach dem ersten f2 obwohl das bild noch nicht erschienen ist, sendet jedoch keine nachricht oda so was er tun würde wenn er das bild gefunden hätte , also worad liegts? sobald ich jedoch die maus bewege macht er weiter
|
|
|
05/14/2013, 14:58
|
#7
|
elite*gold: 0
Join Date: Sep 2010
Posts: 145
Received Thanks: 18
|
^
Problem wurde immernochnicht gelöst...deshalb up
mfg
|
|
|
 |
Similar Threads
|
ImageSeach Problem - Nur Errors! obwohl alles richtig ist!
05/21/2013 - AutoIt - 12 Replies
Hey,
Ich versuche seit einpaar tagen einen ImageSearch Bot zu erstellen aber egal was ich mache... da ist immer ein Fail dabei...
1. Script
2. ImageSearchDLL.dll
3. ImageSearch.au3
~~~~~1. Script~~~~~
|
[prob]cf autoit bot
05/25/2010 - CrossFire - 13 Replies
hey hoffentlich kann mir irgendjemand helfen unswar ich hab ein problem ich hab ein bot erstellt das immer "w" und "s" drückt es funktioniert auch (hab in editor getestet^^) aber bei crossfire funktioniert es nicht
ps:ich hab die datei mal als anhang reingestellt dann könnt ihr es selber testen
viren test:
Datei ws_bot.exe empfangen 2010.05.24 15:51:50 (UTC)
Status: Laden ... Wartend Warten Überprüfung Beendet Nicht gefunden Gestoppt
Ergebnis: 0/40 (0.0%)
...
|
AutoIT Prob.
02/21/2010 - AutoIt - 17 Replies
Moin,
ich habe vor, für Granado Espada eine kleine "Spielhilfe" mit AutoIT zu basteln. Das 4-teilige Tut von cheat-project-germany habe ich mir angesehen, ist an sich ja nicht eine sonderlich schwierige Angelegenheit (kann c / c++).
Sooo, nun habe ich erst einmal die Variablen bekannt gemacht, dann die Farbwerte des Healt-Balkens der 3 Chars auslesen lassen (einmal links, einmal mittig). Dann mit IF festgelegt, wenn Farbwerte gleich, dann Tooltip anzeigen, dass alles okay ist....
|
Prob/Frage AutoIt
10/20/2008 - Metin2 - 2 Replies
Also ich habe versucht mir nen einlog bot zu scripten funst auch so weit... jetzt habe ich versucht eine datei zu bauen die das PW und die ID in der config.txt ändert...
Das ganze sieht so aus:
#include <File.au3>
$file = "config.txt"
$id = InputBox ("Daten", "ID")
$pw = InputBox ("Daten", "Passwort")
|
Prob mit AutoIt
07/19/2008 - AutoIt - 9 Replies
Wie kann ich mit AutoIt ein Menü erstellen?
Hab grad nen kleinen Bot gebaut und würd ihn gern
über ein selbstgeschriebenes menü starten.
und noch eine frage,
wie kann ich einstellen das mein bot die ganze zeit funzt?
|
All times are GMT +1. The time now is 07:30.
|
|