[Autohotkey|API] Problem mit dem Keybinder (Macht nicht was ich will... IF-Funktion funktioniert nicht richtig) [Code-Fehler?] - Hilfe c:


  • Hallo Community,
    ich bin derzeit dabei einen Keybinder zu schreiben, der eine Art "Auswahlmenü" bietet. Sprich der Keybinder unterteilt sich in eigene Abteilungen (Welche neue Keybinds 'freischalten')


    Beispiel nach drücken von F5: (Screen davon)
    • Keybinder: === Verfuegbare Abteilungen ===
    • Keybinder: 1 = Medic | 2 = Oamt | 3 = Feuerwehr
    [Abteilung] Gib die Zahl der Abteilung ein: (Kommt als PlayerInput im Chat automatisch nach drücken von F5)


    Hoffe ihr versteht, wie ich das meine.


    Standart-Keybinds:


    Wählt man bei den Verfügbaren Abteilungen z.B. Medic und gibt beim PlayerInput die Zahl 1 ein, laden sich neue Keybinds! (Zum Beispiel):
    Medic-Keybinds:


    Genauso verläuft die Sache auch bei Oamt/Feuerwehr.


    [Danke an Jeffry für den richtigen Code c:]


    Ich freue mich auf schnelle Antworten und bedanke mich schonmal bei jedem, der diesen Thread gelesen hat.


    Code
    #include API.ahk#Persistent#NoEnv #IfWinactive, GTA:SA:MP#UseHookt::Suspend OnSendInput tHotkey, Enter, OnHotkey, Escape, OnHotkey, t, OffreturnNumpadEnter::Enter::Suspend PermitSuspend OffSendInput {Enter}Hotkey, t, OnHotkey, Enter, OffHotkey, Escape, OffreturnEscape::Suspend PermitSuspend OffSendInput {Escape}Hotkey, t, OnHotkey, Enter, OffHotkey, Escape, Offreturn;-------------------------------------------PlayerInput(text){s := A_IsSuspendedSuspend OnKeyWait EnterSendInput t^a{backspace}%text%Input, var, v, {enter}SendInput ^a{backspace 100}{enter}Sleep, 20if(!s)  Suspend Offreturn var};-------------------------------------------F12::Suspendif ( A_IsSuspended )	{		AddChatMessage("{FFFF00}Eventbinder:{FFFFFF} Der Keybinder ist nun {FF0000}ausgeschaltet{FFFFFF}!")	}if ( !A_IsSuspended )	{		AddChatMessage("{FFFF00}Eventbinder:{FFFFFF} Der Keybinder ist nun {00FF00}eingeschaltet{FFFFFF}!")	}return~1::SendChat("/r Guten Tag.")return~2::SendChat("/r Aufwiedersehen.")return~3::SendChat("/tor")AddChatMessage("{FFFF00}Keybinder:{FFFFFF} Tor geöffnet.")returnF5::Suspend PermitAddChatMessage("{FFFF00}Keybinder:{FFFFFF} === Verfuegbare Abteilungen ===")AddChatMessage("{FFFF00}Keybinder:{FFFFFF} 1 = Medic | 2 = Oamt | 3 = Feuerwehr")if(abteilung := PlayerInput("[Zahl] Gib die Zahl der Abteilung ein: ")){	if abteilung is not number	{		AddChatMessage("{FFFF00}Keybinder:{FFFFFF} Ungueltige Eingabe!")		return	}	if(abteilung = 1)	{		AddChatMessage("{FFFF00}Keybinder:{FFFFFF} Medic-Keybinds geladen.")		;Hier kommen die neuen Keybinds für Medic von z.B. 1-3 hin.	}	else if(abteilung = 2)	{		AddChatMessage("{FFFF00}Keybinder:{FFFFFF} Oamt-Keybinds geladen.")		;Hier kommen die neuen Keybinds für Oamt von z.B. 1-3 hin.	}	else if(abteilung = 3)	{		AddChatMessage("{FFFF00}Keybinder:{FFFFFF} Feuerwehr-Keybinds geladen.")		;Hier kommen die neuen Keybinds für Feuerwehr von z.B. 1-3 hin.	}	else 	{		AddChatMessage("{FFFF00}Keybinder:{FFFFFF} Ungueltige Eingabe!")		return	}}return


    Monty_Python: , Klemmlampe: , Jeffry: , Atrox: , RFT: , @Rocky: vielleicht kennt ihr euch dabei aus :x

    10 Mal editiert, zuletzt von Bookai ()

  • Willkommen auf Breadfish!



    Wie sieht es so aus?


  • Willkommen auf Breadfish!



    Wie sieht es so aus?



    Vielen, vielen Dank Jeffry! Nun kommt "Medic-Keybinds" geladen etc.


    Weißt du auch, wenn ein Keybind (1) im Chat: Hallo wiedergibt, dass er bei "Medic-Keybinds" bei der 1 z.B. Hallo ich bin Arzt wiedergibt?


    (Also das die Keybinds *überschrieben* werden.

  • Bitte nicht den ganzen Post mit Code zitieren, das ist zu viel. Für die Zukunft.


    Weißt du auch, wenn ein Keybind (1) im Chat: Hallo wiedergibt, dass er bei "Medic-Keybinds" bei der 1 z.B. Hallo ich bin Arzt wiedergibt?


    Wissen ist gut, ich arbeite nicht mit AHK, ich habe dir nur den Code mit normalem Programmier-Verstand behoben. :D


    Du kannst folgendes Versuchen:
    Die Variable "abteilung" global definieren, und dann bei "1" abzufragen:


    => F5 => Auswählen => 1 eingeben => Taste 1 drücken => "/r Guten Tag, ich bin Arzt." sollte ausgegeben werden.

  • => F5 => Auswählen => 1 eingeben => Taste 1 drücken => "/r Guten Tag, ich bin Arzt." sollte ausgegeben werden.


    Hat funktioniert c:



    Gibt es dafür auch eine andere Variante? (Frage an alle) Also, damit ich es direkt bei dem Code von F5:: drunterschreiben kann?


    Und wie kann ich aus dem 'Modus' wieder raus -> Sprich: F5 -> 1 -> Medic-Keybinds geladen. -> F5 -> Standart-Keybinds geladen.

    2 Mal editiert, zuletzt von Bookai ()

  • Zum Beispiel 0 eingeben, bei F5.



    Gibt es auch eine Möglichkeit die folgendes erlaubt:


    Man drückt F5:
    • Keybinder: === Verfuegbare Abteilungen ===
    • Keybinder: 1 = Medic | 2 = Oamt | 3 = Feuerwehr
    Man gibt 1 ein:
    • Keybinder: Medic-Keybinds geladen.
    Man drückt erneut F5 und ist automatisch wieder im normalen Keybindermodus.
    • Keybinder: Standart-Keybinds wieder geladen.


    (qausi: Beim erneuten Drücken der Taste wird alles "aufgehoben")


    (Ohne das man es mit der "0" macht)

    2 Mal editiert, zuletzt von Bookai ()

  • Gibt es auch eine Möglichkeit die folgendes erlaubt:



    So zum Beispiel.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • So zum Beispiel.


    Hm funktioniert nicht richtig.


    Wenn ich F5 erneut drücke kommt in den Chat:
    • Keybinder: === Verfuegbare Abteilungen ===
    • Keybinder: 1 = Medic | 2 = Oamt | 3 = Feuerwehr


    (Das sollte allerdings nicht kommen, sondern: • Keybinder: Standart-Keybinds geladen)


    Könnte das auch alles ohne der "abteilung = 0" funktionieren?

  • Dann so:


    Nein, du brauchst das mit dem gleich 0, sonst kannst du es nicht abfragen.