检查Computercraft Lua代码以操作门

时间:2018-10-14 05:01:14

标签: lua minecraft computercraft

我正在使用一些自定义模块制作保险库,并且正在使用计算机计算机控制门,但是我只能打开门而不能关闭。此代码正确吗?

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 :(得分:1)

您的第一个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