Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 01:46

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

Advertisement



autoit pixelgetcolor

Discussion on autoit pixelgetcolor within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
H@CT0R's Avatar
 
elite*gold: 0
Join Date: Apr 2012
Posts: 1,214
Received Thanks: 153
autoit pixelgetcolor

habe erst vor kurzem mit autoit angefangen und wollte nun einen trigger bot schreiben, welcher schießt, wenn ein gegner unter dem crosshair ist...
plan: mitte des bildschirms überprüfen ob eine vorher definierte farbe dort erscheint und wenn ja, dann schießen
Code:
while 1
Sleep(100)
$farbe = PixelGetColor (@DesktopWidth/2, @DesktopHeight/2)
$hex = Hex($farbe, 6)
If $hex = "02FF02" Then
   MouseClick("left",@DesktopWidth/2,@DesktopHeight/2)
   Sleep(400)
EndIf
WEnd
Problem 1: Er soll auch die zwei umliegenden Pixelreihen überprüfen: (Grün: Mittlerer Bildschirmpixel, Orange die Reihen die er zusätzlich überprüfen soll, Blau soll nicht mehr überprüft werden)

Frage: Wie mache ich das ohne für jeden eine getpixel funktion auszuführen? kann ich wie bei pixelsearch vielleicht ein rechteck definieren?
wenn auch nur einer dieser pixel die definierte farbe annimmt soll der mausklick ausgeführt werden...

Problem 2: Er soll nicht nur auf die Farbe reagieren, da die gefärbten Models ja auch nicht 100%ig nur eine Farbe haben, sondern auch kleine abweichungen soll er nicht nur 02FF02 erkennen, sondern z.B. auch 00FF00 bis max. 0AFF0A
Nur wie soll ich das machen ohne für jede Farbe ein eigenes if auszuführen?

Bin dankbar für jede Hilfe...
H@CT0R is offline  
Thanks
1 User
Old 04/20/2012, 17:19   #2

 
Njahs's Avatar
 
elite*gold: 574
Join Date: Nov 2010
Posts: 2,498
Received Thanks: 726
Benutz doch Imagesearch
Njahs is offline  
Old 04/20/2012, 17:29   #3
 
H@CT0R's Avatar
 
elite*gold: 0
Join Date: Apr 2012
Posts: 1,214
Received Thanks: 153
Aber gibt imagesearch nicht die koordinaten des punktes aus, wo diese farbe gefunden wurde, und nicht die gefundene farbe?
H@CT0R is offline  
Old 04/20/2012, 19:04   #4

 
Njahs's Avatar
 
elite*gold: 574
Join Date: Nov 2010
Posts: 2,498
Received Thanks: 726
Quote:
Originally Posted by H@CT0R View Post
Aber gibt imagesearch nicht die koordinaten des punktes aus, wo diese farbe gefunden wurde, und nicht die gefundene farbe?
Ach fail.. mein fehler ,
du kannst aber mit Imagesearch
einen bereich nach etwas absuchen,
ob etwas in einem bestimmten bereich
vorhanden ist
Njahs is offline  
Old 04/20/2012, 19:25   #5
 
H@CT0R's Avatar
 
elite*gold: 0
Join Date: Apr 2012
Posts: 1,214
Received Thanks: 153
imagesearch sucht aber nach einem bild, nicht nach der farbe eines pixels (korrigiere mich wenn ich falsch liege, habe nur kurz danach gegoogelt) und bezieht sich laut google auf den gesamten bildschirm..dann müsste ich ja einen pixel rot färben, als bild speichern und mit imagesearch danach suchen, dadurch kann ich aber das farbspektrum (von 00FF00 über 02FF02 bis max. 0AFF0A) nicht abdecken...
Oder sehe ich das falsch?
H@CT0R is offline  
Old 04/20/2012, 20:50   #6
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Quote:
Originally Posted by H@CT0R View Post
habe erst vor kurzem mit autoit angefangen und wollte nun einen trigger bot schreiben, welcher schießt, wenn ein gegner unter dem crosshair ist...
plan: mitte des bildschirms überprüfen ob eine vorher definierte farbe dort erscheint und wenn ja, dann schießen
Code:
while 1
Sleep(100)
$farbe = PixelGetColor (@DesktopWidth/2, @DesktopHeight/2)
$hex = Hex($farbe, 6)
If $hex = "02FF02" Then
   MouseClick("left",@DesktopWidth/2,@DesktopHeight/2)
   Sleep(400)
EndIf
WEnd
Problem 1: Er soll auch die zwei umliegenden Pixelreihen überprüfen: (Grün: Mittlerer Bildschirmpixel, Orange die Reihen die er zusätzlich überprüfen soll, Blau soll nicht mehr überprüft werden)

Frage: Wie mache ich das ohne für jeden eine getpixel funktion auszuführen? kann ich wie bei pixelsearch vielleicht ein rechteck definieren?
wenn auch nur einer dieser pixel die definierte farbe annimmt soll der mausklick ausgeführt werden...

Problem 2: Er soll nicht nur auf die Farbe reagieren, da die gefärbten Models ja auch nicht 100%ig nur eine Farbe haben, sondern auch kleine abweichungen soll er nicht nur 02FF02 erkennen, sondern z.B. auch 00FF00 bis max. 0AFF0A
Nur wie soll ich das machen ohne für jede Farbe ein eigenes if auszuführen?

Bin dankbar für jede Hilfe...
Also von der Logik her würde ich das so machen:
Code:
IF PixelGetColor(@DesktopWidth/2, @DesktopHeight/2) = Farbe AND Pixelgetcolor(@DesktopWidth/2+1, @DesktopHeight/2+1) = Farbe AND .... usw. Then
MouseClick()
Endif
Warum speicherst du denn die Farbe von Pixelgetcolor und vergleichst sie dann? Geht doch auch direkt mit Pixelgetcolor beim If Mit F1 kannst du die Hilfe zu einer Funktion aufrufen.

MfG

EDIT:
Zum IF:

Code:
If Hex(PixelGetColor(@DesktopWidth/2, @DesktopHeight/2)) = "02FF02" Then ; <--- spart dir 2 Variablen und 2 Zeilen Code
Achat is offline  
Thanks
1 User
Old 04/20/2012, 21:39   #7
 
H@CT0R's Avatar
 
elite*gold: 0
Join Date: Apr 2012
Posts: 1,214
Received Thanks: 153
Quote:
Originally Posted by Achat View Post
Also von der Logik her würde ich das so machen:
Code:
IF PixelGetColor(@DesktopWidth/2, @DesktopHeight/2) = Farbe AND Pixelgetcolor(@DesktopWidth/2+1, @DesktopHeight/2+1) = Farbe AND .... usw. Then
MouseClick()
Endif
AND, macht der das dann nicht nur, wenn ALLE Bedingungen erfüllt sind?
Da wäre ein und/oder gut, also eins von beidem...vmtl. würde ein OR aber schon reichen, werde ich die tage mal ausprobieren, danke

Quote:
Warum speicherst du denn die Farbe von Pixelgetcolor und vergleichst sie dann? Geht doch auch direkt mit Pixelgetcolor beim If Mit F1 kannst du die Hilfe zu einer Funktion aufrufen.
Habe die Funktionen alle Nacheinander geschrieben und miteinander verknüpft, aber deine Möglichkeit ist natürlich besser, danke dafür
H@CT0R is offline  
Reply


Similar Threads Similar Threads
AutoIt PixelGetColor problem
05/21/2011 - AutoIt - 4 Replies
Hi zusammen, ich habe einen eigenen Metin2 dss Switcher gemacht, der genau bei 50 dss stoppen soll. Und nun lautete meine Frage: Wie kann ich mehrere PixelGetColor Werte in ein If "packen" :confused: So gehts auf jedenfall schon mal nicht :( Wäre sehr nett wenn ihr mir helfen könntet.
PixelGetColor
12/05/2009 - AutoIt - 2 Replies
Hi ich schreibe schon seit längerem an einem Tool für Warcraft3. Jetzt wollte ich einbauen, dass er nach dem Map laden automatisch den Modus eingibt. Ich dachte das geht mit PixelGetColor, also hab ich es so probiert: If GUICtrlRead ($checkbox3) = 1 Then Do PixelGetColor (1063, 520) sleep (150) Until PixelGetColor (1063, 520) = 0x000000
AutoIt PixelGetColor oder PixelSearch
07/08/2009 - General Coding - 1 Replies
Hi also für ein Spiel wollte ich (habe ich zum Teil auch) so einen Relogger scripten dass wenn ich vom Spiel getrennt werde, der Bot mich dann wieder einloggt.Damit der Bot weiß wann dies geschehen soll, habe ich die Funktion PixelGetColor benutzt.Die Funktion kennt ihr wahrscheinlich.Mein Code sieht bisher so aus : so jetzt hab ich das Problem dass nix passiert wenn der $relogpx = 0xF75DAD...habe mal was von SearchPixel gehört...könnte man dass evtl. da i-wie einbauen ? Vielen Dank für...
autoit prob mit pixelgetcolor
02/22/2009 - General Coding - 1 Replies
; wenn Pixel 137,133 dann Send("{$Char down}") sleep(500) Send("{$Char UP}") sleep(1000) mouseclick("left",191,564) ;end if wie schreibe ich des ich will halt das wenn 137,133 den farbcode 0x1E2971 bekommt der mit
AutoIt - PixelGetColor Probem auf versch. PC
06/04/2008 - AutoIt - 4 Replies
Hallo, möglicherweise kann jemand von Euch helfen. Derzeit bin ich dabei, einen AOE Bot für Archlord zu schreiben. Dieser funktioniert recht ordentlich und flott. Allerdings nur auf meinem Rechner und nicht auf einem anderen. Das ist natürlich grossartig für mich aber nicht für andere ^.o Das merkwürdiges Problem ist, dass ich mit PixelGetColor auf PC1 z.B. den Farbwert 73695A erhalte aber auf PC2 einen völlig anderen Farbwert.



All times are GMT +1. The time now is 01:47.


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.