Benötige Hilfe für Pixelbot

06/11/2010 18:04 Grufti666#1
Hiho

Eigentlich hatte ich die Frage zwar schon gestellt, aber anscheinend am falschen Ort. Das Thema wurde gelöscht. Ich hoffe das ihr mir hier weiterhelfen könnt.
Und zwar wollte ich für [Only registered and activated users can see links. Click Here To Register...] einen Pixelbot erstellen.

Dazu hatte ich folgende 2 Scripts ausprobiert

Code:
; 1.Versuch PixelBot
; für Crazy Guitar Maniac Deluxe 2
;

HotKeySet("{s}","_StartBot")
HotKeySet("{p}","_PauseBot")
HotKeySet("{e}","_EndeBot")

Global $Active = 0

While 1
	If $Active=1 Then
		$upperrow=PixelGetColor(288,335)
		If $upperrow = 0xB1653C Then
			Send("{up}")
		EndIf
		If $upperrow = 0x6699CC Then
			Send("{right}")
		EndIf
	EndIf
WEnd

Func _StartBot()
	$Active = 1
EndFunc

Func _PauseBot()
	$Active = 0
EndFunc

Func _EndeBot()
	Exit
EndFunc
Code:
; 2.Versuch PixelBot
; für Crazy Guitar Maniac Deluxe 2
;

HotKeySet("{s}","_StartBot")
HotKeySet("{p}","_PauseBot")
HotKeySet("{e}","_EndeBot")

Global $Active = 0

While 1
	If $Active=1 Then
		$upperrowred=PixelSearch(276, 323, 294, 348, 0xB1653C, 5)
		If Not @error Then
			Send("{up}")
		EndIf
		$upperrowblue=PixelSearch(276, 323, 294, 348, 0x6699CC, 5)
		If Not @error Then
			Send("{right}")
		EndIf
	EndIf
WEnd

Func _StartBot()
	$Active = 1
EndFunc

Func _PauseBot()
	$Active = 0
EndFunc

Func _EndeBot()
	Exit
EndFunc
Ich habe mich vorerst nur auf hoch und rechts beschränkt, erst wenn diese gehen will ich mit den anderen weitermachen.

Mein Problem ist jetzt aber das er nicht jedes Mal die richtige Taste sendet, einige werden einfach ausgelassen.

Nun würde ich gerne wissen wie ich dieses Problem in den Griff bekomme bzw. ob es eventuell eine einfachere Methode gibt diesen Bot zu realisieren.

Bin für jede Hilfe Dankbar

MfG
06/12/2010 08:30 HardCore.1337#2
Anstatt
Code:
 if Not @error then
würde ich das nehmen
Code:
if IsArray(upperrow) then...
06/12/2010 22:58 Grufti666#3
Danke, werd ich gleich mal probieren
06/13/2010 00:07 Grufti666#4
Juhu, es funktioniert jetzt!

Die Änderung
Code:
if IsArray(upperrow) then...
allein hat nichts gebracht, hatte dann im Script noch mir Sleep rumprobiert und so.

Dann bin ich in der Hilfe auf die Funktionen "SendKeyDelay" und "SendKeyDownDelay" gestoßen mit dem ich kurz rumprobiert hatte.

Mein Script sieht nun folgendermaßen aus und funktioniert soweit ich bisher bin
Code:
; 4.Versuch PixelBot
; für Crazy Guitar Maniac Deluxe 2
;

Opt("SendKeyDelay", 0)
Opt("SendKeyDownDelay", 50)

HotKeySet("{s}","_StartBot")
HotKeySet("{p}","_PauseBot")
HotKeySet("{e}","_EndeBot")

Global $Active = 0

While 1
	If $Active=1 Then
		$upperrowred=PixelSearch(236, 253, 255, 288, 0xB1653C, 10)
		If IsArray($upperrowred) Then
			Send("{up}")
			$upperrowred=0
			;Sleep(200)
		EndIf
		$upperrowblue=PixelSearch(236, 253, 255, 282, 0x6699CC, 10)
		If IsArray($upperrowblue) Then
			Send("{right}")
			$upperrowblue=0
			;Sleep(200)
		EndIf
	EndIf
WEnd

Func _StartBot()
	$Active = 1
EndFunc

Func _PauseBot()
	$Active = 0
EndFunc

Func _EndeBot()
	Exit
EndFunc