Funktion durch onClientRender einmal ausführen

  • Tag Leute,
    ich wollte fragen, ob jemand von euch ne Idee hat, wie man es macht, dass wenn man eine Funktion per
    onClientRender ausführt, das diese nur ein einziges mal ausgeführt wird.

    Lua
    function render ()
    draw() -- soll nur einmal ausgeführt werden
    end
    addEventHandler("onClientRender",getRootElement(),render)
    function draw ()
    bla = bla +1
    end


    Wie bekomme ich hin, das draw nur einmal ausgeführt wird ?
    Wem es eine Hilfe ist, ich will in der Funktion etwas in eine Tabelle eintragen.


    MfG DRdoode

    Wer ist dieser Hobbit da neben dem Panda?
    Guck ihn mal an, wie ein Mann ausseh'n geht anders

  • Lua
    function render ()
    draw() -- soll nur einmal ausgeführt werden
    end
    addEventHandler("onClientRender",getRootElement(),render)
    function draw ()
    bla = bla +1
    removeEventHandler("onClientRender",getRootElement(),render)
    end


    In der aufgerufenen Funktion den EventHandler entfernen und fertig ;)

  • Danke erstmal für eure Antworten, aber ich hab vor eine weitere Draw-Funktion zu erstellen,
    und dann bräuchte ich für jedes mal wenn ich diese Funktion ausführen würde einen neuen EventHandler...
    So funktioniert es nicht, aber ich denke es sollte euch zeigen was ich ungefähr mache:


    Lua
    dxDrawEditBox("Username",300,300,175,30,tocolor(255,255,255,255),tocolor(0,0,0,125),tocolor(0,0,0,255),1,"arial","Username")


    Ich habe dafür dann noch eine onClientRender Funktion.
    Das mit dem "name" brauch nicht, es sollte nur halt für die abfrage dienen,
    also es würde ohne dieses gehen.

    Wer ist dieser Hobbit da neben dem Panda?
    Guck ihn mal an, wie ein Mann ausseh'n geht anders

  • Wenn du draw() nur einmal ausführen willst dann schreib die Function doch einfach so ins Script.


    Als Alternative:


    Lua
    addEventHandler("onClientRender", getRootElement(), function()
    draw()
    removeEventHandler("onClientRender", getRootElement(), debug.getinfo(1,"f").func)
    end
    )

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!