|
You last visited: Today at 07:37
Advertisement
AutoIT Farberkennung Hilfe!
Discussion on AutoIT Farberkennung Hilfe! within the AutoIt forum part of the Coders Den category.
01/24/2013, 02:48
|
#1
|
elite*gold: 0
Join Date: Dec 2012
Posts: 91
Received Thanks: 0
|
AutoIT Farberkennung Hilfe!
Hallo Liebe Leute 
Ich suche jemanden der mir mal eben behilflich sein kann bei einem code.
Irgendwie klappt das mit der Farberkennung nicht so richtig bzw überhaupt gar nicht. Er soll die farbe bei den koordinaten "738, 681, 874, 695" suchen und wenn er sie gefunden hat soll er mit der maus an einer bestimmten position gehen und die linke maus taste 1x drücken. Bzw würde es mir auch reichen wenn er einfach eine taste drück wie zb 6. Falls er die bestimmte farbe nicht findet soll er das script normal weiter laufen lassen.
Falls mich jemand verstanden hat, bitte ich um hilfe 
Und gäbe es die möglichkeit das er nach 2 farben sucht und die taste drückt?
also farbe 1 gefunden push 6 falls nich gefunden weiter laufen lassen farbe 2 gefunden push 6 usw usw
Ich habe schon einge zeit selbst geguckt auch hier im forum aber es funzt und funzt einfach nich mit der maus und der farbe.
Mfg Airfight
Quote:
HotKeySet("{ü}", "Start")
HotKeySet("{ä}", "_Exit")
While 1
Sleep(250)
WEnd
Func start()
While 1
Send("{1}")
Sleep(4000)
$Variable = PixelSearch(738, 681, 874, 695, 0xE3E5F2)
If IsArray($Variable) = True Then
MouseMove($Variable [782], $Variable [836], 1
MouseClick("left")
EndIf
Send("{2}")
Sleep(1000)
Send("{4}")
Sleep(1000)
WEnd
EndFunc
Func _Exit()
Exit
EndFunc
|
|
|
|
01/24/2013, 07:40
|
#2
|
elite*gold: 224
Join Date: Dec 2010
Posts: 2,766
Received Thanks: 931
|
Man muss $Variable[0] $Variable[1] bei Pixelsearch nehmen , da dort die Koordinaten eingetragen werden , wenn die Farbe gefunden wurde
|
|
|
01/24/2013, 11:53
|
#3
|
elite*gold: 0
Join Date: Dec 2012
Posts: 91
Received Thanks: 0
|
Quote:
Originally Posted by Alex_II
Man muss $Variable[0] $Variable[1] bei Pixelsearch nehmen , da dort die Koordinaten eingetragen werden , wenn die Farbe gefunden wurde
|
Könntest du mir das ganze in einem code schicken pls? 
irgendwie versteh ich´s net .. 
|
|
|
01/24/2013, 12:21
|
#4
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Der ganze Code ist falsch.
PixelSearch ist dazu da um nach einer Farbe zu suchen, nicht um die Farbe an einer Stelle herauszufinden.
Dazu musst du PixelGetColor nutzen.
Bei PixelSearch wir ein Array zurückgegeben, d.h. ein 1D, 2D, 3D (++) Feld, welches du dir so vorstellen musst:
1D:
wert1|wert2|wert3|wert4...
2D:
x|y|z|w|
-----------
c|v|n|u|
3D:
Das ganze eben noch im Raum.
Code:
MouseMove($Variable [782], $Variable [836])
In diesem fall hast du versucht auf Element 782 und 836 zuzugreifen, obwohl Pixelsearch nur ein Array mit 2 Elementen liefert.
Da du aber sowieso PixelGetColor nutzen musst, wird dein Code nun so aussehen:
Pseudocode:
Code:
if(PixelGetColor(x,y) == rgbcolor) Then MouseClick(x,y)
|
|
|
01/24/2013, 12:45
|
#5
|
elite*gold: 0
Join Date: Dec 2012
Posts: 91
Received Thanks: 0
|
Quote:
Originally Posted by Lawliet!
Der ganze Code ist falsch.
PixelSearch ist dazu da um nach einer Farbe zu suchen, nicht um die Farbe an einer Stelle herauszufinden.
Dazu musst du PixelGetColor nutzen.
Bei PixelSearch wir ein Array zurückgegeben, d.h. ein 1D, 2D, 3D (++) Feld, welches du dir so vorstellen musst:
1D:
wert1|wert2|wert3|wert4...
2D:
x|y|z|w|
-----------
c|v|n|u|
3D:
Das ganze eben noch im Raum.
Code:
MouseMove($Variable [782], $Variable [836])
In diesem fall hast du versucht auf Element 782 und 836 zuzugreifen, obwohl Pixelsearch nur ein Array mit 2 Elementen liefert.
Da du aber sowieso PixelGetColor nutzen musst, wird dein Code nun so aussehen:
Pseudocode:
Code:
if(PixelGetColor(x,y) == rgbcolor) Then MouseClick(x,y)
|
Aber sucht er nicht dann nur auf der x,y koordinate nach der farbe? er soll mir ja ein kleines feld durchsuchen. Und könntest du mir den code bitte direkt einbaun bin grade überfragt wo ich ihn einbaun muss hab gestern erst mit AutoIT angefangen *schmunzel*
Ok hab das ganze mal versucht.. is wahrscheinlich total falsch, weils eh nich funktioniert 
Das ganze sieht jetz so aus,
Quote:
HotKeySet("{ü}", "Start")
HotKeySet("{ä}", "_Exit")
While 1
Sleep(250)
WEnd
Func start()
While 1
Send("{1}")
Sleep(4000)
if(PixelGetColor(736, 705) == 230,233,242 ) Then MouseClick(782,836)
MouseMove($Variable [782], $Variable [836])
Send("{1}")
Sleep(4000)
WEnd
EndFunc
Func _Exit()
Exit
EndFunc
|
Also folgender fehler tritt auf,
"Line 12 (File "C:\Userblablablabla"):
if(PixelGetColor(736,705)== 230,233,242) Then MouseClick(782,836)
if^ ERROR
Error: Missingright bracket ´)´in expression"
Ich bin ja nicht aufn kopf gefallen und suche immer zuerst im internet nach lösungen bevor ich irgendwo um hilfe frage. Aber irgendwie check ich das ganze grade nich
Bitte helft mir und macht es mir so einfach wie möglich, damit selbst ich es wieder verstehe
|
|
|
01/28/2013, 13:23
|
#6
|
elite*gold: 0
Join Date: Dec 2012
Posts: 91
Received Thanks: 0
|
Mag mir niemand den code direkt in meinen einbaun :/
|
|
|
01/28/2013, 13:54
|
#7
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
du willst in dem bereich nach deiner farbe suchen und wenn die farbe da ist, willst du einen mausklick auf die posi 782,836 ausführen, richtig?
PHP Code:
HotKeySet("{ü}", "Start") HotKeySet("{ä}", "_Exit")
While 1 Sleep(250) WEnd
Func start() While 1 Send("1") Sleep(4000) $Variable = PixelSearch(738, 681, 874, 695, 0xE3E5F2) ;wenn in diesem bereich deine farbe gefunden wurde If IsArray($Variable) = True Then MouseClick(782,836) ;klickt auf die koordinate: 782,836 EndIf ;ob die farbe oben gefunden wurde oder nicht, spielt keine rolle, es geht hier dannach weiter Send("2") Sleep(1000) Send("4") Sleep(1000) WEnd EndFunc ;==>start
Func _Exit() Exit EndFunc ;==>_Exit
Quote:
Und gäbe es die möglichkeit das er nach 2 farben sucht und die taste drückt?
also farbe 1 gefunden push 6 falls nich gefunden weiter laufen lassen farbe 2 gefunden push 6 usw usw
|
wenn das oben soweit stimmt;
PHP Code:
HotKeySet("{ü}", "Start") HotKeySet("{ä}", "_Exit")
While 1 Sleep(250) WEnd
Func start() While 1 Send("1") Sleep(4000) $Variable = PixelSearch(738, 681, 874, 695, 0xE3E5F2) ; farbe $Variable2= PixelSearch(738, 681, 874, 695, 0xFFFFFF) ; weitere farbe If IsArray($Variable) Or IsArray($Variable2) = True Then ;wenn eines der beiden farben gefunden wurde Send("6") EndIf ;ob die farben oben gefunden wurden oder nicht, spielt keine rolle, es geht hier dannach weiter Send("2") Sleep(1000) Send("4") Sleep(1000) WEnd EndFunc ;==>start
Func _Exit() Exit EndFunc ;==>_Exit
|
|
|
01/28/2013, 14:15
|
#8
|
elite*gold: 0
Join Date: Dec 2012
Posts: 91
Received Thanks: 0
|
Quote:
Originally Posted by omer36
du willst in dem bereich nach deiner farbe suchen und wenn die farbe da ist, willst du einen mausklick auf die posi 782,836 ausführen, richtig?
PHP Code:
HotKeySet("{ü}", "Start")
HotKeySet("{ä}", "_Exit")
While 1
Sleep(250)
WEnd
Func start()
While 1
Send("1")
Sleep(4000)
$Variable = PixelSearch(738, 681, 874, 695, 0xE3E5F2) ;wenn in diesem bereich deine farbe gefunden wurde
If IsArray($Variable) = True Then
MouseClick(782,836) ;klickt auf die koordinate: 782,836
EndIf
;ob die farbe oben gefunden wurde oder nicht, spielt keine rolle, es geht hier dannach weiter
Send("2")
Sleep(1000)
Send("4")
Sleep(1000)
WEnd
EndFunc ;==>start
Func _Exit()
Exit
EndFunc ;==>_Exit
wenn das oben soweit stimmt;
PHP Code:
HotKeySet("{ü}", "Start")
HotKeySet("{ä}", "_Exit")
While 1
Sleep(250)
WEnd
Func start()
While 1
Send("1")
Sleep(4000)
$Variable = PixelSearch(738, 681, 874, 695, 0xE3E5F2) ; farbe
$Variable2= PixelSearch(738, 681, 874, 695, 0xFFFFFF) ; weitere farbe
If IsArray($Variable) Or IsArray($Variable2) = True Then ;wenn eines der beiden farben gefunden wurde
Send("6")
EndIf
;ob die farben oben gefunden wurden oder nicht, spielt keine rolle, es geht hier dannach weiter
Send("2")
Sleep(1000)
Send("4")
Sleep(1000)
WEnd
EndFunc ;==>start
Func _Exit()
Exit
EndFunc ;==>_Exit
|
werde es gleich mal testen schonmal vielen dank im vorraus
die sachen die du hinter ";" geschrieben hast müssen gelöscht werden oder kann man die als text einfach stehen lassen?
Quote:
Originally Posted by omer36
du willst in dem bereich nach deiner farbe suchen und wenn die farbe da ist, willst du einen mausklick auf die posi 782,836 ausführen, richtig?
PHP Code:
HotKeySet("{ü}", "Start")
HotKeySet("{ä}", "_Exit")
While 1
Sleep(250)
WEnd
Func start()
While 1
Send("1")
Sleep(4000)
$Variable = PixelSearch(738, 681, 874, 695, 0xE3E5F2) ;wenn in diesem bereich deine farbe gefunden wurde
If IsArray($Variable) = True Then
MouseClick(782,836) ;klickt auf die koordinate: 782,836
EndIf
;ob die farbe oben gefunden wurde oder nicht, spielt keine rolle, es geht hier dannach weiter
Send("2")
Sleep(1000)
Send("4")
Sleep(1000)
WEnd
EndFunc ;==>start
Func _Exit()
Exit
EndFunc ;==>_Exit
wenn das oben soweit stimmt;
PHP Code:
HotKeySet("{ü}", "Start")
HotKeySet("{ä}", "_Exit")
While 1
Sleep(250)
WEnd
Func start()
While 1
Send("1")
Sleep(4000)
$Variable = PixelSearch(738, 681, 874, 695, 0xE3E5F2) ; farbe
$Variable2= PixelSearch(738, 681, 874, 695, 0xFFFFFF) ; weitere farbe
If IsArray($Variable) Or IsArray($Variable2) = True Then ;wenn eines der beiden farben gefunden wurde
Send("6")
EndIf
;ob die farben oben gefunden wurden oder nicht, spielt keine rolle, es geht hier dannach weiter
Send("2")
Sleep(1000)
Send("4")
Sleep(1000)
WEnd
EndFunc ;==>start
Func _Exit()
Exit
EndFunc ;==>_Exit
|
Ok ich weiß nicht warum aber es geht und geht einfach nicht... hat das vielleicht mit der version meines programms zu tun? bzw muss ich vielleicht ein anderen farbecode nehmen RGB oder hex oder so..
ich hab nich das gefühl das er die farbe in dem fenster sucht und die maus bewegt er dann auch nicht auf die vorgeschriebenen koordienaten.
Das fenster was er durchsuchen soll sieht so aus

Es soll die farbe in dem fenster erkennen wo Magischer Äther steht, habe die obere ecke über den text "Magischer Äther" und die untere ecke vom text genommen. Die farbe sollte man ja gut erkennen da der hintergrund von dem ausgewählten bereich ja gut zu unterscheiden ist. Aber es geht einfach nicht
|
|
|
 |
Similar Threads
|
!!need help!! AutoIt KlickBot mit Farberkennung erstellen
01/27/2013 - AutoIt - 9 Replies
Ich möchte für eine Game eine Bot erstellen die Linke maustaste Klickt sobat das Fadenkreuz Rot wird.
Wie erstelle ich so ein BOT?
Ich hab mir Pixelsearch versucht aber leider bin ich kein besonderst guter Coder, ganz im gegenteil, ich kenne mich im Coden garnet aus.
|
Einfache Farberkennung=taste senden
09/13/2012 - AutoIt - 7 Replies
Moin Leute,
bin gerade dabei einen Bot für ein Game zuerstellen jedoch bekomme ich eine
kleine Sache einfach nicht gebacken keine Ahnung warum nicht.
Bei einer bestimmten Stalle soll er erkennen das sich die farbe auf 0xBeispiel geändert hat und die Taste 1 senden.
Währe einer so Nett mir den Quellcode für das unten hinzuschreiben?
PS: Ja ich weiss das es eig einfach ist bekomme es aber nicht hin also spart euch die unsinnigen Kommentare.
|
[vb 2008] Farberkennung pls
01/31/2010 - .NET Languages - 2 Replies
hi EPVER´s
ich brauchte hilfe mit vb2008 und zwar will ich ein paar bots machen aber weiß nicht wie der farberkennung ist bzw der code davon ist deshalb wollte ich frragen ob einer ma ein tutorial oder einen sorsecode schicken kann mit einer kleinen erklärung wo man was einfügt wenn der punkt gefunden ist wie man dahin naviegiert etc
thx schonmal :handsdown:
|
All times are GMT +1. The time now is 07:42.
|
|