Drücke Space wenn Farbe ist xxx im Bereich xxx

  • Moin moin,

    hab ein kleines Problem und komm nicht weiter.
    Habe schon Threads über das Thema gelesen, aber irgendwie hilft da nichts von.

    Was ich machen möchte:
    Bei einer auflösung von 800*600 einen kleinen bereich abfragen, wo die farbe rot irgendwann auftauchen wird. Wenn die Farbe rot auftaucht, dann soll Space gedrückt werden. So wie ich das nun gemacht habe, geht das irgendwie nicht.
    Wieso?

    Code
    While 1=1
    
    
    	$p3 = PixelSearch( 316, 15, 461, 580, 0xff1c73,10,3 )
    	If Not @error Then	 ControlSend("Unbenannt - Editor", "", "", "{SPACE}")
    	WEnd

    danke für eure hilfe

  • falsche farbe oder falscher bildschirmbereich :)

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]
  • ney, farbe ist richtig und der bildschirmausschnitt auch

    ich merke auch, wenn er scannt, dass das spiel ruckelt und wenn er es einmal erkannt hat, das die farbe geändert ist, es auf einmal wieder flüßig wird.
    aber das space kommt nict an.

  • [autoit]


    While 1
    $pixel = PixelSearch( 316, 15, 461, 580, 0xff1c73,10,3 )
    If Not @error Then Send("{SPACE}")
    WEnd

    [/autoit]

    Prob mal das und wenn das nicht geht mach mal das

    [autoit]


    HotKeySet("{ESC}","ENDING")

    [/autoit][autoit][/autoit][autoit]

    While 1
    $pixel = PixelSearch( 316, 15, 461, 580, 0xff1c73,10,3 )
    If Not @error Then MouseMove($pixel[0],$pixel[1]) ; bewegt die maus wenn farbe gefunden
    Wend

    [/autoit][autoit][/autoit][autoit]

    Func ENDING()
    Exit
    EndfUnc

    [/autoit]

    PS: Mach noch ne Abbruch funktion wegen schleife rein!

    Einmal editiert, zuletzt von I3iLLiG (22. September 2007 um 17:14)

  • 1. setzt ma sleep(100) in deine while schleife. dann ist die cpu auslastung ned so groß
    2. muss man bei controlsend nicht auch ne controlid eintragen? Probier das ma obs dann geht

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]
  • hallo, mit sleep kann ich nicht arbeiten, da es in echtzeit überprüft werden muss.ok, sleep 10 würde noch funktionieren, mach ich mal. sonst, die beiden vorschlage von I3iLLiG haben nicht geklappt. beim oberen habe ich das gefühl das er garnicht den bereich überprüft, jedenfalls ruckelt das spiel dann nicht

    mit der controlid schau ich mal nach

    edit: controllid bekomm ich nicht raus. evtl. weils vollbild ist?

    edit: das mit dem editor war ja nur zur überprüfung
    jetzt dacht ich mir, können wir ja gleich richtig zum spiel senden.
    in der prozessliste wird das spiel nicht angezeigt
    den window namen habe ich aber.

    2 Mal editiert, zuletzt von PfandFrei (22. September 2007 um 17:35)

  • Mhh ok dann würde ich folgendes machen:

    Scanne mal deinen Gesamten Bildschirm nach dem Pixel obs überhaupt klappt.

    Spoiler anzeigen
    [autoit]


    HotKeySet("{ESC}","ENDING")

    $Spiel = "Warcraft III" ; Name deines Spiels unbedingt verändern!

    [/autoit] [autoit][/autoit] [autoit]

    WinActivate("$Spiel")
    WinWaitActive("$Spiel")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $pixel = PixelSearch(0, 0,1024, 768, 0xff1c73,10,3 ) ;Wenn das Spiel im 1024x768 Auflösungsbereich läuft
    If Not @error Then
    MsgBox(0,"Pixel","Gefunden!")
    MouseMove($pixel[0],$pixel[1]) ;Wenn gefunden bewegt er die Maus dorthin wo der Pixel gefunden wurde.
    Endif
    Wend

    Func ENDING()
    Exit
    EndFunc

    [/autoit]

    5 Mal editiert, zuletzt von I3iLLiG (23. September 2007 um 16:11)