[AHK] Kleines Overlay Beispiel

  • Morgen zusammen,


    Ich wollte mich mal mit einem Overlay befassen aber bekomme das nicht auf die Reihe.


    Daher meine Frage, ob jemand eventuell ein kleines beispielscript anzubieten hat damit ich daraus lernen kann.


    //edit: Ein Tutorial darüber würde mir natürlich auch sehr weiterhelfen!


    Danke im voraus.

    Einmal editiert, zuletzt von Housefrau ()

  • ich kann die hier mal nen Overlay von mir anbieten. Die Funktionrn erklären sich ja eig. vin selbst.
    Vorraussetzung ist halt API.dll /Ahk ^^


    Blub

  • Hallo,
    ich bekomme bei diesem Script dann immer eine Fehlermeldung:


    Too few parameters passed to function.
    Specifically: Textcreate("Arial", 15, false, false) //Schrifftart
    >Exit code: 2 Time: 0.196


    was mache ich da falsch?

  • und wie muss der Satz dann richtig lauten?
    hab's selbst herausgefunden.
    zb. so:
    TextCreate("Arial", 6, false, false, 720, 91, 0xFFFFFFFF, "100", true, true)


    jetzt bekomme ich aber diese Fehlermeldung:
    Call to nonexistent function.
    Specifically: TextShow(zone)

  • Text Show gibt es nicht mehr

    Richtig und Falsch, die Funktion heißt einfach nur TextSetShown().


    EDIT:
    Beispiel um ein Text zu erstellen:


    Code
    Numpad0::
    TextString := TextCreate("Arial", 6, false, false, 720, 91, 0xFFFFFFFF, "100", true, true)
    TextSetString(TextString, "Hallo Welt")
    return

    Was du bei der Funktion TextCreate() für einen Text einsetzt ist relativ egal, da du diesen noch einmal in der Funktion TextSetString() definieren musst.



    MfG

  • Danke,
    also mein abgeändertes Script sieht jetzt so aus:
    [pwn#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
    ;#Warn ; Enable warnings to assist with detecting common errors.
    SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
    #include api.ahk


    :?:/overlayoff::
    Suspend Permit
    DestroyAllVisual() //Schalltet alle Overlays ab
    SetTimer, Alles, off
    SetTimer, hpoverlay, off
    return


    :?:/overlay::
    Suspend Permit
    ;;;;;;;;;;;;;;;;;;;;;;Orts anzeige;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    zone := TextCreate("Arial", 6, false, false, 720, 91, 0xFFFFFFFF, "100", true, true) //Schrifftart
    Textsetpos(zone, 650, 430 )//Position
    TextSetColor(zone, 0xFFFFFFFF )//Farbe
    TextSetShown(zone, 1) //die Var, kann alles mögliche andere sein
    ;;;;;;;;;;;;;;;;;;;;;HP Overlay;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    hp := TextCreate("Arial", 6, false, false, 720, 91, 0xFFFFFFFF, "100", true, true) //Das selbe, nur andere Posi und Variable
    Textsetpos(hp, 713, 90)
    TextSetColor(hp, 0xFFFFFFFF)
    TextSetShown(hp, 1)
    Settimer, Alles, 1000 //Die Zeit der Abfragen
    SetTimer, hpoverlay, 20
    return
    hpoverlay:
    #IfWinActive, GTA:SA:MP
    {
    TextSetString(hp, GetPlayerHealth())
    }
    return
    Alles:
    #IfWinActive, GTA:SA:MP
    {
    GetZoneName(Zone)
    TextSetString(zone, Zone)
    }
    return][/pwn]


    jetzt kommt aber plötzlich:
    Settimer, Alles, 1000 //Die Zeit der Abfragen
    Parameter #2 invalid.
    >Exit code: 2 Time: 0.1965

  • Code
    DestroyAllVisual() //Schalltet alle Overlays ab

    zu


    Code
    DestroyAllVisual() ;Schalltet alle Overlays ab

    Um eine Zeile mit einem Kommentar zu versehen musst du ein Semikolon davor setzen.
    Ein Bereich über mehrere Zeilen musst du am Anfang mit "/*" und am Ende mit "*/" Kennzeichnen.
    (ohne die Anführungszeichen)



    MfG

  • Danke,
    keine Fehler mehr, nur leider sehe ich ingame kein Overlay.
    Muss ich da noch eine Taste definieren?


    SendMode Input
    #Warn
    #UseHook
    #NoEnv
    #SingleInstance, force
    SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
    #include api.ahk


    :?:/overlayoff::
    Suspend Permit
    DestroyAllVisual() ;Schalltet alle Overlays ab
    SetTimer, Alles, off
    SetTimer, hpoverlay, off
    return


    :?:/overlay::
    Suspend Permit
    ;;;;;;;;;;;;;;;;;;;;;;Orts anzeige;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    zone := TextCreate("Arial", 15, false, false, 720, 91, 0xFFFFFFFF, "100", true, true) ;Schrifftart
    Textsetpos(zone, 650, 430 ) ;Position
    TextSetColor(zone, 0xFFFFFFFF ) ;Farbe
    TextSetShown(zone, 1) ;die Var, kann alles mögliche andere sein
    ;;;;;;;;;;;;;;;;;;;;;HP Overlay;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    hp := TextCreate("Arial", 9, false, false, 720, 91, 0xFFFFFFFF, "100", true, true) ;Das selbe, nur andere Posi und Variable
    Textsetpos(hp, 713, 90)
    TextSetColor(hp, 0xFFFFFFFF)
    TextSetShown(hp, 1)
    Settimer, Alles, 150 ;Die Zeit der Abfragen
    SetTimer, hpoverlay, 20
    return
    hpoverlay:
    #IfWinActive, GTA:SA:MP
    {
    TextSetString(hp, GetPlayerHealth())
    }
    return
    Alles:
    #IfWinActive, GTA:SA:MP
    {
    GetZoneName(Zone)
    TextSetString(zone, Zone)
    }
    return

  • Hab das alles mal etwas vereinfachter umgeschrieben. Das was du mit TextSetPos und TextSetColor machst, wäre nur nötig, wenn du bei einem bereits bestehenden TextCreate-String etwas ändern würdest. Da du aber ein paar Zeilen weiter oben die Funktion TextCreate aufrufst und dort alles definieren kannst, ist das eigentlich nur verschwendeter Platz und unnötig das doppelt zu definieren.


    Wenn du das Script jetzt startest und im Chat /overlay eingibst, sollte das Overlay in der Theorie angezeigt werden.



    MfG

  • da wird nur "unknown command" angezeigt.


    Ich spiele auf RGN falls das was ändert.

    Statt dem Command ist es jetzt Numpad0 zum aktivieren des Overlays



    MfG