Taste hebt Loop und Automatisierung auf

Stelle Fragen zur Automatisierung von Spielen

Moderator: jNizM

JanWirrol
Posts: 7
Joined: 21 May 2021, 11:42

Taste hebt Loop und Automatisierung auf

15 Dec 2021, 13:59

Guten Abend.

Ich löse mir Numpad1 ein Loop aus, welchen ich gerne mit Numpad1 (Wenn das nicht geht Numpad2) beenden würde, hatte es mit If Probiert dies war eine Katastrophe. :D
Habe deswegen nur mein anfang als Code, vielleicht kann mir ja einer bei der Lösung helfen.

Code: Select all

Numpad1::
Loop 20
{
    Send {e down}
    Sleep 30
}
Send {e up}
Sleep, 4000
Send, d
Sleep, 500
Send, w
Sleep, 100
goto, AngelnStart
return
Achso, ich muss im Spiel E für ca 2Sekunden gedrückt halten deswegen über den Loop.

Danke und schönen abend noch.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Taste hebt Loop und Automatisierung auf

15 Dec 2021, 16:36

Keine seltene Frage. Ich denke mal, dass es in Richtung :arrow: GetKeyState() geht.
Rohwedder
Posts: 7656
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Taste hebt Loop und Automatisierung auf

17 Dec 2021, 05:12

Hallo,
so wird der Loop mit dem Loslassen von Numpad1 vorzeitig beendet:

Code: Select all

Numpad1::
Loop 20
{
    Send {e down}
    Sleep 30
}
Until, !GetKeyState(A_ThisHotkey,"P")
Send {e up}
Sleep, 4000
Send, d
Sleep, 500
Send, w
Sleep, 100
goto, AngelnStart
return
JanWirrol
Posts: 7
Joined: 21 May 2021, 11:42

Re: Taste hebt Loop und Automatisierung auf

17 Dec 2021, 18:49

Rohwedder wrote:
17 Dec 2021, 05:12
Hallo,
so wird der Loop mit dem Loslassen von Numpad1 vorzeitig beendet:

Code: Select all

Numpad1::
Loop 20
{
    Send {e down}
    Sleep 30
}
Until, !GetKeyState(A_ThisHotkey,"P")
Send {e up}
Sleep, 4000
Send, d
Sleep, 500
Send, w
Sleep, 100
goto, AngelnStart
return
So mein ich das nicht, er soll das die ganze Zeit machen bis ich erneut Numpad drücke. Habe es mit GetKeyState probiert aber nicht hinbekommen.
Rohwedder
Posts: 7656
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Taste hebt Loop und Automatisierung auf

18 Dec 2021, 03:00

Na dann vielleicht?:

Code: Select all

Numpad1::SetTimer, TN1,% (TN1:=!TN1)?-1:"Off"
TN1:
While, A_TimeSinceThisHotkey < 2000 and TN1
{ ;E für ca 2 Sekunden gedrückt halten
    Send {e down}
    Sleep 30
}
Send {e up}
Sleep(4000,TN1)
Send, d
Sleep(500,TN1)
Send, w
SetTimer, AngelnStart, -100 
TN1 := False ;AngelnStart als neuer Thread ist sauberer!
Return

Sleep(Time,ByRef Active:=True)
{ ;like "Sleep, Time", but if Active becomes False, the Thread ends
    End:= A_TickCount + Time
    While, S:= End-A_TickCount > 0
        IF Active
            Sleep,S>100?100:S
        Else Exit
} ;a long Sleep will be segmented to be able to interrupt it fast
Wenn mit dem 2. Numpad1 nur die E-Schleife abgebrochen werden soll, d.h. D, W und AngelnStart trotzdem, braucht's die Sleep-Funktion nicht.
User avatar
haichen
Posts: 631
Joined: 09 Feb 2014, 08:24

Re: Taste hebt Loop und Automatisierung auf

20 Dec 2021, 09:46

Ich habe jetzt nicht verstanden warum du einen Loop brauchst. Geht nicht einfach ein

Code: Select all

Send {e down}
sleep, 2000
Send {e up}
?


Ansonsten wäre Keywait vielleicht noch möglich:

Code: Select all

Numpad1::
Send {e down}
sleep, 100 ;ohne geht es bei mir nicht - muß man vielleicht länger oder kürzer machen.
KeyWait, Numpad1,D t20 ;Nach Numpad1 oder 20 sek (20 zum testen, bei Dir wären es 2) gehts weiter.
Send {e up}
MsgBox, Die Wartezeit ist um, oder Du hast ein zweites mal Numpad1 gedrückt
/*
Sleep, 4000
Send, d
Sleep, 500
Send, w
Sleep, 100
goto, AngelnStart
*/
return

Return to “Spiele”

Who is online

Users browsing this forum: No registered users and 60 guests