Beiträge von dewey

    Verstehe ich nicht xD



    gehe dir wahrscheinlich aufn sack aber sorry , bin halt noch anfänger..

    Du musst einfach die Hotkey-Taste manuell senden, weil Autohotkey die Taste "überschreibt".
    Mit SendInput hast du doch auch schon gearbeitet, zumindest sind diese Funktionen in deinem Script verwendet worden.
    Einfach zusätzlich, wenn die IsChatOpen-Abfrage TRUE ist, vor das Return die Taste erneut mit SendInput senden.



    MfG

    Ok habs jetzt gemacht aber wenn ich jetzt ingame bei /find die ID z.B 1 eingeben will geht das nicht, weil auf der 1 ein Keybind festgelegt ist...
    Sprich da wird garkeine 1 eingetippt weil der Chat ja opened ist und es einen return macht -.-

    Müsstest dann per SendInput die Taste wieder senden.

    Also jetzt sieht es so aus :



    Code
    4:: ;Find [id]
    if(IsChatOpen()))
    return
    AddChatMessage(0xFF0000, "Hitman : Bitte die Spieler-ID eintragen und bestätigen.")
    SendInput t/find{space}
    return

    Dann öffnet sich ganz normal der Chat und da steht /find bzw. wo ich dann die ID eingeben kann.
    Jedoch wenn ich 1 drücke , geht der Chat einfach aus... Will ja das die anderen Keybinds während ich den benutze nicht eingreifen ._.

    Wenn der Code von der Taste 1 immer noch dieser ist:


    Code
    1:: ;Motor starten
    SendInput t/motor {enter}
    return

    dann ist es auch logisch, warum sich der Chat schließt.
    Du musst die IsChatOpen()-Abfrage bei jedem Hotkey machen.



    MfG

    Achsoo..
    Um dieses Problem zu lösen, kannst du die Funktion IsChatOpen() benutzen.
    Diese gibt dir den Wert "1" also TRUE zurück wenn der Chat offen ist.
    Einfach folgendes am Anfang des Hotkeys schreiben:

    Code
    if(IsChatOpen())
    	return

    MfG

    Was meinst du mit "kommen andere Keybinder ins Spiel"?
    Hast du einen anderen Keybinder an, der auf den Command /Find reagiert?



    MfG

    Das kannst du alles löschen:

    Was du auch entfernen kannst, da du das überhaupt nicht benutzt ist:

    Code
    #UseHook

    Crasht dein GTA auch, wenn du die Taste "1" drückst?



    MfG

    1. Welcher Keybind? -> Code posten
    2. Hast du dein GTA modifiziert? -> z.B. ENB
    3. Kommt eine Fehlermeldung vom Keybinder? -> Schließt sich der Keybinder oder kommt eine MessageBox mit einem Fehler?
    4. Welche Version von SAMP hast du installiert?



    MfG

    Moin,


    ich habe auf dem sa-mp.com Forum ein nützliches Tool gefunden, mit dem man die Informationen eines beliebigen Servers auslesen kann.
    Link: http://forum.sa-mp.com/showthread.php?t=129013


    Leider ist der Download-Link nicht mehr verfügbar und anscheinend hat es auch keiner mehr erneut in dem Forum hochgeladen.
    Meine Frage lautet also:
    Hat jemand hier von euch das Teil auf dem PC rumfliegen und würde mir das hier im Thread oder per PN schicken?



    MfG

    Musste bei mir noch eine Taste hinzufügen, weil sich sonst das Teil direkt beendet hat.
    Sieht bei mir jetzt so aus:

    & Ingame so:

    Die roten Boxen zensieren nur einige Server-Namen.
    Wenn es bei dir mit meinem Script immer noch nicht funktioniert, kannst du es ja mal mit einer nicht modifizierten SAMP Version probieren.



    MfG

    Also willst du die Struktur der SAMP-API beibehalten. Okay.
    Einfach in den Ordner "examples" dann in "AHK" gehen und dort NUR dein Script reinziehen.
    Die Zeile wo irgendwas mit "#Include" steht änderst du zu:

    Code
    #include ..\..\include\AHK\SAMP_API.ahk

    Jetzt sollte rein theoretisch kein Fehler mehr kommen.



    MfG

    Ich bin mir nicht ganz sicher welcher Wert von der Funktion BoxCreate() zurückgegeben wird in der folgenden Zeile:

    Code
    box_overlay := BoxCreate(635, 400, 120, 170, 0xAA848484, true)


    Mach es am Besten so, dass du die Variable, die du Abfragst, ob die Box erstellt wird/wurde manuell auf einen anderen Wert setzt. Z.B. so:


    P.S: Falls es dich interessiert: Bei der Funktion TextCreate(), musst du den Parameter "text" garnicht angeben, da du diesen mit der Funktion TextSetString sowieso erneut definierst.
    Kannst also rein theoretisch das:

    Code
    HP := TextCreate("Arial", 9, true, true, 719, 88, 0xFFFFFFFF, GetPlayerHealth(), true, true)


    zu dem ändern:

    Code
    HP := TextCreate("Arial", 9, true, true, 719, 88, 0xFFFFFFFF, "", true, true)


    MfG

    Habs probiert, allerdings wird das Overlay auch hier nur dann erstellt, wenn zuerst SAMP gestartet wurde und anschließend der Keybinder neu gestartet wird.



    [Edit:] Lag an dem #IfWinActive, GTA:SA:MP. Aber wenn ich das rausnehme, müsste ich ja bei jeder Taste abfragen, ob GTA:SA:MP geöffnet ist... (dass es aufm Desk nicht ausgeführt wird) Oder gibts da ne leichte lösbare Alternative?


    Habe immer bei jeder Taste eine Abfrage gemacht, ob der Chat offen und GTA gestartet war.
    wäre dann halt zwei Zeilen pro Taste mehr zu schreiben.



    MfG

    Folgende Funktion einfügen (mit der SAMP-UDF verwendbar):

    So einsetzen:

    Es ist so, dass wenn du erst dein AHK Script und dann GTA startest, wird schon viel zu früh probiert ein Overlay zu erstellen.
    Meist schon dann, wenn das GTA Fenster noch nicht geladen ist.
    Deswegen ist eine Abfrage, die guckt ob GTA schon geladen hat, sinnvoll.
    Die Funktion ließt aus, ob der Chat von SAMP geladen ist und sollte dann eigentlich das Overlay anzeigen.



    MfG

    In deiner SAMP_API.ahk sollte sowas wie

    Code
    PATH_SAMP_API := PathCombine(A_ScriptDir, "..\..\bin\Open-SAMP-API.dll")


    stehen.


    Wenn du die Open-SAMP-API.dll, SAMP_API.ahk und dein Script in einem Ordner hast, muss es so aussehen:


    Code
    PATH_SAMP_API := PathCombine(A_ScriptDir, "Open-SAMP-API.dll")


    Wenn du wissen willst, wie und warum das so aussehen muss, einfach auf youtube oder so Tutorials zum Thema Dateipfade anschauen.



    MfG

    Sollte vom Prinzip her funktionieren.



    MfG

    hab

    JUNGE?!
    Schreib mal komplette deutsche Sätze wenn man dir helfen soll. Ist ja echt ein Trauerspiel wie viele Informationen von dir zurückkommen.
    Die .dll und die .ahk Datei der API zusammen einen Ordner packen, sowie das Script was du hier gepostet hast. Dann noch wenn nötig den Pfad, in der .ahk Datei der API, zu der API.dll korrigieren und das Problem sollte gelöst sein.
    Das nächste Mal den VOLLSTÄNDIGEN Fehler kopieren, nicht nur einen Ausschnitt. Du gehst ja schließlich nicht mit deinem Auto in die Werkstatt, stellst es einfach dort ab ohne was zu sagen und verlangst, dass ein möglicher Defekt repariert wird.



    MfG

    Es gibt einen unterschied zwischen #include "header" und #include <header>


    #include "header" ist eher für die lokale (absolute) ebene gedacht
    #include <header> kommt dann infrage wenn du die Header global in den Verzeichnissen hinterlegt hast.

    Ah okay gut zu wissen.
    Hatte es ursprünglich auch mit <> gemacht, hatte es aber mir "" gemacht, da ich da den ganzen Dateipfad zur Datei angeben konnte, hat aber nicht funktioniert.
    Macht so gesehen kein Unterschied, da ich das schon einmal ausprobiert hatte uns es nicht funktioniert hat:



    MfG