"bios.lua: 26: [string" turbinecontrol "]: 15:" тогда "ожидается", я понятия не имею, почему это происходит - PullRequest
0 голосов
/ 29 мая 2019

Пытаюсь управлять моими турбинами экстремальных реакторов с помощью компьютера, чтобы мне не приходилось ими управлять, я вообще новичок в lua, поэтому мне бы очень хотелось помочь с этим и, возможно, получить дополнительные советы по другим вопросам, которые могут пойти не так. я делаю что-то не так, и я планирую иметь монитор, отображающий статистику от турбин и иметь возможность включать / выключать их, как только я пойму, как это сделать

turbine1 = peripheral.wrap("top")
turbine2 = peripheral.wrap("right") -- i know doing this is probably wrong

turbine1.setActive(true)
turbine2.setActive(true)

turbine1.setVentOverflow(true)
turbine2.setVentOverflow(true)

turbine1.setFluidFlowRateMax(2000)
turbine2.setFluidFlowRateMax(2000)

while true do then
  if turbine1.getRotorSpeed() >= 20000
    turbine1.setInductorEngaged(true) -- line which its complaining about with "bios.lua:26: [string "turbinecontrol"]:15: 'then' expected"
    print("Turbine 1 Inductor Engaged")
    wait(5)
    print("Turbine 1 Generating" ... turbine1.getEnergyProducedLastTick())
  end

  if turbine1.getRotorSpeed() < 10000
    turbine1.setInductorEngaged(false)
    print("Turbine 1 Inductor Disengaged")
  end

  if turbine2.getRotorSpeed() >= 20000
    turbine2.setInductorEngaged(true)
    print("Turbine 2 Inductor Engaged")
    wait(5)
    print("Turbine 2 Generating" ... turbine2.getEnergyProducedLastTick())
  end

  if turbine2.getRotorSpeed() < 10000
    turbine2.setInductorEngaged(false)
    print("Turbine 2 Inductor Disengaged")
  end

end```

1 Ответ

4 голосов
/ 29 мая 2019

Ваш синтаксис немного выключен. Во-первых, у вас есть while true do then в строке 14, когда это должно быть только while true do, во-вторых, всякий раз, когда у вас есть оператор if, например. if turbine1.getRotorSpeed() >= 20000 вам нужно then, чтобы прекратить условие. Таким образом это должно выглядеть как if turbine1.getRotorSpeed() >= 20000 then

...