Pixelsearch mit 2 Farben?

03/25/2012 20:54 Skatefreaky#31
Genau. Und da das Fenster genauso groß ist, wie der Desktop, also genau der gleichen Auflösung entspricht, müsste letzteres ja möglich sein. Doch als ich die Auflösung veränderte und das Script so aussah:

Code:
pixelgetcolor(522/1600*@DesktopWidth,808/900*@DesktopHeight)
klappte es nicht. Ich kann mir das nicht erklären, da es doch normalerweise funktionieren muss?

Edit:
Code:
PixelGetColor(522,808, WinGetHandle("AION Client"))
Damit funktioniert es übrigens ebenfalls nicht.
03/25/2012 21:58 Masterscripter#32
Hm das kann ich mir allerdings auch nicht erklären, warum beides nicht klappt. Vielleicht weil @desktopheight bzw @desktopwidth eine Komma Zahl bei der anderen Auflösung herauskommt? Aber nur ne Vermutung
03/26/2012 10:09 lolkop#33
ich gehe davon aus, das die skillbar als festes konstruk designed wurde. dh sie hat eine feste länge und höhe.

dementsprechend reicht es in die mitte des bildschirms zu gehen, und soviel abzuziehen, bis du am anfang der hp bar angekommen bist. für die höhe reicht es von unten etwas nach oben zu gehen...

Code:
$x = @desktopWidth/2 -...
$y = @desktopHeight - ...
aufgrund der verlustbehafteten komprimierung die du beim screenshot verwendet hast, kann dir aufgrund von diesem, leider niemand hier helfen.
03/26/2012 14:40 Skatefreaky#34
Also hier in dem Screen kannst du sehen, wie groß bzw. Lang der HP Balken ist. Ich versteh nur nicht, warum du das so verkomplizieren willst. Ich arbeite mich von vorne nach hinten, wie etwa so:


Code:
pixelgetcolor(522/1600*@DesktopWidth,808/900*@DesktopHeight)

Und ich hab absolut kein Verständnis dafür, warum es mit einer anderen Auflösung nicht funktioniert, denn es ist ja quasi nur ein Dreisatz bzw. ne logische Gleichung. Und wenn man es ausrechnet, so wie es in meinem Script ja passiert, kommt auch die genaue Position raus, die für die jeweilige Auflösung angemessen ist, nur in einer Komma Zahl. Kann es daran liegen, dass es nicht klappt?


Hier das Spiel:
[Only registered and activated users can see links. Click Here To Register...]
03/26/2012 18:43 BotofWar#35
Ungetestet:

Code:
$size = WinGetPos("AION Client")
$Xoffset=10

for $i = 0 to 100 Step 10 ;100 durch Balkenläne ersetzen und den Step durch die gewünschte %Abstufung
	$farbe = pixelgetcolor($size[0]+$i+$Xoffset,$size[1]+123)
	if $farbe <> wasauchimmer then MsgBox(16,"HP", "Deine HP beträgt weniger als " & $i & " %")
Next
03/26/2012 19:44 lolkop#36
Quote:
Originally Posted by Skatefreaky View Post
Und ich hab absolut kein Verständnis dafür, warum es mit einer anderen Auflösung nicht funktioniert, denn es ist ja quasi nur ein Dreisatz bzw. ne logische Gleichung.
eben nicht.

du hast über die grafik einen fixen wert in der rechnung. diesen musst du selbstverständlich aus der verhältnisgleichung extrahieren, da dieser ja bei anderen auflösungen nicht variieren kann.

angenommen du hast einen 2cm strich, mittig liegend auf einer 4cm fläche.
Code:
|_--_|
nun verdoppelst du die auflösung, hast also eine 8cm fläche, wobei der strich trotzdem 2cm lang bleibt.
Code:
|___--___|
nach deiner verhältnisgleichung wäre der strich nun auch doppelt so lang (nun 4cm)
Code:
|__----__|
das gesamtobjekt wäre zwar korrekt berechnet, der anfang des striches wäre nach deiner verhältnisgleichung aber leider unlogisch platziert.

deswegen musst du in diesem falle umdenken, zunächst die mitte des objektes bestimmen, und dann von dort die halbe länge des fixen objektes nach links gehen, um den anfangspunkt des striches zu berechnen.

selbiges prinzip gilt auch für die bestimmung des anfangspunktes deiner hp leiste.
03/28/2012 11:15 Skatefreaky#37
Okay ja das leuchtet ein, stimmt. Und wie würdest du vorgehen? Was würdest du vorschlagen?

Edit: Eigentlich ne blöde Idee das mit Pixelsearch zu versuchen. Trotzdem danke für die Hilfe, ich werd n neuen Thread auf machen, indem ich ein paar Memory read Fragen habe.
03/31/2012 17:11 Skatefreaky#38
Ach und nochmal zur Anfangsfrage zurück:

"pixelserch rot,
if @error then
Pixelsearch grün
if @error then
tot"

funktioniert leider doch nicht. Gibts noch ne andere Möglichkeit?
04/10/2012 03:12 Achat#39
Quote:
Originally Posted by Skatefreaky View Post
Hey Com,

kann mir vielleicht einer sagen, ob es möglich ist, mit Pixelsearch nach 2 Farben zu suchen? Also z.B bei einem HP Balken. Wenn der leer ist, dann soll irgendwas passieren. Aber die HP sind nicht nur rot, wie es normalerweise ist. Bei manchen Attacken färbt sich der HP Balken auch schonmal grün und dann erkennt das Programm nicht, dass noch Leben im HP Balken ist, .
Habe jetzt nicht den ganzen Thread gelesen, würde das aber von der Logik her so lösen:
Code:
while 1
If Pixelgetcolor($x,$y) = FarbwertRot [COLOR="Blue"]OR[/COLOR] FarbwertGrün then
leben()
else
tot()
Endif
Wend