-1

我正在为大型反应堆制作一个 ComputerCraft 程序,以确保我永远不会耗尽电力。我自己做了一个程序,但是当我启动它时,它说:“启动:7:尝试在 nil 和数字上比较 __lt”。这是我写的程序:

-- #Startup# --
reactor = peripheral.wrap("back")

-- #Program# --
  while getEnergyStored < 1000 do
    reactor.setActive = true

  while getEnergyStored > 9999999 do
    reactor.setActive = false
  end
 end     

有人可以告诉我如何解决这个问题吗?

4

1 回答 1

1

该错误告诉您这getEnergyStored不是数字,无法使用>with进行比较1000

我去查看Big Reactors 参考页面,我认为您正在尝试使用该功能getEnergyStored。为此,请将其更改为getEnergyStored().

您需要两个括号来告诉程序调用函数而不是将其作为变量传递。

其次,程序不会getStoredEnergy()单独识别,因为这样的函数属于你的reactor变量。

第三,setActive不能赋值,它是一个函数。像这样称呼它:setActive(state)state 是trueor false

我已经重写了您的代码以使其正常工作

while true do
  --Get the stored energy count from the reactor
  local energy = reactor.getStoredEnergy()
  if energy < 1000 do
    reactor.setActive(true)
  else if energy > 9999999 do
    reactor.setActive(false)
  end
end
于 2015-05-02T00:32:03.840 回答