|
You last visited: Today at 20:15
Advertisement
Brauche hilfe pixelget/search etc
Discussion on Brauche hilfe pixelget/search etc within the AutoIt forum part of the Coders Den category.
01/26/2013, 03:42
|
#1
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Brauche hilfe pixelget/search etc
Ich bin langsam am verzweifeln 
Ich habe das schon vor nem jahr mal so gemacht weiß aber echt net mrh und komm auch net drauf wie ich das gelöst hab.
Also :
Mit pixelgetcolor wird eine farbe bestimmt
danach soll überbrüft werden ob diese farbe wieder da ist (unbedingt auch mit pixelgetcolor!!!)
Mir fällts grad echt net ein wie das gehen soll 
(isarray geht nicht  )
|
|
|
01/26/2013, 03:46
|
#2
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
MfG
|
|
|
01/26/2013, 04:26
|
#3
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
-_-
1. Suche zb 4 Punkte auf der Map ab und speichere deren Farbwerte in eine Variable.
2. Bewege dich
3. Suche erneut an den 4 selben Punkten nach der Farbe und speichere die Werte separat in Variablen
4. Vergleiche die Variablen...
kannst du mir einfach sagen wie ich das mache ich komm da grad echt net drauf  ist ja nicht so das ich es nicht könnte .
|
|
|
01/26/2013, 10:36
|
#4
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
prinziep:
1. farbe einmalig einlesen und zusammen mit coordinaten speichern
2. dauerhaft farbe von gespeicherten coordinaten mit gespeicherter farbe vergleichen
beispiel code:
Code:
Dim $user32 = DllOpen('user32.dll')
Dim $newPosCtrl[4][2] = [['X',0],['Y',0],['Set',0],['Cancel',0]], $pixelColor[3], $running = False, $mouseCheckState = False, $text[2] = ['Start','Stop']
$gui = GUICreate('GUI', 200, 105, Default, Default, 0x10C80000, 8)
$setPosCtrl = GUICtrlCreateButton('Set Current', 10, 10, 180, 20)
GUICtrlCreateGroup('Current Color', 10, 30, 180, 40)
$pixelColorCtrl = GUICtrlCreateLabel('', 15, 45, 170, 20, 0x1001)
SetColor(0,0)
$startCtrl = GUICtrlCreateButton('Start checking for changes', 10, 75, 180, 20)
$childGui = GUICreate('Set Current', 200, 120, Default, Default, 0xC00000, Default, $gui)
For $i=0 To 1
GUICtrlCreateGroup($newPosCtrl[$i][0], 10, 10+$i*40, 100, 40)
$newPosCtrl[$i][1] = GUICtrlCreateInput('', 15, 25+$i*40, 90, 20, 0x2000)
$newPosCtrl[$i+2][1] = GUICtrlCreateButton($newPosCtrl[$i+2][0], 110, 15+$i*40, 80, 36)
Next
$mousePosCtrl = GUICtrlCreateButton('By Mouse Position', 10, 95, 180, 20)
While True
$msg = GUIGetMsg(1)
Switch $msg[0]
Case -3
Exit
Case $setPosCtrl
GUISetState(@SW_SHOW, $childGui)
Case $newPosCtrl[0][1], $newPosCtrl[1][1]
ToolTip('')
Case $newPosCtrl[2][1]
If StringIsInt(GUICtrlRead($newPosCtrl[0][1])) And StringIsInt(GUICtrlRead($newPosCtrl[1][1])) Then
$pixelColor[0] = GUICtrlRead($newPosCtrl[0][1])
$pixelColor[1] = GUICtrlRead($newPosCtrl[1][1])
SetColor($pixelColor[0], $pixelColor[1])
GUISetState(@SW_HIDE, $childGui)
Else
ToolTip('Enter the X and Y postion to set first!', Default, Default, 'Error', 3, 5)
EndIf
Case $newPosCtrl[3][1]
GUISetState(@SW_HIDE, $childGui)
ToolTip('')
Case $startCtrl
ChangeState()
Case $mousePosCtrl
GUISetState(@SW_HIDE, $childGui)
$mouseCheckState = True
EndSwitch
If $mouseCheckState And _IsPressed(1) Then
SetColor(MouseGetPos(0), MouseGetPos(1))
$mouseCheckState = False
EndIf
If $running Then
If PixelGetColor($pixelColor[0], $pixelColor[1]) <> $pixelColor[2] Then
MsgBox(64, 'Info', 'Change detected')
ChangeState()
EndIf
EndIf
WEnd
Func _IsPressed($sHexKey)
Local $a_R = DllCall($user32, "short", "GetAsyncKeyState", "int", $sHexKey)
Return BitAND($a_R[0], 0x8000) <> 0
EndFunc
Func ChangeState()
$running = Not $running
GUICtrlSetData($startCtrl, $text[$running]&' checking for changes')
EndFunc
Func SetColor($x=0, $y=0)
$pixelColor[0] = $x
$pixelColor[1] = $y
$pixelColor[2] = PixelGetColor($x, $y)
GUICtrlSetData($pixelColorCtrl, '0x'&Hex($pixelColor[2],6))
GUICtrlSetBkColor($pixelColorCtrl, $pixelColor[2])
GUICtrlSetColor($pixelColorCtrl, 0xFFFFFF-$pixelColor[2])
EndFunc
|
|
|
01/26/2013, 13:10
|
#5
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
das problem ist jetzt das ich die farbe immer wieder neu auslese :
Farbe wird ausgelesen
was machen
Farbe auslesen
Wenn die farben jetzt gleich sind muss die func zu was machen zurückgehen
|
|
|
01/26/2013, 15:29
|
#6
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by ~ⓜⓐⓢⓣⓔⓡ~
das problem ist jetzt das ich die farbe immer wieder neu auslese :
Farbe wird ausgelesen
was machen
Farbe auslesen
Wenn die farben jetzt gleich sind muss die func zu was machen zurückgehen 
|
und wo ist das problem? o0
farbe auslesen ist doch auch "etwas machen"...
Code:
While True
If PixelGetColor(...) = <wert> Then
<action>
EndIf
<beliebiger anderer kram>
Wend
|
|
|
01/26/2013, 22:40
|
#7
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
sry ich habe mich ganz vertan und hab es deswegen net hinbekommen . mann musste erst 1 überprüfen und nicht beide .
|
|
|
 |
Similar Threads
|
[Brauche Hilfe]Brauche Hilfe beim einfügen der neuen Rüstungen
01/04/2013 - Metin2 Private Server - 3 Replies
Brauche Hilfe!
Hallo epvp.
Ich habe mal ein paar Rüstungen gemoddet und dann wollte ich sie einfügen.
Es hat fast alles geklappt und ich war recht "happy", weil sie für den männlichen Krieger einbandfrei funktioniert haben.
Dann wollt ich gucken wie das bei den anderen Charaktern aussieht.
Ich habe mir die Rüstungen gerufen. Die icons der Rüstungen sind für den Ninja und den Krieger richtig. Bei der Sura und der Schami Rüstung sieht mal aber wieder die icons der Krieger und Ninja rüstung....
|
Brauche Dringend Hilfe! Bin Metin spieler aber Brauche Hilfe
12/30/2009 - Metin2 Private Server - 0 Replies
Es gehört hier zwar nicht rein , aber ich weiß keine andere Lösung
Ich habe seit einigen Tagen ein Problem...
Microsoft Windows Search Protocol Host funktioniert nicht mehr
Die Anwendung wird Aufgrund eines Problems nicht mehr richtig Ausgeführt.
Ich weiß nicht was das ist und wie ich es loswerde.
|
[AutoIt] PixelGet gibt immer den Wert 0
04/17/2009 - AutoIt - 5 Replies
/edit: Topic sollte heißen 0x000000
Hi, ich versuch grade nen simplen Bot zu schreiben der einfach nur auf 8 verschiedene Farben im selben Bereich reagieren soll. Problem ist nur, er sagt mir *immer* der Bereich wäre schwarz...
$color = PixelGetColor(90, 50)
if $color = 0xff00ff then
Send("3")
ElseIf $color = 0x00ff00 then
|
All times are GMT +1. The time now is 20:17.
|
|