Проверка компьютерного кода Lua для управления дверью - PullRequest
0 голосов
/ 14 октября 2018

Я делаю хранилище с некоторыми пользовательскими модами и использую компьютерный компьютер для управления дверью, но я могу только открывать дверь, а не закрывать.Является ли этот код правильным?

term.setTextColor(colors.yellow)
print("Vault-Tec Door Computer")
term.setTextColor(colors.white)
print("What Command Would You Like To Do?")
term.setTextColor(colors.blue)
print("Vault.Open")
print("Vault.Close")
print("")
term.setTextColor(colors.white)
io.write("Vault-Tec:")
io.close()
    if io.read()=="Vault.Open" then
        term.setTextColor(colors.red)
        print("VAULT DOOR OPENING, PLEASE STAND BACK")
        term.setTextColor(colors.white)
        redstone.setAnalogOutput("bottom", 0)
        sleep(5)
    end
    if io.read()=="Vault.Close" then
        term.setTextColor(colors.red)
        print("SHUTTING VAULT DOOR, PLEASE STAND BACK")
        term.setTextColor(colors.white)
        redstone.setAnalogOutput("bottom", 15)
        sleep(5)
    end

1 Ответ

0 голосов
/ 14 октября 2018

Ваш первый оператор if вызывает io.read(), читает все набранное и сравнивает его с Vault.Open.Ваш следующий оператор if читает следующую вещь , которая была набрана, и сравнивает ее с Vault.Close.Вы должны только прочитать то, что было введено один раз, и сохранить его в переменной, тогда вы можете использовать это значение в нескольких местах.

.....
local valutStatus = io.read()
if valutStatus == "Vault.Open" then
    term.setTextColor(colors.red)
    print("VAULT DOOR OPENING, PLEASE STAND BACK")
    term.setTextColor(colors.white)
    redstone.setAnalogOutput("bottom", 0)
    sleep(5)
end
if valutStatus == "Vault.Close" then
    term.setTextColor(colors.red)
    print("SHUTTING VAULT DOOR, PLEASE STAND BACK")
    term.setTextColor(colors.white)
    redstone.setAnalogOutput("bottom", 15)
    sleep(5)
end
...