Minecraft-Java-Edition
這段程式碼我哪裡出錯了?
FTB Direwolf20 v 1.0.21 CC 1.57
我有一個海龜探勘腳本,我在第 18 行收到錯誤“嘗試呼叫 nil”:
if turtle.getFuelLevel() >= turtle.getFuelLimit() - 500 then
並且看不到是什麼原因造成的。這是完整的程式碼:
chestFuel = 15 fuel = 14 function CheckFuel() if turtle.getFuelLevel() ~= 'unlimited' then if turtle.getItemCount(fuel) == 0 then turtle.select(chestFuel) turtle.placeUp() turtle.select(fuel) turtle.suckUp() turtle.digUp() turtle.select(1) end if turtle.getFuelLevel() < 200 then print('Current fuel lvl: ' .. turtle.getFuelLevel() .. ': Refueling...') turtle.select(fuel) while true do if turtle.getFuelLevel() >= turtle.getFuelLimit() - 500 then print('Fueled Up') break end turtle.refuel() print('Fuel lvl: ' .. turtle.getFuelLevel()) end turtle.select(1) end end end
查看Turtle API,您將看到
getFuelLimit()
僅在 1.6 版中實現,並且您正在執行 1.57 版。由 ComputerCraft 1.6 版添加,此命令返回海龜可以儲存的最大燃料量。預設情況下,普通海龜可容納 20,000 個單位,高級模型可容納 100,000 個單位;這兩個值都可以在 ComputerCraft.cfg 中更改。
在 1.6 之前的版本中,海龜幾乎可以儲存無限量的燃料。
要使其向前兼容,您可以執行以下操作:
function getFuelLimit() if turtle.getFuelLimit ~= nil then return turtle.getFuelLimit() else return 0; end end
並在檢查燃料時添加檢查 0 或設置您自己的燃料限制