Tratsch rund um Autoit / Autoit Talk | kleinere Fragen

12/11/2012 21:19 xxxvadimxxx#706
Ziel: Bot für MMORPG
Problem: Ich möchte eine Schleife erzeugen bei der PixelSearch den Befehl Send ("..") bei nicht gefundener Farbe aufruft und das soll solange wiederholt werden bis der nötige Pixel gefunden wurde.
12/11/2012 22:33 Lawliet#707
Code:
While(FindPixel() == False)
Send(something)
wend


Func FindPixel(){
$array = PixelSearch(farbcode, 0,0, höhe, breite)
if isArray($array) == false
	return true
return false
}

So würd ichs schön machen.


Ansonsten einfach

Code:
While(isArray(PixelSearch(pixelcode,0,0,höhe,breite)) == false)
Send(key)
wend
12/11/2012 22:50 xxxvadimxxx#708
Wie kann ich noch machen das er nachdem er den Pixel gefunden hat einen Mausklick auf den Pixel macht?

& könnte mir jemand den return Befehl erklären?

Ty.
12/12/2012 07:26 omer36#709
PHP Code:
$pSearch PixelSearch(00191910790xFFFFFF)
If 
IsArray($pSearchThen
    MouseClick
("left"$pSearch[0], $pSearch[1])
EndIf 
12/12/2012 12:14 Lumi#710
#Problem gelöst
12/12/2012 17:31 xxxvadimxxx#711
So hab das mal anders gemacht
und zwar:
Code:
;-------------------------FARBEN---------------------------------;
$CC = PixelSearch(0, 32, 701, 795, 0xC3BE61, 2)
$CC1 = PixelSearch(8, 30, 1015, 760, 0xD0B068, 1)
$CC2 = PixelSearch(720, 33, 1599, 754, 0xC3BE61, 2)
$CC3 = PixelSearch(8, 30, 1015, 760, 0xD0B068, 1)


Func _AnFunc() ;Startet den Bot
	While 1
If IsArray ($CC) = False Then
Send ("{A down}")
Sleep (800)
Send ("{A up}")
Sleep (2000)
EndIf
WEnd

While 1
Sleep(200)
MouseClick("right", 1200, 131)
If IsArray ($CC2) = False Then
Send("{A down}")
Sleep (800)
Send ("{A up}")
Sleep (300)
MouseClick( "right", 51, 47)
EndIf
WEnd

	While 1
	TrayTip ("Started", "Bot gestartet", 10)



 ;======== Linker Client Maschine 1.Versuch ========;
	If IsArray($CC) = True Then
		MouseClick ("right", $CC[0], $CC[1])
		Sleep (3000)

  ;======== Linker Client Register Gruppe 1.Versuch ========;

		MouseClick( "left", 240, 195)
		Sleep( 900 )
		MouseClick( "left", 244, 509)
		Sleep(400)
		MouseClick( "right", 1303, 134)
		Sleep( 3000 )
	EndIf

;======== Linker Client Maschine 2.Versuch ========;
;======== Linker Client Register Gruppe 2.Versuch ========;
  ;nicht nötig im Moment


  ;======== Rechter Client Maschine 1.Versuch ========;
  If IsArray ($CC2) = True Then
	  MouseClick ("right", $CC2[0], $CC2[1])
	  Sleep (3000)
;========= Rechter Client Register Gruppe 1. Versuch ======;
	MouseClick ("left", 1234, 251)
	Sleep (900)
	MouseClick ("left", 1230, 560)
	 Sleep( 66000 )
 EndIf

;Bestätigung für linken Client
MouseClick ("left", 116, 517)
Sleep (2000)
;Bestätigung rechter Client
MouseClick ("left", 1149, 530)
Sleep (50000)

;======= Kampf 1 : 0 ... Client 2 läuft raus ========;
  Send( "{E down}" )
  Sleep( 6000 )
  Send( "{E up}" )
  Sleep( 50 )
  MouseClick( "right", 271, 320)
  Sleep( 35000 )

  ;======= Kampf 1 : 1 ... Client 1 läuft raus ========;
  Send( "{E down}" )
  Sleep( 6000 )
  Send( "{E up}" )
  Sleep( 50 )
  MouseClick( "right", 1057, 334)
  Sleep( 35000 )

  ;======= Kampf 2 : 1 ... Client 2 läuft raus ========;
  Send( "{E down}" )
  Sleep( 6000 )
  Send( "{E up}" )
  Sleep( 50 )
  MouseClick( "right", 271, 320)
  Sleep( 35000 )

  ;======= Kampf 2 : 2 ... Client 1 läuft raus ========;
  Send( "{E down}" )
  Sleep( 6000 )
  Send( "{E up}" )
  Sleep( 50 )
  MouseClick( "right", 1057, 334)
  Sleep( 35000 )

  ;======= Kampf 3 : 2 ... Client 2 läuft raus ========;
  Send( "{E down}" )
  Sleep( 6000 )
  Send( "{E up}" )
  Sleep( 50 )
  MouseClick( "right", 271, 320)
  Sleep( 55000 )
  WEnd

;=========Dreht sich um die Maschine zu finden========;
While 1
If IsArray ($CC) = False Then
Send ("{A down}")
Sleep (800)
Send ("{A up}")
Sleep (2000)
EndIf
WEnd
While 1
Sleep(200)
MouseClick("right", 1200, 131)
If IsArray ($CC2) = False Then
Send("{A down}")
Sleep (800)
Send ("{A up}")
Sleep (300)
MouseClick( "right", 51, 47)
EndIf
WEnd
EndFunc   ;==>_AnFunc
Das soll meine Anfunction sein, aber wenn ich auf an klicke dann schließt sich mein Bot.
Kann mir jemand sagen wo ein Fehler liegen könnte?
Der Befehl nach dem ich gefragt hab hab ich in:
Code:
	While 1
If IsArray ($CC) = False Then
Send ("{A down}")
Sleep (800)
Send ("{A up}")
Sleep (2000)
EndIf
WEnd
Umgewandelt...
12/14/2012 20:29 butter123#712
gibts sowas wie blockinput nur für die maus?

geht darum bei einem bot ingame nicht ausversehen die maus zu verücken, aber trotzdem noch hotkeys drücken zu können.
12/14/2012 22:37 Requiable#713
Kann man einen HotKey für die linke Maustaste machen? Bin mir bei IsPressed nicht sicher obs da nen HexKey für gibt ;)
12/15/2012 00:33 butter123#714
hotkeyset kannst du für die maus nicht benutzen, aber wie du schon gesagt hast würde es mit [Only registered and activated users can see links. Click Here To Register...] gehen. guck einfach die liste durch, da gibts auch die maustasten (am anfang^^)
12/16/2012 01:52 Requiable#715
Naja. Ist dies nun für Maustaste halten oder Maustaste klicken?
12/16/2012 11:03 butter123#716
hmm so genau kann man das glaube ich nicht sagen.
hotkeyset ruft eine funktion auf, wenn eine taste kurz gedrückt wurde.

ispressed funktioniert da ein bisschen anders. da wird geguckt, ob eine taste grade unten ist. du kannst das dann mit while oder if verbinden. while ispressed .... wäre dann: führe ... aus solange die taste unten ist.soll es nur einmal ausgeführt werden würde ich es so machen: if ispressed then... in einer schleife und am ende des ifs noch eine variable die dir sagt, ob/wieoft das if schon eingetreten ist. dann kannste am anfang vom if noch überprüfen ob die aktion schon ausgeführt wurde und ggf sie dann nicht mehr ausführen lassen.

edit: Do sleep until ispressed könnte im letzten fall eleganter sein^^ je nach dem was du machen willst
12/17/2012 22:43 Ratsmitglied#717
abend ladies

wollte mich eigentlich nur bisschen informieren über controlsend/click vs send/mouseclick.
ich hatte bis jetzt immer nur mit send/move/click gearbeitet,würde gern aber zu controlsend etc wechseln.
die frage dazu: wie detectable ist ControlClick im vergleich zu MouseClick (bsp)

ich weiß das alles detecable ist,bla etc.
würde doch gern noch nen vergleich haben.
und vorteile/nachteile?
danke im vorraus ;)
12/19/2012 18:30 Croco™#718
Naja ein großer Vorteil ist das deine Maus trotz allem bewegbar bleibt und du sicher seien kannst das der Text oder Klick beim jeweiligen Programm ankommt. Nachteile habe ich bis jetzt noch keine bemerkt. Ich vermute mal das beide gleich schnell detected da kann ich dir aber nichts genaueres zu sagen.
12/22/2012 23:01 Ratsmitglied#719
lässt sich imagesearch in controls verknüpfen?
12/23/2012 20:13 Croco™#720
Wenn du meinst das er nur innerhalb eines Programmes nach einem Bild suchen soll ist dieses nur möglich wenn man die Area ausließt in der das Programm liegt und dann mit _ImageSearchArea arbeitet.