|
You last visited: Today at 03:45
Advertisement
ImageSearch zu langsam?
Discussion on ImageSearch zu langsam? within the AutoIt forum part of the Coders Den category.
05/05/2015, 14:42
|
#1
|
elite*gold: 0
Join Date: Oct 2009
Posts: 63
Received Thanks: 9
|
ImageSearch zu langsam?
Hi Community,
Ich habe es nun endlich geschafft, mir meinen eigenen Bot zu schreiben. Er tut auch das was er machen soll, nur ist er in der Sache ein wenig langsam.
Er soll nämlich während der Bewegung Boxen anklicken.
Wenn das Schiff stehen bleibt und sich somit die Boxen nicht bewegen funktioniert alles wie geplant, nur wenn sich das Schiff bewegt klickt er zu 90% daneben.
Habe die Mausbewegung wenn das passende Bild gefunden wurde schon auf 0 gestellt, also kann es zumindest nicht an der Schnelligkeit von der Maus liegen, oder?
Liegt es an AutoIt, oder kann man den Bot noch irgendwie optimieren?
Eventuell ein kleineres Bild suchen lassen?
Hier ein Video zur Verdeutlichung:
Hier die ImageSearch Datei "BonusBox.bmp":
Hier der Code:
Code:
#AutoIt3Wrapper_UseX64=n
#requireadmin
#include <ImageSearch.au3>
HotKeySet ("{F1}", "Pause")
HotKeySet ("{F2}", "Suche")
HotKeySet ("{ESC}", "Ende")
$iCounter = 1
While 1
Sleep(100)
While $iCounter <= 1
MsgBox (64, "Tastenbelegung", "F2: Sammeln beginnen" & @CRLF & "F1: Pause" & @CRLF & "ESC: Beenden")
$iCounter +=1
WEnd
WEnd
Func Suche ()
While 1
$x1=0
$y1=0
$BB=_ImageSearch("BonusBox.bmp",0,$x1,$y1,150)
If $BB=1 Then
MouseClick("Left", $x1 + Random (1,20), $y1 + Random(1,20), 1, 0)
Sleep(Random(2500, 4000))
Else
MouseClick("Left", Random(1720, 1896), Random(908, 1012), 1, Random(3,7)) ; Einen Klick auf die MiniMap
_WaitForImageSearch("BonusBox.bmp",Random(5,13),0,$x1,$y1,150)
EndIf
WEnd
EndFunc
Func Pause()
While 1
Sleep(1000)
WEnd
EndFunc
Func Ende()
Exit
EndFunc
Danke für die Hilfe
MfG,
|
|
|
05/05/2015, 15:00
|
#2
|
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
|
Ich würde dir raten, dass wenn er eine Bonusbox gefunden hat, einen Klick in die Mitte des Spielfensters macht, um stehenzubleiben. Dann sucht er nochmal, und klickt dann auf die Bonusbox während du nicht fliegst. So solltest du keine Probleme mit dem Danebenklicken haben.
PHP Code:
While $iCounter <= 1 MsgBox (64, "Tastenbelegung", "F2: Sammeln beginnen" & @CRLF & "F1: Pause" & @CRLF & "ESC: Beenden") $iCounter +=1 WEnd
Nebenbei ist das komisch gecodet. Man merkt, dass du die Msgbox nur 1x angezeigt haben möchtest. Dafür kannst du aber auch einfach die Msgbox vor der While 1 Schleife schreiben und brauchst nicht noch eine extra Schleife dafür.
|
|
|
05/05/2015, 15:04
|
#3
|
elite*gold: 0
Join Date: Oct 2009
Posts: 63
Received Thanks: 9
|
Das würde die Effektivität allerdings mindern.
Das während dem Flug präzise auf die Box geklickt wird ist also nicht möglich?
(Das mit der MsgBox ist Feinkosmetik )
MfG
|
|
|
05/05/2015, 15:40
|
#4
|
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
|
Quote:
Originally Posted by kollergen
Das würde die Effektivität allerdings mindern.
Das während dem Flug präzise auf die Box geklickt wird ist also nicht möglich?
(Das mit der MsgBox ist Feinkosmetik )
MfG
|
Mlglich ist es schon. Der bot müsste irgendwie wissen in welche richtung das schiff fliegt und mit welcher Geschwindigkeit. Dann kannst du die Position der bonusbos ausrechnen. Die formel zum ausrechnen musst du halt dirch try and error herausfinden. Das wär mein vorschlag
|
|
|
05/05/2015, 16:01
|
#5
|
elite*gold: 0
Join Date: Oct 2009
Posts: 63
Received Thanks: 9
|
Das klingt mir zu kompliziert.
Ich denke ich belasse es dann lieber so, wie es nun ist.
|
|
|
05/05/2015, 16:14
|
#6
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
fastfind -> google
Dein code ist sehr verbesserungswürdig
Edit:
Und warum immer autoit? ich frag mich wann mal jemand c# nimmt und meine klassen benutzt.
Ich versteh nicht wieso man sich nicht ne stunde mehr zeit nimmt und die c# grundlagen lernt
|
|
|
05/05/2015, 17:46
|
#7
|
elite*gold: 0
Join Date: Oct 2009
Posts: 63
Received Thanks: 9
|
Ich taste mich langsam an das Thema Computersprache ran. Ich finde mit AutoIt kann man es für den Anfang ziemlich gut lernen.
Was würdest du verbessern?
|
|
|
05/05/2015, 23:44
|
#8
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
PHP Code:
#AutoIt3Wrapper_UseX64=n #RequireAdmin #include <ImageSearch.au3>
HotKeySet ("{F1}", "Pause") HotKeySet ("{F2}", "Suche") HotKeySet ("{ESC}", "Ende")
$bFirstLoop = True
While 1 Sleep(100) If $bFirstLoop MsgBox (64, "Tastenbelegung", "F2: Sammeln beginnen" & @CRLF & "F1: Pause" & @CRLF & "ESC: Beenden") $bFirstLoop = False EndIf WEnd
Func Suche () $x1=0 $y1=0 While 1 If _ImageSearch("BonusBox.bmp",0,$x1,$y1,150) Then MouseClick("Left", $x1 + Random (1,15,1), $y1 + Random(1,15,1), 1, 0) Sleep(Random(2000, 3000,1)) While _ImageSearch("BonusBox.bmp",0,$x1,$y1,150) MouseClick("Left", $x1 + Random (1,15,1), $y1 + Random(1,15,1), 1, 0) Sleep(Random(2000, 3000,1)) WEnd Else MouseClick("Left", Random(1720, 1896), Random(908, 1012), 1, Random(3,7)) ; Einen Klick auf die MiniMap _WaitForImageSearch("BonusBox.bmp",Random(5,13),0,$x1,$y1,150) EndIf WEnd EndFunc
Func Pause() While 1 Sleep(1000) WEnd EndFunc
Func Ende() Exit EndFunc
|
|
|
|
Similar Threads
|
[Help] ImageSearch
06/23/2012 - AutoIt - 0 Replies
Tag zusammen,
Ich habe eine Problem. Und zwar bei MonsterWorld ( Facebook Game )
Läuft Soweit auch ganz gut.
Er findet die Flaschen und Pflanzt sie.
Dann erntet er sie nach 2 Minuten ab. Bis hier hin läufts!
Nun soll er nach ein freien Feld suchen und wenn er ein gefunden hat sich wieder die Flaschen nehmen und sie Pflanzen.
Tut er aber nicht er switcht einfach zwischen den freien Feldern hin und her.
Code habe ich mal gepostet. Hoffe mir kann jemand helfen.
|
imagesearch
02/29/2012 - C/C++ - 19 Replies
grüße,
ich versuche folgende imagesearch funktion bei mir zu implementieren:
char* WINAPI ImageSearch(int aLeft, int aTop, int aRight, int aBottom, char *aImageFile)
// Author: ImageSearch was created by Aurelian Maga.
{
// Many of the following sections are similar to those in PixelSearch(), so they should be
// maintained together.
//Var *output_var_x = ARGVAR1; // Ok if NULL. RAW wouldn't be safe because load-time validation actually
//Var *output_var_y = ARGVAR2; // requires a...
|
[VB]ImageSearch
10/08/2011 - .NET Languages - 0 Replies
Hi.
Wie mache ich in visual basic ImageSearch?
Bei Autoit ist es ja leicht:
#include <imageSearch.au3>
$x = 0
$y = 0
|
imagesearch
06/05/2011 - AutoIt - 4 Replies
Hallo,
ich arbeite gerade mit imagesearch...
Wenn er ein Bild gefunden hat, dann geht er ja immer in die linke obere ecke davon. Jetzt möchte ich aber das er von der oberen linken ecke, von dem gefundenen Bild, etwas nach rechts und etwas nach unten klickt, wie geht das?
|
ImageSearch
02/13/2011 - AutoIt - 1 Replies
Hey Leute,
bei AutoIT gibt es ja
_ImageSearchArea gibt es auch _ImagesSearchArea
Also Area mit mehreren Bildern???
|
All times are GMT +2. The time now is 03:45.
|
|