SAMP api Problem: Hotkey gedrückt-> und nichts passiert.

  • Hallo Breadfishler,
    ich habe lange nicht mit AutoHotKey gearbeitet. Nachdem ich jetzt wieder angefangen hab und ich mich auch mal an die SAMP api.ahk setzen wollte, hatte ich direkt den ersten Fehler.


    Das erklärt sich wahrscheinlich von selbst.


    !-::
    Suspend Permit
    SendInput /f Ich benötige dringend Unterstützung. Ich befinde mich derzeit in GetPlayerCity() {!}{Enter}
    SendInput t/f Meine HP liegt bei GetPlayerHealth() und Armor bei GetPlayerArmor(){Enter}
    return


    Wenn ich ALT + - drücke passiert Ingame einfach Garnichts.
    In dem Ordner zum Keybinder liegt folgendes:
    - API.ahk
    - Der Keybinder
    - Das Hintergrundbild vom KeybinderGUI
    - Eine Daten.ini, in der Stuff aus dem GUI gespeichert wird.


    Es wäre wirklich sehr sehr hilfreich, falls mir da jemand weiterhelfen kann.


    MfG. Adrian aka. SkeeZy

    MfG. Adrian

  • Hey,


    in erster Linie kannst du Probieren, dein HotKey mal testweise auf die Taste 1 zu legen.



    Hast du auch folgendes ganz oben?

    #IfWinActive, GTA:SA:MP
    #SingleInstance force
    #UseHook
    #Persistent
    #NoEnv
    #Include API.ahk


    ~t::
    Suspend On
    Hotkey, Enter, On
    Hotkey, Escape, On
    Hotkey, t, Off
    return


    Escape:: ;Ausversehen eine Taste Drücken, während man im ESC-Modus ist
    Suspend Permit
    Suspend Off
    SendInput {Escape}
    Hotkey, t, On
    Hotkey, Enter, Off
    Hotkey, Escape, Off
    return


    #If WinActive("GTA:SA:MP") && !isInChat() && !isDialogOpen()


    Und wenn du doch die API benutzt, dann nutz doch nicht SendInput, sondern SendChat :)


    Hier ein Beispiel:

    !1::
    zone := GetPlayerZone()
    city := GetPlayerCity()
    SendChat("Ich befinde mich gerade in " . zone ", " . city ".")
    return

    Mit freundlichen Grüßen,


    Keslo

    • #SingleInstance force
    • #Persistent
    • #NoEnv
    • #If WinActive("GTA:SA:MP") && !isInChat() && !isDialogOpen()

    Die habe ich nicht drin. Aber hängen die damit zusammen ob das geht? Das ist nur bei dem Hotkey so. Die anderen beinhalten nichts aus der Api.ahk also sehr komisch.

    MfG. Adrian

  • Wiegesagt, wenn du was aus der API nutzt, dann nutz lieber SendChat, siehe mein Beispiel oben :)


    Da muss ich aber anmerken, dass ich mit der neuen API arbeite, siehe Hier

    Mit freundlichen Grüßen,


    Keslo

  • Welche API nutzt du denn? Ich würde die SAMP-UDF empfehlen, am besten die >neueste Version<.
    Dann am besten eine If-Direktive für alle folgenden Hotkeys erstellen:

    PHP
    #If WinActive("GTA:SA:MP") && !isInChat() && !isDialogOpen()

    Und wenn du eh eine API nutzt, einfach SendChat verwenden statt SendInput:

    PHP
    ALT & -::
        SendChat("/f Ich benötige dringend Unterstützung. Ich befinde mich in " GetPlayerCity() "!")
        ; // usw.
    return

    • !1::
      zone := GetPlayerZone()
      city := GetPlayerCity()
      SendChat("Ich befinde mich gerade in " . zone ", " . city ".")
      return

    Ich habs mal so versucht. Bei drücken von ALT + 1 ist das spiel direkt gecrasht.


    Ich bin jetzt eben was essen. Ihr könnt ja noch antworten, ich melde mich wenn ich wd da bin

    MfG. Adrian

  • Ich habs mal so versucht. Bei drücken von ALT + 1 ist das spiel direkt gecrasht.

    Wahrscheinlich, weil ich eine andere API nutze ;)
    Du musst für dich selber entscheiden, welche API für dich am Besten ist. Ich perönlich nutze die verlinkte von mir Oben,
    @Madd92 empfiehlt die SAMP-UDF.
    Wenn du dich für eine entschieden hast, dann guck dir die Funktionen an, damit du dann damit arbeiten kannst.

    Mit freundlichen Grüßen,


    Keslo

  • Wiegesagt, wenn du was aus der API nutzt, dann nutz lieber SendChat, siehe mein Beispiel oben :)


    Da muss ich aber anmerken, dass ich mit der neuen API arbeite, siehe Hier

    Ist die für 0.3.7 R2 ?



    //edit @Madd92 ich habe mal deine API genommen. Das Spiel crasht immernoch, sobald ich eine Funktion nutze, die Stuff aus der API beinhaltet.

    MfG. Adrian

    2 Mal editiert, zuletzt von SkeeZy ()

  • @Madd92 hier einmal das ganze Script o.O:
    Glücklicherweise erst seit heute am scripten ^^ sonst wär der glaubig länger.
    ---------------------------------------------------------------


    Gui, Show, x30 y40 h610 w960, Mystery Binder
    Gui, Add, Picture, x0 y0 h610 w960, Binderbanner.png
    Gui, Add, Edit, x500 y290 w300 h100 ReadOnly, Updatelog:
    Gui, Add, Button, x230 y280 w140 h30 gBelegungen, Belegungen
    Gui, Add, Button, x230 y310 w140 h30 gBefehle, Befehle
    Gui, Add, Button, x230 y340 w140 h30 gVorschläge, Vorschläge
    Gui, Add, Button, x230 y370 w140 h30 gHotkeys, Hotkeys
    Gui, Add, Button, x50 y530 w140 h30 gBeenden, Beenden
    IniRead, Nickname, Daten.ini, Ingame Daten:, Nickname
    Gui, Add, Edit, x40 y100 w100 h20 vnamen, %Nickname%
    Gui, Add, Button, x40 y120 w102 h20 gSaveName, Speichern
    return


    Hotkeys:
    5Open:
    Gui, 5: Show, x30 y40 h300 w450, Hotkeys
    Gui, 5: Add, Hotkey, x122 y39 w80 h20 ,
    Gui, 5: Add, Edit, x212 y39 w210 h20 , Textausgabe / Befehl
    return


    SaveName:
    GuiControlGet,Nickname ,,Namen
    IniWrite, %Nickname%, Daten.ini, Ingame Daten: , Nickname


    ;------Weitere Funktionen hier.. ------


    return


    Vorschläge:
    msgbox,0,Vorschläge, Du hast Vorschläge zu Verbesserung des Keybinders?`nDann melde dich Ingame oder im Forum bei Aiden oder AdmiralKenny.
    return


    Befehle:
    4Open:
    Gui, 4: Show, x30 y40 h300 w450, Befehle
    Gui, 4: Add, Text, x10 y20 w420 h440 ,`nBefehle:
    return


    Belegungen:
    3Open:
    Gui, 3: Show, x30 y40 h300 w450, Belegungen
    Gui, 3: Add, Text, x10 y20 w420 h440 ,`nHotkeys:`n-1 --> Schaltet den Motor+Licht an und schließt ab.`n-2 --> Schließt das Fahrzeug auf/zu.`n-3 --> Öffnet das Musikmenü`n-4 --> Öffnet die Statistiken
    return


    Beenden:
    msgbox,4,Beenden, Sind Sie sicher, dass Sie den Keybinder Beenden wollen?
    IfMsgBox Yes
    2GUIclose:
    ExitApp
    return


    GUIclose:
    ExitApp


    #IfWinActive, GTA:SA:MP
    #UseHook
    #SingleInstance force
    #Persistent
    #NoEnv


    ~t::
    Suspend On
    Hotkey, Enter, On
    Hotkey, Escape, On
    Hotkey, t, Off
    return
    NumpadEnter::
    Enter::
    Suspend Permit
    Suspend Off
    Hotkey, t, On
    Hotkey, Enter, Off
    Hotkey, Escape, Off
    return
    Escape::
    Suspend Permit
    Suspend Off
    SendInput {Escape}
    Hotkey, t, On
    Hotkey, Enter, Off
    Hotkey, Escape, Off
    return


    ;-----<_______> BINDS <_______>-----;


    1::
    SendInput t/motor{Enter}
    SendInput t/licht{Enter}
    SendInput t/lock{Enter}
    return


    2::
    SendInput t/lock{Enter}
    return


    3::
    SendInput t/music{Enter}
    return


    4::
    SendInput t/stats{Enter}
    SendInput t/me sieht sich seine Statistik an{Enter}
    return


    ;-----<_______> DOPPELBINDS <_______>-----;


    !l::
    Suspend Permit
    SendInput t/leader{Enter}
    return


    !m::
    Suspend Permit
    SendInput t/mitglieder{Enter}
    SendInput t/members{Enter}
    return


    !#::
    Suspend Permit
    SendInput t/f Habe verstanden{!}{Enter}
    return




    !-::
    Suspend Permit
    zone := GetPlayerZone()
    city := GetPlayerCity()
    SendChat("Ich befinde mich gerade in " . zone ", " . city ".")
    return // Deine Option hat auch nicht funktioniert ^^




    ;-----<_______> COMMANDS <_______>-----;


    :?:/cd::
    Suspend Permit
    SendInput Es folgt nun ein Countdown. Danach werden wir schießen{!}{Enter}
    sleep 1000
    SendInput t--->> 3 <<---{Enter}
    sleep 1000
    SendInput t--->> 2 <<---{Enter}
    sleep 1000
    SendInput t--->> 1 <<---{Enter}
    sleep 1000
    SendInput t/s Wir eröffnen nun das Feuer{!}{Enter}
    return


    :?:/p::
    Suspend Permit
    SendInput /p{Enter} ; damit er Ingame abhebt
    SendInput tGuten Tag, Sie sprechen mit %Nickname%.{Enter} ;Satz 1
    SendInput tWie kann ich ihnen behilflich sein?{Enter} ;Satz 2
    return


    :?:/ab::
    Suspend Permit
    SendInput /p{Enter}
    SendInput tGuten Tag, dies ist der Anrufbeantworter von %Nickname%.{Enter}
    SendInput tIch bin gerade leider beschäftigt, bitte rufen Sie später zurück.{Enter}
    SendInput t/h{Enter}
    return


    :?:/danke::
    Suspend Permit
    SendInput Vielen Dank für ihren Anruf.{Enter}
    SendInput tIch wünsche ihnen noch einen schönen Tag{!}{Enter}
    SendInput t/h{Enter}
    return


    :?:/bye::
    Suspend Permit
    SendInput Ich wünsche ihnen noch einen schönen Tag{!} Auf wiedersehen.{Enter}
    return


    :?:/jas::
    Suspend Permit
    SendInput Ja Sir, was kann ich für Sie tun?{Enter}
    return


    :?:/jam::
    Suspend Permit
    SendInput Ja Madam, was kann ich für Sie tun?{Enter}
    return


    :?:/hdf::
    Suspend Permit
    SendInput Bitte sein Sie Still{!}{enter}
    return


    :?:/vd::
    Suspend Permit
    SendInput Vielen Dank für ihre Kooperation{!}{Enter}
    SendInput tIch wünsche Ihnen noch einen schönen Tag.{Enter}
    return


    F12::
    Suspend
    SendInput t/me schaltet den Keybinder ein/aus.{Enter}
    return

    ------------------------------------------------------------------------------

    MfG. Adrian

  • @Madd92 Ich habe drei API´s getestet und sowohl auf 0.3.7 als auch auf 0.3.7 R2 kp was da falsch läuft.
    Kannst du mir vielleicht mal deine API für die 0.3.7 R2 schicken, mir sagen was ich genau in den ordner stecken soll und mir diese eine Funktion mit der
    Positionsdurchgabe vorbauen bzw. dafür einen Code schicken?


    Wäre super hilfreich wenn das dann nicht funzt habe ich kp

    MfG. Adrian

  • Das Script nutzt ja die API nicht bzw. fehlt zumindest der Include. Probier einfach mal ein ganz einfaches Script:


    Dann können wir weiter sehen ^^

    Einmal editiert, zuletzt von Madd92 ()

  • Das Script nutzt ja die API nicht bzw. fehlt zumindest der Include. Probier einfach mal ein ganz einfaches Script:


    Dann können wir weiter sehen ^^

    Danke ich hab dich lieb ^^ @Madd92 und dich natürlich auch @Muzoris .


    Lag es an folgender Zeile:
    #If WinActive("GTA:SA:MP") && !isInChat() && !isDialogOpen()
    ?


    (das Include API.ahk hatte ich erst drin aber wieder rausgenommen, bis ich damit arbeite ^^ also lags daran nicht)


    Oder gab es sonst noch irgendwo Fehler, oder Strukturierungen die ich hätte besser machen können?


    Dann habe ich noch 2 Fragen:
    1. Wie groß px x px muss das Bild in bmp (später .ico wie ich gelesen hab) genau sein? Also das Anwendungsicon
    2. Kennt sich eine von euch beiden gut mit selbstbelegbaren Hotkeys im GUI aus?

    MfG. Adrian