Counter geht nicht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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 lua.org/cgi-bin/demo anschauen:

    LUA-Quellcode: Fehlerhaft.lua

    1. local counter = 1
    2. while counter < 2 do
    3. local counter = counter + 1
    4. print(counter)
    5. end


    LUA-Quellcode: Korrekt.lua

    1. local counter = 1
    2. while counter < 2 do
    3. counter = counter + 1
    4. print(counter)
    5. end
  • Riptentacion schrieb:

    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-Quellcode

    1. local counter = 0
    2. setTimer(function()
    3. counter = counter+1
    4. outputChatBox(tostring(counter))
    5. 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.

    Corbert schrieb:

    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