Jump to content

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo Community, ich hab mich heute daran gewagt, meinen ur alten Autentifikationsautomaten zu renovieren, aber immer wenn ich mein fertiges Programm laufen lassen will, sagt er dass eine Klammer auf Line 49, also "while(reader.readLine() != nil)"fehlt. BITTE helft mir diesen dämlichen Fehler zu suchen! :'( Code:

	    local allowedPlayers = {"Coronaxe","TheWarflash"}    while true do      local evn, evt = os.pullEvent()      --print(evt)      if evn == "player" then        for i=1,#allowedPlayers do          if(allowedPlayers[i] == evt) then            --print("Player authenticated: "..evt)                  local stw = "Player "..evt.." logged in at day "..os.day().." at "..os.time()            print(stw)            local writer = fs.open("log","a")            writer.writeLine(stw)            writer.close()            timeout = os.startTimer(60)            --print(timeout)            rs.setOutput("top",true)            rs.setOutput("right",true)            os.sleep(0.5)          else            local stw = "Player "..evt.."failed to log in at day "..os.day().." at "..os.time()            print(stw)            local writer = fs.open("log","a")            writer.writeLine(stw)            writer.close()            rs.setOutput("top",false)            rs.setOutput("right",false)          end        end      end      if evt == timeout or evn == "redstone" then        --print(timeout)        rs.setOutput("top",false)        rs.setOutput("right",false)        os.sleep(0.5)      end      if evt == "p" then        term.clear()        term.setCursorPos(1,1)        print("Do you want to print the log file? y/n")        local ev,key = os.pullEvent("char")        if key == "y" then          local printer = peripheral.wrap("back")          local reader = fs.open("log","r")          printer.setCursorPos(1,1)          do            printer.write(reader.readLine())            local _,y = printer.getCursorPos()            printer.setCursorPos(1,y+1)          while(reader.readLine() != nil)        end      end    end

bearbeitet von Corona
Geschrieben (bearbeitet)

Welche Sprachen kannst du noch so...

Abgesehen davon, dass das ziemlich episch ist was du da gemacht hast, hast du einen kleinen Fehler gemacht.

Alle Sprachen sind nur FAST gleich!

In LUA macht das keinen Sinn:

while conditionend

In C++ würde das so aussehen:

do {  stuff();} while (condition);

In LUA schaut das aber so aus:

repeat  stuffuntil condition

Die Frage die ich mir stelle ist, warum kreidet dir der Parser nicht das "do" an?

Probier mal ob es geht wenn du das "do" zu "repeat" und das "while" zu "until" änderst.

bearbeitet von idk.cpp
Geschrieben

Dass das Symbol für "Nicht" nicht "!=" ist, sondern "~="

Und die Sache mit dem Repeat, da hattest du recht, hast eh ein Like bekommen :D

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B