|
You last visited: Today at 00:54
Advertisement
Pixelsearch mit 2 Farben?
Discussion on Pixelsearch mit 2 Farben? within the AutoIt forum part of the Coders Den category.
03/20/2012, 15:41
|
#1
|
elite*gold: 0
Join Date: May 2009
Posts: 191
Received Thanks: 19
|
Pixelsearch mit 2 Farben?
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, weil es nun nicht mehr rot sondern grün ist und führt das aus, was eigentlich nur passieren sollte, wenn der Balken leer, also das Monster tot ist.
Kann einer helfen? Vielen Dank schonmal.
|
|
|
03/20/2012, 16:00
|
#2
|
elite*gold: 0
Join Date: Feb 2010
Posts: 92
Received Thanks: 11
|
pixelserch rot,
if @error then
Pixelsearch grün
if @error then
tot
|
|
|
03/20/2012, 16:14
|
#3
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
du kannst bei derartigen balken auch per PixelGetColor die farben in einer schleife untersuchen, und gleichzeitig den derzeitigen prozentuellen wert berechnen.
hilfreich hierbei kann es auch sein, auf die hintergrundfarbe, hinter dem "roten balken", zu prüfen, da diese in der regel nicht variiert.
|
|
|
03/20/2012, 16:30
|
#4
|
elite*gold: 0
Join Date: May 2009
Posts: 191
Received Thanks: 19
|
@Botofwar vielen Dank, es klappt. @lolkop Würd mich jetzt schon mal interessieren, wie man den prozentuellen Wert ausrechnet. Könntest du mir das kurz erklären?
|
|
|
03/20/2012, 17:48
|
#5
|
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
|
Quote:
Originally Posted by Skatefreaky
@Botofwar vielen Dank, es klappt. @lolkop Würd mich jetzt schon mal interessieren, wie man den prozentuellen Wert ausrechnet. Könntest du mir das kurz erklären?
|
Du kannst gucken wo der letzte Pixel des Balkens liegt. Dann teilst du die gesamte Länge durch die Position des letzten Pixels und schon hast du die aktuelle Prozentzahl. Am besten prüfst du einen vorderen Pixel und gehst dann schrittweise nach hinten. Um die richtige Performance zu erlangen, müsstest du dannach noch die Schrittlänge anpassen.
|
|
|
03/20/2012, 18:22
|
#6
|
elite*gold: 0
Join Date: May 2009
Posts: 191
Received Thanks: 19
|
Okay. Also was bedeutet die Gesamtlänge? Könntest du mir das vielleicht nochmal an nem Beispielsscript deutlicher machen?
|
|
|
03/20/2012, 19:47
|
#7
|
elite*gold: 0
Join Date: Nov 2009
Posts: 221
Received Thanks: 71
|
Hier ist mal ein Beispiel ich hab das wichtigste dazugeschrieben
mit der gesammtlänge meinte er die gesammte länge des Balkens
Code:
#include<GuiConstants.au3>
Opt("PixelCoordMode", 0)
HotKeySet("{ESC}", "_Exit");mit ESC beenden
$gui = GUICreate("test", 400, 250)
$progress = GUICtrlCreateProgress(20, 20, 360, 100);unsere test HP
$button = GUICtrlCreateButton("Start", 20, 190, 100, 20)
$genauigkeit = GUICtrlCreateInput("5", 140, 190, 100, 20);genauigkeit mit der gesucht wird (um so höher die zahl um so ungenauer) da so viele pixel übersprungen werden
GUISetState(@SW_SHOW)
While 1
If GUIGetMsg() = $button Then
GUICtrlSetData($progress, Random(0, 100))
Sleep(300)
If IsNumber($genauigkeit) = 1 Then _pixelsearch()
EndIf
WEnd
Func _pixelsearch()
For $loop = 0 To 360 Step GUICtrlRead($genauigkeit)
$color = PixelGetColor(20 + $loop, 70, $gui);in der mitte des "HP" Balkens wird von links nach rechts nach einem Pixel mit der farbe 0xC9C9C9 gesucht (0xC9C9C9=HEX ist in Dezimal=13224393)
If $color = 13224393 Then
MsgBox(0, "", "HP bei " & (100 / 360) * $loop & "%");Auswertung der Position des Pixels mit der Farbe 13224393
MsgBox(0, "", "Kontrolle HP bei " & GUICtrlRead($progress) & "%" & @CRLF & "Abweichung in % " & GUICtrlRead($progress) - (100 / 360) * $loop);tatsächliche position und abweichung in %
ExitLoop
EndIf
Next
EndFunc ;==>_pixelsearch
Func _Exit()
Exit
EndFunc ;==>_Exit
|
|
|
03/20/2012, 21:14
|
#8
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by Skatefreaky
Okay. Also was bedeutet die Gesamtlänge? Könntest du mir das vielleicht nochmal an nem Beispielsscript deutlicher machen?
|
angenommen deine hp-bar ist 50 pixel lang. daraus lässt sich ja dann logisch schließen, das 0 pixel 0% entsprechen, und 50 pixel 100%. hierraus lässt sich doch eine einfache verhältnisgleichung aufstellen.
X% zu länge Y verhält sich wie 100% zu länge 50. mathematisch (formal) ausgedrückt:
wobei X für deinen gesuchten prozentwert steht, und Y für die aktuelle länge.
stellt man diese gleichung nach X um, so erhält man:
Code:
X = (Y / 50) * 100
bzw
aktuellerProzentWert = (aktuelleLänge / gesamtLänge) * 100
sollte durch reine logik, bzw einfache mathematik sehr leicht verständlich sein =)
|
|
|
03/21/2012, 06:56
|
#9
|
elite*gold: 0
Join Date: Oct 2010
Posts: 167
Received Thanks: 24
|
Ich versteh nicht wie er das dann eintragen soll. Ich mein ein Pixel hat ja x und y koordinate und um die Gesamtlänge auszurechen braucht man ja 2 Pixel. Meint ihr dann mit Gesamtlänge x und y Koordinate oder nur eines der beiden?
|
|
|
03/21/2012, 11:19
|
#10
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
die x achse ist ja im grund nichts anderes als eine horizontale linie, linear wachsend von links nach rechts...
demzufolge kannst du dort den x wert, des sich am weitesten "rechts" befindlichen pixels, minus dem des sich am weitesten "links" befindlichen pixels nehmen, und hast die gesamtlänge...
Edit:
zur veranschauung hier nochmal ein screenshot:
|
|
|
03/21/2012, 18:07
|
#11
|
elite*gold: 0
Join Date: May 2009
Posts: 191
Received Thanks: 19
|
Ja okay das versteh ich. Aber ich brauch doch trotzdem noch die Position des HP Balkens oder irre ich mich da? Kann ich die derzeitige Länge auch ausrechnen?
|
|
|
03/21/2012, 20:48
|
#12
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
die derzeitige länge ist eben der letzte farbige pixel, welcher nicht die farbe des untergrunds hat, minus dem ersten pixel der hp leiste-.-
ein wenig nachdenken sollte schon drinn sein eigentlich
|
|
|
03/22/2012, 07:21
|
#13
|
elite*gold: 0
Join Date: May 2009
Posts: 191
Received Thanks: 19
|
Ja das weiß ich  aber ich meinte wie man auf den Letzten farbigen (also roten) Pixel kommt? Wie man herausfindet wo gerade der letzze rote Pixel ist?
|
|
|
03/22/2012, 10:14
|
#14
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
indem du einfach von vorne nach hinten durchläufst und guckst, welche farbe der pixel hat...
Code:
For $i=<ersterPixel> To <letzterPixel>
If PixelGetColor($i, $y) <> ... Then ... ($i-1 ist wohl der letzte passende pixel)
Next
|
|
|
03/22/2012, 18:06
|
#15
|
elite*gold: 0
Join Date: May 2009
Posts: 191
Received Thanks: 19
|
Ich bin glaub ich zu blöd  . Ich hab jetzt alles versucht, aber es kommt nie das richtige heraus...
|
|
|
 |
|
Similar Threads
|
c# pixelsearch HELP
06/30/2012 - .NET Languages - 5 Replies
Hi alle,
habe schon gegoogelt, finde aber nichts passendes.
ich habe broblem mit c# und zwar will ich einen c# pixelsearch fram bot machen der im bestimmte position/Bitmap im Form1/Fenster mit einer virtuellen maus auf bestimmte farben wie z.b. auf gelb links click macht und dan SendKeys.SendWait("1"); // Taste 1 sendet.
http://s14.directupload.net/images/111108/temp/to kufuep.png
|
Neue Iteminfo.x4 + Default Item u. + Farben + Farben für Kralle
01/09/2010 - S4 League - 79 Replies
aus rechtlichen gründen entfernt!!
|
pixelsearch
12/27/2009 - AutoIt - 11 Replies
hi hab mal ne frage
ich hab jetzt mit pixelsearch die coordinaten
ich will aber jetzt das der 50 pixel darunter von den coordinaten hinklickt
wie geht das?
|
pixelsearch
02/07/2009 - General Coding - 1 Replies
gibt es in ner anderen programmiersprache sowas ähnliches wie pixelsearch, nur dass es auch in minimierten fenstern geht? und auch dass man autoit funktionen wie mausbewegungen und keyboad controls im minimierten fenster ausführen kann.
|
PixelSearch
07/27/2008 - Nostale - 5 Replies
hi leute kann mir pls jemand erklären wie man pixelsearch benuzt??
|
All times are GMT +1. The time now is 00:55.
|
|