Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 18:11

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Imagesearch effizienter machen

Discussion on Imagesearch effizienter machen within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 35
Join Date: Aug 2008
Posts: 582
Received Thanks: 196
Imagesearch effizienter machen

Moin,moin

Also zu meinem Problem:
Ich schreibe mal aus laune einen kleinen Bot für ein Flash Game.
Wenn 3 Felder der gleichen Farbe übereinander sind oder nebeneinander, dann soll der Bot dort drauf klicken.
Funktioniert auch soweit.
Allerdings arbeitet der Bot nicht gerade effizient(langsam)


Und irgendiwe gelingt es mir die Imagesearch funktion nicht gleichzeitig ausführen zu lassen(Also das der Bot gleichzeitig nach nebeneinander liegenden Roten,Lilanen,Grünen und Gelben "Steinen" sucht und wenn jeweils eine dieser suchfunktionen einen Positives Result ausspuckt dann dort drauf zu klicken.

Ich bekomme es also nur hin das der Bot alles nach einander verarbeitet also

Suche Rote Steine, wenn gefunden klicke drauf ansonsten suche Lila Steine.
Also im Prinzip arbeitet der Bot in einer art "Stapelverarbeitung"
Bloß es ist auch nicht möglich mehrere Funktionen gleichzeitig zu callen?!
Wäre sehr nice, wenn jemand wüsste ,wie dies trotzdem geht..
Danke schonmal!



Code Snippet:

Code:
Func Lila()
	GUICtrlSetData($Info, "Lila")
 $result=_ImageSearch("Lilax.png",1,$x1,$y1,10)
 If $result=1 Then
 MouseClick("LEFT",$x1,$y1,1,1)
 Call("Lilas")
 else
	Call("Lilas")
 Endif
 EndFunc
 
 
 Func Lilas()
	GUICtrlSetData($Info, "Lilas")
 $result=_ImageSearch("Lilas.png",1,$x1,$y1,10)
 If $result=1 Then
 MouseClick("LEFT",$x1,$y1,1,1)
 Call("Rots")
 else
	Call("Rots")
 Endif
 EndFunc
 
 Func Rots()
	GUICtrlSetData($Info, "Rots")
 $result=_ImageSearch("Rots.png",1,$x1,$y1,10)
 If $result=1 Then
 MouseClick("LEFT",$x1,$y1,1,1)
 Call("Rot")
 else
	Call("Rot")
 Endif
 EndFunc

Zur Erklärung: Rot = Waagerechte Steine, Rots= Senkrechte Steine.
paddygamer is offline  
Old 05/05/2013, 08:22   #2
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Warum benutzt du denn Call, um eine Funktion aufzurufen?
Call("Rot") -> Rot()

Quote:
Originally Posted by paddygamer View Post
Allerdings arbeitet der Bot nicht gerade effizient(langsam)
Und irgendiwe gelingt es mir die Imagesearch funktion nicht gleichzeitig ausführen zu lassen(Also das der Bot gleichzeitig nach nebeneinander liegenden Roten,Lilanen,Grünen und Gelben "Steinen" sucht und wenn jeweils eine dieser suchfunktionen einen Positives Result ausspuckt dann dort drauf zu klicken. [...] Ich bekomme es also nur hin das der Bot alles nach einander verarbeitet also
  • Suchbereich einschränken
  • AutoIt kann nicht mehrere Dinge gleichzeitig machen

MfG
Achat is offline  
Old 05/05/2013, 13:52   #3
 
elite*gold: 35
Join Date: Aug 2008
Posts: 582
Received Thanks: 196
Quote:
Originally Posted by Achat View Post
Warum benutzt du denn Call, um eine Funktion aufzurufen?
Call("Rot") -> Rot()


  • Suchbereich einschränken
  • AutoIt kann nicht mehrere Dinge gleichzeitig machen

MfG

Okay sehr schön, danke der Antwort schonmal das das so nicht möglich ist.
Ist es denn möglich nach mehreren Pixeln zu suchen,da das ja schneller geht
Also im Prinzip

If PixelRot liegt rechts neben PixelDunkelrot
Dann klicke auf PixelRot?
paddygamer is offline  
Old 05/05/2013, 13:58   #4
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Du kannst die Ausführungszeit des Pixel Befehls um den Faktor 1000 beschleunigen, in dem du zurück auf das Windows 2k Design wechselst.

MfG
Achat is offline  
Old 05/05/2013, 14:27   #5
 
Croco™'s Avatar
 
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
Code:
Func _EnableDisableAero($bEnable = True) ;True/False
	Local $aDll = DllCall($hDwmApiDll,"int","DwmEnableComposition","int",$bEnable)
	If @error Then Return SetError(@error,0,0)
	Return $aDll[0]
EndFunc
Damit kannst du das Aero Design ausschalten und alles wird um einiges schneller
Croco™ is offline  
Thanks
1 User
Old 05/05/2013, 15:00   #6
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Code:
For $ia = 0 To 1
	_EnableDisableAero($ia)
		$hTimer = TimerInit()
	For $i = 0 To 1000
		PixelGetColor(500,500)
	Next
	MsgBox(0x40040, 0, Round(TimerDiff($hTimer) / 1000,4) & 'ms per pixelgetcolor' & @CRLF & 'Aero enabled: ' & $ia)
Next

_EnableDisableAero(1)

Func _EnableDisableAero($bEnable = True) ;True/False
	Local $aDll = DllCall('dwmapi.dll', "int", "DwmEnableComposition", "int", $bEnable)
	If @error Then Return SetError(@error, 0, 0)
	Return $aDll[0]
EndFunc   ;==>_EnableDisableAero



Die Zahlen sprechen für sich

Danke für die Funktion (h) (hug) :* (inlove)

MfG
Achat is offline  
Reply


Similar Threads 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~~~~~
Autoit Imageseach Ungenau?! Prob
05/14/2013 - AutoIt - 6 Replies
hey sry schon wieder ein Theard von mir :D 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
[Frage] Metin2 Client Menü Farbe und Inventar Farbe ändern?
03/11/2011 - Metin2 Private Server - 3 Replies
Hey Leute ich habe einen Metin2 P server gesehen der die farbe der Buttons und inventar und alles in Grün Hatte ich möchte auch die Farbe Ändern Weis das einer Wie mann das machen kann?
Farbe änderern auch ohne Hackprogramm?
10/21/2010 - Combat Arms - 15 Replies
Hallo Leute, hab mal ne frage. Wenn man hackt werden ja alle Personen und Waffen in einer anderen Farbe angezeigt.Nun zumeiner Frage gibt es so etwas auch als einzelnesprogramm das einfach nur die Farbe ändert? :confused: MfgBigKing
farm/levelbot ohne moblock (rote farbe)
09/12/2009 - AutoIt - 2 Replies
hab da mal ne frage wie macht man das eigentlich dass autoit deb GANZEN bilschirm nach EINER farbe absucht und auf diese farbe klickt? hier das skript: HotKeySet("{F7}" , "Start") HotKeySet("{F8}" , "Pause") Func Start () send("1") Sleep(1000) send("2") Sleep(1000)



All times are GMT +1. The time now is 18:14.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.