2015-04-12 35 views
-1

我正在爲大型反應堆製作ComputerCraft程序,以確保我永遠不會耗盡電力。我自己製作了一個程序,但是當我開始時,它就是:「啓動:7:嘗試比較零和數字上的__lt」。這是我寫的程序:ComputerCraft/BigReactors能源安全系統

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

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

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

有人可以告訴我如何解決這個問題嗎?

+0

這不是我的世界問題的地方。這個問題是無關緊要的。請參閱http://stackoverflow.com/help/on-topic以查看本網站的主題有哪些類型的問題。歡迎來到SO。 – Airhead

+0

@HCBPshenanig在我看來這個問題是關於主題!他不問Minecraft。即使他的問題很糟糕,因爲你可以清楚地看到他不知道他做了什麼仍然是主題因爲他問腳本語言問題Lua – Mischa

回答

1

錯誤提示您getEnergyStored不是數字,不能使用>1000進行比較。

我去檢查Big Reactors reference page,我想你正在嘗試使用函數getEnergyStored。要做到這一點,請將其更改爲getEnergyStored()

您需要兩個括號來告訴程序調用函數而不是將其作爲變量傳遞。

其次,程序不會單獨識別getStoredEnergy(),因爲這樣的功能屬於您的reactor變量。

第三,setActive不能被賦值,它是一個函數。這樣稱呼:setActive(state)其中狀態是truefalse

我已經重寫你的代碼,使其工作

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