Pixelsearch mit 2 Farben?

03/22/2012 20:57 jacky919#16
Poste mal einen Screenshot. Dann könnte man das auf dein Spiel bezogen verdeutlichen.
03/23/2012 13:36 Skatefreaky#17
Ok hier mal ein Bild vom Spiel bzw. des HP Balkens:

[Only registered and activated users can see links. Click Here To Register...]

Und ich möchte halt mittels Pixelsearch die Prozentzahl des HP Balkens im Spiel auslesen und in einer Progressbar anzeigen lassen.
03/23/2012 20:52 lolkop#18
wenn du trotz mehrfachen beispielen und erklärungen immer noch nicht verstandn hast, das man dafür nicht pixelsearch nutzt, gebe ich ab hier meine hilfeversuche auf...
03/25/2012 12:54 Skatefreaky#19
Ich habe es vollkommen verstanden, dass sich Pixelsearch nicht so gut wie z.B memory reading dafür eignet. Dennoch ist es doch mein gutes Recht zu erfahren, ob es nich mit Pixelsearch genauso gut geht, um sich eventuellen Ärger mit memory read (Den ich bisher ausschließlich hatte) zu sparen oder? Deswegen würde ich einfach nur gerne ein anschauliches Beispielscript sehen...Vielen Dank.
03/25/2012 12:56 lolkop#20
Quote:
Originally Posted by Skatefreaky View Post
Ich habe es vollkommen verstanden, dass sich Pixelsearch nicht so gut wie z.B memory reading dafür eignet. Dennoch ist es doch mein gutes Recht zu erfahren, ob es nich mit Pixelsearch genauso gut geht, um sich eventuellen Ärger mit memory read (Den ich bisher ausschließlich hatte) zu sparen oder? Deswegen würde ich einfach nur gerne ein anschauliches Beispielscript sehen...Vielen Dank.
du kannst nicht pixelsearch nutzen... wenn du über pixel arbeiten willst, liest du einfach in einer schleife per pixelgetcolor auf einer y ebene alles aus.
03/25/2012 13:00 Skatefreaky#21
Ja das habe ich auch schon versucht und es sieht ungefähr so aus:

Code:
if pixelgetcolor(530,808) = 0x1C2638 Then
			guictrlsetdata($Progress2,95)
endif
"0x1C2638" ist die Hintergrundfarbe des HP Balkens. Funktioniert allerdings nicht. Mach ich was falsch?

Edit: Fehler gefunden hat sich erledigt
03/25/2012 17:09 Masterscripter#22
Ist ja alles ganz nett, aber hat einer schonmal dran gedacht, dass es mit einer anderen Auflösung garnicht klappt? Es ändert sich doch dann die Pixelposition und auch der Farbwert oder?

Die Pixelposition kannst du mit

Code:
@Desktopheight
und
Code:
@Desktopwidth
wieder gerade rücken. Aber den Farbwert? Wie soll man das anstellen?
03/25/2012 17:16 jacky919#23
Die beste Idee wäre es, den dritten Parameter von PixelGetColor zu nutzen und das Handle des Aion-Clienten mit anzugeben.
PHP Code:
$PixelColor PixelGetColor(530808WinGetHandle("Aion Client Titel")) 
So könnte man die Pixel-Koordinate relativ angeben und wäre die Probleme mit der Fensterposition los.
03/25/2012 17:46 Masterscripter#24
Ja zwar wäre dann die Pixelposition kein Problem mehr, die Farbabweichung jedoch trotzdem oder?
03/25/2012 18:13 jacky919#25
Quote:
Originally Posted by Masterscripter View Post
Ja zwar wäre dann die Pixelposition kein Problem mehr, die Farbabweichung jedoch trotzdem oder?
Wenn es welche gibt schon :)
Naja sonst kann man eine Funktion wie diese verwenden, um die Ähnlichkeit von Farben zu überprüfen:
PHP Code:
#include <Color.au3>

Func _ColorCompare($nColor1$nColor2$nAllowedDiff 10)
    If     
Abs(_ColorGetRed($nColor1) - _ColorGetRed($nColor2)) <= $nAllowedDiff And _
        Abs
(_ColorGetRed($nColor1) - _ColorGetRed($nColor2)) <= $nAllowedDiff And _
        Abs
(_ColorGetRed($nColor1) - _ColorGetRed($nColor2)) <= $nAllowedDiff Then
        
Return True
    
Else
        Return 
False
    
EndIf
EndFunc 
03/25/2012 20:13 Masterscripter#26
Wie meinst du wenn es welche gibt?:p Wenn sich die Auflösung ändert, ändert sich doch zugleich auch der Farbwert oder?
03/25/2012 20:18 lolkop#27
Quote:
Originally Posted by Masterscripter View Post
Wie meinst du wenn es welche gibt?:p Wenn sich die Auflösung ändert, ändert sich doch zugleich auch der Farbwert oder?
nimm dir mal ein foto und lege es von a nach b... hat sich das foto damit verändert?
03/25/2012 20:23 Masterscripter#28
@lolkop gutes Beispiel :p. Klingt einleuchtend :D
03/25/2012 20:30 Skatefreaky#29
@jacky

Aber im Prozess von Aion selber hat man ja auch verschiedene Auflösungen. Deswegen wird doch das:

Code:
$PixelColor = PixelGetColor(530, 808, WinGetHandle("Aion Client Titel"))
ebenfalls nicht funktionieren oder?
03/25/2012 20:41 jacky919#30
Wie willst du es sonst machen, wenn du anhand der Pixel das aktuelle Leben auslesen willst? Entweder du bestimmst eine feste Größe des Aion Fensters oder du berechnest dir Position bzw. Länge des Balkens. Letzteres ist natürlich nur dann möglich, wenn dieser sich in einer Relation mit der aktuellen Größe des Fensters befindet.