Counter geht nicht

  • Kann mir jemand sagen warum sich der Counter nur auf 1 erhöht und denn nicht weiter ?
    Zerbreche mir schon den Kopf X/

    Lua
    local counter = 0
    setTimer(function()
    local counter = counter+1
    outputChatBox(tostring(counter))
    end, 1000, 0)
  • Die Lösung ist ganz einfach. Du hast ein local zu viel. Du deklarierst eine neue Variable im Namesraum der Funktion. Das überschreibt die Variable des darüber liegenden Namensraums. Deswegen ist counter an dieser stelle 2 und erhöht aber nicht wie gewollt die Counter aus dem äusseren Namensbereich.


    Ein kleines Beispiel kann man auf https://www.lua.org/cgi-bin/demo anschauen:


    Lua: Fehlerhaft.lua
    local counter = 1
    while counter < 2 do
    local counter = counter + 1
    print(counter)
    end


    Lua: Korrekt.lua
    local counter = 1
    while counter < 2 do
    counter = counter + 1
    print(counter)
    end
  • Kann mir jemand sagen warum sich der Counter nur auf 1 erhöht und denn nicht weiter ?

    Du brauchst, in diesem Fall, die 'counter' Variable innerhalb der Funktion nicht nochmal auf 'local' setzen.

    Lua
    local counter = 0
    setTimer(function()
    counter = counter+1
    outputChatBox(tostring(counter))
    end, 1000, 0)

    Der Grund wieso es nicht funktioniert hat, liegt darin das die Funktion in dem Timer die Variable 'counter' jedes mal auf 1 setzt.
    Du hast eine nicht vorhande lokale Variable (nil = 0) jedes mal +1 addiert. Die Chatbox müsste dir immer 1 ausgegeben haben oder der Debugscript 3 hat dir Fehler ausgespuckt.


    Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast

Jetzt mitmachen!

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