Makrosammlung Topic is solved

Stelle Fragen zur Automatisierung von Spielen

Moderator: jNizM

Starter

Makrosammlung

Post by Starter » 23 Mar 2021, 16:35

Hallo euch allen,

Ich wollte mal eine Makrosammlung für ein Spiel machen und würde dafür gerne eine Taste bestimmen, die ich zuerst drücken muss, damit dann ein Makro abgespielt wird.

Irgendwie bin ich dafür gerade zu doof.

Hier ein kleines Beispiel.

Script läuft im Hintergrund
Wenn ich F1 drücke und innerhalb der nächsten 5 Sekunden Numpad 1, wird Makro 1 abgespielt.
Wenn ich F1 drücke aber innerhalb der nächsten 5 Sekunden Numpad 2, wird Makro 2 abgespielt.
usw


Wie müsste dafür das Script aussehen? Habe mit Keywait and Goto usw versucht, aber so richtig will es nicht. Soll halt auch Flexibel erweiterbar sein.


Dann noch eine kleine Frage. Ist es z.B dann möglich alle Tastenereigisse zu deaktivieren?
Beispiel
Wenn ich F1 gedrückt habe und dann Numpad 1 drücke, er Ingame die 1 nicht schreibt aber das Makro startet?


Vielen Dank für eure Hilfe.
Last edited by gregster on 23 Mar 2021, 20:03, edited 1 time in total.
Reason: Due to the language, moved to "Ich brauche Hilfe > Spiele".

Rohwedder
Posts: 4197
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Makrosammlung  Topic is solved

Post by Rohwedder » 24 Mar 2021, 12:10

Hallo,
versuch mal:

Code: Select all

F1::
Input, Key, T5, {Numpad1}{Numpad2}{Numpad3}
IF IsLabel(ErrorLevel)
	Goto,% ErrorLevel 
Return
EndKey:Numpad1:
SoundBeep, 1000
Return
EndKey:Numpad2:
SoundBeep, 2000
Return
EndKey:Numpad3:
SoundBeep, 3000
Return

Verlaeufer
Posts: 9
Joined: 04 Apr 2021, 14:35

Re: Makrosammlung

Post by Verlaeufer » 10 Apr 2021, 03:15

So, ich mache hier mal weiter. Starter war ich mit der Anfrage.

Danke vielmals für die Hilfe, dies hat wunderbar geklappt und macht richtig spaß.


Jetzt würde ich dies gerne aber etwas ändern und mit Variablen machen, damit ich oben Settings einbauen kann, damit jeder das Makro einfach auf sich einstellen kann, bzw wenn ich selber mal was ändern will.

Code: Select all

; ---------------------Settings-----------------------------------
hk_home		:= "Numpad1"		; Home Punkt
; --------------------------------------------------------



AppsKey::
Tooltip, Makro aktiv, 50, 50, 1
Input, Key, T5, {hk_home}}{Tab}
IF IsLabel(ErrorLevel)
	Goto,% ErrorLevel
	Tooltip,,,, 1
Return

EndKey:Tab:
aktion := !aktion
		if (aktion)
			{
			ToolTip, Kaufen/Ändern, 50, 75, 2
			ToolTip,,,,1
			}
		
		else
			{
			ToolTip,,,,1
			ToolTip,,,,2
		}
	Goto, Tooltip



EndKey:"hk_home":
	if (aktion)
		{
		Controlsend,, {Enter}, Minecraft
		Sleep, 1000
		Controlsend,, {/sethome}, Minecraft
		Sleep, 100
		Controlsend,, {Enter}, Minecraft
		}

	else
		{
		Controlsend,, {Enter}, Minecraft
		Sleep, 1000
		Controlsend,, /home, Minecraft
		Sleep, 100
		Controlsend,, {Enter}, Minecraft
		}
	Goto, Tooltip

Tooltip:
	Tooltip,,,, 1
	return
	

Ansonsten will ich gerne auch mit Controlsend verwenden, doch dies hat das Problem, das er die Tasten ändert. /home wird so zu 7Home. Gibt es da eine Smarte Lösung? Am liebsten so, das der Text wie geschrieben gepostet wird. Ansonsten geht dies auch mit Steuerelementen.



Danke schonmal vielmals.


Gruß
Verlaeufer

Rohwedder
Posts: 4197
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Makrosammlung

Post by Rohwedder » 10 Apr 2021, 04:10

Ich habe meinem Beispiel die Möglichkeit Tasten zu definieren, gegeben:

Code: Select all

hk_home := "Numpad1" ;in hk_home wird "Numpad1" gespeichert
%hk_home% := "hk_home" ;in Numpad1 wird "hk_home" gespeichert
Return
F1::
Input, Key, T5, {%hk_home%}{Numpad2}{Numpad3}
Taste := SubStr(ErrorLevel, 8)
IF IsLabel(%Taste%)
	Goto,% %Taste% ;definierte Taste
Else IF IsLabel(ErrorLevel)
	Goto,% ErrorLevel
Return
hk_home:
SoundBeep, 1000
Return
EndKey:Numpad2:
SoundBeep, 2000
Return
EndKey:Numpad3:
SoundBeep, 3000
Return
Zum ControlSend: "/home" ist keine Taste!
edit: es funkt auch ohne Array
Last edited by Rohwedder on 10 Apr 2021, 04:32, edited 1 time in total.

Verlaeufer
Posts: 9
Joined: 04 Apr 2021, 14:35

Re: Makrosammlung

Post by Verlaeufer » 10 Apr 2021, 04:29

Vielen Dank.


Gibt es da eine andere Möglichkeit, text an ein Programm zu senden?

Rohwedder
Posts: 4197
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Makrosammlung

Post by Rohwedder » 10 Apr 2021, 04:37

Was soll {/sethome} überhaupt sein?
Welche Tasten/Tastenkombinationen drückt du dabei im Spiel?

Verlaeufer
Posts: 9
Joined: 04 Apr 2021, 14:35

Re: Makrosammlung

Post by Verlaeufer » 10 Apr 2021, 05:55

Sry,

/sethome bzw /home sind Befehle im Spiel. Also kann es auch alles andere sein.

/text also.

Rohwedder
Posts: 4197
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Makrosammlung

Post by Rohwedder » 10 Apr 2021, 06:09

Wie machst du "/"
Betätigst du {Shift Down}{7}{Shift Up} oder {NumpadDiv} ?

Verlaeufer
Posts: 9
Joined: 04 Apr 2021, 14:35

Re: Makrosammlung

Post by Verlaeufer » 10 Apr 2021, 08:12

{Shift Down}{7}{Shift Up}, da dies immer geht.

Rohwedder
Posts: 4197
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Makrosammlung

Post by Rohwedder » 10 Apr 2021, 10:02

Ich habe keine Ahnung ob es Minecraft mag, aber Notepad akzeptiert beides:

Code: Select all

q::ControlSend, Edit1, /home, ahk_class Notepad
w::ControlSend, Edit1, {Shift Down}{7}{Shift Up}home, ahk_class Notepad
Googlefund: https://minecraftonline.com/wiki/AutoHotkey

Verlaeufer
Posts: 9
Joined: 04 Apr 2021, 14:35

Re: Makrosammlung

Post by Verlaeufer » 10 Apr 2021, 13:21

Danke dir.

Ist ja lustig, habe Code ausprobiert und weder in Notepad oder Minecraft (nach Änderung ) geht es. Bei Notepad blinkt nur einmal der Cursor auf, das dort etwas passiert ist xD Ich fühle mich wirklich bescheuert xD

Als Administrator habe ich es auch gestartet xD

Die anderen Sachen, gehen wunderbar, doch Controlsend will mich echt mal gern haben^^

Verlaeufer
Posts: 9
Joined: 04 Apr 2021, 14:35

Re: Makrosammlung

Post by Verlaeufer » 10 Apr 2021, 17:36

Hab das Problem gefunden.

Meine Delays waren die Lösung xD Es war einfach zu schnell xD

Danke dir herzlichst und habe ne menge lernen können.

Verlaeufer
Posts: 9
Joined: 04 Apr 2021, 14:35

Re: Makrosammlung

Post by Verlaeufer » 14 Apr 2021, 11:06

Boah macht das ein Spaß, bin dank dir echt einiges an Erfahrung weiter und habe ne Menge geschafft.

Hänge jedoch an 2 Sachen.

1.stens Wie kann ich wenn ich

Code in Options

Code: Select all

wert := 50
name := Klaus 
Gestartete AHK

Code: Select all

SetKeyDelay, 25, 20
FileRead, Options, %A_WorkingDir%\Ordner\Options.txt
%Options% ;Hier die Options laden

F1::
Send, %name% %wert%
return

2.tens wie schaffe ich es, eine Taste in Options festzulegen, so das diese im gesamten Skript geändert wird.

Code: Select all

Enter = Wie-auch-immer ; Was muss hier gemacht werden, damit wenn ich Enter ersetze, dies auch weiterhin geht.

Wie-auch-immer:
Send, {Wie-auch-immer}
sleep, 5000
Send, {G}
return

Habe gestern mir den Kopf zerbrochen und gelesen und gesucht, aber nichts gefunden. Auch nach Makros gesucht, wo ich es ableiten kann, aber habe nichts gefunden.


Wäre schön für noch einen anstubser und vielen Dank.

Gruß
Verlaeufer

Rohwedder
Posts: 4197
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Makrosammlung

Post by Rohwedder » 15 Apr 2021, 00:11

Zum 1.stens,
schau dir mal IniRead an.
https://ahkde.github.io/docs/commands/IniRead.htm

Zum 2.tens:

Code: Select all

Wie_auch_immer = Enter

Wie-auch-immer:
Send, {%Wie_auch_immer%}
sleep, 5000
Send, {G}
return
Wie-auch-immer erfüllt nicht die Kriterien an Variablennamen, Wie_auch_immer dagegen schon.
Ansonsten würde ich ein Array verwenden:

Code: Select all

K := {} ; Initialisierung des Array K
K["Wie-auch-immer"] := "{Enter}"
Wie-auch-immer:
Send,% K["Wie-auch-immer"]
sleep, 5000
Send, {G}
return
oder:

Code: Select all

K := {} ; Initialisierung des Array K
K["Wie-auch-immer"] := "Enter"
Wie-auch-immer:
Send,% "{" K["Wie-auch-immer"] "}"
sleep, 5000
Send, {G}
return

Verlaeufer
Posts: 9
Joined: 04 Apr 2021, 14:35

Re: Makrosammlung

Post by Verlaeufer » 15 Apr 2021, 15:39

Danke dir vielmals.

2tens habe ich mich wohl etwas falsch ausgedrückt.

Code: Select all


Pseudotaste = Enter ; Enter kann getauscht werden wie es will, zb. 1

Pseudotaste: ; <---- Möchte Pseudo über oben gewählte Tasten starten
Send, Pseudo über Enter gestartet
sleep, 5000
Send, {Enter}
return


Zur 1 muss ich noch etwas einlesen

Rohwedder
Posts: 4197
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Makrosammlung

Post by Rohwedder » 16 Apr 2021, 00:54

Na dann:

Code: Select all

Pseudotaste = Enter ; Enter kann getauscht werden wie es will, zb. 1
Hotkey,% Pseudotaste, Pseudotaste, I1 ;I1 = #InputLevel 1, Eingangsstufe 1
Return

Pseudotaste: ; <---- Möchte Pseudo über oben gewählte Tasten starten
Send, Pseudo über %Pseudotaste% gestartet
sleep, 5000
Send, {Enter}
return
Im Falle Pseudotaste = 1 wäre die Meldung "Send, Pseudo über 1 gestartet" ohne obige Eingangsstufenanhebung unvollständig.
Die "1" würde fehlen, da ein Hotkey normalerweise, zur Vermeidung von Selbstauslösung, sich selbst maskiert.
Abweichungen vom Normalen rächen sich oft.
Verwende die Optionen des Hotkey-Befehls nur, wenn es nötig ist.

Post Reply

Return to “Spiele”